///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Auction Hall Beta 2 by Stabby@zmmapperz.net
//
// Requirements Eventscripts 1.5+
//
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

block load
{
	// Settings:

	es_xset ah_public_transaction 1		// If 1 all players can see in chat when an item is bought.
	es_xset ah_public 1			// if 1 players can see when an item is being put in th vault.
	es_xset ah_command "!auction"		// command a player has to type in chat for auction menu.
	es_xset ah_decision_time 5		// Time in seconds a player has to choose.
	es_xset ah_sound 1			// If 1 enables sound on sale.

	// Dont edit below this line!

	//////////////////////////////////////////////////////////////////////////////////////////////////////////

	es_xload popup
	es_xload keymenu
	es_xkeygroupcreate thevault
	es_xregcmd storeit auctionhall/vaultstorage
	es_xdoblock auctionhall/dopopups
	es_regsaycmd server_var(ah_command) auctionhall/sayauction
	if (server_var(ah_sound) == 1) then downloadable sound/auctionhall/transaction.wav
	es_xset ah_version "AuctionHall beta 2 (0.2) by Stabby@zmmapperz.net"
	es_xmakepublic ah_version
}

block dopopups
{
	popup create auctionmain
	popup addline auctionmain "---------------------------------"
	popup addline auctionmain "AuctionHall 0.1 by Stabby"
	popup addline auctionmain "---------------------------------"
	popup addline auctionmain "->1. Buy an item"
	popup addline auctionmain "->2. Sell an item"
	popup addline auctionmain "0. Close"
	popup menuselect auctionmain auctionhall/mainmenuselect

	popup create auctionsellchoose
	popup addline auctionsellchoose "---------------------------"
	popup addline auctionsellchoose "Choose item to auction."
	popup addline auctionsellchoose "---------------------------"
	popup addline auctionsellchoose "->1. Primary weapon"
	popup addline auctionsellchoose "->2. Secondary weapon"
	popup addline auctionsellchoose "->3. Hegrenade"
	popup addline auctionsellchoose "->4. Flashbang"
	popup addline auctionsellchoose "->5. Smokegrenade"
	popup addline auctionsellchoose "0. Close"
	popup menuselect auctionsellchoose auctionhall/ah_choose_sell

	popup create auctionsellpricechoose
	popup addline auctionsellpricechoose "---------------------------"
	popup addline auctionsellpricechoose "Choose price to auction."
	popup addline auctionsellpricechoose "---------------------------"
	popup addline auctionsellpricechoose "->1. 500"
	popup addline auctionsellpricechoose "->2. 1000"
	popup addline auctionsellpricechoose "->3. 1500"
	popup addline auctionsellpricechoose "->4. 2000"
	popup addline auctionsellpricechoose "->5. 2500"
	popup addline auctionsellpricechoose "->6. 3000"
	popup addline auctionsellpricechoose "->7. 3500"
	popup addline auctionsellpricechoose "->8. 4000"
	popup addline auctionsellpricechoose "0. Cancel auction."
	popup menuselect auctionsellpricechoose auctionhall/determine_price
	es popup timeout auctionsellpricechoose view server_var(ah_decision_time)
}

block sayauction
{
	es_xset tempuid 0
	es_xgetcmduserid tempuid
	es popup send auctionmain server_var(tempuid)
}

event es_map_start
{
	es_keygroupdelete thevault
	es_keygroupcreate thevault
	es_xset currentvaultquota 0
	if (server_var(ah_sound) == 1) then downloadable sound/auctionhall/transaction.wav
}

block unload
{
	popup delete auctionmain
	popup delete auctionsellchoose
	popup delete auctionsellpricechoose
	es_xkeygroupdelete thevault
	es_unregsaycmd server_var(ah_command)
}
block mainmenuselect
{
	if (server_var(_popup_choice) == 1) then es_xdoblock auctionhall/command_buy
	if (server_var(_popup_choice) == 2) then es_xdoblock auctionhall/command_sell
}
block command_sell
{
	es_xset cmd_sell_uid 0
	es_set cmd_sell_uid server_var(_popup_userid)
	es popup send auctionsellchoose server_var(cmd_sell_uid)
}

