Raised This Month: $51 Target: $400
 12% 

Help / Support [ZP] Bank Automatic writing


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
norbee.16
Member
Join Date: Sep 2012
Location: Hungary
Old 09-30-2013 , 12:59   [ZP] Bank Automatic writing
Reply With Quote #1

Hey! Could someone pass me a letter so that automatically puts it in the bank and disconnect your connection and changing career path and pick up the ammo pack after switching.
Code:
#include <amxmodx>
*
#include <amxmisc>
*
#include <zombieplague>
*
*
*
//#define USING_SQL
*
#if defined USING_SQL
*
	#include <sqlx>
*
#else
*
	#include <nvault>
*
#endif
*
*
*
stock const ZP_BANK_FMT[] = "^x04[ZP-BANK]^x01 %L"
*
*
*
new g_iAmmoPacks[33]
*
new g_iSessionMovement[33]
*
new g_szAuth[33][36]
*
new cvAnnounceTime
*
new cvBankMax
*
*
*
#if defined USING_SQL
*
new g_szSQLTable[64], Handle:g_hSQLTuple, g_szQuery[128]
*
*
*
LoadClient(id, szAuth[])
*
{
*
	formatex(g_szQuery, charsmax(g_szQuery),
*
		"SELECT amount FROM `%s` WHERE auth='%s'", 
*
		g_szSQLTable, szAuth)
*
*
*
	new cData[37]
*
	cData[0] = id
*
	copy(cData[1], charsmax(cData)-1, szAuth)
*
*
*
	SQL_ThreadQuery(g_hSQLTuple, "LoadClient_QueryHandler", g_szQuery, cData, strlen(cData[1]))
*
}
*
*
*
public LoadClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, cData[], iSize, Float:fQueueTime)
*
{
*
	if(iFailState != TQUERY_SUCCESS)
*
	{
*
		log_amx("LoadClient(): SQL Error #%d - %s", iErrnum, szError)
*
		return
*
	}
*
*
*
	new id = cData[0]
*
	static szAuth[36]
*
	copy(szAuth, charsmax(szAuth), cData[1])
*
*
*
	new iAmmoPacks = 0
*
	if(SQL_NumResults(hQuery))
*
		iAmmoPacks = SQL_ReadResult(hQuery, 0)
*
		//SQL_QueryAndIgnore("INSERT INTO `%s` SET auth='%s'", g_szSQLTable, szAuth)
*
*
*
	g_iAmmoPacks[id] = iAmmoPacks
*
*
*
	SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_LOAD", iAmmoPacks, szAuth)
*
}
*
*
*
SaveClient(id, szAuth[])
*
{
*
	new iDifference = g_iSessionMovement[id]
*
*
*
	formatex(g_szQuery, charsmax(g_szQuery),
*
		"INSERT INTO `%s` SET auth='%s', amount=%d ON DUPLICATE KEY UPDATE amount=amount+(%d)",
*
		g_szSQLTable, szAuth, iDifference, iDifference)
*
*
*
	SQL_ThreadQuery(g_hSQLTuple, "SaveClient_QueryHandler", g_szQuery)
*
}
*
*
*
public SaveClient_QueryHandler(iFailState, Handle:hQuery, szError[], iErrnum, iData[], iSize, Float:fQueueTime)
*
{
*
	if(iFailState != TQUERY_SUCCESS)
*
		log_amx("SaveClient(): SQL Error #%d - %s", iErrnum, szError)
*
}
*
*
*
#else
*
new g_hVault
*
*
*
LoadClient(id, szAuth[])
*
{
*
	static szValue[32], iTimestamp
*
	new iValue = 0
*
	if(nvault_lookup(g_hVault, szAuth, szValue, charsmax(szValue), iTimestamp) && is_str_num(szValue))
*
		iValue = (g_iAmmoPacks[id] = str_to_num(szValue))
*
*
*
	SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_LOAD", iValue, szAuth)
*
}
*
*
*
SaveClient(id, szAuth[])
*
{
*
	static szValue[32]
*
	num_to_str(g_iAmmoPacks[id] + g_iSessionMovement[id], szValue, charsmax(szValue))
*
*
*
	nvault_set(g_hVault, szAuth, szValue)
*
}
*
#endif
*
*
*
public plugin_init()
*
{
*
	register_plugin("[ZP] Ammo Bank", "1.0", "danielkza")
*
*
*
	register_clcmd("say", "Command_Say")
*
	register_dictionary("zp_bank.txt")
*
*
*
	cvAnnounceTime	= register_cvar("zp_bank_announce_time", "180")
*
	cvBankMax		= register_cvar("zp_bank_max", "10000")
*
*
*
	Task_Announce()
*
*
*
#if defined USING_SQL
*
	new configsDir[64]
*
	get_configsdir(configsDir, 63)
*
*
*
	// Declare standard SQL cvars so we don't depend on admin.amxx
*
	register_cvar("amx_sql_host", "127.0.0.1")
*
	register_cvar("amx_sql_user", "root")
*
	register_cvar("amx_sql_pass", "")
*
	register_cvar("amx_sql_db", "amx")
*
	register_cvar("amx_sql_type", "mysql")
*
*
*
	new cvTable = register_cvar("zp_bank_table", "zp_bank")
*
	// Execute SQL configs. You must put zp_bank_table in there
*
	server_cmd("exec %s/sql.cfg", configsDir)
*
	server_exec()
*
*
*
	get_pcvar_string(cvTable, g_szSQLTable, charsmax(g_szSQLTable))
*
	g_hSQLTuple = SQL_MakeStdTuple()
*
*
*
	new iError, szError[256]
*
	new Handle:hSQLConnection = SQL_Connect(g_hSQLTuple, iError, szError, charsmax(szError))
*
	if(hSQLConnection != Empty_Handle)
*
	{
*
		SQL_QueryAndIgnore(hSQLConnection,
*
			"CREATE TABLE IF NOT EXISTS `%s` (\
*
				auth VARCHAR(36) NOT NULL PRIMARY KEY, \
*
				amount INT(10) UNSIGNED NOT NULL DEFAULT 0 \
*
			) ENGINE=MyISAM DEFAULT CHARSET=utf8;",
*
			g_szSQLTable )
*
*
*
		SQL_FreeHandle(hSQLConnection)
*
	}
