/*
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 <amxmodx>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>
#include <zombieplague>
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, "\wUzbrojony Cywil", "1", 0)
menu_additem(menu, "\wGruba Ryba", "2", 0)
menu_additem(menu, "\wSkoczny Burmistrz", "3", 0)
menu_additem(menu, "\wLodziarz", "4", 0)
menu_additem(menu, "\wDziewczynka z Zapalnikiem", "5", 0)
menu_additem(menu, "\wBoidupa Ciemnosci", "6", 0)
menu_additem(menu, "Wojownik Ciemnosci (Premium)", "7", 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 Uzbrojony Cywik 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 Gruba Ryba 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 Skoczny Burmistrz 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 Lodziarz wybrana poprawnie")
ma_klase[id] = 4
}
}
case 5:
{
if(ma_klase[id] == 5)
{
client_print(id, print_chat, "To jest twoja aktualna klasa")
}
else
{
client_print(id, print_chat, "Klasa Dziewczynka z Zapalnikiem wybrana poprawnie")
ma_klase[id] = 5
}
}
case 6:
{
if(ma_klase[id] == 6)
{
client_print(id, print_chat, "To jest twoja aktualna klasa")
}
else
{
client_print(id, print_chat, "Klasa Boidupa Ciemnosci wybrana poprawnie")
ma_klase[id] = 6
}
}
case 7:
{
if(ma_klase[id] == 7)
{
client_print(id, print_chat, "To jest twoja aktualna klasa")
}
else
{
client_print(id, print_chat, "Klasa Wojownik Ciemnosci wybrana poprawnie")
ma_klase[id] = 7
}
}
}
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] == 0)
{
set_user_health(id, 50)
}
else
if(ma_klase[id] == 1)
{
set_user_armor(id, 65)
}
else
if(ma_klase[id] == 2)
{
set_user_gravity(id, 1.20)
set_user_maxspeed(id, 1.20)
set_user_armor(id, 10)
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3)
set_user_health(id, 200)
}
else
if(ma_klase[id] == 3)
{
set_user_gravity(id, 0.50)
set_user_maxspeed(id, 1.20)
}
else
if(ma_klase[id] == 4)
{
cs_set_user_bpammo(id, CSW_FLASHBANG, 3)
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 1)
}
else
if(ma_klase[id] == 5)
{
cs_set_user_bpammo(id, CSW_HEGRENADE, 5)
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 1)
}
else
if(ma_klase[id] == 6)
{
cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 4)
set_pev(id, pev_effects, pev(id, pev_effects) | EF_BRIGHTLIGHT)
}
else
if(ma_klase[id] == 7)
{
set_user_armor(id, 200)
set_user_health(id, 120)
set_user_gravity(id, 0.50)
set_user_rendering(id,kRenderFxNone,0,0,0,kRenderTransAlpha,70)
}
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 }
*/