All pastes #989025 Raw Edit

Stuff

public text v1 · immutable
#989025 ·published 2008-04-18 01:42 UTC
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
}