*
	else
*
		log_amx("plugin_init(): SQL Error #%d - %s", iError, szError)
*
*
*
#else
*
	g_hVault = nvault_open("zp_bank")
*
	if(g_hVault == INVALID_HANDLE)
*
		set_fail_state("Can't create/load vault 'zp_bank'")
*
*
*
#endif
*
}
*
*
*
public plugin_end()
*
{
*
	// Client's should have already been saved by now (client_disconnect is called before plugin_end).
*
	// But it costs nothing to be sure.
*
	new iPlayers[32], iNum
*
	get_players(iPlayers, iNum)
*
*
*
	new iPlayer
*
	for(new i=0; i < iNum;i++)
*
	{
*
		iPlayer = iPlayers[i]
*
		SaveClient(iPlayer, g_szAuth[iPlayer])
*
	}
*
*
*
#if defined USING_SQL
*
	SQL_FreeHandle(g_hSQLTuple)
*
*
*
#else
*
	nvault_close(g_hVault)
*
*
*
#endif
*
}
*
*
*
public client_putinserver(id)
*
{
*
	static szAuth[36]
*
	get_user_authid(id, szAuth, charsmax(szAuth))
*
	copy(g_szAuth[id], charsmax(g_szAuth[]), szAuth)
*
*
*
	LoadClient(id, szAuth)	
*
}
*
*
*
public client_disconnect(id)
*
{	
*
	SaveClient(id,  g_szAuth[id])
*
*
*
	g_szAuth[id][0] = 0
*
	g_iAmmoPacks[id] = 0
*
	g_iSessionMovement[id] = 0
*
}
*
*
*
new msgSayText = -1
*
stock bool:SayText(const receiver, sender, const msg[], any:...)
*
{
*
	if(msgSayText == -1)
*
		msgSayText = get_user_msgid("SayText")
*
*
*
	if(msgSayText)
*
	{	
*
		if(!sender)
*
			sender = receiver
*
*
*
		static buffer[512]
*
		vformat(buffer,charsmax(buffer), msg, 4)
*
*
*
		if(receiver)
*
			message_begin(MSG_ONE_UNRELIABLE,msgSayText,_,receiver)
*
		else
*
			message_begin(MSG_BROADCAST,msgSayText)
*
*
*
		write_byte(sender)
*
		write_string(buffer)
*
		message_end()
*
*
*
		return true
*
	}
*
*
*
	return false
*
}
*
*
*
*
*
public Task_Announce()
*
{
*
	static iPlayers[32], iNum, iPlayer
*
	get_players(iPlayers, iNum)
*
*
*
	for(new i=0; i < iNum;i++)
*
	{
*
		iPlayer = iPlayers[i]
*
		SayText(iPlayer, iPlayer, ZP_BANK_FMT, LANG_PLAYER, "ZP_BANK_ANNOUNCE")
*
	}
*
*
*
	set_task(get_pcvar_float(cvAnnounceTime), "Task_Announce")
*
}
*
*
*
enum
*
{
*
	CMD_DEPOSIT = 1,
*
	CMD_WITHDRAW,
*
	CMD_INFO
*
}
*
*
*
public Command_Say(id)
*
{
*
	static szArgs[32]
*
	read_args(szArgs, charsmax(szArgs))
*
	remove_quotes(szArgs)
*
*
*
	static szArg1[32], szArg2[32]
*
	parse(szArgs, szArg1, charsmax(szArg1), szArg2, charsmax(szArg2))
*
*
*
	new iCommand = 0
*
	if(equali(szArg1, "/berak"))
*
		iCommand = CMD_DEPOSIT
*
	else if(equali(szArg1, "/kivesz"))
*
		iCommand = CMD_WITHDRAW
*
	else if(equali(szArg1, "/bank"))
*
		iCommand = CMD_INFO
*
*
*
	if(iCommand)
*
	{
*
		if(iCommand == CMD_INFO)
*
			Command_Info(id)
*
		else
*
		{
*
			new iValue = str_to_num(szArg2)
*
			if(iValue <= 0)
*
				SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_INVALID_AMOUNT")
*
*
*
			else if(iCommand == CMD_DEPOSIT)
*
				Command_Deposit(id, iValue)
*
			else
*
				Command_Withdraw(id, iValue)
*
		}
*
*
*
		return PLUGIN_HANDLED
*
*
*
	}
*
*
*
	return PLUGIN_CONTINUE
*
}
*
*
*
Command_Info(id)
*
{
*
	SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_LOAD", g_iAmmoPacks[id] + g_iSessionMovement[id], g_szAuth[id])
*
}
*
*
*
Command_Deposit(id, iDeposit)
*
{
*
	new iCurrentAmount = zp_get_user_ammo_packs(id)
*
	if(!iCurrentAmount)
*
	{
*
		SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_NO_AMMO")
*
		return
*
	}
*
*
*
	if(iDeposit > iCurrentAmount)
*
		iDeposit = iCurrentAmount
*
*
*
	new iCurrent = g_iAmmoPacks[id] + g_iSessionMovement[id]
*
	new iSum = iCurrent + iDeposit
*
	new iBankMax = get_pcvar_num(cvBankMax)
*
*
*
	if(iBankMax && iSum > iBankMax)
*
	{
*
		iDeposit = iBankMax - iCurrent
*
		iSum = iBankMax
*
*
*
		SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_MAX", iBankMax)
*
	}
*
*
*
	if(iDeposit)
*
	{
*
		g_iSessionMovement[id] += iDeposit
*
*
*
		SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_DEPOSIT", iDeposit, iSum) //
*
		zp_set_user_ammo_packs(id, iCurrentAmount - iDeposit)
*
	}
*
}
*
*
*
*
*
Command_Withdraw(id, iWithdraw)
*
{
*
	new iDeposited = g_iAmmoPacks[id] + g_iSessionMovement[id]
*
	if(!iDeposited)
*
	{
*
		SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_EMPTY")
*
		return
*
	}
*
*
*
	if(iWithdraw > iDeposited)
*
		iWithdraw = iDeposited
*
*
*
	g_iSessionMovement[id] -= iWithdraw
*
*
*
	SayText(id, id, ZP_BANK_FMT, id, "ZP_BANK_WITHDRAW", iWithdraw, iDeposited - iWithdraw)
*
	zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + iWithdraw)
