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

Cała aktywność

Kanał aktualizowany automatycznie

  1. Dzisiaj
  2. nwm po co i na co to komu Generalnie przyszedlem tu napisac recenzje, bo zostalem o to poproszony, wiec macie, cyztajcie se to kurwy: Lagi i Wydajność: Jednym z najczęściej wymienianych problemów przez graczy są lagi i ogólna niska wydajność serwera. Częste opóźnienia w rozgrywce mogą znacznie obniżać przyjemność z gry, szczególnie w intensywnych momentach, takich jak walki PvP czy eksploracja wymagających terenów dla gildii. Aktualizacje: Serwer wydaje się mieć problemy z regularnym aktualizowaniem zawartości. Brak nowych, ciekawych elementów gry oraz rzadkie aktualizacje mogą powodować, że serwer staje się monotonny i gracze tracą zainteresowanie. Cheaterzy (kolejny CS 1.6): Kolejnym poważnym problemem jest obecność cheaterów i brak skutecznych mechanizmów do ich wykrywania i eliminowania. Częste spotkania z graczami używającymi nielegalnych modyfikacji mogą zniechęcać uczciwych graczy do dalszej zabawy. Administracja: Wiele skarg dotyczy braku responsywności administracji serwera. Często zgłoszenia problemów pozostają bez odpowiedzi przez długi czas, co świadczy o słabym zarządzaniu społecznością i braku wsparcia dla graczy. Nie wspominając nic o faworyzacji, przecież gdy ktoś płaci więcej, dostaję to, co zechce. Ktoś mu zaszedł za skórę? No problem! Admin zbanuję tą osobę. Eventy i Zadania: Eventy i zadania oferowane na serwerze są często powtarzalne i mało interesujące. Brak kreatywności w tworzeniu nowych wyzwań i brak zaangażowania w organizowanie eventów sprawia, że serwer traci na atrakcyjności. Ekonomia Serwera: Wirtualna ekonomia serwera często bywa niezrównoważona, co prowadzi do inflacji lub innych problemów, które mogą zniechęcać graczy do długoterminowej gry. Brak odpowiedniego balansu w systemie nagród i cen jest frustrujący dla wielu użytkowników. Serwery Tematyczne: Serwer oferuje ograniczoną ilość serwerów tematycznych, co może być problematyczne dla graczy szukających różnorodnych doświadczeń. Inne serwery oferują szerszy wachlarz trybów gry, co może przyciągać większą liczbę graczy. Podsumowując, serwer Minecraft craftmc.pl posiada kilka istotnych obszarów wymagających poprawy. Problemy z wydajnością, brak regularnych aktualizacji, słaba ochrona przed cheaterami oraz niska jakość zarządzania społecznością mogą znacznie wpływać na ogólne wrażenia graczy. Administratorzy serwera powinni skupić się na rozwiązaniu tych kwestii, aby poprawić jakość gry i zwiększyć satysfakcję swoich użytkowników.
  3. I've been trying to make (Not make but instead combine two skin system because one of them used mysql which was bad, and the other one used nvault which is good) a save system that whenever a map changes or the player leaves the server, the selected skins he chose would remain. Like if he chose a skin and the map changes or he leaves and rejoins, that skin would be selected and not the default ones... Could someone help? Code; #include <amxmodx> #include <engine> #include <fakemeta> #include <cstrike> #include <nvault> #pragma tabsize 0 #define PLUGIN "New Plug-In" #define VERSION "1.0" #define AUTHOR "Author" #define KILL_POINT 2 #define HEADSHOT_POINT 5 #define TULAJ ADMIN_LEVEL_G #define FOADMIN ADMIN_LEVEL_B #define ADMIN ADMIN_LEVEL_C #define VIP ADMIN_LEVEL_H enum _:Rangs { Szint[32], Xp[8] }; enum _:GunDatas { M4A1, AK47, AWP, DEAGLE, KNIFE, } new g_SelectedGun[GunDatas][33], g_uPoints[GunDatas][33], g_Wpn[33] new oles[33]; new hudkibe[33]; new const PREFIX[] = "\r-[NME]-" new const C_Perfix[] = "-[NME]-" new vault enum _:DATA { GunName[64], ModelName[128], Points[8], AnimType[8] } new const WeaponM4A1[][DATA] = { {"M4A1 | Alap", "models/v_m4a1.mdl", 0, -1}, {"M4A1 | Neo-Noir", "models/NMESkinek/M4a1/v_m4a1_6.mdl", 0, -1}, {"M4A1 | Nuclear Leak", "models/NMESkinek/M4a1/v_m4a1_7.mdl", 0, -1}, {"M4A1 | Decimator", "models/NMESkinek/M4a1/v_m4a1_9.mdl", 0, -1}, {"M4A1 | White Printstream", "models/NMESkinek/M4a1/v_m4a1_12printfix.mdl", 0, -1}, {"M4A1 | Anime", "models/NMESkinek/M4a1/v_m4a1anime.mdl", 0, -1}, {"M4A1 | Black Printstream", "models/NMESkinek/M4a1/v_m4a1bps.mdl", 0, -1}, {"M4A1 | Purple Attack", "models/NMESkinek/M4a1/m4purpleattack.mdl", 0, -1}, {"M4A1 | Black & Purple", "models/NMESkinek/M4a1/m4a1blackpurple.mdl", 0, -1}, {"M4A1 | Nightmare", "models/NMESkinek/M4a1/v_m4a115.mdl", 0, -1}, {"M4A1 | Galaxy", "models/NMESkinek/M4a1/v_m4a1galaxy.mdl", 0, -1}, {"M4A1 | Desolate Space", "models/NMESkinek/M4a1/v_m4a1desolate.mdl", 0, -1}, {"M4A1 | Icarus Fell", "models/NMESkinek/M4a1/v_m4a1icarus.mdl", 0, -1}, {"M4A1 | Hyper Beast", "models/NMESkinek/M4a1/v_m4a113.mdl", 0, -1} } new const WeaponAK47[][DATA] = { {"AK47 | Alap", "models/v_ak47.mdl", 0, -1}, {"AK47 | Blood Sport", "models/NMESkinek/Ak47/v_ak47_13.mdl", 0, -1}, {"AK47 | Redline", "models/NMESkinek/Ak47/v_ak47_15.mdl", 0, -1}, {"AK47 | Blue Came", "models/NMESkinek/Ak47/v_ak47_16.mdl", 0, -1}, {"AK47 | White Printstream", "models/NMESkinek/Ak47/v_ak47_print.mdl", 0, -1}, {"AK47 | Anime", "models/NMESkinek/Ak47/v_akanime.mdl", 0, -1}, {"AK47 | Bubblegum", "models/NMESkinek/Ak47/v_ak47bubblegum.mdl", 0, -1}, {"AK47 | Black Printstream", "models/NMESkinek/Ak47/v_ak47_18.mdl", 0, -1}, {"AK47 | Inheritance", "models/NMESkinek/Ak47/v_ak47_20.mdl", 0, -1}, {"AK47 | Koi", "models/NMESkinek/Ak47/v_ak47_21.mdl", 0, -1}, {"AK47 | Eyes", "models/NMESkinek/Ak47/v_ak47_19.mdl", 0, -1} } new const WeaponAWP[][DATA] = { {"Awp | Alap", "models/v_awp.mdl", 0, -1}, {"AWP | Dragon Lore", "models/NMESkinek/Awp/v_awp_1.mdl", 0, -1}, {"AWP | Asiimov", "models/NMESkinek/Awp/v_awp_2.mdl", 0, -1}, {"AWP | Dexpota", "models/NMESkinek/Awp/v_awp_3.mdl", 0, -1}, {"AWP | Graphite", "models/NMESkinek/Awp/v_awp_4.mdl", 0, -1}, {"AWP | Raptor", "models/NMESkinek/Awp/v_awp_5.mdl", 0, -1}, {"AWP | Artistic", "models/NMESkinek/Awp/v_awp_6.mdl", 0, -1}, {"AWP | Hyper Beast", "models/NMESkinek/Awp/v_awp_7.mdl", 0, -1}, {"AWP | Fever Dream", "models/NMESkinek/Awp/v_awp_8.mdl", 0, -1}, {"AWP | Tiger Tooth", "models/NMESkinek/Awp/v_awp_9.mdl", 0, -1}, {"AWP | Cyrex", "models/NMESkinek/Awp/v_awp_10.mdl", 0, -1}, {"AWP | Rainbow", "models/NMESkinek/Awp/v_awp_11.mdl", 0, -1}, {"AWP | Southeast Tiger", "models/NMESkinek/Awp/v_awp_12.mdl", 0, -1}, {"AWP | Red Destin", "models/NMESkinek/Awp/v_awp_13.mdl", 0, -1} } new const WeaponDEAGLE[][DATA] = { {"Deagle | Alap", "models/v_deagle.mdl", 0, -1}, {"Deagle | Asiimov", "models/NMESkinek/Deagle/v_deagle_1.mdl", 0, -1}, {"Deagle | Blue Crystal", "models/NMESkinek/Deagle/v_deagle_2.mdl", 0, -1}, {"Deagle | Dragon Lore", "models/NMESkinek/Deagle/v_deagle_3.mdl", 0, -1}, {"Deagle | Fade", "models/NMESkinek/Deagle/v_deagle_4.mdl", 0, -1}, {"Deagle | Ghost", "models/NMESkinek/Deagle/v_deagle_5.mdl", 0, -1}, {"Deagle | Chromatic", "models/NMESkinek/Deagle/v_deagle_6.mdl", 0, -1}, {"Deagle | IDN Paint", "models/NMESkinek/Deagle/v_deagle_7.mdl", 0, -1}, {"Deagle | Pink Haze", "models/NMESkinek/Deagle/v_deagle_8.mdl", 0, -1}, {"Deagle | Rainbow", "models/NMESkinek/Deagle/v_deagle_9.mdl", 0, -1} } new const WeaponKNIFE[][DATA] = { {"Knife | Alap", "models/v_knife.mdl", 0, -1}, {"Karambit | Doppler Phase 3", "models/NMESkinek/kes/v_knife5.mdl", 0, -1}, {"Karambit | Fade", "models/NMESkinek/kes/v_knife4.mdl", 0, -1}, {"Karambit | Eletric Hive", "models/NMESkinek/kes/v_knife3.mdl", 0, -1}, {"Karambit | Psychedelic", "models/NMESkinek/kes/v_knife2.mdl", 0, -1}, {"Bayonet | Prohibition", "models/NMESkinek/kes/v_knife6.mdl", 0, -1}, {"Bayonet | Nathlose", "models/NMESkinek/kes/v_knife7.mdl", 0, -1}, {"Bayonet | Redux", "models/NMESkinek/kes/v_knife8.mdl", 0, -1}, {"Bayonet | Echotek", "models/NMESkinek/kes/v_knife9.mdl", 0, -1}, {"Bayonet | Dystopia", "models/NMESkinek/kes/v_knife10.mdl", 0, -1}, {"M9 Bayonet | Redux", "models/NMESkinek/kes/v_knife11.mdl", 0, -1}, {"M9 Bayonet | Reptilleupted", "models/NMESkinek/kes/v_knife12.mdl", 0, -1}, {"M9 Bayonet | Trojan Horse", "models/NMESkinek/kes/v_knife13.mdl", 0, -1}, {"M9 Bayonet | Diva Knife", "models/NMESkinek/kes/v_knife14.mdl", 0, -1}, {"M9 Bayonet | Polymer", "models/NMESkinek/kes/v_knife15.mdl", 0, -1}, {"Butterfly | Neo Assasin", "models/NMESkinek/kes/v_knife16.mdl", 0, -1}, {"Butterfly | Space", "models/NMESkinek/kes/v_knife17.mdl", 0, -1} } new const MainStrings[][] = { "\yM4A1\w Skins", "\yAK47\w Skins", "\yAWP\w Skins", "\yDeagle\w Skins", "\yKnife\w Skins", } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /menu", "openMainMenu") register_clcmd("nme_skinmenu", "openMainMenu") register_clcmd("say /add", "Addolas") register_event("DeathMsg","Halal","a") register_event("DeathMsg","Halals","a") register_event("CurWeapon", "evChangeWeapon", "be", "1=1") register_impulse(100, "cmdInspectWeap"); register_clcmd("say", "sayhook"); set_task(1.0, "hudrendszer",_,_,_,"b"); vault = nvault_open("Fegyverskin"); } public hudrendszer(id){ if(is_user_alive(id) && hudkibe[id]) { } else { return } } public hudkibekapcs(id) { if(hudkibe[id]) { client_print_color(id, print_team_default, "^4[%s] ^1Kikapcsoltad a hudot.", C_Perfix); hudkibe[id] = false; } else { client_print_color(id, print_team_default, "^4[%s] ^1Bekapcsoltad a hudot.", C_Perfix); hudkibe[id] = true; } } public Halals() { new attacker = read_data(1) new victim = read_data(2) if(attacker == victim) return PLUGIN_HANDLED oles[attacker] ++ return PLUGIN_HANDLED } public Addolas(id) { g_uPoints[M4A1][id] += 300 g_uPoints[AK47][id] += 300 g_uPoints[AWP][id] += 300 g_uPoints[DEAGLE][id] += 300 g_uPoints[KNIFE][id] += 300 } public plugin_precache() { for(new i;i < sizeof(WeaponM4A1); i++) precache_model(WeaponM4A1[i][ModelName]) for(new i;i < sizeof(WeaponAK47); i++) precache_model(WeaponAK47[i][ModelName]) for(new i;i < sizeof(WeaponAWP); i++) precache_model(WeaponAWP[i][ModelName]) for(new i;i < sizeof(WeaponDEAGLE); i++) precache_model(WeaponDEAGLE[i][ModelName]) for(new i;i < sizeof(WeaponKNIFE); i++) precache_model(WeaponKNIFE[i][ModelName]) } public cmdInspectWeap(id) { if(!is_user_alive(id)) return PLUGIN_HANDLED; new Wpns = get_user_weapon(id) switch(Wpns) { case CSW_M4A1: { if(WeaponM4A1[g_SelectedGun[M4A1][id]][AnimType] == -1) return PLUGIN_HANDLED; UTIL_PlayWeaponAnimation(id, WeaponM4A1[g_SelectedGun[M4A1][id]][AnimType]); } case CSW_AK47: { if(WeaponAK47[g_SelectedGun[AK47][id]][AnimType] == -1) return PLUGIN_HANDLED; UTIL_PlayWeaponAnimation(id, WeaponAK47[g_SelectedGun[AK47][id]][AnimType]); } case CSW_AWP: { if(WeaponAWP[g_SelectedGun[AWP][id]][AnimType] == -1) return PLUGIN_HANDLED; UTIL_PlayWeaponAnimation(id, WeaponAWP[g_SelectedGun[AWP][id]][AnimType]); } case CSW_DEAGLE: { if(WeaponDEAGLE[g_SelectedGun[DEAGLE][id]][AnimType] == -1) return PLUGIN_HANDLED; UTIL_PlayWeaponAnimation(id, WeaponDEAGLE[g_SelectedGun[DEAGLE][id]][AnimType]); } case CSW_KNIFE: { if(WeaponKNIFE[g_SelectedGun[KNIFE][id]][AnimType] == -1) return PLUGIN_HANDLED; UTIL_PlayWeaponAnimation(id, WeaponKNIFE[g_SelectedGun[KNIFE][id]][AnimType]); } } return PLUGIN_HANDLED } public evChangeWeapon(id) { switch(get_user_weapon(id)) { case CSW_M4A1: entity_set_string(id, EV_SZ_viewmodel, WeaponM4A1[g_SelectedGun[M4A1][id]][ModelName]); case CSW_AK47: entity_set_string(id, EV_SZ_viewmodel, WeaponAK47[g_SelectedGun[AK47][id]][ModelName]); case CSW_AWP: entity_set_string(id, EV_SZ_viewmodel, WeaponAWP[g_SelectedGun[AWP][id]][ModelName]); case CSW_DEAGLE: entity_set_string(id, EV_SZ_viewmodel, WeaponDEAGLE[g_SelectedGun[DEAGLE][id]][ModelName]); case CSW_KNIFE: entity_set_string(id, EV_SZ_viewmodel, WeaponKNIFE[g_SelectedGun[KNIFE][id]][ModelName]); } return PLUGIN_CONTINUE; } public Halal() { new iAttacker = read_data(1) new iVictim = read_data(2) new iHs = read_data(3) if(iAttacker == iVictim || iAttacker == 0) return PLUGIN_HANDLED new iPoints = iHs ? HEADSHOT_POINT : KILL_POINT switch(get_user_weapon(iAttacker)) { case CSW_AK47: g_uPoints[AK47][iAttacker] += iPoints case CSW_M4A1: g_uPoints[M4A1][iAttacker] += iPoints case CSW_AWP: g_uPoints[AWP][iAttacker] += iPoints case CSW_DEAGLE: g_uPoints[DEAGLE][iAttacker] += iPoints case CSW_KNIFE: g_uPoints[KNIFE][iAttacker] += iPoints } return PLUGIN_CONTINUE; } public openMainMenu(id) { new szMenu[121], String[6] formatex(szMenu, charsmax(szMenu), "\r-[NME]- \wSkin Menu^n\y< \rChoose your model \y>", C_Perfix) new menu = menu_create(szMenu, "hMainMenu"); for(new i ;i < sizeof(MainStrings); i++) { num_to_str(i, String, 5) formatex(szMenu, charsmax(szMenu), MainStrings[i]); menu_additem(menu, szMenu, String); } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public hMainMenu(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } g_Wpn[id] = item+1 openskinrangmenu(id) menu_destroy(menu); return PLUGIN_HANDLED; } public openskinrangmenu(id) { new szMenu[121], szMenu2[64], String[15] if(g_Wpn[id] == 1) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your M4A1 model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[M4A1][id]) else if(g_Wpn[id] == 2) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your AK47 model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[AK47][id]) else if(g_Wpn[id] == 3) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your AWP model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[AWP][id]) else if(g_Wpn[id] == 4) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your DEAGLE model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[DEAGLE][id]) else if(g_Wpn[id] == 5) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your KNIFE model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[KNIFE][id]) new menu = menu_create(szMenu, "hSkinChooser"); if(g_Wpn[id] == 1) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your M4A1 model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[M4A1][id]) if(g_Wpn[id] == 2) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your AK47 model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[AK47][id]) if(g_Wpn[id] == 3) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your AWP model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[AWP][id]) if(g_Wpn[id] == 4) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your DEAGLE model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[DEAGLE][id]) if(g_Wpn[id] == 5) formatex(szMenu, charsmax(szMenu), "%s \w%s^n\y< \rChoose your KNIFE model \y>", PREFIX, MainStrings[g_Wpn[id]-1], g_uPoints[KNIFE][id]) if(g_Wpn[id] == 1) { for(new i; i < sizeof(WeaponM4A1); i++) { num_to_str(i, String, 5) formatex(szMenu2, charsmax(szMenu2), "", WeaponM4A1[i][Points]); formatex(szMenu, charsmax(szMenu), "%s %s", WeaponM4A1[i][GunName], g_SelectedGun[M4A1][id] == i ? "\y|Active|": szMenu2); menu_additem(menu, szMenu, String); } } else if(g_Wpn[id] == 2) { for(new i; i < sizeof(WeaponAK47); i++) { num_to_str(i, String, 5) formatex(szMenu2, charsmax(szMenu2), "", WeaponAK47[i][Points]); formatex(szMenu, charsmax(szMenu), "%s %s", WeaponAK47[i][GunName], g_SelectedGun[AK47][id] == i ? "\y|Active|": szMenu2); menu_additem(menu, szMenu, String); } } else if(g_Wpn[id] == 3) { for(new i; i < sizeof(WeaponAWP); i++) { num_to_str(i, String, 5) formatex(szMenu2, charsmax(szMenu2), "", WeaponAWP[i][Points]); formatex(szMenu, charsmax(szMenu), "%s %s", WeaponAWP[i][GunName], g_SelectedGun[AWP][id] == i ? "\y|Active|": szMenu2); menu_additem(menu, szMenu, String); } } else if(g_Wpn[id] == 4) { for(new i; i < sizeof(WeaponDEAGLE); i++) { num_to_str(i, String, 5) formatex(szMenu2, charsmax(szMenu2), "", WeaponDEAGLE[i][Points]); formatex(szMenu, charsmax(szMenu), "%s %s", WeaponDEAGLE[i][GunName], g_SelectedGun[DEAGLE][id] == i ? "\y|Active|": szMenu2); menu_additem(menu, szMenu, String); } } else if(g_Wpn[id] == 5) { for(new i; i < sizeof(WeaponKNIFE); i++) { num_to_str(i, String, 5) formatex(szMenu2, charsmax(szMenu2), "", WeaponKNIFE[i][Points]); formatex(szMenu, charsmax(szMenu), "%s %s", WeaponKNIFE[i][GunName], g_SelectedGun[KNIFE][id] == i ? "\y|Active|": szMenu2); menu_additem(menu, szMenu, String); } } menu_display(id, menu, 0); return PLUGIN_HANDLED; } public hSkinChooser(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_CONTINUE; } switch(g_Wpn[id]) { case 1: { if(g_uPoints[M4A1][id] >= WeaponM4A1[item][Points]) { g_SelectedGun[M4A1][id] = item client_print_color(id, print_team_default, "^4%s ^1You successfully activated the skin!", C_Perfix) } else client_print_color(id, print_team_default, "^4%s ^1Nincs elég ölésed az aktiváláshoz!", C_Perfix) } case 2: { if(g_uPoints[AK47][id] >= WeaponAK47[item][Points]) { g_SelectedGun[AK47][id] = item client_print_color(id, print_team_default, "^4%s ^1You successfully activated the skin!", C_Perfix) } else client_print_color(id, print_team_default, "^4%s ^1Nincs elég ölésed az aktiváláshoz!", C_Perfix) } case 3: { if(g_uPoints[AWP][id] >= WeaponAWP[item][Points]) { g_SelectedGun[AWP][id] = item client_print_color(id, print_team_default, "^4%s ^1You successfully activated the skin!", C_Perfix) } else client_print_color(id, print_team_default, "^4%s ^1Nincs elég ölésed az aktiváláshoz!", C_Perfix) } case 4: { if(g_uPoints[DEAGLE][id] >= WeaponDEAGLE[item][Points]) { g_SelectedGun[DEAGLE][id] = item client_print_color(id, print_team_default, "^4%s ^1You successfully activated the skin!", C_Perfix) } else client_print_color(id, print_team_default, "^4%s ^1Nincs elég ölésed az aktiváláshoz!", C_Perfix) } case 5: { if(g_uPoints[KNIFE][id] >= WeaponKNIFE[item][Points]) { g_SelectedGun[KNIFE][id] = item client_print_color(id, print_team_default, "^4%s ^1You successfully activated the skin!", C_Perfix) } else client_print_color(id, print_team_default, "^4%s ^1Nincs elég ölésed az aktiváláshoz!", C_Perfix) } } menu_destroy(menu); return PLUGIN_HANDLED; } stock UTIL_PlayWeaponAnimation(const Player, const Sequence) { set_pev(Player, pev_weaponanim, Sequence) message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, .player = Player) write_byte(Sequence) write_byte(pev(Player, pev_body)) message_end() } public mentes(id) { new name[32]; get_user_name(id, name, 31); new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s", name); format(vaultdata, 255, "%i", oles[id]); if (!nvault_set(vault, vaultkey, vaultdata)) { client_print(id, print_console, "Failed to save selected skin to vault!"); } return PLUGIN_CONTINUE; } public betoltes(id) { new name[32]; get_user_name(id, name, 31); new vaultkey[64], vaultdata[256]; format(vaultkey, 63, "%s", name); if (nvault_get(vault, vaultkey, vaultdata, 255)) { replace_all(vaultdata, 255, "#", " "); new a_o[32]; parse(vaultdata, a_o, 31); oles[id] = str_to_num(a_o); } else { client_print(id, print_console, "Failed to load selected skin from vault!"); } return PLUGIN_CONTINUE; } public client_putinserver(id) { // Reset selected skins... // Load selected skin from vault... betoltes(id); // Apply selected skin... evChangeWeapon(id); } public client_connect(id) { // Load selected skin... betoltes(id); // Apply selected skin... evChangeWeapon(id); } public client_disconnect(id) { // Save selected skin... mentes(id); } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1038\\ f0\\ fs18 \n\\ par } */ Przeczytaj cały wpis
  4. Wczoraj
  5. pierwsze zamknij ten (cenzura) pysk bo az zajebalo (cenzura), chyba zebow nie myjesz od 6 roku zycia, masakra. drugie jestes jebanym pajacem, sprzedajesz cos, co sie juz nie opalca i dzieci to kupuja bo chca se zrobic martwe forum jak diablica trzecie im a chillgamer and suck my balls
  6. (cenzura) stad lepiej bo jak ci (cenzura) a dazysz do tego szybciej niz myslisz to sie nie pozbierasz wraz z tym swoim projektem trashbans
  7. Weź wyp...dalaj jak coś ci nie pasuje, nikt ci nie każe kupować, wszyscy wiedzą już co najmniej 2 lata co jest z lickami ips. Obudziło się jakieś zer0 z snu zimowego.
  8. kupic mozg i przestac sie nazywac szczurek
  9. pierw zaplacm i 10 000 to ci sprzedam serwer zakrecony jak pluginy boskiego
  10. mygo to tez odsiadka bedzie dla ciebie wiec za dlugo nie posiedziales na wolnosci
  11. no na moim przykladzie na pewno kupie (cenzura) licencje ips ktora w 2025 roku bedzie mnie kosztowac 3k miesiecznie, jebnij sie w leb fortnajtowcu i sie obuduj moze lepiej ci bedzie
  12. przyszla mesharska, rosjanka (cenzura) co pisze cos i sie poci przy samym pisaniu zwyklego postu dobrze ze sie tak nie pocilas gdy robilas tego swojego bansa ktorego prawie nikt nie uzywa, outdated gowno + zero compatible codes by mesharska (cenzura) pierdolona
  13. moim zdaniem jebac was, ale to (cenzura) wykurwiscie jebac was idzcie se pograc w jakiegos fortnatja gdzie (cenzura) padniecie to zaczniecie sobei (cenzura) nowa gierke, wlasnie takie gry jak (cenzura) fortnajt jest dla takich pajacow jak wy ktoryz maja zero uzycia mozgu, nie potrafia myslec (cenzura) na biezaco tylko trzeba sie obudowac i pomyslec co dalej, jebac was wszystkie szmaty naprawde
  14. Hi! Can someone help me to fix this error? I'm using Amxmodx AMX Mod X 1.9.0.5294 + Metamod v1.20 Code: //// alt_end_round_sounds(beta).sma // // cstrike\addons\amxmodx\scripting\alt_end_round_sounds(beta).sma(639) : fatal error 112: specify either all dimensions or only the last dimension // // Compilation aborted. // 1 Error. // Could not locate output file compiled\alt_end_round_sounds(beta).amx (compile failed). // // Compilation Time: 0.08 sec Code: /* - - - - - - - - - - - AMX Mod X script. Copyright (C) 2007 - Arkshine Plugin : 'Alternative End Round Sounds' Version : v2.3b Original idea and plugin by PaintLancer. Orignal thread : http://forums.alliedmods.net/showthread.php?t=6784 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA In addition, as a special exception, the author gives permission to link the code of this program with the Half-Life Game Engine ("HL Engine") and Modified Game Libraries ("MODs") developed by Valve, L.L.C ("Valve"). You must obey the GNU General Public License in all respects for all of the code used other than the HL Engine and MODs from Valve. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version. ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Description : - - - - - - - Plays random music at the end of a round according to who wins, instead of just "Terrorists Win" or "Counter-Terrorists Win". Features : - - - - - - * Support for mp3 and wav files * Using a file for the sounds * Per-map config files supported * Per-map prefix config files supported * Sounds can be toggle on/off by players * Ability to choice x sounds to be precache per map * Multilingual support Requirements : - - - - - - - - * CS 1.6 / CZ * AMX/X 1.7x or higher Cvars : - - - - * ers_enabled <iNum <0|1> Disable/Enable this plugin. (default: 1) * ers_player_toggle <iNum> <0|1> Disable/Enable the client command /roundsound (default: 1) * erc_time_ads <iTime> Times in seconds between each ads messages. 0 disable ads. (default: 120) * erc_random_precache <iMaxTeam or iMax_T-iMax_CT> Specify how many sounds by team you want to precache randomly among all sounds. This means that x sounds will be choosen randomly among all sounds of each team so to be precache at each map. ( 0 = disable feature ) e.g : erc_random_precache "2" : 2 sounds will be choosen among all CTs sounds and all Ts sounds erc_random_precache "2-3" : 2 Ts sounds will be choosen randomly among all Ts sounds. 3 CT sound will be choosen randomly among all CTs sounds. /!\ Don't forget to insert '-' . /!\ Map change on cvar change required ! Client command : - - - - - - - - * say /roundsound : Give to players the ability to turn on/off the end round sounds Changelog : - - - - - - -> Arksine : v3.0 - [ 2007-xx-xx ] ( Major update ) - Soon. A lot of changes/new features. Huge update. ;) v2.3b - [ 2007-11-22 ] (!) Fixed a compatibility bug from 2.3a version. v2.3a - [ 2007-11-19 ] (+) Added compatibility for Amxx 1.7x. (!) Now 'erc_random_precache' cvar is set to 0 by default. (!) Fixed. At the first start of server, value from 'erc_random_precache' cvar from a config file was not read. (!) Some others minors changes. v2.3 - [ 2007-10-29 ] (+) Added 'erc_random_precache' cvar : Specify how many sounds per team you want to precache randomly among all sounds. This means that x sounds will be choosen randomly among all sounds of each team so to be precache at each map. ( request by Arion ) (!) Debug mode is enabled by default now. (-) Removed 3 keys languages. No more need.( ERS_LOG_TOTAL_SOUND_LOADED, ERS_LOG_DEBUG_T, ERS_LOG_DEBUG_CT ) v2.2b - [ 2007-10-28 ] (!) Removed a check. Since trim() is used : Now no need to check space, new line, tabs, carriage returns, etc.. v2.2a - [ 2007-10-28 ] (!) Changed the method of checking empty file. Now it's more efficient. (!) Added another check to ignore texts which are no comments. (!) Fixed a typo ( key language ). v2.2 - [ 2007-10-27 ] (+) Added a check to prevent to get a warning when a team has no sound. (+) Added a check to prevent to not load empty file. (+) Added support for coding-style '//' comments. (!) No longer has a predefined max sounds limit. ( using dynamic array from amxx 1.8.0 ) (!) Minors optimizations. (-) Removed useless code. v2.1a - [ 2007-07-13 ] (!) Fixed a bug with ML system. (!) Fixed a stupid glitch with formatex(). v2.1 - [ 2007-07-06 ] (!) Optimize a little. (!) Rewritted loading_file() function. (+) Added ML system & some texts. (+) Added Color in text. ( !g = green ; !t = team color; !n = yellow (normal) ) (+) Added #_DEBUG. (+) Added chat command : toggle on/off end round sounds. (+) Added "ers_enabled" cvar : enable/disable plugin (+) Added "ers_player_toggle" cvar : enable/disabled command chat for players (+) Added ads message for chat command (+) Added "erc_time_ads" cvar : control amount of times between 2 messages. v2.0b - [ 2007-07-04 ] (!) No features added. Sma reorganized a little and more. v2.0a - [ 2007-06-26 ] (!) Fixed. Bug under linux. Some blank lines weren't ignored. (thanks Deejay & NiLuje) v2.0 - [ 2007-06-26 ] (!) Totaly rewritten. (+) Added support for mp3 files. (+) Added support per file. No more to edit .sma file to add sounds. (+) Added support per-map file. (+) Added support per-map prefix file. -> Paintlancer : v1.0 : [ 2004-10-14 ] First release by Paintlancer. Orignal thread : http://forums.alliedmods.net/showthread.php?t=6784 Credits: - - - - - - - * PaintLancer : Original idea and plugin. * Avalanche : Inspired color chat function from gungame plugin. * Arion : Random precache idea. * Languages translation : - [fr] : Arkshine - [de] : Mordekay - [es] : Darkless - - - - - - - - - - - */ #include <amxmodx> #include <amxmisc> #include <fakemeta> new const // _________________________________________________ PLUGIN [] = "Alternative End Round Sounds", VERSION[] = "2.3c", AUTHOR [] = "Arkshine"; // _________________________________________________ #if AMXX_VERSION_NUM < 180 #define old_amxx #endif /* ========================= [ "START" AERA FOR CHANGES ] ========================= */ #define _DEBUG // Active debug #define MAX_FILE_LENGTH 196 // Max length for files + path. #if defined old_amxx #define MAX_SOUNDS 25 // Max sounds per team #endif new const g_FileName[] = "roundsound", // Name of the main file if no files is found in 'g_FileFolder'. g_FileFolder[] = "round_sound", // Name of the directory in amxmodx/configs/ for per-map files. g_FilePrefix[] = "ini", // File extension used for the files. g_CmdChat[] = "/music"; // Chat command for player. /* ========================= [ "END" AERA FOR CHANGES ] ========================= */ // - - - - - - - - - - - - - - - - - - - - - - - #define MAX_PLAYERS 32 #define TASKID_ADS 1333 #define SIZE_FILE 0 #define NULL -1 new bool:g_pHeardSound[ MAX_PLAYERS + 1 ], #if !defined old_amxx Array:g_lstSoundCT, Array:g_lstSoundT, #endif p_enabled, p_player_toggle, p_time_ads, p_random_precache, g_msgSayText; enum _:e_Team { T = 0, CT, }; new g_nSnd[ e_Team ]; #if defined old_amxx new g_sTeam_sounds[ MAX_SOUNDS ][ e_Team ][ MAX_FILE_LENGTH ]; #define charsmax(%1) sizeof( %1 ) - 1 #endif #define _is_wav(%1) equali( %1[strlen( %1 ) - 4 ], ".wav" ) // - - - - - - - - - - - - - - - - - - - - - - - public plugin_init() { register_plugin( PLUGIN, VERSION, AUTHOR ); register_cvar( "ers_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); register_dictionary( "end_roundsound.txt" ); register_event( "SendAudio", "eT_win" , "a", "2&%!MRAD_terwin" ); register_event( "SendAudio", "eCT_win", "a", "2&%!MRAD_ctwin" ); p_enabled = register_cvar( "ers_enabled" , "1" ); p_random_precache = register_cvar( "erc_random_precache", "0" ); p_player_toggle = register_cvar( "ers_player_toggle" , "1" ); p_time_ads = register_cvar( "erc_time_ads" , "0" ); register_clcmd( "say" , "cmd_Say" ); register_clcmd( "say_team" , "cmd_Say" ); PluginPrecache (); } PluginPrecache () { #if !defined old_amxx g_lstSoundCT = ArrayCreate( MAX_FILE_LENGTH ); g_lstSoundT = ArrayCreate( MAX_FILE_LENGTH ); #endif loading_file(); } public plugin_cfg () { g_msgSayText = get_user_msgid( "SayText" ); } public client_authorized( id ) g_pHeardSound[id] = true; public client_disconnect( id ) { g_pHeardSound[id] = true; remove_task( id + TASKID_ADS ); } public client_putinserver( id ) { new Float:f_Time = get_pcvar_float( p_time_ads ); if( f_Time <= 0.0 ) { remove_task( id + TASKID_ADS ); return; } remove_task( id + TASKID_ADS ); set_task( f_Time, "show_ads", id + TASKID_ADS, _, _, "b" ); } public show_ads( taskid ) { new id = taskid - TASKID_ADS; ShowPrint( id, "%L", id, "ERS_DISPLAY_ADS", g_CmdChat ); } public cmd_Say( id ) { if( !get_pcvar_num( p_enabled ) ) return PLUGIN_CONTINUE; static sMsg[64]; read_argv( 1, sMsg, charsmax( sMsg ) ); if( equali( sMsg, g_CmdChat ) ) { if( !get_pcvar_num( p_player_toggle ) ) { ShowPrint( id, "%L", id, "ERS_CMD_DISABLED" ); return PLUGIN_HANDLED; } g_pHeardSound[id] = g_pHeardSound[id] ? false : true; ShowPrint( id, "%L", id, g_pHeardSound[id] ? "ERS_SOUND_ENABLED" : "ERS_SOUND_DISABLED" ); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; } public eT_win() { if( !g_nSnd[ e_Team:T ] ) return; play_sound( e_Team:T ); } public eCT_win() { if( !g_nSnd[ e_Team:CT ] ) return; play_sound( e_Team:CT ); } play_sound( iTeam ) { static // - - - - - - - - - - - - - - - - sCurSnd[ MAX_FILE_LENGTH ]; // - - - - - - - - - - - - - - - - new iRand; if( g_nSnd[ iTeam ] > 1 ) iRand = random_num( 0, g_nSnd[ iTeam ] - 1 ); #if defined old_amxx copy( sCurSnd, MAX_FILE_LENGTH - 1, g_sTeam_sounds[ iRand ][ iTeam ] ); #else ArrayGetString( iTeam == CT ? g_lstSoundCT : g_lstSoundT, iRand, sCurSnd, MAX_FILE_LENGTH - 1 ); #endif _is_wav( sCurSnd ) ? format( sCurSnd, MAX_FILE_LENGTH - 1, "spk %s", sCurSnd[6] ) : format( sCurSnd, MAX_FILE_LENGTH - 1, "mp3 play %s", sCurSnd ); if( get_pcvar_num( p_player_toggle ) ) { static // - - - - - - - - - - - iPlayers[32], iNum, pid; // - - - - - - - - - - - get_players( iPlayers, iNum, "c" ); for( new i; i < iNum; i++ ) { pid = iPlayers[i]; if( !g_pHeardSound[pid] || is_user_bot( pid ) ) continue; client_cmd( pid, "%s", sCurSnd ); } } else client_cmd( 0, "%s", sCurSnd ); } get_prefix( sMap[], iLen_map, sMapType[], iLen_type ) { new // - - - - - - - - - sRest[32]; // - - - - - - - - - get_mapname( sMap, iLen_map ); strtok( sMap, sMapType, iLen_type, sRest, charsmax( sRest ), '_', 1 ); } loading_file() { static // - - - - - - - - - - - - - - - - - sPath[ MAX_FILE_LENGTH ], // | sConfigsDir[64], sPrefix[6], sMap[32]; // - - - - - - - - - - - - - - - - - get_prefix( sMap, charsmax( sMap ), sPrefix, charsmax( sPrefix ) ); get_configsdir( sConfigsDir, charsmax( sConfigsDir ) ); new bool:bFound; for( new i = 1; i <= 3; i++ ) { switch( i ) { case 1 : formatex( sPath, charsmax( sPath ), "%s/%s/prefix-%s.%s", sConfigsDir, g_FileFolder, sPrefix, g_FilePrefix ); case 2 : formatex( sPath, charsmax( sPath ), "%s/%s/%s.%s", sConfigsDir, g_FileFolder, sMap, g_FilePrefix ); case 3 : formatex( sPath, charsmax( sPath ), "%s/%s.%s", sConfigsDir, g_FileName, g_FilePrefix ); default : break; } if( !CheckFile( sPath ) ) continue; bFound = true; break; } log_amx( "---" ); bFound ? log_amx( "%L", LANG_SERVER, "ERS_LOG_LOADING", sPath ) : log_amx( "%L", LANG_SERVER, "ERS_LOG_NO_FILES_FOUND" ); load_sound( sPath ); } load_sound( const file[] ) { new // - - - - - - - - - - - - - - - sBuffer[256], // | sLeft[ MAX_FILE_LENGTH ], sRight[4], sExt[6], // | eTeam; // - - - - - - - - - - - - - - - new fp = fopen( file, "rt" ); while( !feof( fp ) ) { fgets( fp, sBuffer, charsmax( sBuffer ) ); trim( sBuffer ); if( !sBuffer[0] || sBuffer[0] == ';' || ( sBuffer[0] == '/' && sBuffer[1] == '/' ) ) continue; if( sBuffer[0] != '"' || strlen( sBuffer ) < 11 ) continue; parse( sBuffer, sLeft, charsmax( sLeft ), sRight, charsmax( sRight ) ); formatex( sExt, charsmax( sExt ), sLeft[ strlen( sLeft ) - 4 ] ); if( equali( sExt, ".mp3" ) == -1 || equali( sExt, ".wav" ) == -1 ) { log_amx( "%L", LANG_SERVER, "ERS_LOG_UNKNOW_EXTENSION", sExt ); continue; } if( !file_exists( sLeft ) ) { log_amx( "%L", LANG_SERVER, "ERS_LOG_INEXISTENT_FILE", sLeft ); continue; } eTeam = NULL; if( equali( sRight, "CT" ) ) eTeam = CT; else if( equali( sRight, "T" ) ) eTeam = T; if( eTeam == NULL ) { log_amx( "%L", LANG_SERVER, "ERS_LOG_NO_TEAM_SOUND", sLeft ); continue; } #if defined old_amxx copy( g_sTeam_sounds[ g_nSnd[ eTeam ] ][ eTeam ], MAX_FILE_LENGTH - 1, sLeft ); #else ArrayPushString( eTeam == CT ? g_lstSoundCT : g_lstSoundT, sLeft ); #endif ++g_nSnd[ eTeam ]; } fclose( fp ); if( g_nSnd[ e_Team:T ] > 1 || g_nSnd[ e_Team:CT ] > 1 ) { new iMax_t, iMax_ct; GetPrecacheValue( iMax_t, iMax_ct ); #if defined old_amxx UpdateArray( iMax_t, e_Team:T ); UpdateArray( iMax_ct, e_Team:CT ); #else p_DeleteRandomItem( iMax_t , e_Team:T , g_lstSoundT ); p_DeleteRandomItem( iMax_ct, e_Team:CT, g_lstSoundCT ); #endif } log_amx( "---" ); #if defined _DEBUG log_amx( "[ Loading %d CTs Sounds ]", g_nSnd[ e_team:CT ] ); #endif #if defined old_amxx PrecacheSounds( e_Team:CT ); #else PrecacheSounds_n( g_lstSoundCT ); #endif #if defined _DEBUG log_amx( "[ Loading %d Ts Sounds ]", g_nSnd[ e_team:T ] ); #endif #if defined old_amxx PrecacheSounds( e_Team:T ); #else PrecacheSounds_n( g_lstSoundT ); #endif } GetPrecacheValue( &iMax_t, &iMax_ct ) { new s_Value[12]; get_pcvar_string( p_random_precache, s_Value, charsmax( s_Value ) ); trim( s_Value ); new pos = contain( s_Value, "-" ); if( pos > 0 ) { iMax_ct = str_to_num( s_Value[ pos + 1 ] ) s_Value[ pos ] = '^0'; iMax_t = str_to_num( s_Value ); } else { iMax_t = str_to_num( s_Value ); iMax_ct = iMax_t; } } stock UpdateArray( iMax, iTeam ) { new const iCnt_sound = g_nSnd[ iTeam ]; if( !iMax || iMax == iCnt_sound ) return; if( iMax >= iCnt_sound ) iMax = iCnt_sound - 1; static sTmp_sounds[ MAX_SOUNDS ][ e_Team ][ MAX_FILE_LENGTH ], iLast_number[ MAX_SOUNDS ]; new i, iRand; for( i = 0; i < iCnt_sound; i++ ) { copy( sTmp_sounds[i][ iTeam ], MAX_FILE_LENGTH - 1, g_sTeam_sounds[i][ iTeam ] ); g_sTeam_sounds[i][ iTeam ][0] = '^0'; } arrayset( iLast_number, 0, charsmax( iLast_number ) ); i = 0; while( i != iMax ) { check: iRand = random_num( 0, iCnt_sound - 1 ); if( iLast_number[ iRand ] ) goto check; copy( g_sTeam_sounds[i][ iTeam ], MAX_FILE_LENGTH - 1, sTmp_sounds[ iRand ][ iTeam ] ); ++i; iLast_number[ iRand ] = 1; } g_nSnd[ iTeam ] = iMax; } stock p_DeleteRandomItem( iMax, iTeam, Array:sSound_a ) { new const iCnt_sound = g_nSnd[ iTeam ]; if( !iMax || iMax == iCnt_sound ) return; if( iMax >= iCnt_sound ) iMax = iCnt_sound - 1; DeleteRandomItem( iCnt_sound - iMax, sSound_a ); g_nSnd[ iTeam ] = iMax; } stock DeleteRandomItem( iRandom_n, Array:sSound_a ) { new i; while( i++ != iRandom_n ) ArrayDeleteItem( sSound_a, random_num( 0, ArraySize( sSound_a ) - 1 ) ); } stock PrecacheSounds( iTeam ) { for( new i; i < g_nSnd[ iTeam ]; i++ ) { PrecacheFile( g_sTeam_sounds[i][ iTeam ] ); #if defined _DEBUG log_amx( " - %s", g_sTeam_sounds[i][ iTeam ] ); #endif } log_amx( "---" ); } stock PrecacheSounds_n( Array:sSound_a ) { static // - - - - - - - - - - - - - - - - - - - sFile[ MAX_FILE_LENGTH ], iFileLen = charsmax( sFile ); // - - - - - - - - - - - - - - - - - - - for( new i; i < ArraySize( sSound_a ); i++ ) { ArrayGetString( sSound_a, i, sFile, iFileLen ); PrecacheFile( sFile ); #if defined _DEBUG log_amx( " - %s", sFile ); #endif } log_amx( "---" ); } PrecacheFile( const sound[] ) { _is_wav( sound ) ? engfunc ( EngFunc_PrecacheSound, sound[6] ) : engfunc ( EngFunc_PrecacheGeneric, sound ); } ShowPrint( id, const sMsg[], { Float, Sql, Result, _ }:... ) { static // - - - - - - - - - newMsg[191], message[191], // | tNewMsg; // - - - - - - - - - tNewMsg = charsmax( newMsg ); vformat( newMsg, tNewMsg, sMsg, 3 ); replace_all( newMsg, tNewMsg, "!t", "^3" ); replace_all( newMsg, tNewMsg, "!g", "^4" ); replace_all( newMsg, tNewMsg, "!n", "^1" ); formatex( message, charsmax( message ), "^4[ERS]^1 %s", newMsg ); message_begin( MSG_ONE, g_msgSayText, _, id ); write_byte( id ); write_string( message ); message_end(); } bool:CheckFile( const file[] ) { new // - - - - - - - - - - - - - - - - - sBuffer[256], fp = fopen( file, "rt" ); // - - - - - - - - - - - - - - - - - if( !fp ) return false; while( !feof( fp ) ) { fgets( fp, sBuffer, charsmax( sBuffer ) ); trim( sBuffer ); if( !sBuffer[0] || sBuffer[0] == ';' || ( sBuffer[0] == '/' && sBuffer[1] == '/' ) || sBuffer[0] != '"' ) continue; if( ( contain( sBuffer, ".mp3^"" ) != -1 || contain( sBuffer, ".wav^"" ) != -1 ) && ( contain( sBuffer, "^"T^"" ) != -1 || contain( sBuffer, "^"CT^"" ) != -1 ) ) return true; } fclose( fp ); return false; } Przeczytaj cały wpis
  15. This plugin adds lots of cvars to configure charger pound damage and damage of the charge impact on other survivors per difficulty. Cvars Code: // This file was auto-generated by SourceMod (v1.12.0.7133) // ConVars for plugin "disabled\l4d2_charger_scale_difficulty.smx" // Impact damage of charge on advanced difficulty // - // Default: "15" charger_scaling_charge_advanced "15" // Impact damage of charge on easy difficulty // - // Default: "5" charger_scaling_charge_easy "5" // Impact damage of charge on expert difficulty // - // Default: "20" charger_scaling_charge_expert "20" // Impact damage of charge on normal difficulty // - // Default: "10" charger_scaling_charge_normal "10" // Pound damage for the charger on advanced difficulty // - // Default: "22" charger_scaling_pound_advanced "22" // Pound damage for the charger on easy difficulty // - // Default: "8" charger_scaling_pound_easy "8" // Pound damage for the charger on expert difficulty // - // Default: "30" charger_scaling_pound_expert "30" // Pound damage for the charger on normal difficulty // - // Default: "15" charger_scaling_pound_normal "15" // Damage multiplier when victim is incapacitated while getting pummelled by a charger // - // Default: "3" // Minimum: "0.000000" // Maximum: "4096.000000" z_charger_incap_mult "3" Requires L4Dhooks and liquidHelpers. Clicking 'Get Plugin' won't work, download the .smx and put it into sourcemod\plugins or download source and compile it yourself. Changelog: Code: 1.0 - First Release Attached Files Get Plugin or Get Source (l4d2_charger_scale_difficulty.sp - 5.1 KB) l4d2_charger_scale_difficulty.smx (7.5 KB) Wyświetl pełny artykuł
  16. Can Someone Change This Plugin So It Can Count Bots, And Not Just Players Attached Files Get Plugin or Get Source (player.sma - 1.1 KB) Przeczytaj cały wpis
  17. Ostatni tydzień
  18. 1. To że maszyna stoi w Polsce nie oznacza dobrej jakości. Podaj pełne prawdziwe specyfikacje maszyny na którym serwery stoją. 2. Nie rozumiem podpunktu. 4. Gdzie strona z usługami? Jeżeli wymaga to rejestracji to lipnie 6. Gdzie oficjalny cennik z porównaniem. Co za problem dodać zwykły index z taką wiadomością. Mało profesjonalne. Discord powinien być drugim punktem odniesienia każdej firmy hostingowej a nie jej pierwszym. Strona główna powinna zawierać wszystkie informacje oraz kontakt mailowy. Cennik/dane firmy i wszystkie podstawowe informacje. Aktualnie nie przekonujecie niczym prócz panelu który nie wczytuje żadnych ikon. 0 konkretów. No i tragicznie przetłumaczony pterodactyl na język Polski
  19. To może po prostu napisz kiedy będzie to działac bo obecnie nawet nie ma jak wejść na strone ocenic panel czy też nawet wykupić usługę.
  20. Nie wchodziłeś ze mną w transakcję, a robiłem w swoim życiu tylko jedną transakcję z licencją IPS ( która została zablokowana nie z mojego powodu ). Proszę się wstrzymać od opinii osób, które nie dokonywały ze mną transakcji.
  1. Pokaż więcej elementów aktywności
×
×
  • Dodaj nową pozycję...