Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

NajaRany RasTa

Użytkownik
  • Postów

    92
  • Dołączył

  • Ostatnia wizyta

  • Wygrane w rankingu

    1

Odpowiedzi opublikowane przez NajaRany RasTa

  1. Powiedź mi czy jak bd pisał w say to bd wyskakiwał mi VIP przed nickiem ? Bo tego bym najbardziej nie chciał. Zaraz wgram i napiszę czy działa ;)

     

    Czy dał byś radę zrobić tak że w jak właśnie piszę w say to żebym nie miał przed nickiem VIP ? ; ) Bo w tabeli nie pokazuje ; )

  2. // SourceMod Configuration File
    // This file is automatically executed by SourceMod every mapchange.
    // Specifies how admin activity should be relayed to users.  Add up the values
    // below to get the functionality you want.
    // 1: Show admin activity to non-admins anonymously.
    // 2: If 1 is specified, admin names will be shown.
    // 4: Show admin activity to admins anonymously.
    // 8: If 4 is specified, admin names will be shown.
    // 16: Always show admin names to root users.
    // --
    // Default: 13 (1+4+8)
    sm_show_activity 13 // Specifies whether menu sounds are enabled for menus created by SourceMod.
    // Menu sounds can be further configured in addons/sourcemod/configs/core.cfg.
    // --
    // Default: 1
    sm_menu_sounds 1 // Specifies how long of a delay, in seconds, should be used in between votes
    // that are "public" or can be spammed.  Whether or not this delay is obeyed
    // is dependent on the menu/command.
    // --
    // Default: 30
    sm_vote_delay 30 // Default datetime formatting rules when displaying to clients.
    // For full options, see: strftime
    // --
    // Default: %m/%d/%Y - %H:%M:%S
    // 12 hour format: %m/%d/%Y - %I:%M:%S %p
    sm_datetime_format "%m/%d/%Y - %H:%M:%S" // Sets how SourceMod should check immunity levels when administrators target
    // each other.
    // 0: Ignore immunity levels (except for specific group immunities).
    // 1: Protect from admins of lower access only.
    // 2: Protect from admins of equal to or lower access.
    // 3: Same as 2, except admins with no immunity can affect each other.
    // --
    // Default: 1
    sm_immunity_mode 1 // Sets how many seconds SourceMod should adjust time values for incorrect
    // server clocks.  This can be positive or negative and will affect every
    // system time in SourceMod, including logging stamps.
    // --
    // Default: 0
    sm_time_adjustment 0 // Specifies the amount of time that is allowed between chat messages.  This
    // includes the say and say_team commands.  If a client sends a message faster
    // than this time, they receive a flood token.  When the client has accumulated
    // 3 or more tokens, a warning message is shown instead of the chat message.
    // --
    // Requires: antiflood.smx
    // Default: 0.75
    sm_flood_time 0.75 // Specifies how the reserved slots plugin operates. Valid values are:
    // 0 : Public slots are used in preference to reserved slots. Reserved slots are freed before public slots.
    // 1 : If someone with reserve access joins into a reserved slot, the player with the highest latency and
    // no reserved slot access (spectator players are selected first) is kicked to make room. Thus, the reserved
    // slots always remains free. The only situation where the reserved slot(s) can become properly occupied is
    // if the server is full with reserve slot access clients.
    // --
    // Requires: reservedslots.smx
    // Default: 0
    sm_reserve_type 1 // Specifies the number of reserved player slots.  Users with the reservation
    // admin flag set will be able to join the server when there are no public slots
    // remaining. If someone does not have this flag, they will be kicked.
    // (Public slots are defined as: maxplayers - number of reserved slots)
    // --
    // Requires: reservedslots.smx
    // Default: 0
    sm_reserved_slots 1 // Specifies whether or not reserved slots will be hidden (subtracted from max
    // slot count). Valid values are 0 (Visible) or 1 (Hidden).
    // --
    // Requires: reservedslots.smx
    // Default: 0
    sm_hide_slots 0 // Specifies whether or not non-admins can send messages to admins using
    // say_team @<message>. Valid values are 0 (Disabled) or 1 (Enabled)
    // --
    // Requires: basechat.smx
    // Default: 1
    sm_chat_mode 1 // Specifies whether or not "timeleft" will automaticly be triggered every
    // x seconds. Valid values are 0 (Disabled) to 1800 seconds.
    // --
    // Requires: basetriggers.smx
    // Default: 0
    sm_timeleft_interval 0 // Specifies whether or not chat triggers are broadcast to the server or just
    // the player who requested the info trigger. Valid values are 0 (Disabled) or
    // 1 (Enabled)
    // --
    // Requires: basetriggers.smx
    // Default: 1
    sm_trigger_show 1 // Specifies whether or not to display vote progress to clients in the
    // "hint" box (near the bottom of the screen in most games).
    // Valid values are 0 (Disabled) or 1 (Enabled).
    // --
    // Default: 0
    sm_vote_progress_hintbox 0 // Specifies whether or not to display vote progress to clients in the
    // chat area. Valid values are 0 (Disabled) or 1 (Enabled).
    // --
    // Default: 0
    sm_vote_progress_chat 0 // Specifies whether or not to display vote progress in the server console.
    // Valid values are 0 (Disabled) or 1 (Enabled).
    // --
    // Default: 0
    sm_vote_progress_console 0 // Specifies whether or not to display vote progress to clients in the
    // client console. Valid values are 0 (Disabled) or 1 (Enabled).
    // --
    // Default: 0
    sm_vote_progress_client_console 0
    [/code]

     

    Tak to wygląda u mnie więc nie mam takiej opcji tu

  3. Na wstępie mówię, że nie interesuje mnie ustawienie na ukrycie slota, ponieważ to już stosuję. Potrzebuję coś takiego że mam serwer na 15 slotów i gdy jest pełny i wchodzi vip z rezerwacją slota to daje kicka graczowi na serwerze który np. ma największy ping, najmniej gra lub najsłabsze ma statystyki. Czy jest taki plugin lub sposób ustawień ?

  4. No bo trzeba to ustawić:

    Opis:
    Jeżeli na twoim serwerze komenda mp_forcecamera jest wartości 1 - ten plugin pozwala adminom patrzeć na wszystkich graczy którzy są na serwerze.

    Wymagania:
    * DHooks 1.0.5-alpha+ (Możesz znaleźć tutaj: Attention Required! | CloudFlare)
    * Aktualna wersja gamedata: https://bitbucket.org/Drifter321/admin-all-spec/raw/tip/sourcemod/gamedata/allow-spec.games.txt

    Instalacja:
    Instalacja pluginów SourceMod

  5. nutycsgocsgra/kdo1.mp3=BOTH
    nutycsgocsgra/kdo2.mp3=BOTH
    nutycsgocsgra/kdo3.mp3=BOTH
    nutycsgocsgra/kdo4.mp3=BOTH
    nutycsgocsgra/kdo5.mp3=BOTH   nutycsgocsgra/kdo6.mp3=BOTH
    nutycsgocsgra/kdo7.mp3=BOTH
    nutycsgocsgra/kdo8.mp3=BOTH
    nutycsgocsgra/kdo9.mp3=BOTH
    nutycsgocsgra/kdo10.mp3=BOTH[/code]   Oraz plugin [code] #pragma semicolon 1 #include <sourcemod>
    #include <sdktools>
    #include <clientprefs> #define MAX_SOUNDS 100
    #define PLUGIN_VERSION "2.3.9" #undef REQUIRE_PLUGIN
    #include <autoupdate> #define GAME_CSTRIKE 1
    #define GAME_TF2 2
    #define GAME_DOD 3
    #define GAME_OTHER 4 new Handle:g_CvarEnabled = INVALID_HANDLE;
    new Handle:AtRoundEnd = INVALID_HANDLE;
    new Handle:AtRoundStart = INVALID_HANDLE;
    new Handle:OnPlayerConnect = INVALID_HANDLE;
    new Handle:Timer = INVALID_HANDLE;
    new Handle:AnnounceEvery = INVALID_HANDLE;
    new Handle:RandomSound = INVALID_HANDLE;
    new Handle:cookieResPref = INVALID_HANDLE;
    new Handle:version = INVALID_HANDLE;
    new Handle:ClientPref = INVALID_HANDLE;
    new Handle:CommonSounds = INVALID_HANDLE;
    new Handle:Debug = INVALID_HANDLE;
    new Handle:SoundListPath = INVALID_HANDLE;
    new Handle:DodCry = INVALID_HANDLE; new bool:roundEnded = false;
    new bool:loaded = false; new String:g_soundsListCT[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:g_soundsListT[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:g_soundsList[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:SoundList[PLATFORM_MAX_PATH]; static String:Team1[4][6]  = {"T","RED","USA","TEAM1"};
    static String:Team2[4][6]  = {"CT","BLU","GER","TEAM2"}; new res_sound[MAXPLAYERS+1]; new QueueT=1;
    new QueueCt=1;
    new CommonQueue=1;
    new MaxSounds;
    new MaxSoundsT;
    new MaxSoundsCT;
    new win_sound_common;
    new win_sound_t;
    new win_sound_ct;
    new TF2Team;
    new winner;
    new game; //------------------------------------------------------------------------------------------------------------------------------------
    // Colors
    #define YELLOW               "\x01"
    #define NAME_TEAMCOLOR       "\x02"
    #define TEAMCOLOR            "\x03"
    #define GREEN                "\x04"
    //------------------------------------------------------------------------------------------------------------------------------------ public Plugin:myinfo =
    {
        name = "Round End Sound",
        author = "FrozDark",
        description = "Plays a random sound or the sound of the winner team at round end",
        version = PLUGIN_VERSION,
        url = "http://all-stars.sytes.net/"
    };
    public OnPluginStart()
    {
        g_CvarEnabled = CreateConVar("sm_res_enable", "1", "Enable/disable round end sound");
        version = CreateConVar("sm_res_version", PLUGIN_VERSION, "Round End Sound version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
        AtRoundEnd = CreateConVar("sm_res_roundendannounce", "0", "Announcement at every round end");
        AtRoundStart = CreateConVar("sm_res_roundstartannounce", "0", "Announcement at every round start");
        OnPlayerConnect = CreateConVar("sm_res_playerconnectannounce", "1", "Announcement in 20 sec. after player connect");
        AnnounceEvery = CreateConVar("sm_res_announceevery", "120", "How often in seconds it will display the message every time. 0=Disable");
        ClientPref = CreateConVar("sm_res_client", "1", "If enabled, clients will be able to modify their ability to hear sounds. 0=Disable");
        RandomSound = CreateConVar("sm_res_randomsound", "0", "If enabled, the sounds will be random. If disabled the sounds will be played in a queue");
        CommonSounds = CreateConVar("sm_res_commonsounds", "0", "If enabled, all sounds will be played in spite of the winner team");
        Debug = CreateConVar("sm_res_debug", "0", "Enables debug");
        SoundListPath = CreateConVar("sm_res_soundlist", "addons/sourcemod/configs/res_list.cfg", "Path to the sound list");
        DodCry = CreateConVar("sm_res_dod_crysound", "0", "Enables or Disables last capture point cry for dod");
            
        decl String:dir[15];
        GetGameFolderName(dir, sizeof(dir));
        
        if(!strcmp(dir,"cstrike",false) || !strcmp(dir,"cstrike_beta",false))
        {
            game = GAME_CSTRIKE;
            PrecacheSound("radio/ctwin.wav", false);
            PrecacheSound("radio/terwin.wav", false);
            HookEvent("round_end", OnRoundEnd);
            HookEvent("round_start", OnRoundStart);
        }
        else if(!strcmp(dir,"dod",false))
        {
            game = GAME_DOD;
            PrecacheSound("ambient/german_win.mp3", false);
            PrecacheSound("ambient/us_win.mp3", false);
            HookEvent("dod_round_win", OnRoundEnd);
            HookEvent("dod_round_start", OnRoundStart);
            HookEvent("dod_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else if(!strcmp(dir,"tf",false))
        {
            game = GAME_TF2;
            PrecacheSound("misc/your_team_lost.wav", false);
            PrecacheSound("misc/your_team_stalemate.wav", false);
            PrecacheSound("misc/your_team_suddendeath.wav", false);
            PrecacheSound("misc/your_team_won.wav", false);
            HookEvent("teamplay_round_win", OnRoundEnd);
            HookEvent("teamplay_round_start", OnRoundStart);
            HookEvent("teamplay_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else
        {
            game = GAME_OTHER;
            HookEventEx("round_end", OnRoundEnd);
            HookEventEx("round_start", OnRoundStart);
        }     LoadTranslations("common.phrases");
        LoadTranslations("RoundEndSound");
        LoadResSounds();
        
        HookConVarChange(AnnounceEvery, ConVarChange_Timer);
        HookConVarChange(version, ConVarChange_Version);
        
        AutoExecConfig(true, "RoundEndSound");
    } public OnConfigsExecuted()
    {
        if (GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled) && !loaded)
        {
            RegConsoleCmd("sm_res", ResCmd, "On/Off Round End Sounds");
            cookieResPref = RegClientCookie("Round End Sound", "Round End Sound", CookieAccess_Private);
            new info;
            SetCookieMenuItem(ResPrefSelected, any:info, "Round End Sound");
            loaded = true;
        }
        SetConVarString(version, PLUGIN_VERSION);
    } public OnPluginEnd()
    {
        if(LibraryExists("pluginautoupdate")) AutoUpdate_RemovePlugin();
        if(game == GAME_CSTRIKE || game == GAME_OTHER)
        {
            UnhookEvent("round_end", OnRoundEnd);
            UnhookEvent("round_start", OnRoundStart);
        }
        else if(game == GAME_DOD)
        {
            UnhookEvent("dod_round_win", OnRoundEnd);
            UnhookEvent("dod_round_start", OnRoundStart);
            UnhookEvent("dod_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else if(game == GAME_TF2)
        {
            UnhookEvent("teamplay_round_win", OnRoundEnd);
            UnhookEvent("teamplay_round_start", OnRoundStart);
            UnhookEvent("teamplay_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        if(Timer != INVALID_HANDLE)
        {
            KillTimer(Timer);
        }
        if(g_CvarEnabled != INVALID_HANDLE)
        {
            CloseHandle(g_CvarEnabled);
        }
        if(AtRoundEnd != INVALID_HANDLE)
        {
            CloseHandle(AtRoundEnd);
        }
        if(AtRoundStart != INVALID_HANDLE)
        {
            CloseHandle(AtRoundStart);
        }
        if(OnPlayerConnect != INVALID_HANDLE)
        {
            CloseHandle(OnPlayerConnect);
        }
        if(AnnounceEvery != INVALID_HANDLE)
        {
            CloseHandle(AnnounceEvery);
        }
        if(RandomSound != INVALID_HANDLE)
        {
            CloseHandle(RandomSound);
        }
        if(cookieResPref != INVALID_HANDLE)
        {
            CloseHandle(cookieResPref);
        }
        if(version != INVALID_HANDLE)
        {
            CloseHandle(version);
        }
        if(ClientPref != INVALID_HANDLE)
        {
            CloseHandle(ClientPref);
        }
        if(SoundListPath != INVALID_HANDLE)
        {
            CloseHandle(SoundListPath);
        }
        if(DodCry != INVALID_HANDLE)
        {
            CloseHandle(DodCry);
        }
    } public OnAllPluginsLoaded()
    {
        if (LibraryExists("pluginautoupdate"))
        {
            AutoUpdate_AddPlugin("baha-all-stars.narod.ru", "/updates/RoundEndSound/version.xml", PLUGIN_VERSION);
        }
        else
        {
            LogMessage("Note: This plugin supports updating via Plugin Autoupdater. Install it if you want to enable auto-update functionality.");
        }
    } public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
    {    
        MarkNativeAsOptional("AutoUpdate_AddPlugin");
        MarkNativeAsOptional("AutoUpdate_RemovePlugin");
        
        return APLRes_Success;
    } public OnMapStart()
    {    
        if (GetConVarBool(g_CvarEnabled))
        {
            for(new i = 1; i <= MaxSounds; i++) PrepareSound(i);
            if(GetConVarInt(AnnounceEvery) != 0) Timer = CreateTimer(GetConVarFloat(AnnounceEvery), TimerEvery, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
            if (LibraryExists("pluginautoupdate")) InsertServerCommand("sm_autoupdate_download");
        }
    } public ConVarChange_Timer(Handle:convar, const String:oldValue[], const String:newValue[])
    {
        if (Timer != INVALID_HANDLE) KillTimer(Timer);
        
        if(GetConVarInt(AnnounceEvery) != 0) Timer = CreateTimer(GetConVarFloat(AnnounceEvery), TimerEvery, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    } public ConVarChange_Version(Handle:convar, const String:oldValue[], const String:newValue[])
    {
        SetConVarString(version, PLUGIN_VERSION);
    } public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (GetConVarBool(g_CvarEnabled))
        {
            roundEnded = false;
            if(GetConVarBool(AtRoundStart) && GetConVarBool(ClientPref)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
        }
    } public Action:OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (GetConVarBool(g_CvarEnabled))
        {
            roundEnded = true;
            
            if (game == GAME_CSTRIKE || game == GAME_OTHER) winner = GetEventInt(event, "winner");
            else if (game == GAME_TF2 || game == GAME_DOD) winner = GetEventInt(event, "team");
            
            if (GetConVarBool(RandomSound))
            {
                if(!GetConVarBool(CommonSounds))
                {
                    if(winner == 2) win_sound_t = GetRandomInt(1, MaxSoundsT);
                    else if(winner == 3) win_sound_ct = GetRandomInt(1, MaxSoundsCT);
                }
                else win_sound_common = GetRandomInt(1, MaxSounds);
            }
            
            else
            {
                if(QueueT == MaxSoundsT) QueueT = 1;
                if(QueueCt == MaxSoundsCT) QueueCt = 1;
                if(CommonQueue == MaxSounds) CommonQueue = 1;
                
                if(!GetConVarBool(CommonSounds))
                {
                    if(winner == 2) win_sound_t = QueueT++;
                    else if(winner == 3) win_sound_ct = QueueCt++;
                }
                else if(winner != 1) win_sound_common = CommonQueue++;
            }
            
            
            for (new i = 1; i <= MaxClients; i++)
            {
                if (IsClientInGame(i) && !IsFakeClient(i) && res_sound != 0)
                {
                    if(game == GAME_CSTRIKE)
                    {
                        StopSound(i, SNDCHAN_STATIC, "radio/ctwin.wav");
                        StopSound(i, SNDCHAN_STATIC, "radio/terwin.wav");
                    }
                    
                    if (!GetConVarBool(CommonSounds))
                    {
                        if (winner == 2)
                        {
                            EmitSoundToClient(i, g_soundsListT[win_sound_t], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                            if(GetConVarBool(Debug)) LogMessage("Playing team1 sound ą%d - %s", win_sound_t, g_soundsListT[win_sound_t]);
                        }
                        else if (winner == 3)
                        {
                            EmitSoundToClient(i, g_soundsListCT[win_sound_ct], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                            if(GetConVarBool(Debug)) LogMessage("Playing team2 sound ą%d - %s", win_sound_ct, g_soundsListCT[win_sound_ct]);
                        }
                    }
                    else if (winner != 1)
                    {
                        EmitSoundToClient(i, g_soundsList[win_sound_common], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                        if(GetConVarBool(Debug)) LogMessage("Playing sound ą%d - %s",win_sound_common, g_soundsList[win_sound_common]);
                    }
                }
            }
            if (GetConVarBool(AtRoundEnd) && GetConVarBool(ClientPref)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
        }
    } public Action:OnBroadCast(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:sound[20];
            GetEventString(event, "sound", sound, sizeof(sound));
            if (game == GAME_TF2) TF2Team = GetEventInt(event, "team");
            
            if(!strcmp(sound, "Game.GermanWin", false))
            {
                PlaySound(TF2Team, "ambient/german_win.mp3");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.USWin", false))
            {
                PlaySound(TF2Team, "ambient/us_win.mp3");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.Stalemate", false))
            {
                PlaySound(TF2Team, "misc/your_team_stalemate.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.YourTeamWon", false))
            {
                PlaySound(TF2Team, "misc/your_team_won.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.SuddenDeath", false))
            {
                PlaySound(TF2Team, "misc/your_team_suddendeath.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.YourTeamLost", false))
            {
                PlaySound(TF2Team, "misc/your_team_lost.wav");
                return Plugin_Handled;
            }
            if(!strcmp(sound, "Voice.German_FlagCapture", false) || !strcmp(sound, "Voice.US_FlagCapture", false))
                if (roundEnded && GetConVarBool(DodCry))
                    return Plugin_Handled;
        }
        return Plugin_Continue;
    } LoadResSounds()
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:Line[PLATFORM_MAX_PATH];
            decl String:Text[2][PLATFORM_MAX_PATH];
            decl String:buf[4];
            
            GetConVarString(SoundListPath, SoundList, sizeof(SoundList));
            
            if(!FileExists(SoundList))
            {
                SetFailState("%s not parsed... file doesn't exist!", SoundList);
            }
            
            new Handle:filehandle = OpenFile(SoundList, "r");
            
            if (filehandle  == INVALID_HANDLE)
            {
                return;
            }         while(!IsEndOfFile(filehandle) && MaxSounds <= MAX_SOUNDS)
            {
                ReadFileLine(filehandle,Line,sizeof(Line));
            
                new pos;
                pos = StrContains((Line), "//");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }
            
                pos = StrContains((Line), "#");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }             pos = StrContains((Line), ";");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }
            
                TrimString(Line);
                GetExtension(Line, buf, sizeof(buf));
                
                if (!strcmp(buf, "mp3", false) || !strcmp(buf, "wav", false))
                {
                    if (StrContains(Line,"=") != -1)
                    {
                        ExplodeString(Line,"=",Text,2,256);
                        Format(Line, sizeof(Line), "sound/%s", Text[0]);
                        if (!FileExists(Line, false) || !FileExists(Line, true))
                        {
                            LogError("Sound %s not found, file doesn't exist!", Line);
                            continue;
                        }
                        for (new t = 0; t < sizeof(Team1); t++)
                        {
                            if (!strcmp(Text[1],Team1[t],false))
                            {
                                MaxSounds++;
                                g_soundsList[MaxSounds] = Text[0];
            
                                MaxSoundsT++;
                                g_soundsListT[MaxSoundsT] = Text[0];
                                
                                if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                            }
                        }
                        for (new t = 0; t < sizeof(Team2); t++)
                        {
                            if (!strcmp(Text[1],Team2[t],false))
                            {
                                MaxSounds++;
                                g_soundsList[MaxSounds] = Text[0];
            
                                MaxSoundsCT++;
                                g_soundsListCT[MaxSoundsCT] = Text[0];
                                
                                if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                            }
                        }
                        if(!strcmp(Text[1],"BOTH",false) || !strcmp(Text[1],"",false))
                        {
                            MaxSounds++;
                            g_soundsList[MaxSounds] = Text[0];
            
                            MaxSoundsT++;
                            g_soundsListT[MaxSoundsT] = Text[0];
                    
                            MaxSoundsCT++;
                            g_soundsListCT[MaxSoundsCT] = Text[0];
                            
                            if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                        }
                    }
                    else
                    {
                        Format(Text[1], PLATFORM_MAX_PATH, "sound/%s", Line);
                        if(FileExists(Text[1]))
                        {
                            MaxSounds++;
                            g_soundsList[MaxSounds] = Line;
            
                            MaxSoundsT++;
                            g_soundsListT[MaxSoundsT] = Line;
                    
                            MaxSoundsCT++;
                            g_soundsListCT[MaxSoundsCT] = Line;
                            
                            if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Line);
                        }
                        else LogError("Sound %s not found, file doesn't exist!", Line);
                    }
                }
                else if (!StrEqual(Line, ""))
                {
                    LogError("Invalid sound - %s", buf);
                    LogError("The sounds should be only \".mp3\" or \".wav\"");
                }
            }
            CloseHandle(filehandle);
            LogMessage("General %d sounds loaded", MaxSounds);
            if(game == GAME_CSTRIKE)
            {
                LogMessage("%d of them loaded for Terrorist team", MaxSoundsT);
                LogMessage("And %d loaded for Counter-Terrorist team", MaxSoundsCT);
            }
            else if(game == GAME_TF2)
            {
                LogMessage("%d of them loaded for Red team", MaxSoundsT);
                LogMessage("And %d loaded for Blue team", MaxSoundsCT);
            }
            else if(game == GAME_DOD)
            {
                LogMessage("%d of them loaded for USA team", MaxSoundsT);
                LogMessage("And %d loaded for German team", MaxSoundsCT);
            }
            else
            {
                LogMessage("%d of them loaded for team 1", MaxSoundsT);
                LogMessage("And %d loaded for team 2", MaxSoundsCT);
            }
        }
    } public Action:ResCmd(client, args)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            if (GetConVarBool(ClientPref))
            {
                if(res_sound[client] != 0)
                {
                    res_sound[client] = 0;
                    PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Res Off");
                }
                else
                {
                    res_sound[client] = 1;
                    PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Res On");
                }
            }
            decl String:buffer[PLATFORM_MAX_PATH];
            
            IntToString(res_sound[client], buffer, 5);
            SetClientCookie(client, cookieResPref, buffer);
        }
        return Plugin_Handled;
    } public Action:TimerEvery(Handle:timer)
    {
        if(!roundEnded && GetConVarBool(AnnounceEvery) && GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
    } public ResPrefSelected(client, CookieMenuAction:action, any:info, String:buffer[], maxlen)
    {
        if (GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled))
        {
            if (action == CookieMenuAction_DisplayOption)
            {
                decl String:status[10];
                if (res_sound[client] != 0) Format(status, sizeof(status), "%T", "On", client);
                else Format(status, sizeof(status), "%T", "Off", client);
                Format(buffer, maxlen, "%T: %s", "Cookie Round End Sound", client, status);
            }
            else
            {
                if(res_sound[client] != 0) res_sound[client] = 0;
                else res_sound[client] = 1;
                ShowCookieMenu(client);
            }
        }
    } public OnClientPutInServer(client)
    {
        if(!IsFakeClient(client) && GetConVarBool(g_CvarEnabled))
        {
            if(AreClientCookiesCached(client)) loadClientCookiesFor(client);
            if(GetConVarBool(OnPlayerConnect)) CreateTimer(20.0, TimerAnnounce, client);
        }
    } loadClientCookiesFor(client)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            if(GetConVarBool(ClientPref))
            {
                decl String:buffer[5];
                GetClientCookie(client, cookieResPref, buffer, 5);
                if(!StrEqual(buffer, "")) res_sound[client] = StringToInt(buffer);
                else res_sound[client] = 1;
            }
            else res_sound[client] = 1;
        }
    } PrepareSound(sound)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:downloadFile[PLATFORM_MAX_PATH];
            Format(downloadFile, sizeof(downloadFile), "sound/%s", g_soundsList[sound]);
            PrecacheSound(g_soundsList[sound], true);
            if(GetConVarBool(Debug)) LogMessage("Sound precached - %s", g_soundsList[sound]);
            AddFileToDownloadsTable(downloadFile);
        }
    } public Action:TimerAnnounce(Handle:timer, any:client)
    {
        if(IsClientInGame(client) && GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled)) PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
    } public OnClientCookiesCached(client)
    {
        if(IsClientInGame(client) && !IsFakeClient(client)) loadClientCookiesFor(client);
    } PlaySound(team, String:sound[])
    {
        for (new client = 1; client <= MaxClients; client++)
        {
            if(IsClientInGame(client) && !IsFakeClient(client) && res_sound[client] == 0)
            {
                if (team != 0 && GetClientTeam(client) == team)
                    EmitSoundToClient(client, sound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                else
                    EmitSoundToClient(client, sound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
            }
        }
    } GetExtension(const String:path[], String:buffer[], size)
    {
        new extpos = FindCharInString(path, '.', true);
        
        if (extpos == -1) {
            buffer[0] = '\0';
            return;
        }     strcopy(buffer, size, path[++extpos]);
    }

     

    Tak wgrałem. Nie nie maiała takie samej nazwy, nawet potem zmieniałem folder i cały opis res_list ale i to nic nie skutkowało

     

  6. Sprawa jest dziwna mam wgrany plugin roundsound, wszystko działało mi poprawnie, nie miałem z tym żadnego problemu lecz po tej aktualizcji ostatni praktycznie wszystko musiałem robić na nowo przy serwerze i w dodatku właśnie roundsound nie chodzi. To znaczy on chodzi, ale tylko przy starej muzyce. Gdy zmieniam sobie res_listi dodaję inna  muzykę to niestety na serwerze jej nie ma, ani jej nie pobiera. Oczywiści restartowałem serwer, ale to nic nie dało. Wcześniej nie było z tym problemu, a teraz się pojawił.

    Korzystam z tego pluginu:

     

    #pragma semicolon 1

    #include <sourcemod>
    #include <sdktools>
    #include <clientprefs>

    #define MAX_SOUNDS 100
    #define PLUGIN_VERSION "2.3.9"

    #undef REQUIRE_PLUGIN
    #include <autoupdate>

    #define GAME_CSTRIKE 1
    #define GAME_TF2 2
    #define GAME_DOD 3
    #define GAME_OTHER 4

    new Handle:g_CvarEnabled = INVALID_HANDLE;
    new Handle:AtRoundEnd = INVALID_HANDLE;
    new Handle:AtRoundStart = INVALID_HANDLE;
    new Handle:OnPlayerConnect = INVALID_HANDLE;
    new Handle:Timer = INVALID_HANDLE;
    new Handle:AnnounceEvery = INVALID_HANDLE;
    new Handle:RandomSound = INVALID_HANDLE;
    new Handle:cookieResPref = INVALID_HANDLE;
    new Handle:version = INVALID_HANDLE;
    new Handle:ClientPref = INVALID_HANDLE;
    new Handle:CommonSounds = INVALID_HANDLE;
    new Handle:Debug = INVALID_HANDLE;
    new Handle:SoundListPath = INVALID_HANDLE;
    new Handle:DodCry = INVALID_HANDLE;

    new bool:roundEnded = false;
    new bool:loaded = false;

    new String:g_soundsListCT[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:g_soundsListT[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:g_soundsList[MAX_SOUNDS][PLATFORM_MAX_PATH];
    new String:SoundList[PLATFORM_MAX_PATH];

    static String:Team1[4][6]  = {"T","RED","USA","TEAM1"};
    static String:Team2[4][6]  = {"CT","BLU","GER","TEAM2"};

    new res_sound[MAXPLAYERS+1];

    new QueueT=1;
    new QueueCt=1;
    new CommonQueue=1;
    new MaxSounds;
    new MaxSoundsT;
    new MaxSoundsCT;
    new win_sound_common;
    new win_sound_t;
    new win_sound_ct;
    new TF2Team;
    new winner;
    new game;

    //------------------------------------------------------------------------------------------------------------------------------------
    // Colors
    #define YELLOW               "\x01"
    #define NAME_TEAMCOLOR       "\x02"
    #define TEAMCOLOR            "\x03"
    #define GREEN                "\x04"
    //------------------------------------------------------------------------------------------------------------------------------------

    public Plugin:myinfo =
    {
        name = "Round End Sound",
        author = "FrozDark",
        description = "Plays a random sound or the sound of the winner team at round end",
        version = PLUGIN_VERSION,
        url = "http://all-stars.sytes.net/"
    };


    public OnPluginStart()
    {
        g_CvarEnabled = CreateConVar("sm_res_enable", "1", "Enable/disable round end sound");
        version = CreateConVar("sm_res_version", PLUGIN_VERSION, "Round End Sound version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
        AtRoundEnd = CreateConVar("sm_res_roundendannounce", "0", "Announcement at every round end");
        AtRoundStart = CreateConVar("sm_res_roundstartannounce", "0", "Announcement at every round start");
        OnPlayerConnect = CreateConVar("sm_res_playerconnectannounce", "1", "Announcement in 20 sec. after player connect");
        AnnounceEvery = CreateConVar("sm_res_announceevery", "120", "How often in seconds it will display the message every time. 0=Disable");
        ClientPref = CreateConVar("sm_res_client", "1", "If enabled, clients will be able to modify their ability to hear sounds. 0=Disable");
        RandomSound = CreateConVar("sm_res_randomsound", "0", "If enabled, the sounds will be random. If disabled the sounds will be played in a queue");
        CommonSounds = CreateConVar("sm_res_commonsounds", "0", "If enabled, all sounds will be played in spite of the winner team");
        Debug = CreateConVar("sm_res_debug", "0", "Enables debug");
        SoundListPath = CreateConVar("sm_res_soundlist", "addons/sourcemod/configs/res_list.cfg", "Path to the sound list");
        DodCry = CreateConVar("sm_res_dod_crysound", "0", "Enables or Disables last capture point cry for dod");
            
        decl String:dir[15];
        GetGameFolderName(dir, sizeof(dir));
        
        if(!strcmp(dir,"cstrike",false) || !strcmp(dir,"cstrike_beta",false))
        {
            game = GAME_CSTRIKE;
            PrecacheSound("radio/ctwin.wav", false);
            PrecacheSound("radio/terwin.wav", false);
            HookEvent("round_end", OnRoundEnd);
            HookEvent("round_start", OnRoundStart);
        }
        else if(!strcmp(dir,"dod",false))
        {
            game = GAME_DOD;
            PrecacheSound("ambient/german_win.mp3", false);
            PrecacheSound("ambient/us_win.mp3", false);
            HookEvent("dod_round_win", OnRoundEnd);
            HookEvent("dod_round_start", OnRoundStart);
            HookEvent("dod_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else if(!strcmp(dir,"tf",false))
        {
            game = GAME_TF2;
            PrecacheSound("misc/your_team_lost.wav", false);
            PrecacheSound("misc/your_team_stalemate.wav", false);
            PrecacheSound("misc/your_team_suddendeath.wav", false);
            PrecacheSound("misc/your_team_won.wav", false);
            HookEvent("teamplay_round_win", OnRoundEnd);
            HookEvent("teamplay_round_start", OnRoundStart);
            HookEvent("teamplay_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else
        {
            game = GAME_OTHER;
            HookEventEx("round_end", OnRoundEnd);
            HookEventEx("round_start", OnRoundStart);
        }

        LoadTranslations("common.phrases");
        LoadTranslations("RoundEndSound");
        LoadResSounds();
        
        HookConVarChange(AnnounceEvery, ConVarChange_Timer);
        HookConVarChange(version, ConVarChange_Version);
        
        AutoExecConfig(true, "RoundEndSound");
    }

    public OnConfigsExecuted()
    {
        if (GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled) && !loaded)
        {
            RegConsoleCmd("sm_res", ResCmd, "On/Off Round End Sounds");
            cookieResPref = RegClientCookie("Round End Sound", "Round End Sound", CookieAccess_Private);
            new info;
            SetCookieMenuItem(ResPrefSelected, any:info, "Round End Sound");
            loaded = true;
        }
        SetConVarString(version, PLUGIN_VERSION);
    }

    public OnPluginEnd()
    {
        if(LibraryExists("pluginautoupdate")) AutoUpdate_RemovePlugin();
        if(game == GAME_CSTRIKE || game == GAME_OTHER)
        {
            UnhookEvent("round_end", OnRoundEnd);
            UnhookEvent("round_start", OnRoundStart);
        }
        else if(game == GAME_DOD)
        {
            UnhookEvent("dod_round_win", OnRoundEnd);
            UnhookEvent("dod_round_start", OnRoundStart);
            UnhookEvent("dod_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        else if(game == GAME_TF2)
        {
            UnhookEvent("teamplay_round_win", OnRoundEnd);
            UnhookEvent("teamplay_round_start", OnRoundStart);
            UnhookEvent("teamplay_broadcast_audio", OnBroadCast, EventHookMode_Pre);
        }
        if(Timer != INVALID_HANDLE)
        {
            KillTimer(Timer);
        }
        if(g_CvarEnabled != INVALID_HANDLE)
        {
            CloseHandle(g_CvarEnabled);
        }
        if(AtRoundEnd != INVALID_HANDLE)
        {
            CloseHandle(AtRoundEnd);
        }
        if(AtRoundStart != INVALID_HANDLE)
        {
            CloseHandle(AtRoundStart);
        }
        if(OnPlayerConnect != INVALID_HANDLE)
        {
            CloseHandle(OnPlayerConnect);
        }
        if(AnnounceEvery != INVALID_HANDLE)
        {
            CloseHandle(AnnounceEvery);
        }
        if(RandomSound != INVALID_HANDLE)
        {
            CloseHandle(RandomSound);
        }
        if(cookieResPref != INVALID_HANDLE)
        {
            CloseHandle(cookieResPref);
        }
        if(version != INVALID_HANDLE)
        {
            CloseHandle(version);
        }
        if(ClientPref != INVALID_HANDLE)
        {
            CloseHandle(ClientPref);
        }
        if(SoundListPath != INVALID_HANDLE)
        {
            CloseHandle(SoundListPath);
        }
        if(DodCry != INVALID_HANDLE)
        {
            CloseHandle(DodCry);
        }
    }

    public OnAllPluginsLoaded()
    {
        if (LibraryExists("pluginautoupdate"))
        {
            AutoUpdate_AddPlugin("baha-all-stars.narod.ru", "/updates/RoundEndSound/version.xml", PLUGIN_VERSION);
        }
        else
        {
            LogMessage("Note: This plugin supports updating via Plugin Autoupdater. Install it if you want to enable auto-update functionality.");
        }
    }

    public APLRes:AskPluginLoad2(Handle:myself, bool:late, String:error[], err_max)
    {    
        MarkNativeAsOptional("AutoUpdate_AddPlugin");
        MarkNativeAsOptional("AutoUpdate_RemovePlugin");
        
        return APLRes_Success;
    }

    public OnMapStart()
    {    
        if (GetConVarBool(g_CvarEnabled))
        {
            for(new i = 1; i <= MaxSounds; i++) PrepareSound(i);
            if(GetConVarInt(AnnounceEvery) != 0) Timer = CreateTimer(GetConVarFloat(AnnounceEvery), TimerEvery, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
            if (LibraryExists("pluginautoupdate")) InsertServerCommand("sm_autoupdate_download");
        }
    }

    public ConVarChange_Timer(Handle:convar, const String:oldValue[], const String:newValue[])
    {
        if (Timer != INVALID_HANDLE) KillTimer(Timer);
        
        if(GetConVarInt(AnnounceEvery) != 0) Timer = CreateTimer(GetConVarFloat(AnnounceEvery), TimerEvery, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }

    public ConVarChange_Version(Handle:convar, const String:oldValue[], const String:newValue[])
    {
        SetConVarString(version, PLUGIN_VERSION);
    }

    public Action:OnRoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (GetConVarBool(g_CvarEnabled))
        {
            roundEnded = false;
            if(GetConVarBool(AtRoundStart) && GetConVarBool(ClientPref)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
        }
    }

    public Action:OnRoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if (GetConVarBool(g_CvarEnabled))
        {
            roundEnded = true;
            
            if (game == GAME_CSTRIKE || game == GAME_OTHER) winner = GetEventInt(event, "winner");
            else if (game == GAME_TF2 || game == GAME_DOD) winner = GetEventInt(event, "team");
            
            if (GetConVarBool(RandomSound))
            {
                if(!GetConVarBool(CommonSounds))
                {
                    if(winner == 2) win_sound_t = GetRandomInt(1, MaxSoundsT);
                    else if(winner == 3) win_sound_ct = GetRandomInt(1, MaxSoundsCT);
                }
                else win_sound_common = GetRandomInt(1, MaxSounds);
            }
            
            else
            {
                if(QueueT == MaxSoundsT) QueueT = 1;
                if(QueueCt == MaxSoundsCT) QueueCt = 1;
                if(CommonQueue == MaxSounds) CommonQueue = 1;
                
                if(!GetConVarBool(CommonSounds))
                {
                    if(winner == 2) win_sound_t = QueueT++;
                    else if(winner == 3) win_sound_ct = QueueCt++;
                }
                else if(winner != 1) win_sound_common = CommonQueue++;
            }
            
            
            for (new i = 1; i <= MaxClients; i++)
            {
                if (IsClientInGame(i) && !IsFakeClient(i) && res_sound != 0)
                {
                    if(game == GAME_CSTRIKE)
                    {
                        StopSound(i, SNDCHAN_STATIC, "radio/ctwin.wav");
                        StopSound(i, SNDCHAN_STATIC, "radio/terwin.wav");
                    }
                    
                    if (!GetConVarBool(CommonSounds))
                    {
                        if (winner == 2)
                        {
                            EmitSoundToClient(i, g_soundsListT[win_sound_t], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                            if(GetConVarBool(Debug)) LogMessage("Playing team1 sound ą%d - %s", win_sound_t, g_soundsListT[win_sound_t]);
                        }
                        else if (winner == 3)
                        {
                            EmitSoundToClient(i, g_soundsListCT[win_sound_ct], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                            if(GetConVarBool(Debug)) LogMessage("Playing team2 sound ą%d - %s", win_sound_ct, g_soundsListCT[win_sound_ct]);
                        }
                    }
                    else if (winner != 1)
                    {
                        EmitSoundToClient(i, g_soundsList[win_sound_common], SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                        if(GetConVarBool(Debug)) LogMessage("Playing sound ą%d - %s",win_sound_common, g_soundsList[win_sound_common]);
                    }
                }
            }
            if (GetConVarBool(AtRoundEnd) && GetConVarBool(ClientPref)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
        }
    }

    public Action:OnBroadCast(Handle:event, const String:name[], bool:dontBroadcast)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:sound[20];
            GetEventString(event, "sound", sound, sizeof(sound));
            if (game == GAME_TF2) TF2Team = GetEventInt(event, "team");
            
            if(!strcmp(sound, "Game.GermanWin", false))
            {
                PlaySound(TF2Team, "ambient/german_win.mp3");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.USWin", false))
            {
                PlaySound(TF2Team, "ambient/us_win.mp3");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.Stalemate", false))
            {
                PlaySound(TF2Team, "misc/your_team_stalemate.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.YourTeamWon", false))
            {
                PlaySound(TF2Team, "misc/your_team_won.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.SuddenDeath", false))
            {
                PlaySound(TF2Team, "misc/your_team_suddendeath.wav");
                return Plugin_Handled;
            }
            else if(!strcmp(sound, "Game.YourTeamLost", false))
            {
                PlaySound(TF2Team, "misc/your_team_lost.wav");
                return Plugin_Handled;
            }
            if(!strcmp(sound, "Voice.German_FlagCapture", false) || !strcmp(sound, "Voice.US_FlagCapture", false))
                if (roundEnded && GetConVarBool(DodCry))
                    return Plugin_Handled;
        }
        return Plugin_Continue;
    }

    LoadResSounds()
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:Line[PLATFORM_MAX_PATH];
            decl String:Text[2][PLATFORM_MAX_PATH];
            decl String:buf[4];
            
            GetConVarString(SoundListPath, SoundList, sizeof(SoundList));
            
            if(!FileExists(SoundList))
            {
                SetFailState("%s not parsed... file doesn't exist!", SoundList);
            }
            
            new Handle:filehandle = OpenFile(SoundList, "r");
            
            if (filehandle  == INVALID_HANDLE)
            {
                return;
            }

            while(!IsEndOfFile(filehandle) && MaxSounds <= MAX_SOUNDS)
            {
                ReadFileLine(filehandle,Line,sizeof(Line));
            
                new pos;
                pos = StrContains((Line), "//");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }
            
                pos = StrContains((Line), "#");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }

                pos = StrContains((Line), ";");
                if (pos != -1)
                {
                    Line[pos] = '\0';
                }
            
                TrimString(Line);
                GetExtension(Line, buf, sizeof(buf));
                
                if (!strcmp(buf, "mp3", false) || !strcmp(buf, "wav", false))
                {
                    if (StrContains(Line,"=") != -1)
                    {
                        ExplodeString(Line,"=",Text,2,256);
                        Format(Line, sizeof(Line), "sound/%s", Text[0]);
                        if (!FileExists(Line, false) || !FileExists(Line, true))
                        {
                            LogError("Sound %s not found, file doesn't exist!", Line);
                            continue;
                        }
                        for (new t = 0; t < sizeof(Team1); t++)
                        {
                            if (!strcmp(Text[1],Team1[t],false))
                            {
                                MaxSounds++;
                                g_soundsList[MaxSounds] = Text[0];
            
                                MaxSoundsT++;
                                g_soundsListT[MaxSoundsT] = Text[0];
                                
                                if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                            }
                        }
                        for (new t = 0; t < sizeof(Team2); t++)
                        {
                            if (!strcmp(Text[1],Team2[t],false))
                            {
                                MaxSounds++;
                                g_soundsList[MaxSounds] = Text[0];
            
                                MaxSoundsCT++;
                                g_soundsListCT[MaxSoundsCT] = Text[0];
                                
                                if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                            }
                        }
                        if(!strcmp(Text[1],"BOTH",false) || !strcmp(Text[1],"",false))
                        {
                            MaxSounds++;
                            g_soundsList[MaxSounds] = Text[0];
            
                            MaxSoundsT++;
                            g_soundsListT[MaxSoundsT] = Text[0];
                    
                            MaxSoundsCT++;
                            g_soundsListCT[MaxSoundsCT] = Text[0];
                            
                            if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Text[0]);
                        }
                    }
                    else
                    {
                        Format(Text[1], PLATFORM_MAX_PATH, "sound/%s", Line);
                        if(FileExists(Text[1]))
                        {
                            MaxSounds++;
                            g_soundsList[MaxSounds] = Line;
            
                            MaxSoundsT++;
                            g_soundsListT[MaxSoundsT] = Line;
                    
                            MaxSoundsCT++;
                            g_soundsListCT[MaxSoundsCT] = Line;
                            
                            if(GetConVarBool(Debug)) LogMessage("Sound loaded - %s", Line);
                        }
                        else LogError("Sound %s not found, file doesn't exist!", Line);
                    }
                }
                else if (!StrEqual(Line, ""))
                {
                    LogError("Invalid sound - %s", buf);
                    LogError("The sounds should be only \".mp3\" or \".wav\"");
                }
            }
            CloseHandle(filehandle);
            LogMessage("General %d sounds loaded", MaxSounds);
            if(game == GAME_CSTRIKE)
            {
                LogMessage("%d of them loaded for Terrorist team", MaxSoundsT);
                LogMessage("And %d loaded for Counter-Terrorist team", MaxSoundsCT);
            }
            else if(game == GAME_TF2)
            {
                LogMessage("%d of them loaded for Red team", MaxSoundsT);
                LogMessage("And %d loaded for Blue team", MaxSoundsCT);
            }
            else if(game == GAME_DOD)
            {
                LogMessage("%d of them loaded for USA team", MaxSoundsT);
                LogMessage("And %d loaded for German team", MaxSoundsCT);
            }
            else
            {
                LogMessage("%d of them loaded for team 1", MaxSoundsT);
                LogMessage("And %d loaded for team 2", MaxSoundsCT);
            }
        }
    }

    public Action:ResCmd(client, args)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            if (GetConVarBool(ClientPref))
            {
                if(res_sound[client] != 0)
                {
                    res_sound[client] = 0;
                    PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Res Off");
                }
                else
                {
                    res_sound[client] = 1;
                    PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Res On");
                }
            }
            decl String:buffer[PLATFORM_MAX_PATH];
            
            IntToString(res_sound[client], buffer, 5);
            SetClientCookie(client, cookieResPref, buffer);
        }
        return Plugin_Handled;
    }

    public Action:TimerEvery(Handle:timer)
    {
        if(!roundEnded && GetConVarBool(AnnounceEvery) && GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled)) PrintToChatAll("\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
    }

    public ResPrefSelected(client, CookieMenuAction:action, any:info, String:buffer[], maxlen)
    {
        if (GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled))
        {
            if (action == CookieMenuAction_DisplayOption)
            {
                decl String:status[10];
                if (res_sound[client] != 0) Format(status, sizeof(status), "%T", "On", client);
                else Format(status, sizeof(status), "%T", "Off", client);
                Format(buffer, maxlen, "%T: %s", "Cookie Round End Sound", client, status);
            }
            else
            {
                if(res_sound[client] != 0) res_sound[client] = 0;
                else res_sound[client] = 1;
                ShowCookieMenu(client);
            }
        }
    }

    public OnClientPutInServer(client)
    {
        if(!IsFakeClient(client) && GetConVarBool(g_CvarEnabled))
        {
            if(AreClientCookiesCached(client)) loadClientCookiesFor(client);
            if(GetConVarBool(OnPlayerConnect)) CreateTimer(20.0, TimerAnnounce, client);
        }
    }

    loadClientCookiesFor(client)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            if(GetConVarBool(ClientPref))
            {
                decl String:buffer[5];
                GetClientCookie(client, cookieResPref, buffer, 5);
                if(!StrEqual(buffer, "")) res_sound[client] = StringToInt(buffer);
                else res_sound[client] = 1;
            }
            else res_sound[client] = 1;
        }
    }

    PrepareSound(sound)
    {
        if(GetConVarBool(g_CvarEnabled))
        {
            decl String:downloadFile[PLATFORM_MAX_PATH];
            Format(downloadFile, sizeof(downloadFile), "sound/%s", g_soundsList[sound]);
            PrecacheSound(g_soundsList[sound], true);
            if(GetConVarBool(Debug)) LogMessage("Sound precached - %s", g_soundsList[sound]);
            AddFileToDownloadsTable(downloadFile);
        }
    }

    public Action:TimerAnnounce(Handle:timer, any:client)
    {
        if(IsClientInGame(client) && GetConVarBool(ClientPref) && GetConVarBool(g_CvarEnabled)) PrintToChat(client, "\x04[\x01RoundEndSound\x04] %t", "Announce Message", YELLOW, GREEN, YELLOW, GREEN);
    }

    public OnClientCookiesCached(client)
    {
        if(IsClientInGame(client) && !IsFakeClient(client)) loadClientCookiesFor(client);
    }

    PlaySound(team, String:sound[])
    {
        for (new client = 1; client <= MaxClients; client++)
        {
            if(IsClientInGame(client) && !IsFakeClient(client) && res_sound[client] == 0)
            {
                if (team != 0 && GetClientTeam(client) == team)
                    EmitSoundToClient(client, sound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
                else
                    EmitSoundToClient(client, sound, SOUND_FROM_PLAYER, SNDCHAN_AUTO, SNDLEVEL_GUNFIRE);
            }
        }
    }

    GetExtension(const String:path[], String:buffer[], size)
    {
        new extpos = FindCharInString(path, '.', true);
        
        if (extpos == -1) {
            buffer[0] = '\0';
            return;
        }

        strcopy(buffer, size, path[++extpos]);
    }

  7. ~ Rezerwacja slota
    ~ Kolorowy nick
    ~ Status VIP na liście graczy
    ~ Tag [VIP]
    ~ Spadochron
    ~ +10 HP co rundę
    ~ Immunitet na voteban / votemute / votekick
    ~ Dodatkowe 200$ przy starcie rundy
    ~ Dodatkowe pieniądze za frag: 100$
    ~ Dodatkowe pieniądze za HeadShot: 150$

    - Wszystkie granaty

    Może być ? nie bd przerabiał od razu mówię ; P
     

    vip.smx

×
×
  • Dodaj nową pozycję...