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

Treść opublikowana 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. Potrzebuję usunąć z vipa Tag [VIP] ponieważ dość mocno mi to wadzi. Daję sp vipa Z góry dzięki ; ) vip.sp
  3. To dziwne bo u mnie działa wszystko poprawnie. Lecz pamiętaj że w pluginie są wpisane tylko pewne mapy które mają ustawienie na bs'a. Wtedy plugin bd wariował na pewno bo nie bd miał dodanej mapy. Tak się działo gdy miałem u siebie mapę dust2_night
  4. Myślę że te serwery które miały dobre tagi też miały dobre serwery. Same tagi nie dawały w sumie nie raz nic gdy serwer był kiepski. Wtedy gracze wchodzili pograć 5 min tam.
  5. Zgadzam się z kolegą wyżej, sam się przekonałem kiedyś. Gdy wszedłem do FTP niestety nic nie zostało z ustawień, wszystko przywróciło się do podstawowych ; )
  6. // 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
  7. 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ń ?
  8. Ten temat był chyba już poruszany tu. Jeśli chcesz to skorzystaj z tego, masz tu wersję PL Admin tag PL - Download - ProLogia.pl - Twoja Sieć Serwerów
  9. Opis Jak nazwa mówi ograniczenie BS'A gdy w CT jest mniej niż 4 osoby grany jest tylko jeden BS. Plugin jest przerobiony na PL. Instalacja Instalacja jest standardowa, plik smx wrzucamy do folderu plugini i zmieniamy mapę lub restartujemy serwer ; ) Pobierz BSLimiterPL.smx
  10. 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
  11. Nie rozumiem, jak zakończeniem rundy, a rundy ? Chodzi Ci o zmianę teamu co jest np. po 10 rundach ?
  12. Jestem tego samego zdania co kolega wyżej, w szczególności że jednak dużym plusem dla każdego to że na pukawce masz płatność w złotówkach a na EV to jednak euroski ; D. Pukawka jak dla mnie na razie górą, bardzo się rozwijają i wszystko robią z przemyśleniem ; )
  13. Ja również zapraszam na cs-podhale.pl lub kontakt ze mną ; )
  14. Nic to nie dało, nie pobrało nawet utworu, a zrestartowałem nawet serwer
  15. 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
  16. NajaRany RasTa

    RS

    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]); }
  17. Dokładnie tak, bo jak zawsze mogłem zmienić ją to teraz nagle już nie. Po tych ostatnich aktualizacjach mam dziwne problemy z serwerem jakich nigdy nie miałem
  18. Dobra dzięki wielkie działa, ale mam takie pytanie przy okazji czy ta to też może odpowiadać ten folder, że gdy chcę dodać nową muzykę, to mi nie czyta jej, ani nie pobiera, tylko starą muzykę czyta ? ; )
  19. Jestem tego samego zdania, teraz większość graczy przeszło na GO, chociaż sam gram jeszcze w 1.6 i moi znajomi, ale to już nie to samo co kiedyś ; )
  20. Tu nic nie musisz komplikować , on jest już skomplikowany i zrobiony ; ) Sam go używam u siebie ; ) Bo tam masz tylko przerobione OWNER na Właściciel, reszta już jest normalnie bo admin do admin, a vip to vip hehe, a jeszcze jest główny administrator ; )
  21. Hehe plus dla Ciebie, ale powiem strzeże że teraz bardzo łatwo to odnaleźć w neci?e, kluczowe dla wszystkich jest tylko jedno, jakie znaki specjalne używać i które aktualnie są najbardziej chwytliwe, a z tym to już nie tak łatwo hehe ; D... Lecz plusik i tak leci ; )
  22. Chcę przerobić Weapon paints po prostu chcę usunąć pewne rzeczy z niego bo jest tego za dużo. Więc wywalałem w folderze csgo_wpaints.cfg i niestety wgrałem przerobione a i tak czytało stare oryginalne. Jak pozbyć się pewnych skinów ? Podaję oryginał i przerobiony co zrobiłem dla przykładu, bo nie bd wstawiał tego tu bo to strasznie długie jest ; D csgo_wpaints.cfg csgo_wpaints_przerobiony.cfg
  23. A tu masz TAG PL Admin tag PL - Download - ProLogia.pl - Twoja Sieć Serwerów
  24. Możesz też wyrzucić te pluginy odpowiadające za głosowanie mapchooser nominations rocketthevote
  25. ~ 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ę...