*
}
__________________

Last edited by norbee.16; 09-30-2013 at 13:05.
norbee.16 is offline
Send a message via MSN to norbee.16 Send a message via Skype™ to norbee.16
Catastrophe
Veteran Member
Join Date: Jul 2012
Location: somewhere between narnia
Old 10-01-2013 , 01:23   Re: [ZP] Bank Automatic writing
Reply With Quote #2

What the fuck did i just read ?
__________________
You will find everything u need :-
Catastrophe is offline
Gasa
Senior Member
Join Date: Sep 2013
Old 10-01-2013 , 05:22   Re: [ZP] Bank Automatic writing
Reply With Quote #3

Quote:
Originally Posted by Catastrophe View Post
What the fuck did i just read ?
Why do u not help him, u are good coder he just want changing career path and pick up the ammo pack after switching...lol
Gasa is offline
norbee.16
Member
Join Date: Sep 2012
Location: Hungary
Old 10-01-2013 , 06:34   Re: [ZP] Bank Automatic writing
Reply With Quote #4

Quote:
Originally Posted by Gasa View Post
Why do u not help him, u are good coder he just want changing career path and pick up the ammo pack after switching...lol
I am not a professional English-and so I'm using google translator.

The point is that no commands are excluded from having to / for putting ammo pack. But you have to play its automatic loading and unloading when you need. A / panacs visszont bank should be included to the dead / connection gamers will be able to look at the amount of the current ammo pack. I hope you understand and anyone can do it thanks in advance!
__________________
norbee.16 is offline
Send a message via MSN to norbee.16 Send a message via Skype™ to norbee.16
Catastrophe
Veteran Member
Join Date: Jul 2012
Location: somewhere between narnia
Old 10-01-2013 , 08:02   Re: [ZP] Bank Automatic writing
Reply With Quote #5

Quote:
Originally Posted by Gasa View Post
Why do u not help him, u are good coder he just want changing career path and pick up the ammo pack after switching...lol
I would take that as a compliment :p and/or a taunt to that guy xD .....

And still dont understand what he means -,-
__________________
You will find everything u need :-

Last edited by Catastrophe; 10-01-2013 at 08:02.
Catastrophe is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 22:50.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode