rendered paste body#include <amxmodx>
#include <amxmisc>
#include <dbi>
#define PLUGIN "Leader Vote"
#define VERSION "1.0"
#define AUTHOR "Styles"
new pCvarDStart, pCvarDEnd, pCvarAStart, pCvarAEnd
new Sql:dbc, Result:result
// Angle Menu
new mAnglesVote, mcbAnglesVote
new mDemonVote, mcbDemonVote
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_clcmd("amx_racevote", "DoVote")
pCvarDStart = register_cvar("amx_demonstart", "2001")
pCvarDEnd = register_cvar("amx_demonend", "2025")
pCvarAStart = register_cvar("amx_anglestart", "1001")
pCvarAEnd = register_cvar("amx_angleend", "1025")
// Angle Menu
mAnglesVote = menu_create("Angles Vote", "mh_AnglesVote")
mcbAnglesVote = menu_makecallback("mcb_AnglesVote")
// Demon Menu
mDemonVote = menu_create("Angles Vote", "mh_DemonVote")
mcbDemonVote = menu_makecallback("mcb_DemonVote")
set_task(1.0,"sql_init")
}
public DoVote(id)
{
//if(!cmd_access(id,level,cid,1))
// return PLUGIN_HANDLED
client_print(id, print_chat, "[AMXX Debug] DoVote(id) called!")
new Players[32], iNum, name[32], player
get_players(Players, iNum, "ch")
for (new i=0; i < iNum; i++)
{
player = Players[i]
get_user_name(player, name, 31)
if(IsPlayerAngle(player))
{
client_print(player, print_chat, "[AMXX Debug] Add player %s to Angle Menu.", name)
menu_additem(mAnglesVote, name, "ma_AnglesVote", 0, mcbAnglesVote)
}
else if(IsPlayerDemon(player))
{
client_print(player, print_chat, "[AMXX Debug] Add player %s to Demon Menu.", name)
menu_additem(mDemonVote, name, "ma_AnglesVote", 0, mcbDemonVote)
}
else
{
client_print(player, print_chat, "[AMXX Debug] Bad Job Part 1")
}
}
for (new i=0; i < iNum; i++)
{
player = Players[i]
if(IsPlayerAngle(player))
{
client_print(player, print_chat, "[AMXX Debug] Angles Menu Showing!")
menu_display(player, mAnglesVote, 0)
}
else if(IsPlayerDemon(player))
{
client_print(player, print_chat, "[AMXX Debug] Demon Menu Showing!")
menu_display(player, mDemonVote, 0)
}
else
{
client_print(player, print_chat, "[AMXX Debug] Bad Job")
}
}
return PLUGIN_HANDLED
}
// Angle Menu Handler
public mh_AnglesVote(id, menu, item)
{
client_print(id, print_chat, "[AMXX Debug] Info: %s %s!", menu, item)
}
// Demon Menu Handler
public mh_DemonVote(id, menu, item)
{
client_print(id, print_chat, "[AMXX Debug] Info: %s %s!", menu, item)
}
// Database
public sql_init()
{
new host[32], username[32], password[32], dbname[32], error[32]
get_cvar_string("economy_mysql_host",host,32)
get_cvar_string("economy_mysql_user",username,32)
get_cvar_string("economy_mysql_pass",password,32)
get_cvar_string("economy_mysql_db",dbname,32)
dbc = dbi_connect(host,username,password,dbname,error,32)
if (dbc == SQL_FAILED)
server_print("[%s] Could Not Connect To SQL Database^n",PLUGIN)
else
server_print("[%s] Connected To SQL, Have A Nice Day!^n",PLUGIN)
}
public edit_value(id,table[],index[],func[],amount)
{
if(dbc < SQL_OK)
{
return PLUGIN_HANDLED
}
new authid[33], query[256]
get_user_authid(id,authid,32)
if(equali(func,"="))
{
format(query,255,"UPDATE %s SET %s=%i WHERE steamid='%s'",table,index,amount,authid)
}
else
{
format(query,255,"UPDATE %s SET %s=%s%s%i WHERE steamid='%s'",table,index,index,func,amount,authid)
}
dbi_query(dbc,"%s",query)
return PLUGIN_HANDLED
}
public select_string(id,table[],index[],condition[],equals[],output[])
{
new query[256]
format(query,255,"SELECT %s FROM %s WHERE %s='%s'",index,table,condition,equals)
result = dbi_query(dbc,"%s",query)
if(result >= RESULT_OK)
{
dbi_nextrow(result)
dbi_field(result,1,output,64)
dbi_free_result(result)
}
}
public IsPlayerAngle(id)
{
new buffer[64], authid[32], JobID
get_user_authid(id, authid, 31)
select_string(id, "money", "JobID", "steamid", authid, buffer)
JobID = str_to_num(buffer)
client_print(id, print_chat, "[AMXX Debug] Demon JobID %i", JobID)
if(JobID < get_pcvar_num(pCvarAStart) || JobID > get_pcvar_num(pCvarAEnd))
return false
return true
}
public IsPlayerDemon(id)
{
new buffer[64], authid[32], JobID
get_user_authid(id, authid, 31)
select_string(id, "money", "JobID", "steamid", authid, buffer)
JobID = str_to_num(buffer)
client_print(id, print_chat, "[AMXX Debug] Demon JobID %i", JobID)
if(JobID < get_pcvar_num(pCvarDStart) || JobID > get_pcvar_num(pCvarDEnd))
return false
return true
}