block determine_price
{
	es_tell server_var(_popup_userid) #multi #green [AuctionHall] #default Processing request... 
	if (server_var(_popup_choice) == 1) then es_xset askingprice 500
	if (server_var(_popup_choice) == 2) then es_xset askingprice 1000
	if (server_var(_popup_choice) == 3) then es_xset askingprice 1500
	if (server_var(_popup_choice) == 4) then es_xset askingprice 2000
	if (server_var(_popup_choice) == 5) then es_xset askingprice 2500
	if (server_var(_popup_choice) == 6) then es_xset askingprice 3000
	if (server_var(_popup_choice) == 7) then es_xset askingprice 3500
	if (server_var(_popup_choice) == 8) then es_xset askingprice 4000

}

block command_buy
{
	es_xset cmd_buy_uid 0
	es_set cmd_buy_uid server_var(_popup_userid)
	es_xset cmd_buy_choice 0
	es_xset exists_var 0
	// keygroupsort thevault cost asc
	keymenu exists exists_var menuvault
      	if (server_var(exists_var) = 1) then keymenu delete menuvault
	keymenu create menuvault cmd_buy_choice auctionhall/buyselector thevault #keyvalue displayname #key "Choose an item to buy:"
	es keymenu send menuvault server_var(cmd_buy_uid)
}

block buyselector
{
	es_tell server_var(cmd_buy_uid) #multi #green [AuctionHall] #default Processing request... 
	es_xset bs_owner 0
	es_keygetvalue bs_owner thevault server_var(cmd_buy_choice) owner
	if (server_var(cmd_buy_uid) != server_var(bs_owner)) do
	{
		es_xset bs_cost 0
		es_xset bs_wname 0
		es_keygetvalue bs_cost thevault server_var(cmd_buy_choice) cost
		es_keygetvalue bs_wname thevault server_var(cmd_buy_choice) name

		es_xset bs_funds 0
		es playerget cash bs_funds server_var(cmd_buy_uid)

		es_xset tempmath 0
		es_set tempmath server_var(bs_funds)
		es_math tempmath subtract server_var(bs_cost)
		if (server_var(tempmath) => 0) do
		{
			es playerset cash server_var(cmd_buy_uid) server_var(tempmath)
			es_keydelete thevault server_var(cmd_buy_choice)
			es_xformatv tempconv "weapon_%1" bs_wname
			es_give server_var(cmd_buy_uid) server_var(tempconv)
			es_xset ownercash 0
			es playerget cash ownercash server_var(bs_owner)
			es_math ownercash add server_var(bs_cost)
			es playerset cash server_var(bs_owner) server_var(ownercash)
			es_xset buyername 0
			es_getplayername buyername server_var(cmd_buy_uid)
			if (server_var(ah_sound) == 1) then es_emitsound player server_var(bs_owner) "auctionhall/transaction.wav" 1 0.4
			if (server_var(ah_public_transaction) == 1) do
			{
				es_xset ownername 0
				es_getplayername ownername server_var(bs_owner)
				es_msg #multi #green [AuctionHall] #default server_var(ownername) has sold his server_var(bs_wname) to server_var(buyername) for $ server_var(bs_cost)!
			}
			if (server_var(ah_public_transaction) == 0) do
			{
				es_tell server_var(bs_owner) #multi #green [AuctionHall] #default you have sold #green server_var(bs_wname) #default to server_var(buyername)
				es_tell server_var(cmd_buy_uid) #multi #green [AuctionHall] #default you have bought #green server_var(bs_wname) #default from server_var(owner)
					
			}
		}
		else es_tell server_var(cmd_buy_uid) #green you dont have enough funds to buy this item!

	}
	else es_tell server_var(cmd_buy_uid) #green you cant buy your own items!

	keymenu delete menuvault
}

