/* Human Classes for zombie plague, menu for classes automatically invoked 8 seconds after player spawn This plug is far from complete, please help with further development of it since it may have some undesired results on gameplay. You can edit this plug however it fit your needs. Here is TO DO list: 1. Make B key invoke human class menu 2. Make user choose class only once per round (could be limited with round timer or some other method) - done 3. Make user choice remember thru whole map time, just like it was done for zombies 4. Changing of models is not implemented yet due to numerous bugs and uncertain effects 5. For now, there are 7 classes only. If you have idea for more classes, make a request 6. Make classes buyable for ammo packs 7. Bots support */ #include #include #include #include #include #include new ma_klase[33] public plugin_init() { register_plugin("Klasy Ludzi", "1.2", "[AvP] ELOS") RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1) register_clcmd("say /klasa", "WybierzLudzi"); } public fwHamPlayerSpawnPost(id) { set_task(get_cvar_float("zp_delay")+0.2, "sprawdz",id) } public WybierzLudzi(id) { new menu = menu_create("rWybierz Klase Ludzi.", "WybierzLudziSelect"); menu_additem(menu, "wOdporny", "1", 0) menu_additem(menu, "wSportowiec", "2", 0) menu_additem(menu, "wGrubas", "3", 0) menu_additem(menu, "Wszechmocny (Premium)", "4", ADMIN_LEVEL_H) menu_setprop(menu, MPROP_EXIT, MEXIT_ALL); menu_display(id, menu, 0); } public WybierzLudziSelect(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: { if(ma_klase[id] == 1) { client_print(id, print_chat, "To jest twoja aktualna klasa") } else { client_print(id, print_chat, "Klasa Odporny wybrana poprawnie") ma_klase[id] = 1 } } case 2: { if(ma_klase[id] == 2) { client_print(id, print_chat, "To jest twoja aktualna klasa") } else { client_print(id, print_chat, "Klasa Sportowiec wybrana poprawnie") ma_klase[id] = 2 } } case 3: { if(ma_klase[id] == 3) { client_print(id, print_chat, "To jest twoja aktualna klasa") } else { client_print(id, print_chat, "Klasa Grubas wybrana poprawnie") ma_klase[id] = 3 } } case 4: { if(ma_klase[id] == 4) { client_print(id, print_chat, "To jest twoja aktualna klasa") } else { client_print(id, print_chat, "Klasa Wszechmocny wybrana poprawnie") ma_klase[id] = 4 } } } menu_destroy(menu); return PLUGIN_HANDLED; } public DajMoce(id) { if(zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id)) { return PLUGIN_HANDLED; } else if(ma_klase[id] == 1) { set_user_armor(id, 40) } else if(ma_klase[id] == 2) { set_user_gravity(id, 0.50) } else if(ma_klase[id] == 3) { set_user_health(id, 300) } else if(ma_klase[id] == 4) { set_user_armor(id, 150) set_user_health(id, 250) set_user_gravity(id, 0.50) } return PLUGIN_HANDLED; } public sprawdz(id) { DajMoce(id) if(zp_get_user_zombie(id) || zp_get_user_nemesis(id) || zp_get_user_survivor(id)) { return PLUGIN_HANDLED; } else if(ma_klase[id] == 0) { WybierzLudzi(id) } return PLUGIN_HANDLED; } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\ rtf1\ ansi\ ansicpg1252\ deff0{\ fonttbl{\ f0\ fnil\ fcharset0 Tahoma;}}n{\ colortbl ;\ red0\ green0\ blue0;}n\ viewkind4\ uc1\ pard\ cf1\ lang1045\ f0\ fs16 n\ par } */ /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\ rtf1\ ansi\ deff0{\ fonttbl{\ f0\ fnil Tahoma;}}n\ viewkind4\ uc1\ pard\ lang1045\ f0\ fs16 n\ par } */