Raised This Month: $105 Target: $400
 26% 

Plugin credits changes


Post New Thread Reply   
 
Thread Tools Display Modes
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 01-06-2020 , 09:18   Re: Plugin credits changes
Reply With Quote #11

Are you kidding me?
__________________
Discord: wEight#6773

Hobbies:
- Map Designing (Any Half-Life 1 Engine Game)
- Pawn (Intermediate / Counter-Strike 1.6 only)
- C#/VB for .Net (Intermediate / Winforms)
- Java (Mostly Android Application Development)
redivcram is offline
sportiv.indungi
Junior Member
Join Date: Jan 2020
Old 01-06-2020 , 11:02   Re: Plugin credits changes
Reply With Quote #12

I do not understand your terms of scripting, the idea is the following, if anyone is able to help me with this plugin, if there are no skilled writers to work with him please TC
sportiv.indungi is offline
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 01-06-2020 , 12:06   Re: Plugin credits changes
Reply With Quote #13

Okay, you are obviously using google translate and have 0 knowledge in English, therefore, I would advise you to leave the forums because no one can help you. This is an English speaking forum.
__________________
Discord: wEight#6773

Hobbies:
- Map Designing (Any Half-Life 1 Engine Game)
- Pawn (Intermediate / Counter-Strike 1.6 only)
- C#/VB for .Net (Intermediate / Winforms)
- Java (Mostly Android Application Development)
redivcram is offline
sportiv.indungi
Junior Member
Join Date: Jan 2020
Old 01-06-2020 , 12:12   Re: Plugin credits changes
Reply With Quote #14

sorry, I'm not meant to be so bad, but the problem is that I don't have knowledge in AMXX and all I wanted was for the credits in that SMA to be saved permanently clear if it is changed
sportiv.indungi is offline
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 01-06-2020 , 12:29   Re: Plugin credits changes
Reply With Quote #15

And we are telling you to paste the code between [PHP] tags because we can't read it the way you posted it.

This is how it should look like, for example:
PHP Code:
public function()
{
        
some_stuff();
}

// oh hey a comment 
Not like:

Quote:
public function()
{
some_stuff();
}

// oh hey a comment
You can quote this post and see how It's made in your post editor.
__________________
Discord: wEight#6773

Hobbies:
- Map Designing (Any Half-Life 1 Engine Game)
- Pawn (Intermediate / Counter-Strike 1.6 only)
- C#/VB for .Net (Intermediate / Winforms)
- Java (Mostly Android Application Development)
redivcram is offline
iceeedr
Veteran Member
Join Date: Apr 2017
Location: Brazil
Old 01-06-2020 , 14:53   Re: Plugin credits changes
Reply With Quote #16

My God, you spend more time arguing with someone who obviously doesn't understand how the forum works, than playing the code in amxx studio and using the auto indent function.

Do not forget that the forum is a place to help, lately you only produce criticism.

Code:
#define VER "1.0.4"
//Amount of credits new players get
#define numnewcredits 25
//Time Per Credit (in seconds)
#define credittime 9000000
//How much the passive upgrades cost
#define armorcost 1
#define hpcost 2
#define speedcost 1
#define gravitycost 1
#define stealthcost 1
#define multijumpcost 1
//How much the passive upgrades adds
#define armorperbuy 20
#define hpperbuy 15
#define speedperbuy 30
//eg. 0.05 it will take off 5% of the users gravity
#define gravityperbuy 0.1
//eg. (stealthperbuy = 60) times (stealthmaxlvl = 3) = 180 // the value must be lower than the defaultstealth
#define defaultstealth 200
#define stealthperbuy 20
//How much the passive upgrades Max Level
#define armormaxlvl 25
#define hpmaxlvl 5
#define speedmaxlvl 5
#define gravitymaxlvl 3
#define stealthmaxlvl 5
#define multijumpmaxlvl 25
//Item Upgrades
//max items
#define maxitems 105
//max credits spent per map
#define maxcredits 800
//First Aid Regeneration
#define regenerationrate 4.5
// health regeneration points
#define hpregenp 15
// armor regeneration points
#define apregenp 8
// First Aid cost
#define regenerationcost 1
//Battle Aura cost
#define hpscost 1
//Weapon Training cost
#define weapontrainingcost 5
//Jump Module cost
#define jumpmodulecost 1
//Climb Gear cost
#define climbgearcost 1
//Promotion cost
#define promocost 1
//Unlimited Ammo cost
#define unlacost 1
//Stealth Shoe cost
#define sshoecost 1
//C4 Wired Explosives
#define BOMBKILL_RANGE 350
#define wiredc4ecost 1
//E.S.P cost
#define espcost 1
//Laser Pointer
#define lasercost 1
//Super Grenade cost
#define sgrencost 1
//Crowbar cost
#define crowbarcost 5
//Flash Protection
#define flashcost 1
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#include <fun>
#include <vault>
#define BOMB_TASK 1234
new connecttime[33]
new lastplaytime[33]
new creditsspent[33]
new Armor[33]
new Health[33]
new Speed[33]
new Gravity[33]
new Stealth[33]
new hpstlr[33]
new regeneration[33]
new weapontraining[33]
new jumpmodule[33]
new climb[33]
new promotion[33]
new gHasuammo[33]
new sshoe[33]
new wired[33]
new esp[33]
new laser[33]
new sgrenade[33]
new crowbar[33]
new flash[33]
new multijump[33]
new jumpnum[33]
new itemcap[33]
new bool:dojump[33] = false
new bool:speed = true
new hudmsg[512]
new smoke, white, fire
public plugin_init()
{
	register_plugin("Credit Mod", VER, "atambo")
	register_cvar("amx_upgrades", "1")
	register_menu("Main Upgrades Menu", 1023, "MainMenuCommand")
	register_menu("Passive Upgrade Menu", 1023, "actionMenu")
	register_menu("Item Upgrade Menu", 1023, "EUAMenu")
	register_menu("Item 2 Upgrade Menu", 1023, "EUA2Menu")
	register_clcmd("say", "handlesay")
	register_clcmd("say_team", "handlesay")
	register_clcmd("upgrade", "MainUpgradesMenu")
	register_concmd("amx_querycredits","queryall" ,ADMIN_CVAR," -displays <name> <credits>")
	register_concmd("amx_givecredits","givecredit ",ADMIN_BAN," <name or #userid> <credits>")
	register_concmd("amx_removecredits","removecr edit",ADMIN_BAN," <name or #userid> <credits>")
	register_event("ResetHUD","newRound","be")
	register_event("StatusValue","show_status","b d","1=2")
	register_event("DeathMsg", "death_event", "a")
	register_event("CurWeapon","update","be","1=1 ")
	register_event("Damage", "Event_Damage", "be", "2!0")
	register_event("ScreenFade","flashcheck","be" ,"4=255","5=255","6=255","7>199")
	server_cmd("sv_maxspeed 1500")
}

public client_connected_msg(id)
{
	client_print(id, print_chat, "Acest server ruleaza un mod special de credite", VER)
	client_print(id, print_chat, "type /credits /buy /upgrade /buycredit", VER)
}

public client_putinserver(id)
{
	if(get_cvar_num("amx_upgrades") == 1)
		set_task(20.0, "client_connected_msg", id)
}