block vaultstorage
{
	es_tell server_var(_popup_userid) #multi #green [AuctionHall] #default Processing request... 
	es_xset stor_index 0
	es_xset stor_name 0
	es_xset stor_owner 0

	es_xgetargv stor_index 1
	es_xgetargv stor_name 2
	es_xgetargv stor_owner 3

	if (server_var(askingprice) != 0) do
	{
		es_string stor_name replace "weapon_" ""
		es_remove server_var(stor_index)
		es_cexec server_var(stor_owner) 
		es_cexec server_var(stor_owner) "lastinv"
		es_keycreate thevault server_var(stor_index)
		es_keysetvalue thevault server_var(stor_index) name server_var(stor_name)
		es_keysetvalue thevault server_var(stor_index) owner server_var(_popup_userid)
		es_keysetvalue thevault server_var(stor_index) cost server_var(askingprice)
		es_xset tdn 0
		es_xformatv tdn "%1 ($%2)" stor_name askingprice
		es_keysetvalue thevault server_var(stor_index) displayname server_var(tdn)
		if (server_var(ah_public) == 1) do
		{
			es_xset tn 0
			es_getplayername tn server_var(stor_owner)
			es_msg #multi #green [AuctionHall] #default server_var(tn) has put item server_var(stor_name) for sale for server_var(askingprice)
		}
		if (server_var(ah_public) == 0) then es_tell server_var(stor_owner) #multi #green [AuctionHall] #default you have put item server_var(stor_name) for sale for server_var(askingprice)
	
	}
	else es_tell server_var(stor_owner) #multi #green [AuctionHall] #default Transaction canceled you havent selected a price in time!
}

block ah_choose_sell
{
	if (server_var(_popup_choice) == 1) do
	{
		es_xset csprim 0
		es_xset csprimindex 0
		es playerget primary csprim server_var(_popup_userid) csprimindex
		if (server_var(csprim) != 0) do
		{
			es_xset askingprice 0
			es popup send auctionsellpricechoose server_var(_popup_userid)
			es_delayed 5 storeit server_var(csprimindex) server_var(csprim) server_var(_popup_userid)

		}
		else es_tell server_var(_popup_userid) #green you dont have a primary weapon to sell!
	}
	if (server_var(_popup_choice) == 2) do
	{
		es_xset cssec 0
		es_xset cssecindex 0
		es playerget secondary cssec server_var(_popup_userid) cssecindex
		if (server_var(cssec) != 0) do
		{
			es_xset askingprice 0
			es popup send auctionsellpricechoose server_var(_popup_userid)
			es_delayed 5 storeit server_var(cssecindex) server_var(cssec) server_var(_popup_userid)
		}
		else es_tell server_var(_popup_userid) #green you dont have a secondary weapon to sell!
	}
	if (server_var(_popup_choice) == 3) do
	{
		es_xset cshe 0
		es_xset csheindex 0
		es playerget he cshe server_var(_popup_userid) csheindex
		if (server_var(cshe) != 0) do
		{
			es_xset askingprice 0
			es popup send auctionsellpricechoose server_var(_popup_userid)
			es_delayed 5 storeit server_var(csheindex) weapon_hegrenade server_var(_popup_userid)
		}
		else es_tell server_var(_popup_userid) #green you dont have a hegrenade to sell!
	}
	if (server_var(_popup_choice) == 4) do
	{
		es_xset csfb 0
		es_xset csfbindex 0
		es playerget fb csfb server_var(_popup_userid) csfbindex
		if (server_var(csfb) != 0) do
		{
			es_xset askingprice 0
			es popup send auctionsellpricechoose server_var(_popup_userid)
			es_delayed 5 storeit server_var(csfbindex) weapon_flashbang server_var(_popup_userid)
		}
		else es_tell server_var(_popup_userid) #green you dont have a flashbang to sell!
	}
	if (server_var(_popup_choice) == 5) do
	{
		es_xset cssg 0
		es_xset cssgindex 0
		es playerget sg cssg server_var(_popup_userid) cssgindex
		if (server_var(cssg) != 0) do
		{
			es_xset askingprice 0
			es popup send auctionsellpricechoose server_var(_popup_userid)
			es_delayed 5 storeit server_var(cssgindex) weapon_smokegrenade server_var(_popup_userid)
		}
		else es_tell server_var(_popup_userid) #green you dont have a smokegrenade to sell!
	}
}

