Artem_Krasavchik
Пользователь
- Регистрация
- 27 Апр 2021
- Сообщения
- 12
- Симпатии
- 0
Неверный раздел
Здравствуйте, помогите пожалуйста решить проблему, с меня +
RoundSound не стартует после смены карты.
Только если переподключится...
RoundSound не стартует после смены карты.
C#:
#include <amxmodx>
#define PLUGIN "Round Sounds"
#define VERSION "3.0"
#define AUTHOR "DeRoiD"
#define Prefix "!y[!gRS!y]"
#define File "addons/amxmodx/configs/UM/RoundSound.ini"
#define MAXSOUNDS 50
#pragma semicolon 1
new MusicData[MAXSOUNDS][3][64], Mp3File[96], MusicNum, PreviousMusic = -1, bool:Off[33], MaxFileLine;
new SayText;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
register_clcmd("say /sound", "Toggle");
SayText = get_user_msgid("SayText");
register_logevent("PlayMusic", 2, "1=Round_End");
LoadMusic();
}
public Toggle(id)
{
if(Off[id])
{
client_print_color(id, print_team_grey, "^1[^4RS^1] Вы ^4включили^1 воспроизведение музыки в конце раунда.");
Off[id] = false;
}
else
{
client_cmd(id, "mp3 stop");
client_print_color(id, print_team_grey, "^1[^4RS^1] Вы ^4выключили^1 воспроизведение музыки в конце раунда.");
Off[id] = true;
}
return PLUGIN_HANDLED;
}
public LoadMusic()
{
new Len, Line[196], Data[3][64];
MaxFileLine = file_size(File, 1);
for(new Num; Num < MaxFileLine; Num++)
{
MusicNum++;
read_file(File, Num, Line, 196, Len);
parse(Line, Data[0], 63, Data[1], 63, Data[2], 63);
remove_quotes(Line);
if(Line[0] == ';' || 2 > strlen(Line))
{
continue;
}
remove_quotes(Data[0]);
remove_quotes(Data[1]);
remove_quotes(Data[2]);
format(MusicData[MusicNum][0], 63, "%s", Data[0]);
format(MusicData[MusicNum][1], 63, "%s", Data[1]);
format(MusicData[MusicNum][2], 63, "%s", Data[2]);
}
}
public PlayMusic()
{
new Num = random_num(1, MusicNum);
if(MusicNum > 1)
{
if(Num == PreviousMusic)
{
PlayMusic();
return PLUGIN_HANDLED;
}
}
formatex(Mp3File, charsmax(Mp3File), "sound/%s", MusicData[Num][2]);
new Players[32], PlayersNum, id;
get_players(Players, PlayersNum, "c");
for(new i; i < PlayersNum; i++)
{
id = Players[i];
if(Off[id])
{
continue;
}
client_cmd(id, "mp3 play %s", Mp3File);
new Message[256] ;
if(strlen(MusicData[Num][0]) > 3 && strlen(MusicData[Num][1]) > 3)
{
formatex(Message, 255, "%s Музыка!g:!t %s !y- !t%s", Prefix, MusicData[Num][0], MusicData[Num][1]);
}
else
{
formatex(Message, 255, "%s Музыка!g:!t Неизвестно", Prefix);
}
SendMessage(id, Message);
}
PreviousMusic = Num;
return PLUGIN_HANDLED;
}
public plugin_precache()
{
new Len, Line[196], Data[3][64], Download[MAXSOUNDS][64];
MaxFileLine = file_size(File, 1);
for(new Num = 0; Num < MaxFileLine; Num++)
{
read_file(File, Num, Line, 196, Len);
parse(Line, Data[0], 63, Data[1], 63, Data[2], 63);
remove_quotes(Line);
if(Line[0] == ';' || 2 > strlen(Line))
{
continue;
}
remove_quotes(Data[2]);
format(Download[Num], 63, "%s", Data[2]);
precache_sound(Download[Num]);
}
}
stock SendMessage(id, const MessageData[])
{
static Message[256];
vformat(Message, 255, MessageData, 3);
replace_all(Message, 255, "!g", "^4");
replace_all(Message, 255, "!y", "^1");
replace_all(Message, 255, "!t", "^3");
message_begin(MSG_ONE_UNRELIABLE, SayText, _, id);
write_byte(id);
write_string(Message);
message_end();
}