public flashcheck(id)
{
	if(flash[id] > 0)
	{
		message_begin(MSG_ONE,get_user_msgid("ScreenF ade"),{0,0,0},id)
		write_short(~0)
		write_short(~0)
		write_short(1<<12)
		write_byte(0)
		write_byte(0)
		write_byte(0)
		write_byte(0)
		message_end()
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}

public newRound(id)
{
	if(get_cvar_num("amx_upgrades") == 0)
	{
		itemcap[id] = 0
		Armor[id] = 0
		Health[id] = 0
		Speed[id] = 0
		Gravity[id] = 0
		Stealth[id] = 0
		hpstlr[id] = 0
		regeneration[id] = 0
		weapontraining[id] = 0
		jumpmodule[id] = 0
		climb[id] = 0
		promotion[id] = 0
		gHasuammo[id] = 0
		sshoe[id] = 0
		wired[id] = 0
		esp[id] = 0
		laser[id] = 0
		sgrenade[id] = 0
		crowbar[id] = 0
		creditsspent[id] = 0
		flash[id] = 0
		jumpnum[id] = 0
		multijump[id] = 0
		set_user_footsteps(id, 1)
		set_user_rendering(id,kRenderFxNone,0,0,0,kRe nderNormal,0)
		return PLUGIN_CONTINUE
	}
	else
	{
		if(is_user_alive(id))
		{
			if(Armor[id] > 0)
			{
				new iap = (Armor[id] * armorperbuy)
				set_user_armor(id, 100 + iap)
			}
			if(Health[id] > 0)
			{
				new ihp = (Health[id] * hpperbuy)
				set_user_health(id, 100 + ihp)
			}
			if(promotion[id] > 0)
				cs_set_user_money(id, cs_get_user_money(id) * 2, 1)
			if(esp[id] > 0)
				set_task(3.0, "esploop", id, "", 0, "b")
			if(climb[id] > 0)
				set_task(0.1, "cwall", id, "", 0, "b")
			if(regeneration[id] > 0)
				firstaid(id)
			if(sgrenade[id] > 0)
			{
				sgrenade[id] = 0
				itemcap[id]--
			}
			if(wired[id] > 0)
			{
				wired[id] = 0
				itemcap[id]--
			}
		}
		show_all_upgrades(id)
		speed = false
		set_task(get_cvar_float("mp_freezetime"), "allow_speed", 0)
	}
	return PLUGIN_CONTINUE
}

public show_status(id)
{
	if(get_cvar_num("amx_upgrades") != 1)
		return PLUGIN_CONTINUE
	new target = read_data(2)
	if(target != id && target != 0)
	{
		new name[32]
		get_user_name(target, name,31)
		new len = format(hudmsg, 511, "%s's^nPassive Upgrades:^n", name)
		len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Gravity %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d^n", Armor[target], armormaxlvl, Health[target], hpmaxlvl, Speed[target], speedmaxlvl, Gravity[target], gravitymaxlvl, Stealth[target], stealthmaxlvl, multijump[target], multijumpmaxlvl)
		len += format(hudmsg[len], 511-len, "^nItem Upgrades:^n")
		if(hpstlr[target] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n")
		if(regeneration[target] > 0) len += format(hudmsg[len], 511-len, "First Aid^n")
		if(weapontraining[target] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n")
		if(jumpmodule[target] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n")
		if(climb[target] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n")
		if(promotion[target] > 0) len += format(hudmsg[len], 511-len, "Promotion^n")
		if(gHasuammo[target] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n")
		if(sshoe[target] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n")
		if(wired[target] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n")
		if(esp[target] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n")
		if(laser[target] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n")
		if(sgrenade[target] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n")
		if(crowbar[target] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n")
		if(flash[target] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n")
		len += format(hudmsg[len], 511-len, "^nCredits: %i",connecttime[target]/credittime)
		set_hudmessage(255, 255, 255, 0.0, 0.2, 0, 6.0, 6.0, 0.5, 0.15, 1)
		show_hudmessage(id, hudmsg)
	}
	return PLUGIN_CONTINUE
}

public show_all_upgrades(id)
{
	new len = format(hudmsg, 511, "Passive Upgrades:^n")
	len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Gravity %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d^n", Armor[id], armormaxlvl, Health[id], hpmaxlvl, Speed[id], speedmaxlvl, Gravity[id], gravitymaxlvl, Stealth[id], stealthmaxlvl, multijump[id], multijumpmaxlvl)
	len += format(hudmsg[len], 511-len, "^nItem Upgrades:^n")
	if(hpstlr[id] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n")
	if(regeneration[id] > 0) len += format(hudmsg[len], 511-len, "First Aid^n")
	if(weapontraining[id] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n")
	if(jumpmodule[id] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n")
	if(climb[id] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n")
	if(promotion[id] > 0) len += format(hudmsg[len], 511-len, "Promotion^n")
	if(gHasuammo[id] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n")
	if(sshoe[id] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n")
	if(wired[id] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n")
	if(esp[id] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n")
	if(laser[id] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n")
	if(sgrenade[id] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n")
	if(crowbar[id] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n")
	if(flash[id] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n")
	len += format(hudmsg[len], 511-len, "^nCredits: %i",connecttime[id]/credittime)
	set_hudmessage(255, 255, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1)
	show_hudmessage(id, hudmsg)
}

public show_upgrades(id)
{
	new len = format(hudmsg, 511, "Passive Upgrades:^n")
	len += format(hudmsg[len], 511-len, "*Armor %d/%d^n*Health %d/%d^n*Speed %d/%d^n*Gravity %d/%d^n*Stealth %d/%d^n*MultiJump %d/%d", Armor[id], armormaxlvl, Health[id], hpmaxlvl, Speed[id], speedmaxlvl, Gravity[id], gravitymaxlvl, Stealth[id], stealthmaxlvl, multijump[id], multijumpmaxlvl)
	set_hudmessage(255, 255, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1)
	show_hudmessage(id, hudmsg)
}

public show_iupgrades(id)
{
	new len = format(hudmsg, 511, "Item Upgrades:^n")
	if(hpstlr[id] > 0) len += format(hudmsg[len], 511-len, "Battle Aura^n")
	if(regeneration[id] > 0) len += format(hudmsg[len], 511-len, "First Aid^n")
	if(weapontraining[id] > 0) len += format(hudmsg[len], 511-len, "Weapon Training^n")
	if(jumpmodule[id] > 0) len += format(hudmsg[len], 511-len, "Jump Module^n")
	if(climb[id] > 0) len += format(hudmsg[len], 511-len, "Climbing Gear^n")
	if(promotion[id] > 0) len += format(hudmsg[len], 511-len, "Promotion^n")
	if(gHasuammo[id] > 0) len += format(hudmsg[len], 511-len, "Unlimited Ammo^n")
	if(sshoe[id] > 0) len += format(hudmsg[len], 511-len, "Stealth Shoes^n")
	if(wired[id] > 0) len += format(hudmsg[len], 511-len, "Wired C4 Explosive^n")
	if(esp[id] > 0) len += format(hudmsg[len], 511-len, "E.S.P^n")
	if(laser[id] > 0) len += format(hudmsg[len], 511-len, "Laser Pointer^n")
	if(sgrenade[id] > 0) len += format(hudmsg[len], 511-len, "Super Grenade^n")
	if(crowbar[id] > 0) len += format(hudmsg[len], 511-len, "Crowbar^n")
	if(flash[id] > 0) len += format(hudmsg[len], 511-len, "Flash Protection^n")
	set_hudmessage(255, 255, 255, 0.0, 0.1, 0, 6.0, 6.0, 0.5, 0.15, 1)
	show_hudmessage(id, hudmsg)
}

public allow_speed()
{
	speed = true
	return PLUGIN_HANDLED
}

public death_event()
{
	new id = read_data(2)
	new enemy = read_data(1)
	remove_task(id)
	if(wired[id] > 0)
	{
		wired[id] = 0
		itemcap[id]--
	}
	if(sgrenade[enemy] > 0)
	{
		sgrenade[enemy] = 0
		itemcap[enemy]--
	}
	if(task_exists(BOMB_TASK + id))
		remove_task(BOMB_TASK + id)
	if(promotion[enemy] > 0)
		cs_set_user_money(enemy, cs_get_user_money(enemy) + 300, 1)
	return PLUGIN_CONTINUE
}

public client_disconnect(id)
{
	Armor[id] = 1
	Health[id] = 1
	Speed[id] = 1
	Gravity[id] = 1
	Stealth[id] = 0
	hpstlr[id] = 0
	regeneration[id] = 0
	weapontraining[id] = 1
	jumpmodule[id] = 0
	climb[id] = 0
	promotion[id] = 0
	gHasuammo[id] = 0
	sshoe[id] = 0
	wired[id] = 0
	esp[id] = 0
	laser[id] = 0
	sgrenade[id] = 0
	crowbar[id] = 1
	itemcap[id] = 0
	creditsspent[id] = 1
	lastplaytime[id] = 1
	flash[id] = 1
	jumpnum[id] = 1
	multijump[id] = 1
	remove_task(id)
	new authid[32]
	new playtime = (get_user_time(id) - lastplaytime[id])
	get_user_authid(id,authid,31)
	new tmp_vault_time,vault_time[21]
	get_vaultdata(authid,vault_time,20)
	tmp_vault_time = str_to_num(vault_time)
	tmp_vault_time += playtime
	num_to_str(tmp_vault_time,vault_time,20)
	set_vaultdata(authid,vault_time)
	return PLUGIN_CONTINUE
}

public handlesay(id)
{
	new arg[64], arg1[32], arg2[32]
	read_args(arg,63)
	remove_quotes(arg)
	strtok(arg,arg1,255,arg2,255,' ',1)
	trim(arg2)
	if(arg1[0] == '/')
	{
		if(equali(arg1, "/buy") == 1 || equali(arg1, "/upgrades") == 1 || equali(arg1, "/upgrade") == 1)
		{
			MainUpgradesMenu(id)
			return PLUGIN_CONTINUE
		}
		if(equali(arg1, "/credits") == 1 || equali(arg1, "/credit") == 1)
		{
			new authid[32]
			new playtime = (get_user_time(id) - lastplaytime[id])
			lastplaytime[id] = get_user_time(id)
			get_user_authid(id,authid,31)
			new tmp_vault_time,vault_time[21]
			get_vaultdata(authid,vault_time,20)
			tmp_vault_time = str_to_num(vault_time)
			tmp_vault_time += playtime
			connecttime[id] = tmp_vault_time
			num_to_str(tmp_vault_time,vault_time,20)
			set_vaultdata(authid,vault_time)
			new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor)
			new minutes = tmp_minutes % (credittime/60)
			client_print(id,print_chat,"You have %i credits (%i minutes remaining until next credit)",connecttime[id]/credittime,(credittime/60)-minutes)
			return PLUGIN_CONTINUE
		}
		if(equali(arg1,"/givecredits") == 1 || equali(arg1,"/givecredit") == 1)
		{
			new authid[32]
			new playtime = (get_user_time(id) - lastplaytime[id])
			lastplaytime[id] = get_user_time(id)
			get_user_authid(id,authid,31)
			new tmp_vault_time,vault_time[21]
			get_vaultdata(authid,vault_time,20)
			tmp_vault_time = str_to_num(vault_time)
			tmp_vault_time += playtime
			connecttime[id] = tmp_vault_time
			num_to_str(tmp_vault_time,vault_time,20)
			set_vaultdata(authid,vault_time)
			if(is_user_alive(id) == 0)
			{
				client_print(id,print_chat,"[AMXX] You must be alive to use this command")
				return PLUGIN_CONTINUE
			}
			new credits
			credits = str_to_num(arg2)
			if(credits <= 0)
			{
				client_print(id,print_chat,"[AMXX] You must specify a value of at least one credit")
				return PLUGIN_CONTINUE
			}
			new player, body, Float:dist = get_user_aiming(id,player,body,9999)
			if(player == 0 || player > 32 || is_user_connected(player) == 0 || is_user_alive(player) == 0)
			{
				client_print(id,print_chat,"[AMXX] Player is invalid or non-existant")
				return PLUGIN_CONTINUE
			}
			new classname[256]
			entity_get_string(player,EV_SZ_classname,clas sname,255)
			if(!equal(classname,"player"))
			{
				client_print(id,print_chat,"[AMXX] Player is invalid or non-existant")
				return PLUGIN_CONTINUE
			}
			if(dist > 512.0)
			{
				client_print(id,print_chat,"[AMXX] Player is too far away to give credits")
				return PLUGIN_CONTINUE
			}
			if(credits > connecttime[id]/credittime)
			{
				client_print(id,print_chat,"[AMXX] You do not have that amount of credits")
				return PLUGIN_CONTINUE
			}
			new givername[256], receivername[256]
			get_user_name(id,givername,255)
			get_user_name(player,receivername,255)
			decCredit(id,credits)
			addCredit(player,credits)
			client_print(id,print_chat,"[AMXX] You have given %i credits to %s",credits,receivername)
			client_print(player,print_chat,"[AMXX] You have received %i credits from %s",credits,givername)
			return PLUGIN_CONTINUE
		}
	}
	return PLUGIN_CONTINUE
}

public MainUpgradesMenu(id)
{
	if(get_cvar_num("amx_upgrades") == 1)
	{
		new authid[32]
		new playtime = (get_user_time(id) - lastplaytime[id])
		lastplaytime[id] = get_user_time(id)
		get_user_authid(id,authid,31)
		new tmp_vault_time,vault_time[21]
		get_vaultdata(authid,vault_time,20)
		tmp_vault_time = str_to_num(vault_time)
		tmp_vault_time += playtime
		connecttime[id] = tmp_vault_time
		num_to_str(tmp_vault_time,vault_time,20)
		set_vaultdata(authid,vault_time)
		new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor)
		new minutes = tmp_minutes % (credittime/60)
		new keys
		new szMenuBody[255]
		new len = format(szMenuBody, 511, "yMain Upgrades Menu:^n")
		len += format(szMenuBody[len], 511-len, "^nw1. Passive Upgrades")
		len += format(szMenuBody[len], 511-len, "^nw2. Item Upgrades")
		len += format(szMenuBody[len], 511-len, "^nw3. Show all upgrades")
		len += format(szMenuBody[len], 511-len, "^nw4. Upgrade Help")
		len += format(szMenuBody[len], 511-len, "^n^nw0. Cancel")
		len += format(szMenuBody[len], 511-len, "^n^nCredits: %i (%i minutes remaining until next credit)",connecttime[id]/credittime,(credittime/60)-minutes)
		keys = (1<<0|1<<1|1<<2|1<<3|1<<9)
		show_menu(id, keys, szMenuBody, -1)
	}
	else
		client_print(id,print_chat,"[AMXX] Credit Mod is currently disabled")
	return PLUGIN_HANDLED
}

public MainMenuCommand(id, key)
{
	switch(key)
	{
		case 0: showMenu(id)
			case 1: EUMenu(id)
			case 2: show_all_upgrades(id)
			case 3: UpgrHelp(id)
		}
	return PLUGIN_HANDLED
}

public EU2Menu(id)
{
	new authid[32]
	new playtime = (get_user_time(id) - lastplaytime[id])
	lastplaytime[id] = get_user_time(id)
	get_user_authid(id,authid,31)
	new tmp_vault_time,vault_time[21]
	get_vaultdata(authid,vault_time,20)
	tmp_vault_time = str_to_num(vault_time)
	tmp_vault_time += playtime
	connecttime[id] = tmp_vault_time
	num_to_str(tmp_vault_time,vault_time,20)
	set_vaultdata(authid,vault_time)
	new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor)
	new minutes = tmp_minutes % (credittime/60)
	new keys
	new szMenuBody[512]
	new len = format(szMenuBody, 511, "yItem 2 Upgrade Menu:^n")
	len += format(szMenuBody[len], 511-len, "^nw1. Wired C4 Explosive (Cost: %d Credit)", wiredc4ecost)
	len += format(szMenuBody[len], 511-len, "^nw2. E.S.P (Cost: %d Credit)", espcost)
	len += format(szMenuBody[len], 511-len, "^nw3. Laser Pointer (Cost: %d Credit)", lasercost)
	len += format(szMenuBody[len], 511-len, "^nw4. Super Grenade (Cost: %d Credit)", sgrencost)
	len += format(szMenuBody[len], 511-len, "^nw5. Crowbar (Cost: %d Credit)", crowbarcost)
	len += format(szMenuBody[len], 511-len, "^nw6. Stealth Shoes (Cost: %d Credit)", sshoecost)
	len += format(szMenuBody[len], 511-len, "^nw7. Flash Protection (Cost: %d Credit)", flashcost)
	len += format(szMenuBody[len], 511-len, "^n^nw9. Back")
	len += format(szMenuBody[len], 511-len, "^nw0. Cancel")
	len += format(szMenuBody[len], 511-len, "^n^nCredits: %i (%i minutes remaining until next credit)",connecttime[id]/credittime,(credittime/60)-minutes)
	keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<8|1<<9 )
	show_menu(id, keys, szMenuBody, -1)
}

public EUA2Menu(id, key)
{
	switch(key)
	{
		case 0:
		{
			if(connecttime[id]/credittime < wiredc4ecost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(wired[id] == 1)
				client_print(id, print_chat, "[AMXX] You already have Wired C4 Explosive")
			if(!is_user_alive(id))
				client_print(id, print_chat, "[AMXX] You have to be alive")
			if(connecttime[id]/credittime >= wiredc4ecost && wired[id] == 0 && is_user_alive(id))
			{
				itemcap[id]++
				wired[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				decCredit(id,wiredc4ecost)
				client_print(id, print_chat, "[AMXX] Use your knife to turn it on")
			}
			EU2Menu(id)
		}
		case 1:
		{
			if(connecttime[id]/credittime < espcost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(esp[id] == 1)
				client_print(id, print_chat, "[AMXX] You already have E.S.P")
			if(connecttime[id]/credittime >= espcost && esp[id] == 0)
			{
				itemcap[id]++
				esp[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				set_task(3.0, "esploop", id, "", 0, "b")
				decCredit(id,espcost)
				client_print(id, print_chat, "[AMXX] E.S.P is now activated")
				creditsspent[id]++
			}
			EU2Menu(id)
		}
		case 2:
		{
			if(connecttime[id]/credittime < lasercost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(laser[id] == 1)
				client_print(id, print_chat, "[AMXX] You already have Laser Pointer")
			if(connecttime[id]/credittime >= lasercost && laser[id] == 0)
			{
				itemcap[id]++
				laser[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				decCredit(id,lasercost)
				client_print(id, print_chat, "[AMXX] Laser Activated, Battery life is 10 seconds")
				creditsspent[id]++
			}
			EU2Menu(id)
		}
		case 3:
		{
			if(connecttime[id]/credittime < sgrencost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(sgrenade[id] == 1)
				client_print(id, print_chat, "[AMXX] You already have Super Grenade")
			if(!is_user_alive(id))
				client_print(id, print_chat, "[AMXX] You have to be alive")
			if(connecttime[id]/credittime >= sgrencost && sgrenade[id] == 0 && is_user_alive(id))
			{
				itemcap[id]++
				sgrenade[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				give_item(id, "weapon_hegrenade")
				decCredit(id,sgrencost)
				client_print(id, print_chat, "[AMXX] This grenade has ALOT of damage")
			}
			EU2Menu(id)
		}
		case 4:
		{
			if(connecttime[id]/credittime < crowbarcost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(crowbar[id] == 1)
				client_print(id, print_chat, "[AMXX] You already have Crowbar")
			if(!is_user_alive(id))
				client_print(id, print_chat, "[AMXX] You have to be alive")
			if(connecttime[id]/credittime >= crowbarcost && crowbar[id] == 0 && is_user_alive(id))
			{
				itemcap[id]++
				crowbar[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				decCredit(id,crowbarcost)
				client_print(id, print_chat, "[AMXX] Crowbar 2x knife damage")
				creditsspent[id]++
			}
			EU2Menu(id)
		}
		case 5:
		{
			if(connecttime[id]/credittime < sshoecost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(sshoe[id] > 0)
				client_print(id, print_chat, "[AMXX] You already have Stealth Shoes")
			if(connecttime[id]/credittime >= sshoecost && sshoe[id] == 0)
			{
				itemcap[id]++
				sshoe[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				set_user_footsteps(id, 1)
				decCredit(id,sshoecost)
				client_print(id, print_chat, "[AMXX] No more footsteps")
				creditsspent[id]++
			}
			EUMenu(id)
		}
		case 6:
		{
			if(connecttime[id]/credittime < flashcost)
				client_print(id, print_chat, "[AMXX] Insufficient credits")
			if(sshoe[id] > 0)
				client_print(id, print_chat, "[AMXX] You already have Flash Protection")
			if(connecttime[id]/credittime >= flashcost && flash[id] == 0)
			{
				itemcap[id]++
				flash[id] = 1
				upgradelevelup(id)
				show_iupgrades(id)
				decCredit(id,flashcost)
				client_print(id, print_chat, "[AMXX] No more flashbangs")
				creditsspent[id]++
			}
			EUMenu(id)
		}
		case 8: EUMenu(id)
		}
	return PLUGIN_HANDLED
}

public EUMenu(id)
{
	if(get_cvar_num("amx_upgrades") == 1)
	{
		new authid[32]
		new playtime = (get_user_time(id) - lastplaytime[id])
		lastplaytime[id] = get_user_time(id)
		get_user_authid(id,authid,31)
		new tmp_vault_time,vault_time[21]
		get_vaultdata(authid,vault_time,20)
		tmp_vault_time = str_to_num(vault_time)
		tmp_vault_time += playtime
		connecttime[id] = tmp_vault_time
		num_to_str(tmp_vault_time,vault_time,20)
		set_vaultdata(authid,vault_time)
		new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor)
		new minutes = tmp_minutes % (credittime/60)
		new keys
		new szMenuBody[512]
		new len = format(szMenuBody, 511, "yItem Upgrade Menu:^n")
		len += format(szMenuBody[len], 511-len, "^nw1. Battle Aura (Cost: %d Credit)", hpscost)
		len += format(szMenuBody[len], 511-len, "^nw2. First Aid (Cost: %d Credit)", regenerationcost)
		len += format(szMenuBody[len], 511-len, "^nw3. Weapon Training (Cost: %d Credit)", weapontrainingcost)
		len += format(szMenuBody[len], 511-len, "^nw4. Jump Module (Cost: %d Credit)", jumpmodulecost)
		len += format(szMenuBody[len], 511-len, "^nw5. Climbing Gear (Cost: %d Credit)", climbgearcost)
		len += format(szMenuBody[len], 511-len, "^nw6. Promotion (Cost: %d Credit)", promocost)
		len += format(szMenuBody[len], 511-len, "^nw7. Unlimited Ammo (Cost: %d Credit)", unlacost)
		len += format(szMenuBody[len], 511-len, "^n^nw8. Next")
		len += format(szMenuBody[len], 511-len, "^nw9. Back")
		len += format(szMenuBody[len], 511-len, "^nw0. Cancel")
		len += format(szMenuBody[len], 511-len, "^n^nCredits: %i (%i minutes remaining until next credit)",connecttime[id]/credittime,(credittime/60)-minutes)
		keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8 |1<<9)
		show_menu(id, keys, szMenuBody, -1)
	}
}

public EUAMenu(id, key)
{
	if(itemcap[id] == maxitems)
		client_print(id, print_chat, "[AMXX] MAX items reached")
	if(creditsspent[id] == maxcredits)
		client_print(id, print_chat, "[AMXX] MAX credits spent per map")
	if(itemcap[id] < maxitems && creditsspent[id] < maxcredits)
	{
		switch(key)
		{
			case 0:
			{
				if(connecttime[id]/credittime < hpscost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(hpstlr[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have Battle Aura")
				if(connecttime[id]/credittime >= hpscost && hpstlr[id] == 0)
				{
					itemcap[id]++
					hpstlr[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,hpscost)
					client_print(id, print_chat, "[AMXX] Now you can steal enemy's health")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 1:
			{
				if(connecttime[id]/credittime< regenerationcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(regeneration[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have First Aid")
				if(connecttime[id]/credittime >= regenerationcost && regeneration[id] == 0)
				{
					itemcap[id]++
					regeneration[id] = 1
					firstaid(id)
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,regenerationcost)
					client_print(id, print_chat, "[AMXX] Now your health/armor will start to regenerate")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 2:
			{
				if(connecttime[id]/credittime < weapontrainingcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(weapontraining[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have Weapon Training")
				if(connecttime[id]/credittime >= weapontrainingcost && weapontraining[id] == 0)
				{
					itemcap[id]++
					weapontraining[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,weapontrainingcost)
					client_print(id, print_chat, "[AMXX] No more recoil")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 3:
			{
				if(connecttime[id]/credittime < jumpmodulecost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(jumpmodule[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have Jump Module")
				if(connecttime[id]/credittime >= jumpmodulecost && jumpmodule[id] == 0)
				{
					itemcap[id]++
					jumpmodule[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,jumpmodulecost)
					client_print(id, print_chat, "[AMXX] Now you can bunnyhop")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 4:
			{
				if(connecttime[id]/credittime < climbgearcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(climb[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have Climbing Gear")
				if(connecttime[id]/credittime >= climbgearcost && climb[id] == 0)
				{
					itemcap[id]++
					climb[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					set_task(0.1, "cwall", id, "", 0, "b")
					decCredit(id,climbgearcost)
					client_print(id, print_chat, "[AMXX] Hold [Forward] or [Back] & [Jump] to climb walls")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 5:
			{
				if(connecttime[id]/credittime < promocost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(promotion[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have a Promotion")
				if(connecttime[id]/credittime >= promocost && promotion[id] == 0)
				{
					itemcap[id]++
					promotion[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,promocost)
					client_print(id, print_chat, "[AMXX] Now you get 2x more money")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 6:
			{
				if(connecttime[id]/credittime < unlacost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(gHasuammo[id] == 1)
					client_print(id, print_chat, "[AMXX] You already have a Unlimited Ammo")
				if(connecttime[id]/credittime >= unlacost && gHasuammo[id] == 0)
				{
					itemcap[id]++
					gHasuammo[id] = 1
					upgradelevelup(id)
					show_iupgrades(id)
					decCredit(id,unlacost)
					client_print(id, print_chat, "[AMXX] No more reloads")
					creditsspent[id]++
				}
				EUMenu(id)
			}
			case 7: EU2Menu(id)
				case 8: MainUpgradesMenu(id)
			}
	}
	return PLUGIN_HANDLED
}

public showMenu(id)
{
	if(get_cvar_num("amx_upgrades") == 1)
	{
		new authid[32]
		new playtime = (get_user_time(id) - lastplaytime[id])
		lastplaytime[id] = get_user_time(id)
		get_user_authid(id,authid,31)
		new tmp_vault_time,vault_time[21]
		get_vaultdata(authid,vault_time,20)
		tmp_vault_time = str_to_num(vault_time)
		tmp_vault_time += playtime
		connecttime[id] = tmp_vault_time
		num_to_str(tmp_vault_time,vault_time,20)
		set_vaultdata(authid,vault_time)
		new tmp_minutes = floatround(float(connecttime[id]/60),floatround_floor)
		new minutes = tmp_minutes % (credittime/60)
		new keys
		new szMenuBody[512]
		new len = format(szMenuBody, 511, "yPassive Upgrade Menu:^n")
		len += format(szMenuBody[len], 511-len, "^nw1. Armor (Cost: %d Credit)", armorcost)
		len += format(szMenuBody[len], 511-len, "^nw2. Health (Cost: %d Credit)", hpcost)
		len += format(szMenuBody[len], 511-len, "^nw3. Speed (Cost: %d Credit)", speedcost)
		len += format(szMenuBody[len], 511-len, "^nw4. Gravity (Cost: %d Credit)", gravitycost)
		len += format(szMenuBody[len], 511-len, "^nw5. Stealth (Cost: %d Credit)", stealthcost)
		len += format(szMenuBody[len], 511-len, "^nw6. MultiJump (Cost: %d Credit)", multijumpcost)
		len += format(szMenuBody[len], 511-len, "^n^nw9. Back")
		len += format(szMenuBody[len], 511-len, "^nw0. Cancel")
		len += format(szMenuBody[len], 511-len, "^n^nCredits: %i (%i minutes remaining until next credit)",connecttime[id]/credittime,(credittime/60)-minutes)
		keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<8|1<<9)
		show_menu(id, keys, szMenuBody, -1)
	}
	return PLUGIN_CONTINUE
}

public actionMenu(id, key)
{
	if(creditsspent[id] == maxcredits)
		client_print(id, print_chat, "[AMXX] MAX credits spent per map")
	if(creditsspent[id] < maxcredits)
	{
		switch(key)
		{
			case 0:
			{
				if(connecttime[id]/credittime < armorcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(Armor[id] == armormaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= armorcost && Armor[id] < armormaxlvl)
				{
					Armor[id]++
					UserArmor(id)
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,armorcost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 1:
			{
				if(connecttime[id]/credittime < hpcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(Health[id] == hpmaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= hpcost && Health[id] < hpmaxlvl)
				{
					Health[id]++
					UserHealth(id)
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,hpcost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 2:
			{
				if(connecttime[id]/credittime < speedcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(Speed[id] == speedmaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= speedcost && Speed[id] < speedmaxlvl)
				{
					Speed[id]++
					UserSpeed(id)
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,speedcost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 3:
			{
				if(connecttime[id]/credittime < gravitycost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(Gravity[id] == gravitymaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= gravitycost && Gravity[id] < gravitymaxlvl)
				{
					Gravity[id]++
					UserGravity(id)
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,gravitycost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 4:
			{
				if(connecttime[id]/credittime < stealthcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(Stealth[id] == stealthmaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= stealthcost && Stealth[id] < stealthmaxlvl)
				{
					Stealth[id]++
					UserStealth(id)
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,stealthcost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 5:
			{
				if(connecttime[id]/credittime < multijumpcost)
					client_print(id, print_chat, "[AMXX] Insufficient credits")
				if(multijump[id] == multijumpmaxlvl)
					client_print(id, print_chat, "[AMXX] Max level reached")
				if(connecttime[id]/credittime >= multijumpcost && multijump[id] < multijumpmaxlvl)
				{
					multijump[id]++
					upgradelevelup(id)
					show_upgrades(id)
					decCredit(id,multijumpcost)
					creditsspent[id]++
				}
				showMenu(id)
			}
			case 8: MainUpgradesMenu(id)
			}
	}
	return PLUGIN_HANDLED
}

public UserArmor(id)
{
	new iap = (Armor[id] * armorperbuy)
	set_user_armor(id, 100 + iap)
	return PLUGIN_CONTINUE
}

public UserHealth(id)
{
	new ihp = (Health[id] * hpperbuy)
	set_user_health(id, 100 + ihp)
	return PLUGIN_CONTINUE
}

public UserSpeed(id)
{
	if(speed == false)
		return PLUGIN_CONTINUE
	new ispeed = (Speed[id] * speedperbuy)
	set_user_maxspeed(id, 240.0 + ispeed)
	return PLUGIN_CONTINUE
}

public UserGravity(id)
{
	set_user_gravity(id, 1 - Gravity[id] * gravityperbuy)
	return PLUGIN_CONTINUE
}

public UserStealth(id)
{
	new istealth = (Stealth[id] * stealthperbuy)
	set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - istealth)
	return PLUGIN_CONTINUE
}

public firstaid(id)
{
	if(is_user_alive(id))
	{
		if(regeneration[id] > 0)
		{
			new Float:srate = regenerationrate
			set_task(srate, "starttheregen", id, "", 0, "b")
		}
	}
	return PLUGIN_CONTINUE
}

public starttheregen(id)
{
	if(is_user_alive(id))
	{
		if(regeneration[id] > 0)
		{
			new maxhp = (100 + Health[id] * hpperbuy)
			if(get_user_health(id) < maxhp)
			{
				message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, id)
				write_short(1<<10)
				write_short(1<<10)
				write_short(1<<12)
				write_byte(0)
				write_byte(0)
				write_byte(255)
				write_byte(50)
				message_end()
				new health = get_user_health(id)
				health += hpregenp
				set_user_health(id, health)
				if(get_user_health(id) >= maxhp)
					set_user_health(id, maxhp)
			}
			new maxap = (100 + Armor[id] * armorperbuy)
			if(get_user_armor(id) < maxap)
			{
				message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, id)
				write_short(1<<10)
				write_short(1<<10)
				write_short(1<<12)
				write_byte(0)
				write_byte(0)
				write_byte(255)
				write_byte(50)
				message_end()
				new armor = get_user_armor(id)
				armor += apregenp
				set_user_armor(id, armor)
				if(get_user_armor(id) >= maxap)
					set_user_armor(id, maxap)
			}
		}
	}
	return PLUGIN_CONTINUE
}

public Event_Damage(id)
{
	new damage = read_data(2)
	new bodypart, weapon
	new enemy = get_user_attacker(id, weapon, bodypart)
	new hpgain = floatround(float(get_user_health(enemy)) + (float(damage) * 0.5))
	new maxhp = (100 + Health[enemy] * hpperbuy)
	if(is_user_alive(enemy) && hpstlr[enemy] > 0)
	{
		message_begin(MSG_ONE, get_user_msgid("ScreenFade"), { 0, 0, 0 }, enemy)
		write_short(1<<10)
		write_short(1<<10)
		write_short(1<<12)
		write_byte(0)
		write_byte(255)
		write_byte(0)
		write_byte(50)
		message_end()
		set_user_health(enemy, hpgain)
		if(get_user_health(enemy) >= maxhp)
			set_user_health(enemy, maxhp)
	}
	if(sgrenade[enemy] > 0 && weapon == CSW_HEGRENADE && is_user_alive(id))
	{
		new Xdamage = floatround(float(get_user_health(id)) - (float(damage) * 90.0))
		if(Xdamage < 1)
		{
			set_msg_block(get_user_msgid("DeathMsg"),BLOC K_ONCE)
			message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0)
			write_byte(enemy)
			write_byte(id)
			write_byte(0)
			write_string("grenade")
			message_end()
		}
		set_user_health(id, Xdamage)
		sgrenade[enemy] = 0
		itemcap[enemy]--
	}
	if(crowbar[enemy] > 0 && weapon == CSW_KNIFE && is_user_alive(id))
	{
		new KXdamage = floatround(float(get_user_health(id)) - (float(damage)))
		if(KXdamage < 1)
		{
			set_msg_block(get_user_msgid("DeathMsg"),BLOC K_ONCE)
			message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0)
			write_byte(enemy)
			write_byte(id)
			write_byte(0)
			write_string("knife")
			message_end()
			new frags, deaths
			frags = get_user_frags(enemy) + 1
			set_user_frags(enemy, frags)
			deaths = cs_get_user_deaths(id) + 1
			cs_set_user_deaths(id, deaths)
			frags = get_user_frags(id) + 1
			set_user_frags(id, frags)
		}
		set_user_health(id, KXdamage)
	}
	return PLUGIN_CONTINUE
}

public client_PreThink(id)
{
	if(is_user_alive(id) && get_cvar_num("amx_upgrades") == 1)
	{
		new buttons = get_user_button(id)
		new obut = get_user_oldbutton(id)
		if(jumpmodule[id] > 0)
		{
			entity_set_float(id, EV_FL_fuser2, 0.0)
			if(buttons & IN_JUMP)
			{
				new flags = entity_get_int(id, EV_INT_flags)
				if(flags | FL_WATERJUMP && entity_get_int(id, EV_INT_waterlevel) < 2 && flags & FL_ONGROUND)
				{
					new Float:velocity[3]
					entity_get_vector(id, EV_VEC_velocity, velocity)
					velocity[2] += 250.0
					entity_set_vector(id, EV_VEC_velocity, velocity)
					entity_set_int(id, EV_INT_gaitsequence, 6)
				}
			}
		}
		if(wired[id] > 0)
		{
			new temp[2]
			new currweapon = get_user_weapon(id, temp[0], temp[1])
			if(currweapon == CSW_KNIFE)
			{
				if(get_user_button(id) & IN_ATTACK)
				{
					set_task(0.5, "beep_sound", id)
					set_task(1.2, "c4bombertimer", id)
				}
			}
		}
		if(multijump[id] > 0)
		{
			if((buttons & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
			{
				if(jumpnum[id] < multijump[id])
				{
					dojump[id] = true
					jumpnum[id]++
					return PLUGIN_CONTINUE
				}
			}
			if((buttons & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
				jumpnum[id] = 0
		}
	}
	return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
	if(is_user_alive(id) && get_cvar_num("amx_upgrades") == 1)
	{
		if(dojump[id] == true)
		{
			new Float:velocity[3]
			entity_get_vector(id,EV_VEC_velocity,velocity )
			velocity[2] = random_float(265.0,285.0)
			entity_set_vector(id,EV_VEC_velocity,velocity )
			dojump[id] = false
			return PLUGIN_CONTINUE
		}
	}
	return PLUGIN_CONTINUE
}

public beep_sound(id)
{
	if(wired[id] > 0)
		emit_sound(id, CHAN_ITEM, "buttons/blip2.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
}

public update(id)
{
	if(get_cvar_num("amx_upgrades") != 1)
		return PLUGIN_CONTINUE
	if(!is_user_alive(id))
		return PLUGIN_CONTINUE
	set_user_gravity(id, 1 - Gravity[id] * gravityperbuy)
	if(speed != false)
		set_user_maxspeed(id, 240.0 + (Speed[id] * speedperbuy))
	if(weapontraining[id] > 0)
		entity_set_vector (id,EV_VEC_punchangle, Float:{0.0, 0.0, 0.0})
	new temp[2]
	new istealth = (Stealth[id] * stealthperbuy)
	if(Stealth[id] > 0)
	{
		if(get_user_weapon(id, temp[0], temp[1]) == CSW_KNIFE)
		{
			new astealth = istealth + 20
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - astealth)
		}
		else
			set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, defaultstealth - istealth)
	}
	new wpnid = read_data(2)
	if(wired[id] > 0)
	{
		if(wpnid == CSW_KNIFE)
			switchmodel(id)
		}
	if(crowbar[id] > 0)
	{
		if(wpnid == CSW_KNIFE)
			switchmodel(id)
		}
	if(gHasuammo[id] > 0)
	{
		new clip = read_data(3)
		if(wpnid == CSW_C4 || wpnid == CSW_KNIFE || wpnid == CSW_HEGRENADE || wpnid == CSW_SMOKEGRENADE || wpnid == CSW_FLASHBANG)
			return PLUGIN_CONTINUE
		if(clip == 0)
		{
			new wpnname[32]
			get_weaponname(wpnid, wpnname, 31)
			give_item(id, wpnname)
			engclient_cmd(id, wpnname)
		}
	}
	if(laser[id] > 0)
	{
		set_hudmessage(255, 0, 0, -1.0, -1.0, 0, 6.0, 10.0, 0.1, 0.1, 10)
		show_hudmessage(id, "o")
	}
	return PLUGIN_CONTINUE
}

public switchmodel(id)
{
	new temp[2], wpnid = get_user_weapon(id, temp[0], temp[1])
	if(is_user_alive(id))
	{
		if(wired[id] > 0)
		{
			if(wpnid == CSW_KNIFE)
			{
				entity_set_string(id, EV_SZ_viewmodel, "models/v_satchel_radio.mdl")
				entity_set_string(id, EV_SZ_weaponmodel, "models/p_satchel_radio.mdl")
			}
		}
		if(crowbar[id] > 0)
		{
			if(wpnid == CSW_KNIFE)
			{
				entity_set_string(id, EV_SZ_viewmodel, "models/v_crowbar.mdl")
				entity_set_string(id, EV_SZ_weaponmodel, "models/p_crowbar.mdl")
			}
		}
	}
}

public upgradelevelup(id)
{
	client_print(id, print_center, "***Bought Upgrade***")
	client_cmd(id, "spk weapons/pl_gun2.wav")
	return PLUGIN_CONTINUE
}

public cwall(id)
{
	new buttons = get_user_button(id)
	if(buttons & IN_ATTACK)
		return PLUGIN_HANDLED
	if(!is_user_connected(id))
		return PLUGIN_HANDLED
	if(speed == true)
	{
		if(climb[id] > 0)
		{
			new Float: velocity[3]
			entity_get_vector(id, EV_VEC_velocity, velocity)
			if(buttons & IN_JUMP && (buttons & IN_FORWARD || buttons & IN_BACK))
			{
				if(velocity[0] == 0.0 || velocity[1] == 0.0)
				{
					velocity[1] = 10.0
					velocity[2] = 220.0
					entity_set_vector(id, EV_VEC_velocity, velocity)
				}
			}
		}
	}
	return PLUGIN_CONTINUE
}

public c4bombertimer(id)
{
	if(wired[id] > 0)
	{
		wired[id] = 0
		itemcap[id]--
		emit_sound(id, CHAN_STATIC, "weapons/mine_charge.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
		new param[2]
		param[0] = id
		set_task(3.8, "bombed", BOMB_TASK + id, param, 1)
	}
}

public bombed(param[])
{
	new id = param[0]
	new origin[3]
	get_user_origin(id, origin, 0)
	for(new a = 1; a <= get_maxplayers(); a++)
	{
		new origin1[3]
		get_user_origin(a, origin1, 0)
		if(is_user_alive(a))
		{
			if(!(origin[0] - origin1[0] > BOMBKILL_RANGE ||
			origin[0] - origin1[0] < - BOMBKILL_RANGE ||
			origin[1] - origin1[1] > BOMBKILL_RANGE ||
			origin[1] - origin1[1] < - BOMBKILL_RANGE ||
			origin[2] - origin1[2] > BOMBKILL_RANGE ||
			origin[2] - origin1[2] < - BOMBKILL_RANGE))
			{
				new bombguyfrags
				new name[33]
				get_user_name(id, name, 32)
				if((a != id))
				{
					bombguyfrags = get_user_frags(id)
					bombguyfrags += 1
					set_user_frags(id, bombguyfrags)
					set_msg_block(get_user_msgid("DeathMsg"),BLOC K_ONCE)
					message_begin(MSG_ALL, get_user_msgid("DeathMsg"), {0, 0, 0}, 0)
					write_byte(id)
					write_byte(a)
					write_byte(1)
					write_string("")
					message_end()
					client_print(a, print_chat, "[AMXX] %s killed you with the c4 wired to his body", name)
				}
				user_kill(a, 1)
				explode(origin1)
			}
		}
	}
}

explode(vec1[3])
{
	// blast circles
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY, vec1)
	write_byte(21)
	write_coord(vec1[0])
	write_coord(vec1[1])
	write_coord(vec1[2] + 16)
	write_coord(vec1[0])
	write_coord(vec1[1])
	write_coord(vec1[2] + 1936)
	write_short(white)
	write_byte(0)//startframe
	write_byte(0)//framerate
	write_byte(3)//life 2
	write_byte(20)//width 16
	write_byte(0)//noise
	write_byte(18//r
	write_byte(220)//g
	write_byte(255)//b
	write_byte(255)//brightness
	write_byte(0)//speed
	message_end()
	//Explosion2
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
	write_byte(12)
	write_coord(vec1[0])
	write_coord(vec1[1])
	write_coord(vec1[2])
	write_byte(18//byte (scale in 0.1's) 188
	write_byte(10)//byte (framerate)
	message_end()
	//TE_Explosion
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY,ve c1)
	write_byte(3)
	write_coord(vec1[0])
	write_coord(vec1[1])
	write_coord(vec1[2])
	write_short(fire)
	write_byte(65)//byte (scale in 0.1's) 188
	write_byte(10)//byte (framerate)
	write_byte(0)//byte flags
	message_end()
	//Smoke
	message_begin(MSG_BROADCAST,SVC_TEMPENTITY,ve c1)
	write_byte(5)//5
	write_coord(vec1[0])
	write_coord(vec1[1])
	write_coord(vec1[2])
	write_short(smoke)
	write_byte(50)//2
	write_byte(10)//10
	message_end()
}

public esploop(id)
{
	if(!is_user_alive(id))
	return PLUGIN_CONTINUE
	if(esp[id] > 0)
	{
		for(new a = 1; a <= get_maxplayers(); a++)
		{
			if(is_user_alive(a))
			{
				if(cs_get_user_team(id) != cs_get_user_team(a))
				{
					if((a != id))
					{
						new vec1[3]
						get_user_origin(a, vec1, 0)
						message_begin(MSG_ONE, SVC_TEMPENTITY, vec1, id)
						write_byte(21)
						write_coord(vec1[0])
						write_coord(vec1[1])
						write_coord(vec1[2] - 35)
						write_coord(vec1[0])
						write_coord(vec1[1])
						write_coord(vec1[2] + credittime)
						write_short(white)
						write_byte(0)//startframe
						write_byte(1)//framerate
						write_byte(6)//3 life 2
						write_byte(//width 16
						write_byte(1)//noise
						write_byte(100)//r
						write_byte(100)//g
						write_byte(255)//b
						write_byte(192)//brightness
						write_byte(0)//speed
						message_end()
					}
				}
			}
		}
	}
	return PLUGIN_CONTINUE
}

public UpgrHelp(id)
{
	new PUmotd[2048], title[64], dpos = 0
	format(title, 63, "AMXX CREDIT MOD Version: [%s] ", VER)
	dpos += format(PUmotd[dpos], 2047-dpos, "<html><head><style type=^"text/css^">pre{color:#FFB000;}body{background:#000 000;margin-left:8px;margin-top:0px;}</style></head><pre><body>")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n^n<b>%s</b>^n^n",title)
	dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[*]Commands:^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "/buy - opens main menu^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "/credits - shows you how many credits/how long until your next credit^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "/givecredits x - gives x amount of credits to your target^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[*]Passive Upgrades Description:^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Armor] - Increase MAX Armor^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Health] - Increase MAX Health^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Speed]- Increase MAX Speed^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Gravity] - Decrease Gravity^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Stealth] - Decrease Visability^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[MultiJump] - Allows you to jump in the air^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[*]Item Upgrades Description:^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Battle Aura] - Steals enemy's health^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[First Aid] - HP/AP regeneration^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Weapon Training] - No recoil^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Jump Module] - Enables Bunny Hopping^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Climbing Gear] - Ability to climb walls^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Promotion] - 2x money intake^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Unlimited Ammo] - Give's no limition to ammunation^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Stealth Shoes] - Disable's Footstep sounds^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Wired C4 Explosive] - Kamikaze with remote^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[E.S.P] - Ability to know where your enemy is^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Laser Pointer] - Adds an extra crosshair for your weapons^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Super Grenade] - Killer grenade^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Crowbar] - 2x damage knife^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "[Flash Protection] - Removes blindness from flashbangs^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n^n-=--=--=--=--=--=--=--=--=--=-^n^n")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n***[NOTE] YOU WILL KEEP THESE UPGRADES EVEN IF YOU DIE***")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n***[NOTE] YOU WILL LOSE SUPER GRENADES AND C4 WHEN YOU DIE***")
	dpos += format(PUmotd[dpos], 2047-dpos, "^n***[NOTE] MAX ITEMS YOU CAN BUY: %i***",maxitems)
	dpos += format(PUmotd[dpos], 2047-dpos, "^n***[NOTE] MAX CREDITS YOU CAN SPEND PER MAP: %i***",maxcredits)
	show_motd(id, PUmotd, title)
}

public plugin_precache()
{
	precache_sound("weapons/pl_gun2.wav")
	precache_sound("buttons/blip2.wav")
	precache_sound("weapons/mine_charge.wav")
	precache_model("models/v_satchel_radio.mdl")
	precache_model("models/p_satchel_radio.mdl")
	precache_model("models/v_crowbar.mdl")
	precache_model("models/p_crowbar.mdl")
	smoke = precache_model("sprites/steam1.spr")
	white = precache_model("sprites/white.spr")
	fire = precache_model("sprites/explode1.spr")
}

public queryall(id,level,cid)
{
	if (!cmd_access(id,level,cid,1))
	return PLUGIN_HANDLED
	
	new maxslots = get_maxplayers()
	new query_name[32]
	for(new i = 1; i <= maxslots; ++i)
	{
		if (!is_user_connected(i) && !is_user_connecting(i)) continue
		get_user_name(i,query_name,31)
		client_print(id,print_console," %s 's credits = %i",query_name,connecttime[i]/credittime)
	}
	return PLUGIN_HANDLED
}

public client_authorized(id)
{
	new authid[32], vault_time[21]
	get_user_authid(id,authid,31)
	if(vaultdata_exists(authid))
	{
		get_vaultdata(authid,vault_time,20)
		connecttime[id] = str_to_num(vault_time)
	}
	else
	{
		connecttime[id] = numnewcredits * credittime
		num_to_str(connecttime[id],vault_time,20)
		set_vaultdata(authid,vault_time)
	}
	return PLUGIN_CONTINUE
}

public decCredit(id, itemcost)
{
	new cost = itemcost
	connecttime[id] = connecttime[id] - (credittime * cost)
	new authid[32], vault_time[21]
	get_user_authid(id,authid,31)
	num_to_str(connecttime[id],vault_time,20)
	set_vaultdata(authid,vault_time)
	return PLUGIN_HANDLED
}

public addCredit(id, itemadd)
{
	new addcredits = itemadd
	connecttime[id] = connecttime[id] + (credittime * addcredits)
	new authid[32], vault_time[21]
	get_user_authid(id,authid,31)
	num_to_str(connecttime[id],vault_time,20)
	set_vaultdata(authid,vault_time)
	return PLUGIN_HANDLED
}

public givecredit(id,level,cid)
{
	if(!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED
		
	new target[32],credits[21]
	read_argv(1,target,31)
	read_argv(2,credits,20)
	new player = cmd_target(id,target,
	if(!player) return PLUGIN_HANDLED
	new admin_name [32], player_name[32]
	get_user_name(id,admin_name,31)
	get_user_name(player,player_name,31)
	new crednum = str_to_num(credits)
	addCredit(player,crednum)
	client_print(id,print_console,"[AMXX] You have added %i credits to %s's total credits",crednum,player_name)
	return PLUGIN_CONTINUE
}

public removecredit(id,level,cid)
{
	if(!cmd_access(id,level,cid,3))
		return PLUGIN_HANDLED
		
	new target[32],credits[21]
	read_argv(1,target,31)
	read_argv(2,credits,20)
	new player = cmd_target(id,target,
	if(!player) return PLUGIN_HANDLED
	new admin_name [32], player_name[32]
	get_user_name(id,admin_name,31)
	get_user_name(player,player_name,31)
	new crednum = str_to_num(credits)
	decCredit(player,crednum)
	client_print(id,print_console,"[AMXX] You have removed %i credits from %s's total credits",crednum,player_name)
	return PLUGIN_CONTINUE
}
__________________
iceeedr is offline
Send a message via Skype™ to iceeedr
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-06-2020 , 15:55   Re: Plugin credits changes
Reply With Quote #17

Techically we are helping him by teaching him how to use the forum. Anyways.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
redivcram
Veteran Member
Join Date: Jul 2014
Location: Serbia
Old 01-06-2020 , 17:12   Re: Plugin credits changes
Reply With Quote #18

I had no clue amxx had auto identation. Either way, he created the thread and should know how to do so. Getting the solution immediatelly is not good practice as the same mistake would be made in the future if OP decided to ask for help. It could even be a less constructive thread and the only answers would be "bump" and "no one help???".

This is not stackoverflow and I am not aiming to turn the site into it, but spam is spam and if it can get fixed with a bit of hardwork which is not even hardwork, then it should be.
__________________
Discord: wEight#6773

Hobbies:
- Map Designing (Any Half-Life 1 Engine Game)
- Pawn (Intermediate / Counter-Strike 1.6 only)
- C#/VB for .Net (Intermediate / Winforms)
- Java (Mostly Android Application Development)
redivcram is offline
Reply


Thread Tools
Display Modes

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 21:56.


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