Chciałbym stworzyć klasy, które można odblokować/kupić za X monet . Czy da się tak? Jeśli tak to proszę o wyjaśnienie w jaki sposób to zrobić. Proszę o szybką pomoc.
ExpMod
Spoiler
/**************************************************************************************** * * * Plugin generated by AMXX-Studio * * * * * * Plugin stworzony przez tomcionek15 & grs4, spotkacie nas na amxx.pl pod nickiem * * PaTrIcKx, a w grze CS pod nickiem: "STRIKER--McPr0 :D" * * * * Licencja freeware / License freeware * * * * * * * *****************************************************************************************/ #include <amxmodx> #include <engine> #include <amxmisc> #include <nvault> #include <fakemeta> #include <colorchat> #include <hamsandwich> #include <cstrike> #include <fun> #include <csx> #include <tutor> #include <expmod_mission> /////////////////////////////////////////////////////// #define PLUGIN "ExpMod" #define VERSION "1.9.8 fixed" #define AUTHOR "tomcionek15 & grs4" /* Tomasz S. i Grzegorz S. z miasta Wojkowice */ /////////////////////////////////////////////////////// #define MAX_PUNKTOW 150 // Levele / 4, na jeden skill #define MAX_ULTRA_PUNKTOW 5 // (Levele/10)/4 Na jeden skill #define PUNKTY_ZA_LEVEL 3 // Punkty za poziom ///////////////////Ultra Punkty /////////////////////// #define MNOZNIK_NIEWIDZIALNOSCI 48 // * 5 - 255 Niewidzialny na maxa #define MNOZNIK_OBRAZEN 7 // * 5 - Dodatkowe Obrazenia #define MNOZNIK_SKOKOW 1 // * 5 - Dodatkowe Skoki w powietrzu za 1 u. pkt. #define MNOZNIK_LONGJUMPA 15 // * 5 +170 ////////////////////////PUNKTY///////////////////////// #define MNOZNIK_ZYCIA 3 // * 150 // Dodatkowe HP #define MNOZNIK_SZYBKOSCI 0.65 // * 150+250 - Maksymalna predkosc #define MNOZNIK_GRAWITACJI 2.5 // * 150 / 800 #define MNOZNIK_KASY 35 // * 150 = 5250 #define ADMIN_MENU_FLAG ADMIN_IMMUNITY // Flaga Admin Menu = Admin Immunity #define VIP_FLAG ADMIN_LEVEL_H // Flaga "t" - Dla VIPA #define SCOREATTRIB_DEAD (1 << 0) #define SCOREATTRIB_VIP (1 << 2) #define SCIEZKA_PLIKU "addons/amxmodx/configs/expmod.cfg" //Glowny plik konfiguracyjny expmoda #define TASK_HUD_INFO 8191 /////////////////////////////////////////////////////// // POZIOMY // /////////////////////////////////////////////////////// new const POZIOM[] = { 200,800,1800,3200,5000,7200,9800,12800,16200,20000,24200,28800,33800,39200, //0 - 14 45000,51200,57800,64800,72200,80000,88200,96800,105800,115200,125000,135200, //15 - 27 145800,156800,168200,180000,192200,204800,217800,231200,245000,259200,273800, //28 - 39 288800,304200,320000,336200,352800,369800,387200,405000,423200,441800,460800, //40 - 51 480200,500000,520200,540800,561800,583200,605000,627200,649800,672800,696200, //52 - 62 720000,744200,768800,793800,819200,845000,871200,897800,924800,952200,980000, //63 - 73 1008200,1036800,1065800,1095200,1125000,1155200,1185800,1216800,1248200,1280000, //74 - 84 1312200,1344800,1377800,1411200,1445000,1479200,1513800,1548800,1584200,1620000, //85 - 95 1656200,1692800,1729800,1767200,1805000,1843200,1881800,1920800,1960200,2000000, //96 - 106 2040200,2080800,2121800,2163200,2205000,2247200,2289800,2332800,2376200,2420000, //107 - 117 2464200,2508800,2553800,2599200,2645000,2691200,2737800,2784800,2832200,2880000, //118 - 128 2928200,2976800,3025800,3075200,3125000,3175200,3225800,3276800,3328200,3380000, //129 - 139 3432200,3484800,3537800,3591200,3645000,3699200,3753800,3808800,3864200,3920000, //140 - 150 3976200,4032800,4089800,4147200,4205000,4263200,4321800,4380800,4440200,4500000, //151 - 161 4560200,4620800,4681800,4743200,4805000,4867200,4929800,4992800,5056200,5120000, //162 - 172 5184200,5248800,5313800,5379200,5445000,5511200,5577800,5644800,5712200,5780000, //173 - 183 5848200,5916800,5985800,6055200,6125000,6195200,6265800,6336800,6408200,6480000, //184 - 194 6552200,6624800,6697800,6771200,6845000,6919200,6993800,7068800,7144200,7220000, //195 - 20... - Jest 200 lvl ... xd 7296200,7372800,7449800,7527200,7605000,7683200,7761800,7840800,7920200,8070200, 1073741824 //-107[...] żeby nie było bugów ;) } /////////////////////////////////////////////////////// new g_MsgScoreAttrib = 0; /////////////////////////////////////////////////////// new poziom_gracza[33] new doswiadczenie_gracza[33] new punkty_gracza[33] new ultra_punkty_gracza[33] new monety_gracza[33] /////////////////////////////////////////////////////// new zycie_gracza[33], nowe_zycie_gracza[33] new niewidzialnosc_gracza[33], nowa_niewidzialnosc_gracza[33] new obrazenia_gracza[33], nowe_obrazenia_gracza[33] new szybkosc_gracza[33], Float:nowa_szybkosc_gracza[33] new grawitacja_gracza[33], Float:nowa_grawitacja_gracza[33] new kasa_gracza[33], nowa_kasa_gracza[33] new skoki_gracza[33], nowe_skoki_gracza[33] new longjump_gracza[33], nowy_longujmp_gracza[33], longjump_czas[33], longjump_s_czas[33] /////////////////////////////////////////////////////// new nazwa_gracza[33]; new plik; //USER new p_exp_zabojstwo //Kill Exp new p_exp_headshot //KIll hs Exp new p_exp_podlozenie_paki //PP Exp new p_exp_rozbrojenie_paki //RP EXP new p_exp_uratowanie_hosta new p_exp_infostyle /* p_exp_infostyle = 0 // NIC p_exp_infostyle = 1 // TUTOR p_exp_infostyle = 2 // COLORCHAT p_exp_infostyle = 3 // TUTOR + COLORCHAT */ new p_exp_tutor_sound // 1 = Sound | 0 = Nothing new p_exp_wygrana_runda // Exp Win Round new p_exp_boty // Include Bots ? 1 or 0 new p_exp_savetime // No comment ;D ? new p_exp_hud_level // np. 50 -> 51 <- 52 new p_exp_knife_invisible // Invisible if players change weapon to knife new p_exp_of_players // Exp for players if on server are X players /* p_exp_hud_level 0 - nothing 1 - alive 2 - death 3 - alive/death */ // VIP new p_exp_vip_extra_hp //Vip extra Hp new p_exp_vip_extra_speed //Vip extra speed new p_exp_vip_extra_gravity //Vip extra Gravity new p_exp_vip_extra_monets //Vip extra monets new p_exp_vip_extra_exp //Vip extra exp new p_exp_vip_extra_hs_exp //Vip extra hs exp new p_exp_vip_new_round_info //Vip Info on new round new p_exp_vip_new_round_infostyle // -- || -- /*Vip Info on new round style 0 = nothing | 1 = tutor | 2 = ColorChat | 3 = Tutor + Colorchat*/ //ADMIN new adminek[33] new id_am // id admin menu new bool:first_round new bool:ft = true // Freeze Time new folder_expmod[64] // addons/amxmodx/ExpMod new folder_amxx[64] // addons/amxmodx/ new plik_expmod_staty[64] // addons/amxmodx/ExpMod/expmod_staty.txt /////////////////////////////////////////////////////// //new Message1 //Sync Hud Obj 1 new Message2 //Sync Hud Obj 2 new Message3 //Sync Hud Obj 3 new Message4 //Sync Hud Obj 4 //new Message5 //Sync Hdu Obj 5 new menu_on[] = "ExpMod/menu_on.wav" new level_up[] = "ExpMod/levelup.wav" new level_up2[] = "ExpMod/levelup2.wav" new wyzwanie[] = "ExpMod/wyzwanie.wav" new komunikat1[] = "ExpMod/komunikat1.wav" new komunikat2[] = "ExpMod/komunikat2.wav" new odmowa[] = "ExpMod/odmowa.wav" new klik[] = "ExpMod/klik.wav" new klik2[] = "ExpMod/klik2.wav" new pstryk[] = "ExpMod/pstryk.wav" new warning[] = "ExpMod/warning.wav" new szum[] = "ExpMod/szum.wav" new pisk[] = "ExpMod/pisk.wav" new prefix[] = "[EXPMOD]"; new prefix_vip[] = "[EXPMOD : VIP]"; /* ^ | Sciezki do dzwiekow */ ///////////////////////////////////////////////////// //////////////////////NATYWY///////////////////////// ///////////////////////////////////////////////////// public plugin_natives() { register_native("exp_get_user_level", "get_user_level", 1); register_native("exp_get_levelexp", "get_levelexp", 1); register_native("exp_get_user_exp", "get_user_exp", 1); register_native("exp_get_user_nextlevelexp", "get_user_nextlevelexp", 1); register_native("exp_get_user_previouslevelexp","get_user_previouslevelexp", 1); register_native("exp_set_user_exp", "set_user_exp", 1); register_native("exp_set_user_level", "set_user_level", 1); register_native("exp_save_exp", "ZapiszExp", 1); register_native("exp_set_user_invisible", "set_user_invisible", 1); register_native("exp_checklevel", "SprawdzExp", 1); register_native("exp_get_user_monets", "get_user_monets", 1); register_native("exp_set_user_monets", "set_user_monets", 1); register_native("exp_get_user_new_health", "get_user_new_health", 1); register_native("exp_reset", "Zresetuj", 1); register_native("exp_is_user_vip", "is_user_vip", 1); } /////////////////////////////////////////////////////// public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) tutorInit() register_dictionary("ExpMod.txt") /////////////////////////////////////////////////////// register_event("DeathMsg", "DeathMsg", "a"); register_event("CurWeapon", "CurWeapon", "be", "1=1"); register_event("HLTV", "RundaHLTV", "a", "1=0", "2=0"); register_event("SendAudio", "WygraTT", "a", "2&%!MRAD_terwin"); register_event("SendAudio", "WygraCT", "a", "2&%!MRAD_ctwin"); /////////////////////////////////////////////////////// register_logevent("RundaLogEvent",2, "1=Round_Start"); register_logevent("KoniecRundyLogEvent", 2, "1=Round_End"); register_logevent("UratowanieHosta",3, "2=Rescued_A_Hostage") /////////////////////////////////////////////////////// RegisterHam(Ham_Spawn, "player", "OdrodzenieGracza", 1); RegisterHam(Ham_TakeDamage, "player", "TakeDamage"); g_MsgScoreAttrib = get_user_msgid("ScoreAttrib"); register_message(g_MsgScoreAttrib, "messageScoreAttrib"); ///////////////////////////USER//////////////////////// register_forward(FM_CmdStart, "CmdStart"); p_exp_zabojstwo = register_cvar("exp_kill_exp", "250"); p_exp_headshot = register_cvar("exp_killhs_exp", "100"); p_exp_podlozenie_paki = register_cvar("exp_planted_bomb", "350"); p_exp_rozbrojenie_paki = register_cvar("exp_defuse_bomb", "350"); p_exp_uratowanie_hosta = register_cvar("exp_hostage_rescued", "250"); p_exp_infostyle = register_cvar("exp_infostyle", "3"); p_exp_wygrana_runda = register_cvar("exp_win_round", "200"); p_exp_boty = register_cvar("exp_include_bots", "0"); p_exp_tutor_sound = register_cvar("exp_tutor_sounds", "1"); p_exp_hud_level = register_cvar("exp_hud_level", "3"); p_exp_knife_invisible = register_cvar("exp_knife_invisible", "0"); p_exp_of_players = register_cvar("exp_of_players", "2"); ////////////////////////////VIP///////////////////////// p_exp_vip_extra_hp = register_cvar("exp_vip_extra_hp", "75"); p_exp_vip_extra_speed = register_cvar("exp_vip_extra_speed", "50.0"); p_exp_vip_extra_gravity = register_cvar("exp_vip_extra_gravity", "150"); p_exp_vip_extra_monets = register_cvar("exp_vip_extra_monets", "1"); p_exp_vip_extra_exp = register_cvar("exp_vip_extra_kill_exp", "100"); p_exp_vip_extra_hs_exp = register_cvar("exp_vip_extra_killhs_exp", "60"); p_exp_vip_new_round_info = register_cvar("exp_vip_info_new_round", "1"); p_exp_vip_new_round_infostyle = register_cvar("exp_vip_info_new_round_style", "2"); ///////////////////////////ADMIN//////////////////////// register_clcmd("ustaw_lvl","ustaw_lvl"); register_clcmd("ustaw_exp","ustaw_exp"); register_clcmd("dodaj_lvl","dodaj_lvl"); register_clcmd("dodaj_exp","dodaj_exp"); register_clcmd("dodaj_monety","dodaj_monety"); register_clcmd("ustaw_monety","ustaw_monety"); //////////////////////////////////////////////////////// first_round = true /////////////////////////////////////////////////////// register_clcmd("say /lvl", "Poziom"); register_clcmd("say /level", "Poziom"); register_clcmd("say /poziom", "Poziom"); register_clcmd("say /exp", "Exp"); register_clcmd("say /dos", "Exp"); register_clcmd("say /doswiadczenie", "Exp"); register_clcmd("say /przydziel", "MenuPrzydzielPunkty"); register_clcmd("say /dodajpunkty", "MenuPrzydzielPunkty"); register_clcmd("say /dodajupunkty", "MenuPrzydzielUltraPunkty"); register_clcmd("say /punkty", "Punkty"); register_clcmd("say /upunkty", "UPunkty"); register_clcmd("say /menu", "MenuWybor"); register_clcmd("menu", "MenuWybor"); register_clcmd("say /reset", "MenuResetWybor"); register_clcmd("say /resetuj", "MenuResetWybor"); register_clcmd("say /staty", "MotdStatystyki"); register_clcmd("say /statystyki", "MotdStatystyki"); register_clcmd("say /reloadcfg", "WczytajUstawienia", ADMIN_RCON); /////////////////////////////////////////////////////// p_exp_savetime = register_cvar("exp_savetime", "120.0") if(get_pcvar_float(p_exp_savetime) != 0.0) set_task(get_pcvar_float(p_exp_savetime), "ZaapiszExp", _, _, _, "b") /////////////////////////////////////////////////////// //Message1= CreateHudSyncObj(); Message2 = CreateHudSyncObj(); Message3 = CreateHudSyncObj(); Message4 = CreateHudSyncObj(); get_basedir(folder_amxx, 63) formatex(folder_expmod, 63, "%s/ExpMod", folder_amxx); formatex(plik_expmod_staty, 63, "%s/motd_statytsyki", folder_expmod); if(!file_exists(folder_expmod)) mkdir(folder_expmod) WczytajUstawienia() } /////////////////////////////////////////////////////// public Poziom(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "CMD_PLAYER_LEVEL", poziom_gracza[id]); if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 5.0, "%L", id, "CMD_PLAYER_LEVEL", poziom_gracza[id]); } return PLUGIN_CONTINUE; } public Exp(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "CMD_PLAYER_EXP", doswiadczenie_gracza[id], POZIOM[poziom_gracza[id]+1], (POZIOM[poziom_gracza[id]+1]-doswiadczenie_gracza[id])); if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 5.0, "%L", id, "CMD_PLAYER_EXP", doswiadczenie_gracza[id], POZIOM[poziom_gracza[id]+1], (POZIOM[poziom_gracza[id]+1]-doswiadczenie_gracza[id])); } return PLUGIN_CONTINUE; } public WczytajUstawienia() { new tekst[64], len new cvar[64], wartosc[16], komenda[128] if(!file_exists(SCIEZKA_PLIKU)) return PLUGIN_CONTINUE for(new i = 0 ; read_file(SCIEZKA_PLIKU, i, tekst, 63, len); i ++) { if(tekst[0] == ';' || (tekst[0] == '/' && tekst[1] == '/')) continue; parse(tekst, cvar, 63, wartosc, 15) if(equali(cvar, "exp_playerinfo_show_time")) formatex(komenda, 127, "%s %0.1f%", cvar, str_to_float(wartosc)) else formatex(komenda, 127, "%s %d", cvar, str_to_num(wartosc)) server_cmd(komenda) } return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public plugin_precache() { tutorPrecache() precache_sound(menu_on) precache_sound(wyzwanie) precache_sound(level_up) precache_sound(level_up2) precache_sound(komunikat1) precache_sound(komunikat2) precache_sound(odmowa) precache_sound(klik) precache_sound(klik2) precache_sound(pstryk) precache_sound(warning) precache_sound(szum) precache_sound(pisk) } /////////////////////////////////////////////////////// /////////////////////////////////////////////////////// public WygraTT() { if(get_playersnum() < get_pcvar_num(p_exp_of_players) || first_round == true || get_pcvar_num(p_exp_wygrana_runda) <= 0) return PLUGIN_CONTINUE; for(new i = 1;i < 33; i++) { if(!is_user_connected(i)) continue; if(get_user_team(i) == 1 && first_round == false) { doswiadczenie_gracza[i] += get_pcvar_num(p_exp_wygrana_runda); SprawdzExp(i); ColorChat(i, GREEN, "%s^x01 %L",prefix, i, "MSG_TT_WIN_ROUND", get_pcvar_num(p_exp_wygrana_runda)); } } return PLUGIN_CONTINUE; } public WygraCT() { if(get_playersnum() < get_pcvar_num(p_exp_of_players) || first_round == true || get_pcvar_num(p_exp_wygrana_runda) <= 0) return PLUGIN_CONTINUE; for(new i = 1; i < 33; i++) { if(!is_user_connected(i)) continue; if(get_user_team(i) == 2 && first_round == false) { doswiadczenie_gracza[i]+=get_pcvar_num(p_exp_wygrana_runda); SprawdzExp(i); ColorChat(i, GREEN, "%s^x01 %L", prefix, i, "MSG_CT_WIN_ROUND", get_pcvar_num(p_exp_wygrana_runda)); } } return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public Punkty(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "CMD_PLAYER_POINTS", punkty_gracza[id]); if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 5.0, "%L", id, "CMD_PLAYER_POINTS", punkty_gracza[id]); } return PLUGIN_CONTINUE; } public UPunkty(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, "CMD_PLAYER_ULTRA_POINTS", ultra_punkty_gracza[id]); if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { tutorMake(id, TUTOR_GREEN, 5.0, "%L", "CMD_PLAYER_ULTRA_POINTS", ultra_punkty_gracza[id]); if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } } return PLUGIN_CONTINUE; } public RundaLogEvent() { ft = false } /////////////////////////////////////////////////////// public KoniecRundyLogEvent() { if(first_round == true) first_round = false if(get_playersnum() < get_pcvar_num(p_exp_of_players)) return PLUGIN_CONTINUE for(new i = 1 ; i < 33 ; i++) { if(!is_user_connected(i)) return PLUGIN_CONTINUE if(get_user_team(i)) { doswiadczenie_gracza[i]+= get_pcvar_num(p_exp_wygrana_runda) SprawdzExp(i) } } return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public RundaHLTV() { ft = true } /////////////////////////////////////////////////////// public CurWeapon(id) { if(ft || !is_user_connected(id) || !is_user_alive(id)) return PLUGIN_CONTINUE; new bron = read_data(2); if(get_pcvar_num(p_exp_knife_invisible) == 1 && bron == CSW_KNIFE) set_user_invisible(id, (255-nowa_niewidzialnosc_gracza[id])) if(get_user_flags(id) & VIP_FLAG) set_user_maxspeed(id, nowa_szybkosc_gracza[id]+250.0+get_pcvar_float(p_exp_vip_extra_speed)) else set_user_maxspeed(id, nowa_szybkosc_gracza[id]+250.0) return PLUGIN_CONTINUE; } /////////////////////////////////////////////////////// /* public Damage(id) { new idattacker = get_user_attacker(id); new damage = read_data(2); if(!is_user_alive(idattacker) || !is_user_connected(idattacker)) return PLUGIN_CONTINUE; SprawdzExp(idattacker) return PLUGIN_CONTINUE }*/ /////////////////////////////////////////////////////// public MenuResetWybor(id) { if(poziom_gracza[id] == 0) { if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESET_ERROR") if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_YELLOW, 5.0, "%L", id, "MSG_RESET_ERROR") } return PLUGIN_CONTINUE } client_cmd(id, "spk %s", menu_on) new tytul[128], punkty[64], upunkty[64] formatex(tytul, 127, "%L", id, "MENU_RESET_QUESTION") formatex(punkty, 63, "%L", id, "POINTS") formatex(upunkty, 63, "%L", id, "ULTRA_POINTS") new menu_reset_wybor = menu_create(tytul, "MenuResetWybor_Wybieranie") new menu_reset_wybor_cb = menu_makecallback("MenuResetWybor_Cb") menu_additem(menu_reset_wybor, punkty, _, _, menu_reset_wybor_cb) menu_additem(menu_reset_wybor, upunkty, _, _, menu_reset_wybor_cb) menu_setprop(menu_reset_wybor, MPROP_NUMBER_COLOR, "\r") menu_display(id, menu_reset_wybor) return PLUGIN_CONTINUE } public MenuResetWybor_Cb(id, menu_reset_wybor, item_reset_wybor) { if((item_reset_wybor == 0 && poziom_gracza[id] == 0) || (item_reset_wybor == 1 && poziom_gracza[id] < 10)) return ITEM_DISABLED return ITEM_ENABLED } public MenuResetWybor_Wybieranie(id, menu_reset_wybor, item_reset_wybor) { if(item_reset_wybor == MENU_EXIT) { menu_destroy(menu_reset_wybor) return PLUGIN_CONTINUE } switch(item_reset_wybor) { case 0: MenuResetPunkty(id) case 1: MenuResetUltraPunkty(id) } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } return PLUGIN_CONTINUE } public MenuResetUltraPunkty(id) { client_cmd(id, "spk %s", menu_on) new upr[200], tak[128] formatex(upr, 199, "%L", id, "MENU_RESET_UPOINTS_QUESTION") formatex(tak, 127, "%L", id, "MENU_RESET_UPOINTS_ITEM") new menu_reset_ultrapunkty = menu_create(upr, "MenuResetUltraPunkty_Wybieranie") menu_additem(menu_reset_ultrapunkty, tak) menu_setprop(menu_reset_ultrapunkty, MPROP_NUMBER_COLOR, "\r") menu_display(id, menu_reset_ultrapunkty) } public MenuResetUltraPunkty_Wybieranie(id, menu_reset_ultrapunkty, item_reset_ultrapunkty) { if(item_reset_ultrapunkty == MENU_EXIT) { menu_destroy(menu_reset_ultrapunkty) return PLUGIN_CONTINUE } if(item_reset_ultrapunkty == 0) { Zresetuj(id, 0, 1, 0) if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) { ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESET_UPOINTS1") ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESET_UPOINTS2", ultra_punkty_gracza[id]) } if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 10.0, "%L^n%L", id, "MSG_RESET_UPOINTS1", id, "MSG_RESET_UPOINTS2", ultra_punkty_gracza[id]) } set_user_exp(id, get_user_exp(id)-2000) MenuWybor(id) } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } return PLUGIN_CONTINUE } public MenuResetPunkty(id) { client_cmd(id, "spk %s", menu_on) Zresetuj(id, 1, 0, 0) if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) { ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESET_POINTS1") ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESET_POINTS2", punkty_gracza[id]) } if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 10.0, "%L^n%L", id, "MSG_RESET_POINTS1", id, "MSG_RESET_POINTS2", punkty_gracza[id]) } MenuWybor(id) } /////////////////////////////////////////////////////// public client_putinserver(id) { WczytajExp(id) if(get_user_flags(id) & VIP_FLAG) { get_user_name(id, nazwa_gracza, 32) if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(0, GREEN, "%s^x01 %L",prefix_vip, LANG_SERVER, "MSG_VIP_CONNECT", nazwa_gracza) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(0, TUTOR_YELLOW, 7.0, "%L^n%L!", LANG_SERVER, "MSG_VIP_CONNECT", nazwa_gracza, LANG_SERVER, "MSG_WELCOME") } } remove_task(id+TASK_HUD_INFO) set_task(2.5, "Pokaz", id+TASK_HUD_INFO) } /////////////////////////////////////////////////////// public client_disconnect(id) { ZapiszExp(id) remove_task(id+TASK_HUD_INFO) if(get_user_flags(id) & VIP_FLAG) { get_user_name(id, nazwa_gracza, 32) if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(0, GREEN, "%s^x01 %L", prefix_vip, LANG_SERVER, "MSG_VIP_DISCONNECT", nazwa_gracza) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(0, TUTOR_YELLOW, 7.0, "%L^n%L", LANG_SERVER, "MSG_VIP_DISCONNECT", nazwa_gracza, LANG_SERVER, "MSG_BYE") } } } /////////////////////////////////////////////////////// public OdrodzenieGracza(id) { if(is_user_alive(id) && is_user_connected(id)) { if(punkty_gracza[id] > 0 || ultra_punkty_gracza[id] > 0) MenuWybor(id) if(get_pcvar_num(p_exp_vip_new_round_info) == 1) { if(get_user_flags(id) & VIP_FLAG) { if(get_pcvar_num(p_exp_vip_new_round_infostyle) == 3 || get_pcvar_num(p_exp_vip_new_round_infostyle) == 1) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", komunikat2) case 2:client_cmd(id, "spk %s", komunikat1) } } tutorMake(id, TUTOR_YELLOW, 5.0, "%L^n%L : +%d HP | -%d GRAV^n+%0.1f% SPEED", id, "MSG_YOU_ARE_VIP", id, "MSG_YOU_GOT", get_pcvar_num(p_exp_vip_extra_hp),get_pcvar_num(p_exp_vip_extra_gravity),get_pcvar_float(p_exp_vip_extra_speed)) } if(get_pcvar_num(p_exp_vip_new_round_infostyle) == 2 || get_pcvar_num(p_exp_vip_new_round_infostyle) == 3) { ColorChat(id, GREEN, "%s^x01 %L", prefix_vip, id, "MSG_YOU_ARE_VIP") ColorChat(id, GREEN, "%s^x01 %L : ^x04+%d ^x01HP | ^x04-%d ^x01GRAV | ^x04+%0.1f ^x01SPEED", prefix_vip, id, "MSG_YOU_GOT", get_pcvar_num(p_exp_vip_extra_hp),get_pcvar_num(p_exp_vip_extra_gravity),get_pcvar_float(p_exp_vip_extra_speed)) } } } if(get_pcvar_num(p_exp_knife_invisible) == 0) set_user_invisible(id, (255-nowa_niewidzialnosc_gracza[id])) if((cs_get_user_money(id)+nowa_kasa_gracza[id]) > 16000) cs_set_user_money(id, 16000) else cs_set_user_money(id, cs_get_user_money(id)+nowa_kasa_gracza[id]) if(get_user_flags(id) & VIP_FLAG) { set_user_health(id, get_user_health(id)+nowe_zycie_gracza[id]+get_pcvar_num(p_exp_vip_extra_hp)) set_user_gravity(id, ((800-nowa_grawitacja_gracza[id])-get_pcvar_num(p_exp_vip_extra_gravity))/800) } else { set_user_gravity(id, (800-nowa_grawitacja_gracza[id])/800) set_user_health(id, get_user_health(id)+nowe_zycie_gracza[id]) } if((get_user_health(id)%256) == 0) set_user_health(id, get_user_health(id)+1); } else return PLUGIN_CONTINUE return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public MenuWybor(id) { client_cmd(id, "spk %s", menu_on) new wybor[255], punkty[64], upunkty[64], staty[64], reset[64], sklep[64], misje[64], imisje[64], amisje[64], ach[64], admin[64]; formatex(wybor, 255, "%L", id, "MENU_MAIN_TITLE", punkty_gracza[id], ultra_punkty_gracza[id], monety_gracza[id]) formatex(punkty, 63, "%L", id, "MENU_MAIN_ADD_POINTS") formatex(upunkty, 63, "%L", id, "MENU_MAIN_ADD_ULTRA_POINTS") formatex(staty, 63, "%L", id, "MENU_MAIN_STATS") formatex(reset, 63, "%L", id, "MENU_MAIN_RESET") formatex(sklep, 63, "%L", id, "MENU_MAIN_SHOP") formatex(misje, 63, "%L", id, "MENU_MAIN_MISSION") formatex(imisje, 63, "%L", id, "MENU_MAIN_INFO_MISSION") formatex(amisje, 63, "%L", id, "MENU_MAIN_CANCEL_MISSION") formatex(ach, 63, "%L", id, "MENU_MAIN_ADD_ACHIEVEMENTS") formatex(admin, 63, "%L", id, "MENU_MAIN_ADMIN_MENU") new menu_wybor = menu_create(wybor, "MenuWybor_Wybieranie") new menu_wybor_cb = menu_makecallback("MenuWybor_CallBack") menu_additem(menu_wybor, punkty, _, _, menu_wybor_cb) menu_additem(menu_wybor, upunkty, _, _, menu_wybor_cb) menu_additem(menu_wybor, staty) menu_additem(menu_wybor, reset,_, _, menu_wybor_cb) menu_additem(menu_wybor, sklep) menu_additem(menu_wybor, misje) menu_additem(menu_wybor, imisje) menu_additem(menu_wybor, amisje) menu_additem(menu_wybor, ach) menu_additem(menu_wybor, admin, _, ADMIN_MENU_FLAG) menu_setprop(menu_wybor, MPROP_NUMBER_COLOR, "\r"); menu_display(id, menu_wybor) if(get_pcvar_num(p_exp_boty) == 1) { if(is_user_bot(id)) { if(punkty_gracza[id] > 0) MenuPrzydzielPunkty(id) else if(punkty_gracza[id] <= 0 && ultra_punkty_gracza[id] > 0) MenuPrzydzielUltraPunkty(id) } } } public MenuWybor_CallBack(id, menu_wybor, item_wybor) { if((item_wybor == 0 && punkty_gracza[id] <= 0) || (item_wybor == 1 && ultra_punkty_gracza[id] <= 0)) return ITEM_DISABLED if(item_wybor == 3 && poziom_gracza[id] == 0) return ITEM_DISABLED if(item_wybor == 7 && exp_get_user_mission(id) == 0) return ITEM_DISABLED if(item_wybor == 9 && !(get_user_flags(id) & ADMIN_MENU_FLAG)) return ITEM_DISABLED return ITEM_ENABLED } public MenuWybor_Wybieranie(id, menu_wybor, item_wybor) { if(item_wybor == MENU_EXIT) { menu_destroy(menu_wybor) return PLUGIN_CONTINUE } switch(item_wybor) { case 0: MenuPrzydzielPunkty(id) case 1: MenuPrzydzielUltraPunkty(id) case 2: MotdStatystyki(id) case 3: MenuResetWybor(id) case 4: client_cmd(id, "say /sklep") case 5: client_cmd(id, "say /misja") case 6: client_cmd(id, "say /opisy") case 7: client_cmd(id, "say /anuluj") case 8: client_cmd(id, "say /ach") case 9: MenuAdmin(id) } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } return PLUGIN_CONTINUE } public MotdStatystyki(id) { new txt[2500], Len = 0 new punkty = (zycie_gracza[id]+szybkosc_gracza[id]+grawitacja_gracza[id]+kasa_gracza[id]+punkty_gracza[id]) new ultrapunkty = (niewidzialnosc_gracza[id]+obrazenia_gracza[id]+skoki_gracza[id]+longjump_gracza[id]+ultra_punkty_gracza[id]) new ileMa = floatround(nowa_szybkosc_gracza[id]), ilePotrzeba = 105, ilePotrzebaBylo = 0; new Float:nszybkosc = 0.0; new ile_ma = floatround(nowa_grawitacja_gracza[id]),ile_potrzeba = 800, ile_potrzeba_bylo = 0; new Float:ngrawitacja = 0.0; new ileMa1 = nowa_niewidzialnosc_gracza[id], ilePotrzeba1 = 255, ilePotrzebaBylo1 = 0; new Float:nniewidzialnosc = 0.0; nniewidzialnosc = (float((ileMa1 - ilePotrzebaBylo1)) / float((ilePotrzeba1 - ilePotrzebaBylo1))) * 100.0; nszybkosc = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0; ngrawitacja = (float((ile_ma - ile_potrzeba_bylo)) / float((ile_potrzeba - ile_potrzeba_bylo))) * 100.0; Len += format(txt, (sizeof txt - 1) - Len, "<body bgcolor=^"#000000^"><p align=^"center^"><font size=^"5^"><b>%L :</b></font></p align><font color=^"purple^"><font size=^"5^"><b>%L<p>", id, "STATS_STATS", id, "STATS_EXP", get_user_exp(id), get_user_nextlevelexp(id)) Len += format(txt[Len], (sizeof txt - 1) - Len, "<font color=^"brown^">%L<p><font color=^"yellow^">%L<p><font color=^"blue^">%L", id, "STATS_MISSING_EXP", (get_user_nextlevelexp(id)-get_user_exp(id)), id, "STATS_LEVEL_MONETS", poziom_gracza[id], monety_gracza[id], id, "STATS_POINTS_UPOINTS", punkty, ultrapunkty) Len += format(txt[Len], (sizeof txt - 1) - Len, "<font color=^"pink^"><p align=^"center^"><font size=^"5^"><b>%L </b></font></p align><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L ", id, "POINTS", id, "STATS_HEALTH", id, "STATS_HEALTH_1", zycie_gracza[id], nowe_zycie_gracza[id]) Len += format(txt[Len], (sizeof txt - 1) - Len, "<p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L <p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L ", id, "STATS_SPEED", id, "STATS_SPEED_1", szybkosc_gracza[id], nszybkosc, id, "STATS_GRAVITY", id, "STATS_GRAVITY_1", grawitacja_gracza[id], ngrawitacja) Len += format(txt[Len], (sizeof txt - 1) - Len, "<p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L <font color=^"pink^"><p align=^"center^"><font size=^"5^"><b>%L</b></font></p align>", id, "STATS_MONEY", id, "STATS_MONEY_1", kasa_gracza[id], nowa_kasa_gracza[id], id, "ULTRA_POINTS") Len += format(txt[Len], (sizeof txt - 1) - Len, "<p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L <p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L ", id, "STATS_INVISIBLE", id, "STATS_INVISIBLE_1", niewidzialnosc_gracza[id], nniewidzialnosc, id, "STATS_DAMAGE", id, "STATS_DAMAGE_1", obrazenia_gracza[id], nowe_obrazenia_gracza[id]) Len += format(txt[Len], (sizeof txt - 1) - Len, "<p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L <p><font size=^"4^"><font color=^"#CBCBCB^">%L <font color=^"red^">%L ", id, "STATS_JUMPS", id, "STATS_JUMPS_1", skoki_gracza[id], nowe_skoki_gracza[id], id, "STATS_LONG_JUMP", id, "STATS_LONG_JUMP_1", longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id]) show_motd(id, txt) } /////////////////////////////////////////////////////// public MenuPrzydzielUltraPunkty(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE client_cmd(id, "spk %s", menu_on) new uprzydziel[128], niewidzialnosc[128], obrazenia[128], skoki[128], longjump[150] new ileMa = nowa_niewidzialnosc_gracza[id], ilePotrzeba = 255, ilePotrzebaBylo = 0; new Float:fProcent = 0.0; fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0; formatex(uprzydziel, 127, "%L", id, "MENU_ADD_UPOINTS_TITLE", ultra_punkty_gracza[id]) formatex(niewidzialnosc, 127, "%L", id, "MENU_ADD_UPOINTS_INVISIBLE", niewidzialnosc_gracza[id], fProcent) formatex(obrazenia, 127, "%L",id, "MENU_ADD_UPOINTS_DAMAGE", obrazenia_gracza[id], nowe_obrazenia_gracza[id]) formatex(skoki, 127, "%L", id, "MENU_ADD_UPOINTS_JUMPS", skoki_gracza[id], nowe_skoki_gracza[id]) formatex(longjump, 149, "%L", id, "MENU_ADD_UPOINTS_LONG_JUMP", longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id]) new menu_upunkty = menu_create(uprzydziel, "MenuPrzydzielUltraPunkty_Wb") new menu_upunkty_cb = menu_makecallback("MenuPrzydzielUltraPunkty_CB") menu_additem(menu_upunkty, niewidzialnosc, _, _, menu_upunkty_cb) menu_additem(menu_upunkty, obrazenia, _, _, menu_upunkty_cb) menu_additem(menu_upunkty, skoki , _, _, menu_upunkty_cb) menu_additem(menu_upunkty, longjump , _, _, menu_upunkty_cb) menu_setprop(menu_upunkty, MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu_upunkty) if(get_pcvar_num(p_exp_boty) == 1) { if(is_user_bot(id)) { MenuPrzydzielUltraPunkty_Wb(id, menu_upunkty, random_num(0, 3)) } } return PLUGIN_CONTINUE } public MenuPrzydzielUltraPunkty_CB(id, menu_upunkty, item_upunkty) { if((item_upunkty == 0 && niewidzialnosc_gracza[id] >= MAX_ULTRA_PUNKTOW) || (item_upunkty == 1 && obrazenia_gracza[id] >= MAX_ULTRA_PUNKTOW) || (item_upunkty == 2 && skoki_gracza[id] >= MAX_ULTRA_PUNKTOW) || (item_upunkty == 3 && longjump_gracza[id] >= MAX_ULTRA_PUNKTOW)) return ITEM_DISABLED return ITEM_ENABLED } public MenuPrzydzielUltraPunkty_Wb(id, menu_upunkty, item_upunkty) { if(item_upunkty == MENU_EXIT || !is_user_connected(id)) { if(punkty_gracza[id] > 0) MenuWybor(id) menu_destroy(menu_upunkty) return PLUGIN_CONTINUE } switch(item_upunkty) { case 0: { ultra_punkty_gracza[id]-- niewidzialnosc_gracza[id]++ nowa_niewidzialnosc_gracza[id] = niewidzialnosc_gracza[id]*MNOZNIK_NIEWIDZIALNOSCI } case 1: { ultra_punkty_gracza[id]-- obrazenia_gracza[id]++ nowe_obrazenia_gracza[id] = obrazenia_gracza[id]*MNOZNIK_OBRAZEN } case 2: { ultra_punkty_gracza[id]-- skoki_gracza[id]++ nowe_skoki_gracza[id] = skoki_gracza[id]*MNOZNIK_SKOKOW } case 3: { ultra_punkty_gracza[id]-- longjump_gracza[id]++ nowy_longujmp_gracza[id] = longjump_gracza[id]*MNOZNIK_LONGJUMPA longjump_s_czas[id] = (14-longjump_gracza[id]*2) } } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } if(ultra_punkty_gracza[id] > 0) MenuPrzydzielUltraPunkty(id) else if(punkty_gracza[id] > 0 ) MenuWybor(id) return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public MenuPrzydzielPunkty(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE client_cmd(id, "spk %s", menu_on) new przydziel[33], hp[64], szybkosc[64], grawitacja[64], kasa[64], hp1[64], sz[64], gr[64], ka[64]; new ileMa = floatround(nowa_szybkosc_gracza[id]), ilePotrzeba = 105, ilePotrzebaBylo = 0; new Float:fProcent = 0.0; new ile_ma = floatround(nowa_grawitacja_gracza[id]) new ile_potrzeba = 800 new ile_potrzeba_bylo = 0; new Float:procent = 0.0; fProcent = (float((ileMa - ilePotrzebaBylo)) / float((ilePotrzeba - ilePotrzebaBylo))) * 100.0; procent = (float((ile_ma - ile_potrzeba_bylo)) / float((ile_potrzeba - ile_potrzeba_bylo))) * 100.0; formatex(przydziel, 32, "%L", id, "MENU_ADD_POINTS_TITLE", punkty_gracza[id]) formatex(hp, 63, "%L", id, "MENU_ADD_POINTS_HEALTH", zycie_gracza[id], nowe_zycie_gracza[id]) formatex(szybkosc, 63, "%L", id, "MENU_ADD_POINTS_SPEED", szybkosc_gracza[id], fProcent) formatex(grawitacja, 63, "%L", id, "MENU_ADD_POINTS_GRAVITY", grawitacja_gracza[id], procent) formatex(kasa, 63, "%L", id, "MENU_ADD_POINTS_MONEY", kasa_gracza[id], nowa_kasa_gracza[id]) formatex(hp1, 63, "%L", id, "MENU_ADD_POINTS_HEALTH_5") formatex(sz, 63, "%L", id, "MENU_ADD_POINTS_SPEED_5") formatex(gr, 63, "%L", id, "MENU_ADD_POINTS_GRAVITY_5") formatex(ka, 63, "%L", id, "MENU_ADD_POINTS_MONEY_5") new menu_punkty_cb = menu_makecallback("MenuPrzydzielPunkty_CallBack") new menu_punkty = menu_create(przydziel, "MenuPrzydzielPunkty_Wybieranie") menu_additem(menu_punkty, hp, _, _, menu_punkty_cb) menu_additem(menu_punkty, szybkosc, _, _, menu_punkty_cb) menu_additem(menu_punkty, grawitacja, _, _, menu_punkty_cb) menu_additem(menu_punkty, kasa, _, _, menu_punkty_cb) menu_additem(menu_punkty, hp1, _, _, menu_punkty_cb) menu_additem(menu_punkty, sz, _, _, menu_punkty_cb) menu_additem(menu_punkty, gr, _, _, menu_punkty_cb) menu_additem(menu_punkty, ka, _, _, menu_punkty_cb) menu_setprop(menu_punkty, MPROP_NUMBER_COLOR,"\r"); menu_display(id, menu_punkty) if(get_pcvar_num(p_exp_boty) == 1) { if(is_user_bot(id)) { if(punkty_gracza[id] > 0) MenuPrzydzielPunkty_Wybieranie(id, menu_punkty, random_num(0, 3)) else if(punkty_gracza[id] <= 0 && ultra_punkty_gracza[id] > 0) MenuPrzydzielUltraPunkty(id) } } return PLUGIN_CONTINUE } public MenuPrzydzielPunkty_CallBack(id, menu_punkty, item_punkty) { if((item_punkty == 0 && zycie_gracza[id] >= MAX_PUNKTOW) || (item_punkty == 1 && szybkosc_gracza[id] >= MAX_PUNKTOW) || (item_punkty == 2 && grawitacja_gracza[id] >= MAX_PUNKTOW) || (item_punkty == 3 && kasa_gracza[id] >= MAX_PUNKTOW)) { return ITEM_DISABLED } if((item_punkty == 4 && zycie_gracza[id]+5 >= MAX_PUNKTOW) ||(item_punkty == 5 && szybkosc_gracza[id]+5 >= MAX_PUNKTOW) ||(item_punkty == 6 && grawitacja_gracza[id]+5 >= MAX_PUNKTOW) ||(item_punkty == 7 && kasa_gracza[id]+5 >= MAX_PUNKTOW)) return ITEM_DISABLED for(new i = 4 ; i < 8 ;i++) { if(item_punkty == i && punkty_gracza[id] < 5) return ITEM_DISABLED } return ITEM_ENABLED } /////////////////////////////////////////////////////// public plugin_cfg() { server_cmd("sv_maxspeed 9999") plik = nvault_open("ExpMod") if(plik != INVALID_HANDLE) nvault_prune(plik , 0 , get_systime() - ( 14 * 86400 ) ); // 14 - liczba dni po których usuwa stare dane ( 2 tyg ) else log_amx("Nie mozna otworzyć pliku nvault: ^"ExpMod^"") } /////////////////////////////////////////////////////// public CmdStart(id, uc_handle) { if(!is_user_alive(id) || !is_user_connected(id)) return FMRES_IGNORED; new button = get_uc(uc_handle, UC_Buttons); new oldbutton = get_user_oldbutton(id); new flags = get_entity_flags(id); // Skoki if(skoki_gracza[id] > 0) { if(is_user_bot(id) && get_pcvar_num(p_exp_boty) == 1 && (button & IN_JUMP)) set_task(0.4, "BotySkocz") if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && nowe_skoki_gracza[id] > 0) { nowe_skoki_gracza[id]--; if(nowe_skoki_gracza[id] > 0) client_print(id, print_center, "%L", id, "MSG_USE_SKILL_JUMP", nowe_skoki_gracza[id]) new Float:velocity[3]; entity_get_vector(id,EV_VEC_velocity,velocity); velocity[2] = random_float(265.0,285.0); entity_set_vector(id,EV_VEC_velocity,velocity); } else if(flags & FL_ONGROUND) { nowe_skoki_gracza[id] = skoki_gracza[id]*MNOZNIK_SKOKOW } } //Long Jump if(longjump_gracza[id] > 0 && (button & IN_JUMP) && (button & IN_DUCK) && get_gametime() > (longjump_czas[id]+float((longjump_s_czas[id]))) && !ft) { longjump_czas[id] = floatround(get_gametime()) client_print(id, print_center, "%L", id, "MSG_USE_SKILL_LONG_JUMP", longjump_s_czas[id]) new Float:velocity[3] VelocityByAim(id, 700, velocity); velocity[2] = (162.5+float(nowy_longujmp_gracza[id])) entity_set_vector(id, EV_VEC_velocity, velocity); } return FMRES_IGNORED; } public BotySkocz(id) { if(is_user_bot(id)) { client_cmd(id, "-jump") client_cmd(id, "+jump") } } /////////////////////////////////////////////////////// public MenuPrzydzielPunkty_Wybieranie(id, menu_punkty, item_punkty) { if(item_punkty == MENU_EXIT || !is_user_connected(id)) { if(ultra_punkty_gracza[id] > 0) MenuPrzydzielUltraPunkty(id) menu_destroy(menu_punkty) return PLUGIN_CONTINUE } switch(item_punkty) { case 0: { punkty_gracza[id]-- zycie_gracza[id]++ nowe_zycie_gracza[id] = zycie_gracza[id]*MNOZNIK_ZYCIA } case 1: { punkty_gracza[id]-- szybkosc_gracza[id]++ nowa_szybkosc_gracza[id] = szybkosc_gracza[id]*MNOZNIK_SZYBKOSCI } case 2: { punkty_gracza[id]-- grawitacja_gracza[id]++ nowa_grawitacja_gracza[id] = grawitacja_gracza[id]*MNOZNIK_GRAWITACJI } case 3: { punkty_gracza[id]-- kasa_gracza[id]++ nowa_kasa_gracza[id] = kasa_gracza[id]*MNOZNIK_KASY } case 4: { punkty_gracza[id]-=5 zycie_gracza[id]+=5 nowe_zycie_gracza[id] = zycie_gracza[id]*MNOZNIK_ZYCIA } case 5: { punkty_gracza[id]-=5 szybkosc_gracza[id]+=5 nowa_szybkosc_gracza[id] = szybkosc_gracza[id]*MNOZNIK_SZYBKOSCI } case 6: { punkty_gracza[id]-=5 grawitacja_gracza[id]+=5 nowa_grawitacja_gracza[id] = grawitacja_gracza[id]*MNOZNIK_GRAWITACJI } case 7: { punkty_gracza[id]-=5 kasa_gracza[id]+=5 nowa_kasa_gracza[id] = kasa_gracza[id]*MNOZNIK_KASY } } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } if(punkty_gracza[id] > 0) MenuPrzydzielPunkty(id) else if(ultra_punkty_gracza[id] > 0 ) MenuWybor(id) return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits) { if(!is_user_alive(this) || !is_user_connected(this) || !is_user_connected(idattacker)) return HAM_IGNORED //new zycie = get_user_health(this); //new bron = get_user_weapon(idattacker); if(obrazenia_gracza[idattacker] > 0) damage+=nowe_obrazenia_gracza[idattacker] SetHamParamFloat(4, damage); return HAM_IGNORED; } new ids[33]; public MenuAdmin(id) { new title[64]; formatex(title, 63, "%L", id, "MENU_ADMIN_TITLE") new menu = menu_create(title, "MenuAdmin1") new nick[33] new player; for(new i = 1; i < 33;i++) { if(!is_user_connected(i) || is_user_hltv(i)) continue; ids[player] = i; player ++; get_user_name(i, nick, 32) menu_additem(menu, nick) } menu_display(id, menu) } public MenuAdmin1(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } switch(random_num(1,2)) { case 1:client_cmd(id, "spk %s", klik) case 2:client_cmd(id, "spk %s", klik2) } id_am = ids[item]; new title[256], nick[33], misja[64] new a1[64], a2[64], a3[64], a4[64], a5[64], a6[64], a7[64], a8[64]; exp_get_mission_name(exp_get_user_mission(id_am), misja, 63) get_user_name(id_am, nick, 32) formatex(title, 256, "%L", id, "MENU_ADMIN_TITLE1", nick, poziom_gracza[id_am], doswiadczenie_gracza[id_am], monety_gracza[id_am], misja) formatex(a1, 63, "%L", id, "MENU_ADMIN_ADD_LEVEL") formatex(a2, 63, "%L", id, "MENU_ADMIN_ADD_EXP") formatex(a3, 63, "%L", id, "MENU_ADMIN_ADD_MONETS") formatex(a4, 63, "%L", id, "MENU_ADMIN_SET_LEVEL") formatex(a5, 63, "%L", id, "MENU_ADMIN_SET_EXP") formatex(a6, 63, "%L", id, "MENU_ADMIN_SET_MONETS") formatex(a7, 63, "%L", id, "MENU_ADMIN_MANAGING_MISSIONS") formatex(a8, 63, "%L", id, "MENU_ADMIN_RELOAD_CFG") new menus = menu_create(title, "MenuAdmin2") menu_additem(menus, a1) menu_additem(menus, a2) menu_additem(menus, a3) menu_additem(menus, a4) menu_additem(menus, a5) menu_additem(menus, a6) menu_additem(menus, a7) menu_additem(menus, a8) menu_display(id, menus) return PLUGIN_CONTINUE } public MenuAdmin2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } switch(item) { case 0:MenuAdminDodajPoziom(id) case 1:MenuAdminDodajExp(id) case 2:MenuAdminDodajMonety(id) case 3:MenuAdminUstawPoziom(id) case 4:MenuAdminUstawExp(id) case 5:MenuAdminUstawMonety(id) case 6:MenuAdminZarzadzajMisjami(id) case 7: { WczytajUstawienia() ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MENU_ADMIN_RELOAD_CFG_SUCCES") } } return PLUGIN_CONTINUE } new id_misji; public MenuAdminZarzadzajMisjami(id) { new title[64] formatex(title, 63, "%L", id, "MENU_ADMIN_SELECT_MISSION") new menu = menu_create(title, "MenuAdminZarzadzajMisjami1"), misja[64] for(new i = 1; i <= exp_get_missions_numbers(); i++) { exp_get_mission_name(i, misja, 63) menu_additem(menu, misja) } menu_display(id, menu) } public MenuAdminZarzadzajMisjami1(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } item++ id_misji = item; new misja[64], title[128], nick[33], usta[64], odblo[64], anulo[64], zabloko[64], anulizablo[64] formatex(usta, 63, "%L", id, "MENU_ADMIN_MISSION_SET") formatex(odblo, 63, "%L", id, "MENU_ADMIN_MISSION_UNLOCK") formatex(anulo, 63, "%L", id, "MENU_ADMIN_MISSION_CANCEL") formatex(zabloko, 63, "%L", id, "MENU_ADMIN_MISSION_LOCK") formatex(anulizablo, 63, "%L", id, "MENU_ADMIN_MISSION_CANCEL_AND_LOCK") get_user_name(id_am, nick, 32) exp_get_mission_name(item, misja, 63) formatex(title, 128, "Co chcesz zrobic z misja:^n\r%s\w, dla gracza:^n\r%s^n\y?", misja, nick) new menu = menu_create(title, "MenuAdminZarzadzajMisjami2"); new menu_cb = menu_makecallback("MenuAdminZarzadzajMisjamiCb"); menu_additem(menu, usta, _, _, menu_cb) menu_additem(menu, odblo, _, _, menu_cb) menu_additem(menu, anulo, _, _, menu_cb) menu_additem(menu, zabloko, _, _, menu_cb) menu_additem(menu, anulizablo, _, _, menu_cb) menu_display(id, menu) return PLUGIN_CONTINUE } public MenuAdminZarzadzajMisjamiCb(id, menu, item) { if(item == 0 && exp_get_user_mission(id_am) == id_misji) return ITEM_DISABLED if(item == 1 && exp_get_mission_status(id_am, id_misji) == 0) return ITEM_DISABLED if(item == 2 && exp_get_user_mission(id_am) != id_misji) return ITEM_DISABLED if(item == 3 && exp_get_mission_status(id_am, id_misji) == 1) return ITEM_DISABLED if(item == 4 && exp_get_user_mission(id_am) != id_misji) return ITEM_DISABLED return ITEM_ENABLED } public MenuAdminZarzadzajMisjami2(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } new nick[33], misja[64] get_user_name(id, adminek, 32) get_user_name(id_am, nick, 32) exp_get_mission_name(id_misji, misja, 63) if(item == 0) { exp_set_user_mission(id_am, id_misji, 0) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_SET_MISSION", adminek, misja, nick) } if(item == 1) { exp_set_mission_status(id_am, id_misji, 0) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_UNLOCK_MISSION", adminek, misja, nick) } if(item == 2) { exp_set_user_mission(id_am, 0, 0) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_CANCEL_MISSION", adminek, misja, nick) } if(item == 3) { exp_set_mission_status(id_am, id_misji, 1) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_LOCK_MISSION", adminek, misja, nick) } if(item == 4) { exp_set_mission_status(id_am, id_misji, 1) exp_set_user_mission(id_am, 0, 0) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_CANCEL_AND_LOCK_MISSION", adminek, misja, nick) } return PLUGIN_CONTINUE } public MenuAdminDodajPoziom(id) { get_user_name(id, adminek, 32) client_cmd(id, "messagemode dodaj_lvl"); } public dodaj_lvl() { new gracz[33] get_user_name(id_am, gracz, 32) new liczba_lvl[10] read_args(liczba_lvl, 9) remove_quotes(liczba_lvl) if(str_to_num(liczba_lvl) > 200) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_HIGH_ERROR") return PLUGIN_CONTINUE } if(str_to_num(liczba_lvl) < 1) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } poziom_gracza[id_am] += str_to_num(liczba_lvl) doswiadczenie_gracza[id_am] = POZIOM[poziom_gracza[id_am]] Zresetuj(id_am, 1, 1, 1) SprawdzExp(id_am) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_ADD_LEVEL", adminek, str_to_num(liczba_lvl), gracz) return PLUGIN_CONTINUE } public MenuAdminDodajExp(id) { get_user_name(id, adminek, 32) console_cmd(id, "messagemode dodaj_exp"); } public dodaj_exp() { new gracz[33] get_user_name(id_am, gracz, 32) new liczba_exp[10] read_args(liczba_exp, 9) remove_quotes(liczba_exp) if(doswiadczenie_gracza[id_am]+str_to_num(liczba_exp) > POZIOM[199]) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_HIGH_ERROR") return PLUGIN_CONTINUE } else if(str_to_num(liczba_exp) <= 0) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } doswiadczenie_gracza[id_am] += str_to_num(liczba_exp) Zresetuj(id_am, 1, 1, 1) SprawdzExp(id_am) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_ADD_EXP", adminek, str_to_num(liczba_exp), gracz) return PLUGIN_CONTINUE } public MenuAdminDodajMonety(id) { get_user_name(id, adminek, 32) console_cmd(id, "messagemode dodaj_monety"); } public dodaj_monety() { new gracz[33] get_user_name(id_am, gracz, 32) new liczba_monet[10] read_args(liczba_monet, 9) remove_quotes(liczba_monet) if(str_to_num(liczba_monet) <= 0) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } monety_gracza[id_am] += str_to_num(liczba_monet) SprawdzExp(id_am) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_ADD_MONETS", adminek, str_to_num(liczba_monet), gracz) return PLUGIN_CONTINUE } public MenuAdminUstawMonety(id) { get_user_name(id, adminek, 32) console_cmd(id, "messagemode ustaw_monety"); } public ustaw_monety() { new gracz[33] get_user_name(id_am, gracz, 32) new liczba_monet[10] read_args(liczba_monet, 9) remove_quotes(liczba_monet) if(str_to_num(liczba_monet) < 0) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } monety_gracza[id_am] = str_to_num(liczba_monet) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_SET_MONETS", adminek, str_to_num(liczba_monet), gracz) return PLUGIN_CONTINUE } public MenuAdminUstawExp(id) { get_user_name(id, adminek, 32) console_cmd(id, "messagemode ustaw_exp"); } public ustaw_exp() { new gracz[33] get_user_name(id_am, gracz, 32) new liczba_exp[15] read_args(liczba_exp, 14) remove_quotes(liczba_exp) if(str_to_num(liczba_exp) > POZIOM[199]) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_HIGH_ERROR") return PLUGIN_CONTINUE } if(str_to_num(liczba_exp) < 1) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } doswiadczenie_gracza[id_am] = str_to_num(liczba_exp) Zresetuj(id_am, 1, 1, 1) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_SET_EXP", adminek, str_to_num(liczba_exp), gracz) SprawdzExp(id_am) return PLUGIN_CONTINUE } public MenuAdminUstawPoziom(id) { get_user_name(id, adminek, 32) console_cmd(id, "messagemode ustaw_lvl"); } public ustaw_lvl() { new lvl[10] read_args(lvl, 9) remove_quotes(lvl) new gracz[33] get_user_name(id_am, gracz, 32) new str = str_to_num(lvl) if(str > 199) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_HIGH_ERROR") return PLUGIN_CONTINUE } if(str < 1) { ColorChat(get_user_index(adminek), GREEN, "%s^x01 %L", prefix, adminek, "MSG_ADMIN_TOO_LOW_ERROR") return PLUGIN_CONTINUE } poziom_gracza[id_am] = str_to_num(lvl) doswiadczenie_gracza[id_am] = POZIOM[poziom_gracza[id_am]] Zresetuj(id_am, 1, 1, 1) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_ADMIN_SET_LEVEL", adminek, str, gracz) return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public Zresetuj(index, punkty, upunkty, monety) { if(punkty) { punkty_gracza[index] = poziom_gracza[index]*PUNKTY_ZA_LEVEL zycie_gracza[index] = 0 nowe_zycie_gracza[index] = 0 szybkosc_gracza[index] = 0 nowa_szybkosc_gracza[index] = 0.0 grawitacja_gracza[index] = 0 nowa_grawitacja_gracza[index] = 0.0 kasa_gracza[index] = 0 nowa_kasa_gracza[index] = 0 } if(upunkty) { ultra_punkty_gracza[index] = floatround(float(poziom_gracza[index]/10), floatround_floor) niewidzialnosc_gracza[index] = 0 nowa_niewidzialnosc_gracza[index] = 0 obrazenia_gracza[index] = 0 nowe_obrazenia_gracza[index] = 0 skoki_gracza[index] = 0 nowe_skoki_gracza[index] = 0 longjump_gracza[index] = 0 nowy_longujmp_gracza[index] = 0 longjump_s_czas[index] = 0 } if(monety) monety_gracza[index] = 0 } public DeathMsg() { new atakujacy = read_data(1); new obronca = read_data(2); new hs = read_data(3) new czy[33] if(!is_user_connected(atakujacy) || !is_user_connected(obronca) || get_playersnum() < get_pcvar_num(p_exp_of_players)) return PLUGIN_CONTINUE if(atakujacy != obronca && is_user_connected(atakujacy) && get_user_team(atakujacy) != get_user_team(obronca)) { if(hs > 0) { czy[atakujacy]++ } ///////////////////////PO HEADSHOCIE//////////////////////// if(czy[atakujacy] != 1) { if(get_user_flags(atakujacy) & VIP_FLAG) { doswiadczenie_gracza[atakujacy]+=get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_vip_extra_exp) set_hudmessage(255, 255, 255, -1.0, 0.62, 0, 6.0, 2.0) show_hudmessage(atakujacy, "+%d exp", get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_vip_extra_exp)) } else { doswiadczenie_gracza[atakujacy]+=get_pcvar_num(p_exp_zabojstwo) set_hudmessage(255, 255, 255, -1.0, 0.62, 0, 6.0, 2.0) show_hudmessage(atakujacy, "+%d exp", get_pcvar_num(p_exp_zabojstwo)) } //if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) //tutorMake(atakujacy, TUTOR_RED, 1.5, "Zabiles wroga") } else if(czy[atakujacy] == 1) { if(get_user_flags(atakujacy) & VIP_FLAG) { set_hudmessage(255, 255, 255, -1.0, 0.62, 0, 6.0, 2.0) show_hudmessage(atakujacy, "+%d exp^nHEADSHOT", get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_headshot)+get_pcvar_num(p_exp_vip_extra_hs_exp)) doswiadczenie_gracza[atakujacy]+=(get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_headshot)+get_pcvar_num(p_exp_vip_extra_hs_exp)) } else { set_hudmessage(255, 255, 255, -1.0, 0.62, 0, 6.0, 2.0) show_hudmessage(atakujacy, "+%d exp^nHEADSHOT", get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_headshot)) doswiadczenie_gracza[atakujacy]+=(get_pcvar_num(p_exp_zabojstwo)+get_pcvar_num(p_exp_headshot)) } czy[atakujacy] = 0 //if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) //tutorMake(atakujacy, TUTOR_RED, 1.5, "Zabiles wroga Headshotem") } if(get_user_flags(atakujacy) & VIP_FLAG) monety_gracza[atakujacy]+=(1+get_pcvar_num(p_exp_vip_extra_monets)) else monety_gracza[atakujacy]++ SprawdzExp(atakujacy) ZapiszExp(atakujacy) if(punkty_gracza[obronca] > 0 || ultra_punkty_gracza[obronca] > 0) MenuWybor(obronca) ZapiszExp(obronca) } return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public ZapiszExp(id) { if(doswiadczenie_gracza[id] <= 250) return; get_user_name(id, nazwa_gracza, 32) new dane[256] plik = nvault_open("ExpMod") formatex(dane, 255, "%i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i %i", doswiadczenie_gracza[id], poziom_gracza[id], punkty_gracza[id], ultra_punkty_gracza[id], zycie_gracza[id], nowe_zycie_gracza[id], niewidzialnosc_gracza[id], nowa_niewidzialnosc_gracza[id], obrazenia_gracza[id], nowe_obrazenia_gracza[id], szybkosc_gracza[id], floatround(nowa_szybkosc_gracza[id]), grawitacja_gracza[id], floatround(nowa_grawitacja_gracza[id]), kasa_gracza[id], nowa_kasa_gracza[id], skoki_gracza[id], nowe_skoki_gracza[id], longjump_gracza[id], nowy_longujmp_gracza[id], longjump_s_czas[id], monety_gracza[id]) nvault_set(plik, nazwa_gracza, dane) nvault_close(plik) } /////////////////////////////////////////////////////// public WczytajExp(id) { get_user_name(id, nazwa_gracza, 32) new dane[256] plik = nvault_open("ExpMod") if(nvault_get(plik, nazwa_gracza, dane, 255)) { if(!is_user_bot(id)) nvault_touch(plik, nazwa_gracza) ; new dg[16], pg[16], pkt[16], upkt[16], hp[16], nhp[16], ng[16], nng[16], og[16], nog[16], sg[16], nsg[16], gg[16], ngg[16], kg[16], nkg[16], skokig[16], noweskg[16], lg[16], nlg[16], lgsc[16], mg[16] parse(dane, dg, 15, pg, 15, pkt, 15, upkt, 15, hp, 15, nhp, 15, ng, 15, nng, 15, og, 15, nog, 15, sg, 15, nsg, 15, gg, 15, ngg, 15, kg , 15, nkg, 15, skokig, 15, noweskg, 15, lg, 15, nlg, 15, lgsc, 15, mg, 15) doswiadczenie_gracza[id] = str_to_num(dg) poziom_gracza[id] = str_to_num(pg) punkty_gracza[id] = str_to_num(pkt) ultra_punkty_gracza[id] = str_to_num(upkt) monety_gracza[id] = str_to_num(mg) zycie_gracza[id] = str_to_num(hp) nowe_zycie_gracza[id] = str_to_num(nhp) niewidzialnosc_gracza[id] = str_to_num(ng) nowa_niewidzialnosc_gracza[id] = str_to_num(nng) obrazenia_gracza[id] = str_to_num(og) nowe_obrazenia_gracza[id] = str_to_num(nog) szybkosc_gracza[id] = str_to_num(sg) nowa_szybkosc_gracza[id] = float(str_to_num(nsg)) grawitacja_gracza[id] = str_to_num(gg) nowa_grawitacja_gracza[id] = float(str_to_num(ngg)) kasa_gracza[id] = str_to_num(kg) nowa_kasa_gracza[id] = str_to_num(nkg) skoki_gracza[id] = str_to_num(skokig) nowe_skoki_gracza[id] = str_to_num(noweskg) longjump_gracza[id] = str_to_num(lg) nowy_longujmp_gracza[id] = str_to_num(nlg) longjump_s_czas[id] = str_to_num(lgsc) } nvault_close(plik) } /////////////////////////////////////////////////////// public SprawdzExp(id) { if(!is_user_connected(id)) return PLUGIN_CONTINUE while(doswiadczenie_gracza[id] >= POZIOM[poziom_gracza[id]+1]) { punkty_gracza[id]+=PUNKTY_ZA_LEVEL poziom_gracza[id]++ if(get_user_flags(id) & VIP_FLAG) monety_gracza[id]+= (1+get_pcvar_num(p_exp_vip_extra_monets)) else monety_gracza[id]++ switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", level_up); case 2: client_cmd(id, "spk %s", level_up2); } set_hudmessage(255, 255, 255, -1.0, 0.4, 0, 6.0, 2.0) ShowSyncHudMsg(id, Message2, "%L", id, "MSG_LEVEL_UP", get_user_level(id)) if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) { ColorChat(id, GREEN, "%s^x01 %L.", prefix, id, "MSG_LEVEL_UP", get_user_level(id)) } if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_YELLOW, 5.0, "%L", id, "MSG_LEVEL_UP", poziom_gracza[id]) } if((get_user_level(id) % 10) == 0) ultra_punkty_gracza[id]++ get_user_name(id, nazwa_gracza, 32) if((poziom_gracza[id] % 50) == 0) { if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(0, GREEN, "%s^x01 %L", prefix, LANG_SERVER, "MSG_HIGH_LEVEL_EARNED", nazwa_gracza, poziom_gracza[id]) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(0, TUTOR_YELLOW, 5.0, "%L", LANG_SERVER, "MSG_HIGH_LEVEL_EARNED", nazwa_gracza, poziom_gracza[id]) } } if(is_user_bot(id) && get_pcvar_num(p_exp_boty) == 1) client_cmd(id, "say /przydziel") MenuWybor(id) ZapiszExp(id) } return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public Pokaz(id) { id -= TASK_HUD_INFO set_task(3.0, "Pokaz", id+TASK_HUD_INFO); if(!is_user_alive(id) && is_user_connected(id) && !is_user_bot(id)) { new cel = entity_get_int(id, EV_INT_iuser2) if(!cel) return PLUGIN_CONTINUE new ileMa2 = doswiadczenie_gracza[cel] new ilePotrzeba2 = POZIOM[poziom_gracza[cel]+1] new ilePotrzebaBylo2 if(poziom_gracza[cel] > 0) ilePotrzebaBylo2 = get_user_previouslevelexp(cel) else if(poziom_gracza[cel] <= 0) ilePotrzebaBylo2 = 0 new Float:dos_cel = 0.0 dos_cel = (float((ileMa2 - ilePotrzebaBylo2)) / float((ilePotrzeba2 - ilePotrzebaBylo2))) * 100.0; set_hudmessage(255, 255, 255, 0.56, 0.62, 0, 6.0, 3.1) ShowSyncHudMsg(id, Message4, "%L : %i / %i | %0.1f%%^n%L : %i ^n%L : %i", id, "EXP", doswiadczenie_gracza[cel], POZIOM[poziom_gracza[cel]+1], dos_cel, id, "LEVEL", poziom_gracza[cel], id, "HEALTH", get_user_health(cel)) if(get_pcvar_num(p_exp_hud_level) == 3 || get_pcvar_num(p_exp_hud_level) == 2) { set_hudmessage(127, 40, 255, 0.70, 0.81, 0, 6.0, 3.1) ShowSyncHudMsg(id, Message3, "^n%d -> %d <- %d^n", poziom_gracza[cel]-1, poziom_gracza[cel], poziom_gracza[cel]+1) } } else if(is_user_alive(id) && is_user_connected(id) && !is_user_bot(id)) { new ileMa3 = doswiadczenie_gracza[id] new ilePotrzeba3 = POZIOM[poziom_gracza[id]+1] new ilePotrzebaBylo3 if(poziom_gracza[id] > 0) ilePotrzebaBylo3 = POZIOM[poziom_gracza[id]-1] else if(poziom_gracza[id] <= 0) ilePotrzebaBylo3 = 0 new Float:dos = 0.0 dos = (float((ileMa3 - ilePotrzebaBylo3)) / float((ilePotrzeba3 - ilePotrzebaBylo3))) * 100.0; set_hudmessage(255, 255, 56, 0.0, 0.18, 0, 6.0, 3.1) ShowSyncHudMsg(id, Message4, "[%L : %i / %i | %0.1f%%]^n[%L : %i]^n[%L : %i]^n[%L : %i]", id, "EXP", doswiadczenie_gracza[id], POZIOM[poziom_gracza[id]+1], dos, id, "LEVEL", poziom_gracza[id], id, "HEALTH", get_user_health(id), id, "MONETS", monety_gracza[id]) if(get_pcvar_num(p_exp_hud_level) == 3 || get_pcvar_num(p_exp_hud_level) == 1) { set_hudmessage(127, 40, 255, -1.0, 0.01, 0, 6.0, 3.1) ShowSyncHudMsg(id, Message3, "^n%d -> %d <- %d^n", poziom_gracza[id]-1, poziom_gracza[id], poziom_gracza[id]+1) } } return PLUGIN_CONTINUE } public ZaapiszExp() { for(new i = 1 ; i < 33; i++) { if(!is_user_connected(i) || is_user_hltv(i)) continue; ZapiszExp(i) } } /////////////////////////////////////////////////////// public bomb_planted(podkladajacy) { if(!is_user_alive(podkladajacy) || !is_user_connected(podkladajacy) || get_playersnum() < get_pcvar_num(p_exp_of_players)) return PLUGIN_CONTINUE if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(podkladajacy, GREEN, "%s^x01 %L", prefix, podkladajacy, "MSG_BOMB_PLANTED", get_pcvar_num(p_exp_podlozenie_paki)) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) tutorMake(podkladajacy, TUTOR_GREEN, 5.0, "%L", podkladajacy, "MSG_BOMB_PLANTED", get_pcvar_num(p_exp_podlozenie_paki)) if(get_user_flags(podkladajacy) & VIP_FLAG) doswiadczenie_gracza[podkladajacy]+=get_pcvar_num(p_exp_podlozenie_paki)+get_pcvar_num(p_exp_vip_extra_exp) else doswiadczenie_gracza[podkladajacy]+=get_pcvar_num(p_exp_podlozenie_paki) return PLUGIN_CONTINUE } /////////////////////////////////////////////////////// public bomb_defused(rozbrajajacy) { if(!is_user_alive(rozbrajajacy) || !is_user_connected(rozbrajajacy) || get_playersnum() < get_pcvar_num(p_exp_of_players)) return PLUGIN_CONTINUE if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(rozbrajajacy, GREEN, "%s^x01 %L", prefix, rozbrajajacy, "MSG_DEFUSED_BOMB", get_pcvar_num(p_exp_rozbrojenie_paki)) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(rozbrajajacy, "spk %s", komunikat1) case 2: client_cmd(rozbrajajacy, "spk %s", komunikat2) } } tutorMake(rozbrajajacy, TUTOR_GREEN, 5.0, "%L", rozbrajajacy, "MSG_DEFUSED_BOMB", get_pcvar_num(p_exp_rozbrojenie_paki)) } if(get_user_flags(rozbrajajacy) & VIP_FLAG) doswiadczenie_gracza[rozbrajajacy]+=get_pcvar_num(p_exp_rozbrojenie_paki)+get_pcvar_num(p_exp_vip_extra_exp) else doswiadczenie_gracza[rozbrajajacy]+=get_pcvar_num(p_exp_rozbrojenie_paki) return PLUGIN_CONTINUE } public UratowanieHosta() { new id = get_loguser_index() if(get_pcvar_num(p_exp_infostyle) == 2 || get_pcvar_num(p_exp_infostyle) == 3) ColorChat(id, GREEN, "%s^x01 %L", prefix, id, "MSG_RESCUED_HOSTAGE", get_pcvar_num(p_exp_uratowanie_hosta)) if(get_user_flags(id) & VIP_FLAG) set_user_exp(id, get_user_exp(id)+get_pcvar_num(p_exp_uratowanie_hosta)+get_pcvar_num(p_exp_vip_extra_exp)) else set_user_exp(id, get_user_exp(id)+get_pcvar_num(p_exp_uratowanie_hosta) ) if(get_pcvar_num(p_exp_infostyle) == 1 || get_pcvar_num(p_exp_infostyle) == 3) { if(get_pcvar_num(p_exp_tutor_sound) == 1) { switch(random_num(1,2)) { case 1: client_cmd(id, "spk %s", komunikat1) case 2: client_cmd(id, "spk %s", komunikat2) } } tutorMake(id, TUTOR_GREEN, 5.0, "%L", id, "MSG_RESCUED_HOSTAGE", get_pcvar_num(p_exp_uratowanie_hosta)) } } /////////////////////////////////////////////////////// public messageScoreAttrib(iMsgID, iDest, iReceiver) { new iPlayer = get_msg_arg_int(1); if(is_user_connected(iPlayer) && (get_user_flags(iPlayer) & VIP_FLAG)) set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD); } /////////////////////////////////////////////////////// ///////////////////////NATYWY////////////////////////// /////////////////////////////////////////////////////// public get_user_level(index) { if(poziom_gracza[index]-1 < 0) return 0 return poziom_gracza[index] } public get_levelexp(level) return POZIOM[level] public get_user_exp(index) return doswiadczenie_gracza[index] public get_user_nextlevelexp(index) return POZIOM[poziom_gracza[index]+1] public get_user_previouslevelexp(index) { if(poziom_gracza[index]-1 < 0) return 0 return POZIOM[poziom_gracza[index]-1] } public set_user_level(index, level) poziom_gracza[index] = level public set_user_exp(index, exp) doswiadczenie_gracza[index] = exp /////////////////////////////////////////////////////// public set_user_invisible(index, value) set_user_rendering(index, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, value) public get_user_monets(index) return monety_gracza[index] public get_user_new_health(index) return nowe_zycie_gracza[index] //public get_user_new_speed(index) //return nowa_szybkosc_gracza[index] //public get_user_new_gravity(index) //return nowa_grawitacja_gracza[index] //public get_user_new_cash(index) //return nowa_kasa_gracza[index] public set_user_monets(index, ammount) return monety_gracza[index] = ammount stock get_loguser_index() { new loguser[80], name[32] read_logargv(0, loguser, 79) parse_loguser(loguser, name, 31) return get_user_index(name) } public is_user_vip(index) { if(get_user_flags(index) & VIP_FLAG) return 1; return 0 } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */Klasy:
/*================================================================================ ----------------------------------- -*- [BB] Default Zombie Classes -*- ----------------------------------- ~~~~~~~~~~~~~~~ - Description - ~~~~~~~~~~~~~~~ This plugin adds the default zombie classes from Zombie Plague into Base Builder. All credit belongs to MeRcyLeZZ. All classes have been balanced, but feel free to edit them if you are not satisfied. ================================================================================*/ #include <amxmodx> #include <basebuilder> #include <hamsandwich> #include <fun> #include <cstrike> /*================================================================================ [Plugin Customization] =================================================================================*/ // Classic Zombie Attributes new const zclass1_name[] = { "Classic Zombie" } new const zclass1_info[] = { "3000 HP 260 Speed 1.0 Gravity" } new const zclass1_model[] = { "bb_classic" } new const zclass1_clawmodel[] = { "v_bloodyhands" } const zclass1_health = 3000 const zclass1_speed = 260 const Float:zclass1_gravity = 1.0 const zclass1_adminflags = ADMIN_ALL // Fast Zombie Attributes new const zclass2_name[] = { "Fast Zombie" } new const zclass2_info[] = { "2500 HP 325 Speed 1.0 Gravity" } new const zclass2_model[] = { "bb_fast" } new const zclass2_clawmodel[] = { "v_bloodyhands" } const zclass2_health = 2500 const zclass2_speed = 325 const Float:zclass2_gravity = 1.0 const zclass2_adminflags = ADMIN_ALL // Jumper Zombie Attributes new const zclass3_name[] = { "Jumper Zombie" } new const zclass3_info[] = { "2500 HP 260 Speed 0.7 Gravity" } new const zclass3_model[] = { "bb_jumper" } new const zclass3_clawmodel[] = { "v_bloodyhands" } const zclass3_health = 2500 const zclass3_speed = 260 const Float:zclass3_gravity = 0.7 const zclass3_adminflags = ADMIN_ALL // Tanker Zombie Attributes new const zclass4_name[] = { "Tanker Zombie" } new const zclass4_info[] = { "4000 HP 210 Speed 1.0 Gravity" } new const zclass4_model[] = { "bb_tanker" } new const zclass4_clawmodel[] = { "v_bloodyhands" } const zclass4_health = 4000 const zclass4_speed = 210 const Float:zclass4_gravity = 1.0 const zclass4_adminflags = ADMIN_ALL #define TANK_ARMOR 200 /*============================================================================*/ new g_zclass_tanker // Zombie Classes MUST be registered on plugin_precache public plugin_precache() { register_plugin("[BB] Default Zombie Classes", "6.5.1", "Tirant modified by diggs for Chinchilla.xaa.pl") // Register all classes bb_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, 0.0, zclass1_adminflags) bb_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, 0.0, zclass2_adminflags) bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_adminflags) g_zclass_tanker = bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_adminflags) } #if defined TANK_ARMOR public plugin_init() { RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1) } public ham_PlayerSpawn_Post(id) { if (!is_user_alive(id)) return ; if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_tanker) { give_item(id, "item_assaultsuit"); cs_set_user_armor(id, TANK_ARMOR, CS_ARMOR_VESTHELM); } } #endif
Edited by GwynBleidD, 27.03.2014 18:20.