- AMXX.pl: Support AMX Mod X i SourceMod
- > Przeglądanie profilu: Reputacja: Drago36
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
O mnie
Staram się pomagać wszystkim, więc jak masz jakiś problem pisz do mnie.
[Były Support User]
=======================
"Wiemy, że nie można mieć wszystkiego, czego się chce.
Drogą do zaspokojenie potrzeb materialnych jest ludzka praca i przedsiębiorczość.
Wielu odkryć i wynalazków dokonano właśnie dlatego, że ludzie mają określone
potrzeby i chcą przezwyciężyć rzadkość zasobów. To pragnienie, połączone z ludzką pracą,
jest czynnikiem napędzającym rozwój cywilizacji."
Statystyki
- Grupa: Power User
- Całość postów: 707
- Odwiedzin: 19 022
- Tytuł: Profesjonalista - if you know what i mean
- Wiek: 26 lat
- Urodziny: Marzec 5, 1998
-
Imię
Mów mi D.ave
-
Płeć
Mężczyzna
-
Lokalizacja
Polska
-
Zainteresowania
Piłka nożna, ekonomia, logistyka, Wojsko Polskie, Airsoft
- GG 6680111
Narzędzia użytkownika
Znajomi
Drago36 nie posiada znajomych
Ostatnio byli
#645833 2 razy nocne ap
Napisane przez Drago36 w 27.06.2014 01:26
#645772 System perków
Napisane przez Drago36 w 26.06.2014 19:03
Jest to zmodyfikowany plugin od QTM. Peyote, dzięki której otrzymujemy tylko perk po zabiciu gracza.
Perk ten dodaje nam dodatkowe atrybuty np. dodatkowe życie, bądź niewidzialność - jest ich wiele i każdy się czymś wyróżnia.
W podstawce jest 27 zwykłych perków, 10 premium, 2 trudne do zdobycia oraz 1 premium i trudny do zdobycia.
/perk - Pokazuje informacje o posiadanym perku.
/perki - Otwiera menu opisów perków.
/sprzedaj - Sprzedaje aktualny perk.
/sell - Sprzedaje aktualny perk.
/zamien - Możliwość zamiany perkami z graczami.
/wymien - Możliwość zamiany perkami z graczami.
/pomoc - Menu pomocy.
/dajperk - Menu dawania perków
money_sellperk "500" - Ile mamy otrzymać pieniędzy za sprzedanie perku.
Ten system perków wykorzystuje moduł "perki" (nie "codmod" i tworzenie ich jest nieco inne, więcej informacji niżej).
perki.inc 2,04 KB
248 Ilość pobrań
native get_user_perk(id, &wartosc=0); /*------------------------------ Zwraca perk gracza, oraz przypisuje zmiennej wartosc wartosc perku ------------------------------*/ native set_user_perk(id, perk, wartosc=-1, pokaz_info=1); /*------------------------------ Ustawia perk gracza. Jezeli wartosc = -1, wartosc perku bedzie losowa. Jezeli perk = -1 perk bedzie losowy ------------------------------*/ native get_perkid(const nazwa_perku[]); /*------------------------------ Zwaca numer perku o podanej nazwie ------------------------------*/ native get_perks_num(); /*------------------------------ Zwaca ilosc perkow ------------------------------*/ native get_perk_name(perk, Return[], len); /*------------------------------ Kopiuje nazwe perku do Return ------------------------------*/ native get_perk_desc(perk, Return[], len); /*------------------------------ Kopiuje opis perku do Return ------------------------------*/ native register_perk(const nazwa[], const opis[], min_wartosc=0, max_wartosc=0); /*------------------------------ Rejestruje nowy perk oraz zwraca jego numer ------------------------------*/ forward perk_changed(id, perk); /*------------------------------ Forward wysylany do wszystkich pluginów w momencie zmiany perku ------------------------------*/ forward perk_enabled(id, wartosc, perk); /*------------------------------ Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie aktywacji ------------------------------*/ forward perk_disabled(id, perk); /*------------------------------ Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie dezaktywacji ------------------------------*/ forward perk_used(id); /*------------------------------ Forward wysylany do pluginu z ktorego zarejestrowany jest perk w momencie uzycia perku ------------------------------*/
Jak widzicie, nie wszystkie natywy oraz forwardy tu się znajdują, dodatkowo nie mają przyrostka "cod_".
Nie musimy nic dopisywać do plugins.ini
Aby dodać nowy perk należy dopisać go w: plugins-perki.ini
- Perki z codmod'a możemy swobodnie przerabiać usuwając wszędzie przyrostki "cod_"
czyli na przykład:
cod_register_perk(nazwa, opis);
na:
register_perk(nazwa, opis);
public cod_perk_enabled(id)
na
public perk_enabled(id)
oraz zamieniając moduł
#include <codmod>
na
#include <perki>
- Nie istnieją natywy cod_give_weapon oraz cod_take_weapon, dlatego najlepiej zastosować give_item.
- Aby zrobić perk premium:
Wystarczy zmodyfikować perk w "public perk_enabled", w taki podobny sposób:
public perk_enabled(id, wartosc) { if(!(get_user_flags(id) & ADMIN_LEVEL_B)) // tu ustawiasz flage { client_print(id, "Ten perk jest premium, niestety nie mozesz go otrzymac!") return PERK_STOP } //kod, tu: ma_perk i co tam masz return PERK_CONTINUE }
- Aby zrobić trudny perk do zdobycia:
Odbywa się w ten sposób, że gdy gracz dostanie dostanie perk zaczyna się losowanie czy go otrzyma.
Możemy zmieniać wartości losowań (łatwiej, trudniej).
Wystarczy zmodyfikować perk w "public perk_enabled", w taki podobny sposób:
public perk_enabled(id, wartosc) { if(random_num(1, 5)==1 || 2 || 3 || 4) // losowanie jest od 1 do 5; jesli trafimy na 1,2,3,4 to nie otrzymamy perku, jesli trafimy na 5 to otrzymamy perk { client_print(id, "[Nazwa Perku] Niestety nie otrzymasz perku! Nie udalo ci sie go wylosowac!") return PERK_STOP } //kod, tu: ma_perk i co tam masz return PERK_CONTINUE }
Polecam na serwery 4fun.
Załączone pliki
-
cstrike.rar 691,36 KB
482 Ilość pobrań
#645735 Reputacja(i Posty) oraz Moderatorzy
Napisane przez Drago36 w 26.06.2014 17:15
FORMOZA niestety nie pomaga ponieważ go w ogóle nie ma, powód?
Problemy rodzinne, które niestety długi czas już są, nie jest to miła sprawa a on zasłużył na te rangę, cóż życie tak się potoczyło, że nie może obecnie robić tego co lubi, więc to marny przykład ponieważ nie znasz dokładnych faktów, co się stało więc nie wypowiadaj się, że KTOŚ Z WŁASNEJ NIEPRZYMUSZONEJ WOLI PO OTRZYMANIU KOLORKU OLAŁ SPRAWĘ.
Rozumiem.
I takiej odpowiedzi chciałem otrzymać, może mniej bulwersyjnej, ważne że ktoś odpowiedział normalnie, a nie potocznie ("e-penis", "bo to post").
Nie wiem czy to prawda, mam nadzieję że tak, to iż ranga może mu pozostać bez zmian, ale i tak jest paru użytkowników z wyższą rangą, którzy zapominają jakie obowiązki spadają na nich.
Power User to wyróżnienie za aktywność na forum, a nie pokazanie ile kto umie.
Wiem, dlatego napisałem że kończą na Power User.
Jeżeli ktoś tutaj wykonuje pracę bo jak inaczej to ująć? za punkty Reputacji to ja ten, pomodlę się za niego w niedzielę....
To się już przyszykuj. Ludzie tutaj nie tylko wykonują pracę tylko dla hobby, lecz także dla swojego wizerunku.
Uwierz, że gdyby nie reputacja to wielu osób by tutaj nie zaczynało od pomocy w klasach do cod'a.
Duża ilość osób po osiągnięciu Power Usera, nie udziela się tu już, gdyż czują się tutaj zadowoleni ze swojej rangi za reputację.
#645702 Reputacja(i Posty) oraz Moderatorzy
Napisane przez Drago36 w 26.06.2014 16:03
Więc po co został dodany ten dodatek
No właśnie, to jest tylko dodatek, a wy zrobiliście sobie z tego dodatkowe centymetry do e-penisa.
Boże co za odpowiedź.
Nikt sobie nie robi "z tego dodatkowe centymetry do e-penisa". Mi chodziło skoro jest, to można się na nim opierać, że ktoś zna się i jest często pomocny.
#645693 Reputacja(i Posty) oraz Moderatorzy
Napisane przez Drago36 w 26.06.2014 15:52
Naprawdę "reputacja" jest dla was ważniejsza niż uczucie że naprawdę komuś pomogliście?
Więc po co został dodany ten dodatek, skoro nikt ma się na nim nie opierać?
Jest to w pewien sposób ukazanie się z dobrej strony, że znamy się, można polegać na tej osobie.
A teraz naliczanie postów.
Tutaj za bardzo się nie czepiam, ale w pewnym sensie jest to bez sensu.
Rozumiem awansowaliście, możecie moderatować itp. i dodatkowo posty się wam naliczają za zamykanie tematów, ale zauważyłem, że użytkownicy po awansie nie pomagają już tak jak wcześniej na forum. Na przykładzie FORMOZA. Awansował i na tym się kończy? Jego praca po awansie się skończyła już po tygodniu, czy ta ranga czemuś nie świadczy? Jest tu wielu oganiętych i aktywnych użytkowników, a kończą na Power User.
#644273 Podmiana modelu Zm 4.3
Napisane przez Drago36 w 20.06.2014 17:02
Model ten musisz wrzucić do: cstrike/models/player/nazwa_folderu/nazwa_pliku
I pamiętaj jeśli dopisujesz mamut, to nazwa_folderu musi nazywać się "mamut" oraz nazwa_pliku musi zwać się "mamut".
P.S
http://amxx.pl/topic...elu-survanemka/
#643738 Perk Magiczny Nóż
Napisane przez Drago36 w 16.06.2014 22:07
Witam!
Pragnę przedstawić wam perk, który posiada owe działanie:
gdy gracz wyciągnie nóż staje się nieśmiertelny i nie może się ruszać, po wybraniu broni gracz odzyskuje swoją prędkość oraz traci nieśmiertelność.
Nazwa perku nie jest rewelacyjna "Cod'owa", ale jak ktoś ma pomysły to może sobie zmienić.
Załączone pliki
-
codperk_magicznynoz.sma 1,17 KB
183 Ilość pobrań
codperk_magicznynoz.amxx
#642997 miscstats- jak zrobić żeby headshoty tylko ty słyszał a nie każdy
Napisane przez Drago36 w 12.06.2014 16:16
if (HeadShotKillSound) { client_cmd(killer, "spk misc/headshot") client_cmd(victim, "spk misc/headshot") }
Jeśli plik odgłosu "headshot" jest w formacie .wav (w innym formacie nie zadziała) to zrób tak:
if (HeadShotKillSound) { emit_sound(victim,CHAN_ITEM, "misc/headshot.wav", 1.0, ATTN_NORM, 0, PITCH_NORM); }
Odgłos powinni słyszeć gracze wokół ofiary.
#642878 Perk Zlodziej
Napisane przez Drago36 w 11.06.2014 17:57
Poszperałem po plikach i jest z zapytaniem.
Załączone pliki
-
codperk_Zlodziej.sma 1,68 KB
57 Ilość pobrań
codperk_Zlodziej.amxx
#642536 Jak zmienić ilość dolarów za runde
Napisane przez Drago36 w 08.06.2014 22:20
#641477 Jak zwiększyć czas do infekcji
Napisane przez Drago36 w 01.06.2014 20:04
#641458 Potrzebuje extra itemy,start rundy na flagi
Napisane przez Drago36 w 01.06.2014 18:56
Co do kupowania nemezisa i survivala to zrobiłem w jednym pliku. Dawno już nie robiłem extra itemów i pewnie coś nie zadziała : /
Survivala mogą kupić tylko ludzie, a nemezisa tylko zombiaki.
#include <amxmodx> #include <zombieplague> new g_itemid1, g_itemid2 public plugin_init() { register_plugin("[ZP] Kup Survivala/Nemezisa", "0.1", "Dr@goN") g_itemid1 = zp_register_extra_item("Nemezis", 100, ZP_TEAM_ZOMBIE) g_itemid2 = zp_register_extra_item("Survival", 100, ZP_TEAM_HUMAN) } public zp_extra_item_selected(player, itemid) { if(get_user_flags(player) & 524288 == 524288) { if (itemid == g_itemid1) { client_print(player, print_chat, "[ZP] Zamienisz sie tera w NEMEZIS'A!") zp_make_user_nemesis(player) } else if (itemid == g_itemid2) { client_print(player, print_chat, "[ZP] Zamienisz sie teraz w SURVIVAL'A!") zp_make_user_survivor(player) } } else { client_print(player, print_chat, "[ZP] Tylko gracze premium moga kupic ten Extra Item!") } }
Odliczanie: https://forums.allie...ad.php?t=123909
#640116 VIP wygenerowany przez AMXX.pl nie wyswietla menu
Napisane przez Drago36 w 25.05.2014 08:05
Sprawdź:
#include <amxmodx> #include <colorchat> #include <cstrike> #include <csx> #include <engine> #include <fakemeta_util> #include <fun> #include <hamsandwich> #define IsPlayer(%1) (1<=%1<=maxPlayers) #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1) forward amxbans_admin_connect(id); new Array:g_Array, CsArmorType:armortype, bool:g_Vip[33], bool:hs[33][33], gRound=0, g_Hudmsg, m_DeathMsg, m_ScoreAttrib, m_ScoreInfo, m_ScreenFade, maxPlayers, sprSkull, weapon_id; new const clips[]={0, 13, -0, 10, 1, 7, 0, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, 0, 50}; new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"}; new const spawnEntString[2][]={ "info_player_start", "info_player_deathmatch" }; public plugin_init(){ register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill"); RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1); register_event("HLTV", "event_new_round", "a", "1=0", "2=0"); register_logevent("GameCommencing", 2, "1=Game_Commencing"); register_event("DeathMsg", "DeathMsg", "a"); register_message(get_user_msgid("ScoreAttrib"), "VipStatus"); g_Array=ArrayCreate(64,32); for(new i;i<sizeof g_Langcmd;i++){ register_clcmd(g_Langcmd[i], "ShowVips"); } register_clcmd("say /vip", "ShowMotd"); set_task(90.0, "ShowAdv",.flags = "b"); g_Hudmsg=CreateHudSyncObj(); register_event("Damage", "damage", "b", "2!0", "3=0", "4!0"); register_message(get_user_msgid("SayText"),"handleSayText"); register_logevent("RoundEnd", 2, "1=Round_End"); register_event("Damage", "Damage_Wyrzucenie", "b", "2!=0"); RegisterHam(Ham_Killed, "player", "killedPre", 0); RegisterHam(Ham_TraceAttack, "player", "traceAttack", 1); } public client_authorized(id){ if(get_user_flags(id) & 524288 == 524288){ client_authorized_vip(id); } } public client_authorized_vip(id){ g_Vip[id]=true; new g_Name[64]; get_user_name(id,g_Name,charsmax(g_Name)); new g_Size = ArraySize(g_Array); new szName[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, szName, charsmax(szName)); if(equal(g_Name, szName)){ return 0; } } ArrayPushString(g_Array,g_Name); set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0); ShowSyncHudMsg(0, g_Hudmsg, "Vip %s wbija na serwer !",g_Name); return PLUGIN_CONTINUE; } public client_disconnect(id){ if(g_Vip[id]){ client_disconnect_vip(id); } } public client_disconnect_vip(id){ g_Vip[id]=false; new Name[64]; get_user_name(id,Name,charsmax(Name)); new g_Size = ArraySize(g_Array); new g_Name[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); if(equal(g_Name,Name)){ ArrayDeleteItem(g_Array,i); break; } } } public SpawnedEventPre(id){ if(g_Vip[id]){ if(is_user_alive(id)){ SpawnedEventPreVip(id); } } } public SpawnedEventPreVip(id){ cs_set_user_armor(id, min(cs_get_user_armor(id,armortype)+100, 100), armortype); if(gRound>=1){ show_vip_menu(id); } new g_Model[64]; formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "VipTT" : "VipCT"); cs_set_user_model(id,g_Model); if(gRound>=2){ if(get_user_team(id)==2){ give_item(id, "item_thighpack"); } } } public event_new_round(){ ++gRound; } public GameCommencing(){ gRound=0; } public DeathMsg(){ new killer=read_data(1); new victim=read_data(2); if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){ DeathMsgVip(killer,victim,read_data(3)); } } public DeathMsgVip(kid,vid,hs){ if(gRound>=2){ set_user_health(kid, min(get_user_health(kid)+(hs?15:10),130)); cs_set_user_money(kid, cs_get_user_money(kid)+(hs?500:300)); } } public show_vip_menu(id) { new menu = menu_create("\rMenu VIPa", "menu_handler"); menu_additem(menu, "\wM4A1 + DeaglE", "1", 0) menu_additem(menu, "\wAK47 + DeaglE", "2", 0) menu_additem(menu, "\wAWP + DeaglE", "3", 0) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } public menu_handler(id, menu, item) { if (item == MENU_EXIT) { menu_destroy(menu); return PLUGIN_HANDLED; } new data[6], iName[64]; new zaccess, callback; menu_item_getinfo(menu, item, zaccess, data,5, iName, 64, callback); new key = str_to_num(data) switch(key) { case 1: { cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1); new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0); give_item(id, "weapon_hegrenade"); ++henum; new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0); give_item(id, "weapon_flashbang"); ++fbnum; cs_set_user_bpammo(id, CSW_FLASHBANG, 2); new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0); give_item(id, "weapon_smokegrenade"); ++sgnum; if(get_pdata_cbase(id, 369)==-1){ give_item(id, "weapon_deagle"); give_item(id, "ammo_50ae"); weapon_id=find_ent_by_owner(-1, "weapon_deagle", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 7); cs_set_user_bpammo(id, CSW_DEAGLE, 35); } if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_m4a1"); give_item(id, "ammo_556nato"); weapon_id=find_ent_by_owner(-1, "weapon_m4a1", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 30); cs_set_user_bpammo(id, CSW_M4A1, 90); } } case 2: { cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1); new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0); give_item(id, "weapon_hegrenade"); ++henum; new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0); give_item(id, "weapon_flashbang"); ++fbnum; cs_set_user_bpammo(id, CSW_FLASHBANG, 2); new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0); give_item(id, "weapon_smokegrenade"); ++sgnum; if(get_pdata_cbase(id, 369)==-1){ give_item(id, "weapon_deagle"); give_item(id, "ammo_50ae"); weapon_id=find_ent_by_owner(-1, "weapon_deagle", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 7); cs_set_user_bpammo(id, CSW_DEAGLE, 35); } if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_ak47"); give_item(id, "ammo_762nato"); weapon_id=find_ent_by_owner(-1, "weapon_ak47", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 30); cs_set_user_bpammo(id, CSW_AK47, 90); } } case 3: { cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1); new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0); give_item(id, "weapon_hegrenade"); ++henum; new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0); give_item(id, "weapon_flashbang"); ++fbnum; cs_set_user_bpammo(id, CSW_FLASHBANG, 2); new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0); give_item(id, "weapon_smokegrenade"); ++sgnum; if(get_pdata_cbase(id, 369)==-1){ give_item(id, "weapon_deagle"); give_item(id, "ammo_50ae"); weapon_id=find_ent_by_owner(-1, "weapon_deagle", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 7); cs_set_user_bpammo(id, CSW_DEAGLE, 35); } if(get_pdata_cbase(id, 368)==-1){ give_item(id, "weapon_awp"); give_item(id, "ammo_338magnum"); weapon_id=find_ent_by_owner(-1, "weapon_awp", id); if(weapon_id)cs_set_weapon_ammo(weapon_id, 10); cs_set_user_bpammo(id, CSW_AWP, 30); } } } menu_destroy(menu); return PLUGIN_HANDLED; } public VipStatus(){ new id=get_msg_arg_int(1); if(is_user_alive(id) && g_Vip[id]){ set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4); } } public ShowVips(id){ new g_Name[64],g_Message[192]; new g_Size=ArraySize(g_Array); for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); add(g_Message, charsmax(g_Message), g_Name); if(i == g_Size - 1){ add(g_Message, charsmax(g_Message), "."); } else{ add(g_Message, charsmax(g_Message), ", "); } } ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%s", g_Message); return PLUGIN_CONTINUE; } public client_infochanged(id){ if(g_Vip[id]){ new szName[64]; get_user_info(id,"name",szName,charsmax(szName)); new Name[64]; get_user_name(id,Name,charsmax(Name)); if(!equal(szName,Name)){ ArrayPushString(g_Array,szName); new g_Size=ArraySize(g_Array); new g_Name[64]; for(new i = 0; i < g_Size; i++){ ArrayGetString(g_Array, i, g_Name, charsmax(g_Name)); if(equal(g_Name,Name)){ ArrayDeleteItem(g_Array,i); break; } } } } } public plugin_end(){ ArrayDestroy(g_Array); } public ShowMotd(id){ show_motd(id, "vip.txt", "Informacje o vipie"); } public ShowAdv(){ ColorChat(0, NORMAL, "[VIP]^x04 Chcesz dowiedziec sie co posiada vip ? Napisz na say'u /vip"); } public damage(id){ new attacker=get_user_attacker(id); new damage=read_data(2); if(g_Vip[id]){ set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1); ShowSyncHudMsg(id, g_Hudmsg, "%i^n", damage); } if(is_user_connected(attacker) && g_Vip[attacker]){ set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1); ShowSyncHudMsg(attacker, g_Hudmsg, "%i^n", damage); } } public handleSayText(msgId,msgDest,msgEnt){ new id = get_msg_arg_int(1); if(is_user_connected(id) && g_Vip[id]){ new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax(szTmp)) new szPrefix[64] = "^x04[VIP]"; if(!equal(szTmp,"#Cstrike_Chat_All")){ add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2)," "); add(szTmp2,charsmax(szTmp2),szTmp); } else{ add(szTmp2,charsmax(szTmp2),szPrefix); add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2"); } set_msg_arg_string(2,szTmp2); } return PLUGIN_CONTINUE; } public bomb_planted(id){ if(is_user_alive(id) && g_Vip[id]){ cs_set_user_money(id,cs_get_user_money(id) + 300); } } public bomb_defused(id){ if(is_user_alive(id) && g_Vip[id]){ cs_set_user_money(id,cs_get_user_money(id) + 300); } } public plugin_precache(){ precache_model("models/player/VipCT/VipCT.mdl"); precache_model("models/player/VipTT/VipTT.mdl"); sprSkull=precache_model("sprites/skull.spr"); } public plugin_cfg(){ maxPlayers=get_maxplayers(); m_ScreenFade=get_user_msgid("ScreenFade"); m_DeathMsg=get_user_msgid("DeathMsg"); m_ScoreAttrib=get_user_msgid("ScoreAttrib"); m_ScoreInfo=get_user_msgid("ScoreInfo"); } public RoundEnd(){ for(new i = 1; i <= maxPlayers; i++){ if(is_user_alive(i) && g_Vip[i]){ cs_set_user_money(i,cs_get_user_money(i) + 500); } } } public Damage_Wyrzucenie(vid){ new aid=get_user_attacker(vid); if(is_user_connected(aid) && is_user_alive(vid) && g_Vip[aid] && get_user_team(aid)!=get_user_team(vid) && random(100)<5){ Damage_Wyrzucenie_Vip(aid, vid); } } public Damage_Wyrzucenie_Vip(aid, vid){ if(gRound>=2){ client_cmd(vid, "drop"); } } public recharge(id){ new wid=get_user_weapon(id); if(wid){ new weaponname[32], weid; get_weaponname(wid, weaponname, 31); weid=find_ent_by_owner(-1, weaponname, id); if(weid){ cs_set_weapon_ammo(weid, clips[wid]); } } } public traceAttack(vid, aid, Float:dmg, Float:dir[3], ptr, dmgbits){ if(IsPlayer(aid)){ hs[aid][vid]=bool:(get_tr2(ptr, TR_iHitgroup)==1); } } public screen_flash(id, red, green, blue, alpha){ message_begin(MSG_ONE_UNRELIABLE, m_ScreenFade, _, id); write_short(1<<12); write_short(1<<12); write_short(1<<12); write_byte(red); write_byte(green); write_byte(blue); write_byte(alpha); message_end(); } public find_free_spawn(iTeamNumber, Float:spawnOrigin[3], Float:spawnAngle[3]){ new iSpawn; if(iTeamNumber==2) iSpawn=0; else iSpawn=1; const maxSpawns=128; new spawnPoints[maxSpawns], bool:spawnChecked[maxSpawns], spawnpoint, spawnnum; new ent=-1, spawnsFound=0; while((ent=fm_find_ent_by_class(ent,spawnEntString[iSpawn])) && spawnsFound<maxSpawns) spawnPoints[spawnsFound++]=ent; new Float:vicinity = 100.0; //(32x32x96) new i, entList[1]; for(i=0; i<maxSpawns; i++) spawnChecked[i]=false; // Loop through all the spawn points i=0; while(i++<spawnsFound*10){ spawnnum=random(spawnsFound); spawnpoint=spawnPoints[spawnnum]; if(spawnpoint && !spawnChecked[spawnnum]){ //don't check this spawn point again spawnChecked[spawnnum]=true; // Get the origin of the spawn point pev(spawnpoint, pev_origin, spawnOrigin); // Determine if something is in this near the spawn point if(!fm_find_sphere_class(0, "player", vicinity, entList, 1, spawnOrigin)){ // If there is nothing, return the angles and spawnpoint pev(spawnpoint, pev_angles, spawnAngle); return spawnpoint; } } } return 0; } stock fm_find_sphere_class(ent, const _classname[], Float:radius, entlist[], maxents, Float:origin[3]={0.0,0.0,0.0}){ if( pev_valid(ent) ) pev( ent, pev_origin, origin ); new tempent, tempclass[32], entsfound; while( (tempent = fm_find_ent_in_sphere(tempent, origin, radius) ) && entsfound < maxents ){ if( pev_valid(tempent) ){ pev(tempent, pev_classname, tempclass, 31); if( equal( _classname, tempclass ) ) entlist[entsfound++] = tempent; } } return entsfound; } public teleport_to_own_spawn(data[]){ new id=data[0]; new origin[3], Float:fl_origin[3]; new Float:angle[3], Float:fOrigin[3]; pev(id, pev_origin, fOrigin); fOrigin[2]+=35.0; message_begin(MSG_BROADCAST, SVC_TEMPENTITY); write_byte(TE_SPRITE); write_coord_f(fOrigin[0]); write_coord_f(fOrigin[1]); write_coord_f(fOrigin[2]); write_short(sprSkull); write_byte(20); write_byte(255); message_end(); find_free_spawn(get_user_team(id), fl_origin, angle); FVecIVec(fl_origin, origin); set_user_origin(id, origin); set_pev(id, pev_angles, angle); } public remove_godmode(data[]){ set_user_godmode(data[0]); } public recharge0(data[]){ recharge(data[0]); } public do_deathmsg(iKiller, iVictim, iHS, const szWeapon[]){ message_begin(MSG_BROADCAST, m_DeathMsg); write_byte(iKiller); write_byte(iVictim); write_byte(iHS); write_string(szWeapon); message_end(); } public killedPre(id, kid){ if(g_Vip[id] && random(100)<5){ if(gRound>=2){ ExecuteHam(Ham_AddPoints, kid, 1, true); screen_flash(id, 255, 0, 0, 100); set_user_health(id, 100); set_user_godmode(id, 1); new data[1]; data[0]=id; set_task(0.1, "teleport_to_own_spawn", _, data, 1); set_task(0.55, "recharge0", _, data, 1); set_task(1.0, "remove_godmode", _, data, 1); new bool:suicide; if(IsPlayer(kid)){ if(id==kid){ suicide=true; do_deathmsg(id, id, 0, "suicide"); } else { if(get_user_team(kid)!=get_user_team(id)){ ExecuteHam(Ham_AddPoints, kid, 1, true); } new szWeapon[24]; get_weaponname(get_user_weapon(kid), szWeapon, 23); replace(szWeapon, 23, "weapon_", ""); do_deathmsg(kid, id, hs[kid][id], szWeapon); } } else { suicide=true; do_deathmsg(id, id, 0, "suicide"); } message_begin(MSG_BROADCAST, m_ScoreAttrib, {0,0,0}, 0); write_byte(id); write_byte((user_has_weapon(id, CSW_C4)?2:0)|cs_get_user_vip(id)); message_end(); message_begin(MSG_BROADCAST, m_ScoreInfo); write_byte(id); write_short(get_user_frags(id)-_:suicide); write_short(cs_get_user_deaths(id)+1); write_short(0); write_short(get_user_team(id)); message_end(); set_pdata_int(id, 362, 0); return HAM_SUPERCEDE; } } return HAM_IGNORED; } public amxbans_admin_connect(id){ client_authorized(id); }
#640114 index out of bounds, mimo dobrego rozmiaru tablicy
Napisane przez Drago36 w 25.05.2014 07:54
#639712 [ROZWIĄZANE] Czym większa liczba, tym większa szansa na coś
Napisane przez Drago36 w 21.05.2014 20:36
- AMXX.pl: Support AMX Mod X i SourceMod
- > Przeglądanie profilu: Reputacja: Drago36
- Regulamin