#include <amxmodx>
#include <amxmisc>
#include <zombieplague>
#include <fakemeta>
#define PLUGIN "Human Class"
#define VERSION "1.0"
#define AUTHOR "Untouch"
new Array:g_HumanClassName
#define HUMANS_DEFAULT_NAME "Human"
const KEYSMENU = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_5|MENU_KEY_6|MENU_KEY_7|MEN
U_KEY_8|MENU_KEY_9|MENU_KEY_0
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("say /hc" , "HumanClassMenu")
register_menu("Class Menu", KEYSMENU, "menu_classes")
register_dictionary("zp_hc.txt")
// Add your code here...
}
public plugin_precache()
{
precache_model("models/player/hcfemale/hcfemale.mdl")
precache_model("models/player/hcmale/hcmale.mdl" )
}
public plugin_cfg()
{
ArrayPushString(g_HumanClassName, HUMANS_DEFAULT_NAME)
}
public plugin_natives()
{
register_native("zp_class_human_get" , "native_class_human_get_name" , 1)
g_HumanClassName = ArrayCreate(32, 1)
}
public HumanClassMenu(id)
{
static menu[512], len , name[32]
len = 0
new index
ArrayGetString(g_HumanClassName, index, name, charsmax(name))
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r1.\w %L^n", id, "HUMAN_CLASS1")
else
len += formatex(menu[len], charsmax(menu) - len, "\d1. %L^n", id, "HUMAN_CLASS1")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r2.\w %L^n", id, "HUMAN_CLASS2")
else
len += formatex(menu[len], charsmax(menu) - len, "\d2. %L^n", id, "HUMAN_CLASS2")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r3.\w %L^n", id,"HUMAN_CLASS3")
else
len += formatex(menu[len], charsmax(menu) - len, "\d3. %L^n", id,"HUMAN_CLASS3")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r4.\w %L^n", id, "HUMAN_CLASS4")
else
len += formatex(menu[len], charsmax(menu) - len, "\d4. %L^n", id, "HUMAN_CLASS4")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r5.\w %L^n", id, "HUMAN_CLASS5")
else
len += formatex(menu[len], charsmax(menu) - len, "\d5. %L^n", id, "HUMAN_CLASS5")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r6.\w %L^n", id, "HUMAN_CLASS6")
else
len += formatex(menu[len], charsmax(menu) - len, "\d6. %L^n^n", id, "HUMAN_CLASS6")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r7.\w %L^n", id, "HUMAN_CLASS7")
else
len += formatex(menu[len], charsmax(menu) - len, "\d7. %L^n", id, "HUMAN_CLASS7")
if (!zp_get_user_zombie(id))
len += formatex(menu[len], charsmax(menu) - len, "\r8.\w %L", id, "HUMAN_CLASS8")
else
len += formatex(menu[len], charsmax(menu) - len, "\d8. %L", id, "HUMAN_CLASS8")
len += formatex(menu[len], charsmax(menu) - len, "^n^n\r0.\w %L", id, "MENU_EXIT")
show_menu(id, KEYSMENU, menu, -1, "Class Menu")
}
public menu_classes(id, key)
{
switch (key)
{
case 0:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 1);
PrintChatColor(id, "!g[%L] !y%L !g%L", id , "ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS1")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id , "ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 1:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 2);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS2")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 2:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcfemale")
set_pev(id, pev_body , 3);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS3")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 3:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 1);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS4")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 4:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 2);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS5")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 5:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 3);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS6")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 6:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 4);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS7")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
case 7:
{
if (!zp_get_user_zombie(id))
{
zp_override_user_model(id, "hcmale")
set_pev(id, pev_body , 4);
PrintChatColor(id, "!g[%L]!y %L !g%L", id ,"ZP_PREFIX", id, "CHOOSE" , id , "HUMAN_CLASS8")
}
else
{
PrintChatColor(id, "!g[%L]!y %L", id ,"ZP_PREFIX", id, "NOT_ACCESS")
return ;
}
}
}
}
stock PrintChatColor( const id , const input[], any:...)
{
new count = 1, players[32]
static msg[191]
vformat(msg, 190, input, 3)
replace_all(msg, 190, "!g", "^4" ) // Green Color
replace_all(msg, 190, "!y", "^1" ) // Default Color
replace_all(msg, 190, "!team", "^3" ) // Team Color
if (id) players[0] = id; else get_players(players, count, "ch")
{
for (new i = 0; i < count; i++)
{
if (is_user_connected(players[i]))
{
message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText" ), _, players[i])
write_byte(players[i]);
write_string(msg);
message_end();
}
}
}
}
public native_class_human_get_name(plugin_id, num_params)
{
new classid = get_param(1)
new name[32]
ArrayGetString(g_HumanClassName, classid, name, charsmax(name))
new len = get_param(3)
set_string(2, name, len)
return true;
}