[CS: Source] Easy Round Events

Тема в разделе "Новые плагины", создана пользователем trial, 15 фев 2014.

  1. trial

    trial

    Сообщения:
    38
    Симпатии:
    3
    Easy Round Events​


    Описание:
    Простой плагин, который выполняет четыре функции:

    1. Проигрывает ваш звук при старте раунда
    2. Заменяет стандартный звук в конце раунда
    3. Выводит ваше сообщение в начале раунда
    4. Заменяет стандартное сообщение в конце раунда

    Тестировал в CS:S, возможно работает и в других играх.

    Все звуки и сообщения являются разными для команд.
    PS: Да, плагин заменяет стандартные "Counter-Terrorist / Terrorist team win".

    Конфиг:
    HTML:
    sm_ct_start_sound - Звук для КТ при старте.
    sm_t_start_sound - Звук для Т при старте.
    sm_ct_end_sound - Звук для КТ в конце.
    sm_t_end_sound - Звук для Т в конце.
    Сообщения:
    Все сообщения вы можете легко изменить в файле фраз. Стартовые сообщение поддерживают цвета (через morecolors).
    Полный список цветов можно найти тут.

    Это мой первый плагин, жду ваших отзывов :)
     

    Вложения:

    Последнее редактирование: 15 фев 2014
    krizziss нравится это.
  2. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.055
    Симпатии:
    345
    А ссылка где ?
     
  3. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    где сам плагин?
     
  4. trial

    trial

    Сообщения:
    38
    Симпатии:
    3
    Прошу прощения, во вложениях.
     
  5. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    trial, начнем:
    PHP:
    public OnConfigsExecuted() 
    {
        
    GetConVarString(g_CvarCTstartg_soundCTs80);
        
    decl String:CTs[80];
        
    PrecacheSound(g_soundCTstrue);
        
    Format(CTssizeof(CTs), "sound/%s"g_soundCTs);
        
    AddFileToDownloadsTable(CTs);
    //
        
    GetConVarString(g_CvarTstartg_soundTs80);
        
    decl String:Ts[80];
        
    PrecacheSound(g_soundTstrue);
        
    Format(Tssizeof(Ts), "sound/%s"g_soundTs);
        
    AddFileToDownloadsTable(Ts);
    //
        
    GetConVarString(g_CvarCTwing_soundCTw80);
        
    decl String:CTw[80];
        
    PrecacheSound(g_soundCTwtrue);
        
    Format(CTwsizeof(CTw), "sound/%s"g_soundCTw);
        
    AddFileToDownloadsTable(CTw);
    //
        
    GetConVarString(g_CvarTwing_soundTw80);
        
    decl String:Tw[80];
        
    PrecacheSound(g_soundTwtrue);
        
    Format(Twsizeof(Tw), "sound/%s"g_soundTw);
        
    AddFileToDownloadsTable(Tw);
    }
    Лучше сделать так:
    PHP:
    public OnMapStart() 
    {
        
    GetConVarString(g_CvarCTstartg_soundCTs80);
        
    GetConVarString(g_CvarTstartg_soundTs80);
        
    GetConVarString(g_CvarCTwing_soundCTw80);
        
    GetConVarString(g_CvarTwing_soundTw80);
        
    LoadSound(g_soundCTs);
        
    LoadSound(g_soundTs);
        
    LoadSound(g_soundCTw);
        
    LoadSound(g_soundTw);
    }

    stock(String:sSound[])
    {
        
    decl String:sFile[80];
        
    Format(sFilesizeof(sFile), "sound/%s"sSound);
        if(
    FileExists(sFile))
        {
            
    PrecacheSound(sSoundtrue);
            
    AddFileToDownloadsTable(sFile);
        }
    }
    PHP:
    if ((IsClientInGame(client)) && (IsPlayerAlive(client)))
    {
        if (
    GetClientTeam(client) == 3)
        {
            
    CPrintToChat(client"%t""CT_Start");
            
    EmitSoundToClient(client,g_soundCTs);
        }
        if (
    GetClientTeam(client) == 2)
        {
            
    CPrintToChat(client"%t""T_Start");
            
    EmitSoundToClient(client,g_soundTs);
        }
    }
    Я бы сделал так:
    PHP:
    if ((IsClientInGame(client)) && (IsPlayerAlive(client)))
    {
        new 
    iTeam GetClientTeam(client);
        
    CPrintToChat(client"%t", (iTeam == 3) ? "CT_Start":"T_Start");
        
    EmitSoundToClient(client, (iTeam == 3) ? g_soundCTs:g_soundTs);
    }
    PHP:
    public Event_RoundEnd(Handle:event, const String:name[], bool:silent

        if (!
    silent
        { 
            
    SetEventBroadcast(eventtrue); 
        }
        
        
    winner GetEventInt(event"winner");
        
        for(new 
    1<= MaxClientsi++)
        {
            if(
    IsClientInGame(i) && !IsFakeClient(i))
            {
                
    StopSound(iSNDCHAN_STATIC"radio/ctwin.wav");
                
    StopSound(iSNDCHAN_STATIC"radio/terwin.wav");
            }
            if (
    winner == 2)
            {
                
    PrintCenterText(i"%t""T_Win");
                
    EmitSoundToClient(ig_soundTwSOUND_FROM_PLAYERSNDCHAN_AUTOSNDLEVEL_GUNFIRE);
            }
            if (
    winner == 3)
            {
                
    PrintCenterText(i"%t""CT_Win");
                
    EmitSoundToClient(ig_soundCTwSOUND_FROM_PLAYERSNDCHAN_AUTOSNDLEVEL_GUNFIRE);
            }
        }
    Так:
    PHP:
    public Event_RoundEnd(Handle:event, const String:name[], bool:silent

        if (!
    silentSetEventBroadcast(eventtrue); 
        
        new 
    iWinner GetEventInt(event"winner");
        
        for(new 
    1<= MaxClientsi++)
        {
            if(
    IsClientInGame(i) && !IsFakeClient(i)) StopSound(iSNDCHAN_STATIC, (iWinner == 3) ? "radio/ctwin.wav":"radio/terwin.wav");
        }
        
        
    PrintCenterTextAll("%t", (iWinner == 2) ? "T_Win":"CT_Win");
        
    EmitSoundToAll((iWinner == 2) ? g_soundTw:g_soundCTwSOUND_FROM_PLAYERSNDCHAN_AUTOSNDLEVEL_GUNFIRE);

    И еще:
    PHP:
    StopSound(iSNDCHAN_STATIC, ...
    Вроде не нужно делать если ты делаешь
    PHP:
    PrecacheSound("..."false);
     
    trial нравится это.
  6. Vit_ amin

    Vit_ amin BotManager001

    Сообщения:
    1.055
    Симпатии:
    345
    Нравиться способ со знаком вопроса (условие вместо if) только не совсем понимаю как его делать ...
     
  7. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    Vit_ amin,
    (условие) ? правда:лошь
     
    Серый™ и Vit_ amin нравится это.
  8. Мария Фомина

    Мария Фомина

    Сообщения:
    43
    Симпатии:
    14
    А добавьте еще звук закладки и разминирования бомбы) Я думаю это не сложно будет сделать:)
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.993
    Симпатии:
    2.989
    Мария Фомина, пробуй
     

    Вложения: