Hello I made this plugin very long ago but now I decided to finish it.But I have a problem because I can not find errors and make the menu only for humans allowed.Now I decided to try it but saw that the server overflowed.Look it show me the messages in console
There is the code i hope you help me to find my mistakes and release this plugin
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <colorchat>
#include <zombieplague>
#include <hamsandwich>
#include <fun>
#include <fakemeta>
#define VERSION "2.3"
#define is_user_admin2(%1) (get_user_flags(%1) & ADMIN_CVAR)
/// Bool class
new bool:is_Bill[33]
new bool:is_Francis[33]
new bool:is_Louis[33]
new bool:is_Zoey[33]
new bool:is_Special[33]
/// Bill
new zp_l4d_bill_arrmor
new zp_l4d_bill_health
new zp_l4d_bill_gravity
new zp_l4d_bill_speed
/// Francis
new zp_l4d_francis_arrmor
new zp_l4d_francis_health
new zp_l4d_francis_gravity
new zp_l4d_francis_speed
/// Louis
new zp_l4d_louis_arrmor
new zp_l4d_louis_health
new zp_l4d_louis_gravity
new zp_l4d_louis_speed
/// Zoey
new zp_l4d_zoey_arrmor
new zp_l4d_zoey_health
new zp_l4d_zoey_gravity
new zp_l4d_zoey_speed
/// Special
new zp_l4d_special_arrmor
new zp_l4d_special_health
new zp_l4d_special_gravity
new zp_l4d_special_speed
new zp_l4d_special_admin_only
new zp_l4d_aura_radiuse
new zp_l4d_aura_red
new zp_l4d_aura_green
new zp_l4d_aura_blue
new zp_l4d_glow_red
new zp_l4d_glow_green
new zp_l4d_glow_blue
/// Messages
new zp_l4d_msg_interval
new zp_l4d_msg_on
new zp_l4d_msg_hum
new zp_l4d_msg_zm
/// Menu display first Spawn - interval after Spawn
new zp_l4d_menu_first_spawn
new zp_l4d_spawn_menu_interval
/// Chat Tag
new chattag[] = "^x04[Xtreme]"
/// CVARS dir
new const ZP_L4D_CVARSDIR[] = "config.cfg"
new const ZP_L4D_DIR[] = "hclass"
/// Menu name
new const hclassmenuname[] = "\r[ZP] \ySelect your L4D Human Class \w"
public plugin_init()
{
register_plugin("ZP : L4D Human Class", VERSION, "Shimano Saint")
/// FCVAR
register_cvar("L4D Human Class v.%s", VERSION, FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_UNLOGGED|FCVAR_SPONLY)
/// Clcmd
register_clcmd("say /hclass", "cmdHclassMenu")
register_clcmd("say /hclasshelp", "cmdHclassHelp")
/// Register Ham_Spawn
RegisterHam(Ham_Spawn, "player", "fwdPlayer_Spawn", 1)
/// Register Forwards
register_forward(FM_PlayerPreThink, "cmdBill")
register_forward(FM_PlayerPreThink, "cmdFrancis")
register_forward(FM_PlayerPreThink, "cmdLouis")
register_forward(FM_PlayerPreThink, "cmdZoey")
register_forward(FM_PlayerPreThink, "cmdSpecial")
/// Bill
zp_l4d_bill_arrmor = register_cvar("zp_l4d_bill_arrmor", "150")
zp_l4d_bill_health = register_cvar("zp_l4d_bill_health", "150")
zp_l4d_bill_gravity = register_cvar("zp_l4d_bill_gravity ", "1.0")
zp_l4d_bill_speed = register_cvar("zp_l4d_bill_speed", "250")
/// Francis
zp_l4d_francis_arrmor = register_cvar("zp_l4d_francis_arrmor", "150")
zp_l4d_francis_health = register_cvar("zp_l4d_francis_health", "150")
zp_l4d_francis_gravity = register_cvar("zp_l4d_francis_gravity ", "0.9")
zp_l4d_francis_speed = register_cvar("zp_l4d_francis_speed", "260")
/// Louis
zp_l4d_louis_arrmor = register_cvar("zp_l4d_louis_arrmor", "150")
zp_l4d_louis_health = register_cvar("zp_l4d_louis_health", "150")
zp_l4d_louis_gravity = register_cvar("zp_l4d_louis_gravity ", "0.9")
zp_l4d_louis_speed = register_cvar("zp_l4d_louis_speed", "260")
/// Zoey
zp_l4d_zoey_arrmor = register_cvar("zp_l4d_zoey_arrmor", "250")
zp_l4d_zoey_health = register_cvar("zp_l4d_zoey_health", "250")
zp_l4d_zoey_gravity = register_cvar("zp_l4d_zoey_gravity ", "0.8")
zp_l4d_zoey_speed = register_cvar("zp_l4d_zoey_speed", "270")
/// Special
zp_l4d_special_arrmor = register_cvar("zp_l4d_special_arrmor", "250")
zp_l4d_special_health = register_cvar("zp_l4d_special_health", "200")
zp_l4d_special_gravity = register_cvar("zp_l4d_special_gravity", "0.5")
zp_l4d_special_speed = register_cvar("zp_l4d_special_speed", "290")
zp_l4d_special_admin_only = register_cvar("zp_l4d_special_admin_only", "1")
zp_l4d_aura_radiuse = register_cvar("zp_l4d_aura_radiuse", "20.0")
zp_l4d_aura_red = register_cvar("zp_l4d_aura_red", "255")
zp_l4d_aura_green = register_cvar("zp_l4d_aura_green", "255")
zp_l4d_aura_blue = register_cvar("zp_l4d_aura_blue", "255")
zp_l4d_glow_red = register_cvar("zp_l4d_glow_red", "0")
zp_l4d_glow_green = register_cvar("zp_l4d_glow_green", "0")
zp_l4d_glow_blue = register_cvar("zp_l4d_glow_blue", "255")
/// Messages CVARS
zp_l4d_msg_interval = register_cvar("zp_l4d_msg_interval", "150")
zp_l4d_msg_on = register_cvar("zp_l4d_msg_on", "1")
zp_l4d_msg_hum = register_cvar("zp_l4d_msg_hum", "1")
zp_l4d_msg_zm = register_cvar("zp_l4d_msg_zm", "1")
/// Message
set_task(get_pcvar_float(zp_l4d_msg_interval), "Message",_,_,_, "b")
/// Menu display first Spawn - interval after Spawn
zp_l4d_menu_first_spawn = register_cvar("zp_l4d_menu_first_spawn", "1")
zp_l4d_spawn_menu_interval = register_cvar("zp_l4d_spawn_menu_interval", "5")
}
public plugin_cfg()
{
new bool:havecheck
new cvarfiles[100], gpath[64]
l4d_get_configsdir(gpath, 63)
formatex(cvarfiles, 99, "%s/%s", gpath, ZP_L4D_CVARSDIR)
havecheck = false
new chkversion[256], vsncheck[32], numversion[13]
new h = fopen(cvarfiles, "rt" )
while( !feof( h ) )
{
fgets(h, chkversion, 255 )
if( containi(chkversion, "VERSION") != -1 && chkversion[0] == '/' && chkversion[1] == '/' )
{
replace(chkversion, 255, "// ", "")
parse(chkversion, vsncheck, 31, numversion, 12)
if( equali(numversion, VERSION, 4) )
{
server_cmd("exec %s", cvarfiles)
server_exec()
havecheck = true
break;
}
}
}
fclose(h)
if( !havecheck )
{
delete_file(cvarfiles)
zp_l4d_make_cvarexec(cvarfiles)
}
}
public cmdHclassMenu(id)
{
new menu = menu_create(hclassmenuname, "hclassmenufunction")
menu_additem(menu, "\wBill", "0",0),
menu_additem(menu, "\wFrancis", "1", 0),
menu_additem(menu, "\wLouis", "2",0),
menu_additem(menu, "\wZoey", "3",0),
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu);
}
public hclassmenufunction(id, menu, item, page)
{
if (item == MENU_EXIT)
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], iName[64]
new access, callback
menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
new key = str_to_num(data)
switch(key)
{
case 0:
{
cmdBill(id)
}
case 1:
{
cmdFrancis(id)
}
case 2:
{
cmdLouis(id)
}
case 3:
{
cmdZoey(id)
}
}
return PLUGIN_HANDLED;
}
public fwdPlayer_Spawn(id)
{
is_Bill[id] = false;
is_Francis[id] = false;
is_Louis[id] = false;
is_Zoey[id] = false;
is_Special[id] = false;
if(get_pcvar_num(zp_l4d_menu_first_spawn))
set_task(get_pcvar_float(zp_l4d_spawn_menu_interval), "cmdHclassMenu", id)
}
public cmdBill(id)
{
if(ZP_TEAM_HUMAN && is_user_alive(id) && is_Bill[id] == true)
{
if(get_pcvar_num(zp_l4d_msg_hum))
set_hudmessage(255, 255, 255, -1.0, 0.01)
ColorChat(id, RED, "%s^x03 Now your Human class is Bill", chattag)
give_item(id, "weapon_m4a1")
cs_set_user_bpammo(id, CSW_M4A1, 90)
set_user_armor(id, get_pcvar_num(zp_l4d_bill_arrmor))
set_user_health(id, get_pcvar_num(zp_l4d_bill_health))
set_user_gravity(id, get_pcvar_float(zp_l4d_bill_gravity))
set_user_maxspeed(id, get_pcvar_float(zp_l4d_bill_speed))
}
else
{
if(zp_get_user_zombie(id) && is_user_alive(id))
{
if(get_pcvar_num(zp_l4d_msg_zm))
ColorChat(id, RED, "%s^x03 Only for human allow", chattag)
}
}
}
public cmdFrancis(id)
{
if(ZP_TEAM_HUMAN && is_user_alive(id) && is_Francis[id] == true)
{
if(get_pcvar_num(zp_l4d_msg_hum))
ColorChat(id, RED, "%s^x03 Now your Human class is^x01 Francis", chattag)
give_item(id, "weapon_m3")
cs_set_user_bpammo(id, CSW_M3, 32)
set_user_armor(id, get_pcvar_num(zp_l4d_francis_arrmor))
set_user_health(id, get_pcvar_num(zp_l4d_francis_health))
set_user_gravity(id, get_pcvar_float(zp_l4d_francis_gravity))
set_user_maxspeed(id, get_pcvar_float(zp_l4d_francis_speed))
}
else
{
if(zp_get_user_zombie(id) && is_user_alive(id))
{
if(get_pcvar_num(zp_l4d_msg_zm))
ColorChat(id, RED, "%s^x03 Only for human allow", chattag)
}
}
}
public cmdLouis(id)
{
if(ZP_TEAM_HUMAN && is_user_alive(id) && is_Louis[id] == true)
{
if(get_pcvar_num(zp_l4d_msg_hum))
ColorChat(id, RED, "%s^x03 Now your Human class is^x01 Louis", chattag)
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_DEAGLE, 32)
give_item(id, "weapon_mp5navy")
cs_set_user_bpammo(id, CSW_MP5NAVY, 90)
set_user_armor(id, get_pcvar_num(zp_l4d_louis_arrmor))
set_user_health(id, get_pcvar_num(zp_l4d_louis_health))
set_user_gravity(id, get_pcvar_float(zp_l4d_louis_gravity))
set_user_maxspeed(id, get_pcvar_float(zp_l4d_louis_speed))
}
else
{
if(zp_get_user_zombie(id) && is_user_alive(id))
{
if(get_pcvar_num(zp_l4d_msg_zm))
ColorChat(id, RED, "%s^x03 Only for human allow", chattag)
}
}
}
public cmdZoey(id)
{
if(ZP_TEAM_HUMAN && is_user_alive(id) && is_Zoey[id] == true)
{
if(get_pcvar_num(zp_l4d_msg_hum))
ColorChat(id, RED, "%s^x03 Now your Human class is^x04 Zoey", chattag)
give_item(id, "weapon_mac10")
cs_set_user_bpammo(id, CSW_MAC10, 90)
give_item(id, "weapon_hegrenade")
give_item(id, "weapon_flashbang")
give_item(id, "weapon_smokegrenade")
set_user_armor(id, get_pcvar_num(zp_l4d_zoey_arrmor))
set_user_health(id, get_pcvar_num(zp_l4d_zoey_health))
set_user_gravity(id, get_pcvar_float(zp_l4d_zoey_gravity))
set_user_maxspeed(id, get_pcvar_float(zp_l4d_zoey_speed))
}
else
{
if(zp_get_user_zombie(id) && is_user_alive(id))
{
if(get_pcvar_num(zp_l4d_msg_zm))
ColorChat(id, RED, "%s^x03 Only for human allow", chattag)
}
}
}
public cmdSpecial(id)
{
if(get_pcvar_num(zp_l4d_special_admin_only) && !is_user_admin2(id))
{
ColorChat(id, RED, "%s^x03 This class it is only for admins", chattag)
return PLUGIN_HANDLED
}
if(ZP_TEAM_HUMAN && is_user_alive(id) && is_Special[id] == true)
{
if(get_pcvar_num(zp_l4d_msg_hum))
ColorChat(id, RED, "%s^x03 Now your Human class is^x01 Special", chattag)
give_item(id, "weapon_m249")
give_item(id, "weapon_deagle")
cs_set_user_bpammo(id, CSW_M249, 200)
cs_set_user_bpammo(id, CSW_DEAGLE, 35)
set_user_armor(id, get_pcvar_num(zp_l4d_special_arrmor))
set_user_health(id, get_pcvar_num(zp_l4d_special_health))
set_user_gravity(id, get_pcvar_float(zp_l4d_special_gravity))
set_user_maxspeed(id, get_pcvar_float(zp_l4d_special_speed))
fm_set_rendering(id, kRenderFxGlowShell, zp_l4d_glow_red, zp_l4d_glow_green, zp_l4d_glow_blue, kRenderNormal, 16)
static Float:originF[3]
pev(id, pev_origin, originF)
engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, originF, 0)
write_byte(TE_DLIGHT)
engfunc(EngFunc_WriteCoord, originF[0])
engfunc(EngFunc_WriteCoord, originF[1])
engfunc(EngFunc_WriteCoord, originF[2])
write_byte(get_pcvar_num(zp_l4d_aura_radiuse))
write_byte(get_pcvar_num(zp_l4d_aura_red))
write_byte(get_pcvar_num(zp_l4d_aura_green))
write_byte(get_pcvar_num(zp_l4d_aura_blue))
write_byte(2)
write_byte(0)
message_end()
}
else
{
if(zp_get_user_zombie(id) && is_user_alive(id))
{
if(get_pcvar_num(zp_l4d_msg_zm))
ColorChat(id, RED, "%s^x03 Only for human allow", chattag)
}
}
return PLUGIN_HANDLED
}
public Message(id)
{
if(get_pcvar_num(zp_l4d_msg_on))
ColorChat(id, RED, "%s^x03 Type /hclass to choose your Human Class", chattag)
}
public cmdHclassHelp(id)
{
static MotdChars[1536], iLen
iLen = formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<html>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<body bgcolor=#000000><font color=#FFFFFF face=Verdana size=4>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<center><font size=5 color=#3399FF><b><u>Human Class by GmTx</u></b></font></center>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<br><br><br><center><font color=#FF0000>Type <b>/hclass</b> to open the menu</font></center>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<center><font color=#FF0000>Every class has own weapons and stats</font></center>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<center><font color=#FF0000>Class: Bill, Francis, Louis, Zoey</font></center>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "<center><font color=#FF0000>Enjoy playng with the plugin</font></center>")
iLen += formatex(MotdChars[iLen], (charsmax(MotdChars)) - iLen, "</font></body></html>")
show_motd(id, MotdChars, "Human Class Help MOTD")
}
public client_connect(id)
{
is_Bill[id] = false;
is_Francis[id] = false;
is_Louis[id] = false;
is_Zoey[id] = false;
is_Special[id] = false;
}
stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
static Float:color[3]
color[0] = float(r)
color[1] = float(g)
color[2] = float(b)
set_pev(entity, pev_renderfx, fx)
set_pev(entity, pev_rendercolor, color)
set_pev(entity, pev_rendermode, render)
set_pev(entity, pev_renderamt, float(amount))
}
stock l4d_get_configsdir(name[], len)
{
new lalin[64]
get_localinfo("amxx_configsdir", lalin,63)
return formatex(name, len, "%s/%s", lalin, ZP_L4D_DIR)
}
stock zp_l4d_make_cvarexec(const config[])
{
new f = fopen(config, "wt");
fprintf(f, "// -------------------^n")
fprintf(f, "// Human Class by GmTx^n")
fprintf(f, "// VERSION ^"%s^"^n", VERSION)
fprintf(f, "// -------------------^n")
fprintf(f, "^n")
fprintf(f, "// CVARs for humans^n")
fprintf(f, "^n")
fprintf(f, "// Bill^n")
fprintf(f, "zp_l4d_bill_arrmor %i // Bill arrmor^n", get_pcvar_num(zp_l4d_bill_arrmor))
fprintf(f, "zp_l4d_bill_health %i // Bill health^n", get_pcvar_num(zp_l4d_bill_health))
fprintf(f, "zp_l4d_bill_gravity %i // Bill gravity^n", get_pcvar_float(zp_l4d_bill_gravity))
fprintf(f, "zp_l4d_bill_speed %i // Bill speed^n", get_pcvar_float(zp_l4d_bill_speed))
fprintf(f, "^n")
fprintf(f, "// Francis^n")
fprintf(f, "zp_l4d_francis_arrmor %i // Francis arrmor^n", get_pcvar_num(zp_l4d_francis_arrmor))
fprintf(f, "zp_l4d_francis_health %i // Francis health^n", get_pcvar_num(zp_l4d_francis_health))
fprintf(f, "zp_l4d_francis_gravity %i // Francis gravity^n", get_pcvar_float(zp_l4d_francis_gravity))
fprintf(f, "zp_l4d_francis_speed %i // Francis speed^n", get_pcvar_float(zp_l4d_francis_speed))
fprintf(f, "^n")
fprintf(f, "// Louis^n")
fprintf(f, "zp_l4d_louis_arrmor %i // Louis arrmor^n", get_pcvar_num(zp_l4d_louis_arrmor))
fprintf(f, "zp_l4d_louis_health %i // Louis health^n", get_pcvar_num(zp_l4d_louis_health))
fprintf(f, "zp_l4d_louis_gravity %i // Louis gravity^n", get_pcvar_float(zp_l4d_louis_gravity))
fprintf(f, "zp_l4d_louis_speed %i // Louis speed^n", get_pcvar_float(zp_l4d_louis_speed))
fprintf(f, "^n")
fprintf(f, "// Zoey^n")
fprintf(f, "zp_l4d_zoey_arrmor %i // Zoey arrmor^n", get_pcvar_num(zp_l4d_zoey_arrmor))
fprintf(f, "zp_l4d_zoey_health %i // Zoey health^n", get_pcvar_num(zp_l4d_zoey_health))
fprintf(f, "zp_l4d_zoey_gravity %i // Zoey gravity^n", get_pcvar_float(zp_l4d_zoey_gravity))
fprintf(f, "zp_l4d_zoey_speed %i // Zoey speed^n", get_pcvar_float(zp_l4d_zoey_speed))
fprintf(f, "^n")
fprintf(f, "// Special^n")
fprintf(f, "zp_l4d_special_arrmor %i // Special arrmor^n", get_pcvar_num(zp_l4d_special_arrmor))
fprintf(f, "zp_l4d_special_health %i // Special health^n", get_pcvar_num(zp_l4d_special_health))
fprintf(f, "zp_l4d_special_gravity %i // Special gravity^n", get_pcvar_float(zp_l4d_special_gravity))
fprintf(f, "zp_l4d_special_speed %i // Special speed^n", get_pcvar_float(zp_l4d_special_speed))
fprintf(f, "zp_l4d_special_admin_only %i // Cvar only for admins^n", get_pcvar_num(zp_l4d_special_admin_only))
fprintf(f, "zp_l4d_aura_radiuse %i // Radiuse of the aura^n", get_pcvar_num(zp_l4d_aura_radiuse))
fprintf(f, "zp_l4d_aura_red %i // Aura red^n", get_pcvar_num(zp_l4d_aura_red))
fprintf(f, "zp_l4d_aura_green %i // Aura green^n", get_pcvar_num(zp_l4d_aura_green))
fprintf(f, "zp_l4d_aura_blue %i // Aura blue^n", get_pcvar_num(zp_l4d_aura_blue))
fprintf(f, "zp_l4d_glow_red %i // Glow red^n", get_pcvar_num(zp_l4d_glow_red))
fprintf(f, "zp_l4d_glow_green %i // Glow green^n", get_pcvar_num(zp_l4d_glow_green))
fprintf(f, "zp_l4d_glow_blue %i // Glow blue^n", get_pcvar_num(zp_l4d_glow_blue))
fprintf(f, "^n")
fprintf(f, "// Message CVARS^n")
fprintf(f, "zp_l4d_msg_interval %i // Time interval for the Message^n", get_pcvar_float(zp_l4d_msg_interval))
fprintf(f, "zp_l4d_msg_on %i // Message ON-OFF^n", get_pcvar_num(zp_l4d_msg_on))
fprintf(f, "zp_l4d_msg_hum %i // Message when choose human class ON-OFF^n", get_pcvar_num(zp_l4d_msg_hum))
fprintf(f, "zp_l4d_msg_zm %i // Message when zombie try to choose human class^n", get_pcvar_num(zp_l4d_msg_zm))
fprintf(f, "^n")
fprintf(f, "// Menu display first Spawn - interval after Spawn^n")
fprintf(f, "zp_l4d_menu_first_spawn %i // First spawn menu or only when type /hclass^n", get_pcvar_float(zp_l4d_menu_first_spawn))
fprintf(f, "zp_l4d_spawn_menu_interval %i // Time after spawn to show the menu^n", get_pcvar_num(zp_l4d_spawn_menu_interval))
fprintf(f, "^n")
fprintf(f, "^n")
fprintf(f, "// ----------------------------^n")
fprintf(f, "echo --------------------------^n")
fprintf(f, "echo Human class load all cvars^n")
fprintf(f, "echo --------------------------^n")
fprintf(f, "// ----------------------------^n")
fprintf(f, "^n")
fclose(f);
server_cmd("exec %s", config)
server_exec()
}