RoundSound не стартует после смены карты

Artem_Krasavchik

Пользователь
Регистрация
27 Апр 2021
Сообщения
12
Симпатии
0
Неверный раздел
Здравствуйте, помогите пожалуйста решить проблему, с меня +
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();
}
Только если переподключится...
 
Сверху Снизу