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();
}