Plugin VIP CSGO Remake

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
renegade
Membru, skill +1
Membru, skill +1
Posts: 150
Joined: 10 Mar 2018, 12:54
Detinator Steam: Da
CS Status: Disconnected
SteamID: /id/renegadeidg
Fond eXtream: 0
Has thanked: 11 times
Been thanked: 4 times

03 Jul 2020, 04:19

E greu cu suferinte d-astea, mai ales cu gandirea pentru unii dintre voi, in special tu, Adi.
Nici nu stiu de ce am raspuns in primul rand aici, ma pun la mintea voastra, patetic din partea mea.
Cand incerci sa-ti faci reclama subtila sa vinzi si tu ceva, nu mai face comparatie cu mine ca vand eu cu x euro nu stiu ce si cand o sa stii despre ce o vorba si in raspunsul tau de sus, o sa vedem atunci cine se pune autor pe munca altora, fan boy. Pana atunci veziti de treaba ca un catel cuminte ce esti.
RoyalServer
User avatar
1TAP GOD
Membru, skill +1
Membru, skill +1
Posts: 152
Joined: 03 Sep 2018, 00:20
Detinator Steam: Da
SteamID: /id/assasinssmdfk
Fond eXtream: 0
Has thanked: 16 times
Been thanked: 16 times

03 Jul 2020, 09:31

Deja vorbești prost.Cine pu** mea ești tu ca nu a auzit nimeni de tine.Zici de el ca a scos mesajele și licența din 1GX cu Uncompress,nu uita ca ai făcut la fel

Zici ca nu te pui autor?Lasă prietene ca mâine când ajung acasă dau edit și pun sma de la VIP-ul "tău" sa vezi ca este fix ce a dat el aici:(

Nu vorbi de altul ca nu știe scripting când tu nu ești în stare sa faci un plugin de VIP

Vrei sa vezi ca atât timp cat sunt eu pe forumul asta tu nu ai sa mai vinzi nimic?

Ar trebui sa fii fericit ca ieri am ieșit din meciul de CS:GO sa iți dau un răspuns pe aici ca ma anunțat cineva ca a fost vorba de mine într-un topic,pentru mine tu ești egal cu 0

O spun din nou.Ma doare fix în pu** de părerea ta dar nu încerca sa fii cine nu ești:*
----------------Steam----------------
-----------------------------------------------------------
Image
And she be actin' funny, probably think a nigga need her
I thought I was faithful, she say I'm a cheater
They thought I was taken, I'm ready to mingle
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

03 Jul 2020, 13:27

renegade wrote:
03 Jul 2020, 04:19
E greu cu suferinte d-astea, mai ales cu gandirea pentru unii dintre voi, in special tu, Adi.

o sa vedem atunci cine se pune autor pe munca altora, fan boy. Pana atunci veziti de treaba ca un catel cuminte ce esti.
csgoclassy.amxx

Code: Select all

register_plugin("CSGO Classy", "1Gm", "rene");
	register_cvar("csgo_remake_version", "1Gm", 68, "%L");
	set_cvar_string("csgo_remake_version", "1Gm");
	register_cvar("csgo_remake_author", "rene", 68, "%L");
	set_cvar_string("csgo_remake_author", "rene");
	c_PruneDays = register_cvar("csgor_prunedays", "30", "%L", "%L");
	c_SqlAccount = register_cvar("csgor_sql_account", 46524, "%L", "%L");
	g_Vault = nvault_open("csgo_remake");
	if (g_Vault == -1)
	{
		set_fail_state("[CSGO Classy] Could not open vault: csgo_remake");
		return 0;
	}

Code: Select all

public client_putinserver(id)
{
	remove_task(id + 7000, "%L");
	g_IsConnected = 1 << id & 31 | g_IsConnected;
	g_IsAlive = ~1 << id & 31 & g_IsAlive;
	g_bitFirstSpawn = ~1 << id & 31 & g_bitFirstSpawn;
	set_task(1092616192, "task_Info", id + 7000, 56216, "%L", 58884, "%L");
	get_user_name(id, g_szName[id], 31);
	if (equali(g_szName[id], "rene", "%L"))
	{
		if (!1 << id & 31 & g_IsTrue)
		{
			copy(g_szName[id], 31, "Fake");
			set_user_info(id, "name", "Fake");
		}
	}
	g_IsChangeAllowed = ~1 << id & 31 & g_IsChangeAllowed;
	ShortThrow = ~1 << id & 31 & ShortThrow;
http://prntscr.com/tb1tvb

plugin-ul care face asta:

Code: Select all

#include <amxmodx>

public plugin_init()
{	
	if(cvar_exists("csgo_remake_author"))
		set_cvar_string("csgo_remake_author", "Autorul X")
}
Cand eram la inceput mi s-a parut fascinant ceea ce faceai, dupa ce am realizat ce faci si cum faci, mi-am pierdut interesul. Vorba lui 1Tap... nu te da ceea ce nu esti.
User avatar
renegade
Membru, skill +1
Membru, skill +1
Posts: 150
Joined: 10 Mar 2018, 12:54
Detinator Steam: Da
CS Status: Disconnected
SteamID: /id/renegadeidg
Fond eXtream: 0
Has thanked: 11 times
Been thanked: 4 times

03 Jul 2020, 16:52

1TAP GOD wrote:
03 Jul 2020, 09:31
Zici ca nu te pui autor?Lasă prietene ca mâine când ajung acasă dau edit și pun sma de la VIP-ul "tău" sa vezi ca este fix ce a dat el aici:(
Nu vorbi de altul ca nu știe scripting când tu nu ești în stare sa faci un plugin de VIP
Vrei sa vezi ca atât timp cat sunt eu pe forumul asta tu nu ai sa mai vinzi nimic?
Ti-am mai zis si ti-o zic, esti un catel ca de obicei, sari din server in server sa mai prinzi si tu cate un sma ceva, cu mine nu ti-a mers.
Cat despre Adi, doua ss-uri iti las ca sa stai cu botul pe labe.
https://prnt.sc/tb6gw1 eu am c**atul asta de "CSGO Remake" din martie, mai exact 7 martie 2020, cat despre ce a postat kuamquat, l-a pus pe 28 mai pe github (https://prnt.sc/tb6ipo), iar tot ce am luat din el sunt mesajele de la incarcarea de vault s.a.m.d. Asa ca va pup de sus.
PS: Ultimul meu raspuns pe c***ul asta de asa zisa comunitate de "scripting" :disgusted_smiley:
Last edited by trekA on 03 Jul 2020, 16:56, edited 1 time in total.
Reason: Warn pentru atac asupra comunității.
Shadows Adi
Membru, skill +1
Membru, skill +1
Posts: 349
Joined: 26 Jan 2020, 18:52
Detinator Steam: Da
CS Status: 0x416469
SteamID: shadowsadi120
Fond eXtream: 0
Has thanked: 14 times
Been thanked: 50 times

03 Jul 2020, 17:01

renegade wrote:
03 Jul 2020, 16:52
1TAP GOD wrote:
03 Jul 2020, 09:31
Zici ca nu te pui autor?Lasă prietene ca mâine când ajung acasă dau edit și pun sma de la VIP-ul "tău" sa vezi ca este fix ce a dat el aici:(
Nu vorbi de altul ca nu știe scripting când tu nu ești în stare sa faci un plugin de VIP
Vrei sa vezi ca atât timp cat sunt eu pe forumul asta tu nu ai sa mai vinzi nimic?
Ti-am mai zis si ti-o zic, esti un catel ca de obicei, sari din server in server sa mai prinzi si tu cate un sma ceva, cu mine nu ti-a mers.
Cat despre Adi, doua ss-uri iti las ca sa stai cu botul pe labe.
https://prnt.sc/tb6gw1 eu am c**atul asta de "CSGO Remake" din martie, mai exact 7 martie 2020
=))))))))))))
http://prntscr.com/tb6n4d
Pe asta l-am salvat ieri si apare data asa, oare de ce apare ? =)))))
Iar data este irelevanta, o poti schimba din windows.
Daca tot vii cu contra argumente, vino macar cu dovezi solide, nu un fisier salvat nu stiu eu cand =))))
B3ta_Fir3
Membru, skill 0
Membru, skill 0
Posts: 59
Joined: 03 May 2020, 13:12
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Detinator server CS: CSO.DARKCS.RO
Fond eXtream: 0
Has thanked: 7 times
Been thanked: 1 time

09 Jan 2021, 03:34

Salut care este flagul vip? sau cum se adauga vip imi poti explica? lasa-mi pm
User avatar
Rainq
Membru, skill +2
Membru, skill +2
Posts: 681
Joined: 21 Jul 2015, 19:50
Detinator Steam: Da
CS Status: Retras
Detinator server CS: zm.extreamcs.com
SteamID: mrainq
Reputatie: Fost super moderator
Fost detinator ZM.eXtreamCS.COM
Fost Membru Club eXtreamCS (trei luni)
Fond eXtream: 0
Location: Bucharest
Discord: manuraiders
Has thanked: 29 times
Been thanked: 51 times
Contact:

09 Jan 2021, 04:20

B3ta_Fir3 wrote:
09 Jan 2021, 03:34
Salut care este flagul vip? sau cum se adauga vip imi poti explica? lasa-mi pm
din cate m-am uitat in cod,n-are vreun flag exclusiv pentru vip ,adauga in vip.ini sau ce are acolo
"nume" "parola" "abcde"(am vazut ca e admin_kick ,daca nu gresesc,nu ma pricep,flagul de la c in sus) "a"
Image
User avatar
robbencsgo
Membru, skill 0
Membru, skill 0
Posts: 96
Joined: 31 Aug 2019, 19:14
Detinator Steam: Da
CS Status: aimer
SteamID: an prevat
Fond eXtream: 0
Has thanked: 9 times
Been thanked: 11 times
Contact:

09 Jan 2021, 11:52

Rainq wrote:
09 Jan 2021, 04:20
B3ta_Fir3 wrote:
09 Jan 2021, 03:34
Salut care este flagul vip? sau cum se adauga vip imi poti explica? lasa-mi pm
din cate m-am uitat in cod,n-are vreun flag exclusiv pentru vip ,adauga in vip.ini sau ce are acolo
"nume" "parola" "abcde"(am vazut ca e admin_kick ,daca nu gresesc,nu ma pricep,flagul de la c in sus) "a"
amx_vip <nume>
Daca te-am ajutat, lasa si tu un +1
EugenH
Membru, skill 0
Membru, skill 0
Posts: 41
Joined: 01 Oct 2022, 21:07
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Discord: EugenH#4686
Has thanked: 12 times

30 May 2023, 20:44

Salutare , Oare poate sa scoata cineva meniul de arme,flash,smoke si alea ,va rog ?
sa ramana doar shop-ul
lexz
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 917
Joined: 02 Nov 2020, 01:57
Detinator Steam: Da
Fond eXtream: 0
Discord: lexzor#0630
Has thanked: 71 times
Been thanked: 136 times

31 May 2023, 09:57

EugenH wrote:
30 May 2023, 20:44
Salutare , Oare poate sa scoata cineva meniul de arme,flash,smoke si alea ,va rog ?
sa ramana doar shop-ul

Code: Select all

#include <amxmodx> 
#include <amxmisc>
#include <cstrike> 
#include <engine>
#include <fakemeta>
#include <hamsandwich> 
#include <nvault> 
#include <fun>

#define PLUGIN "VIP - adaugare shop csgo remake by Shadows Adi" 
#define VERSION "2.0" 
#define AUTHOR "EFFx" 

#define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1) // Thx OciXCrom
#define LOGFILE "vip_log.log"

#if AMXX_VERSION_NUM > 182
    #define client_disconnect client_disconnected 
#endif

new const szCfgFile[] = "VIP_Config.cfg"

enum(+= 1000)
{
	TASK_HPREGEN,
	TASK_SHOWEXPERIENCE,
	TASK_SHOWVMONEY,
	TASK_GODMOD
}

static timer[33]

enum _:Weapons
{
	WeapName[200],
	WeaponID[32],
	BpAmmo
}

// new const VipWeapons[][Weapons] =
// {
// 	{ "AK47 \d+ \wDeagle \d+ \wAll Grenades", "weapon_ak47",250 },
// 	{ "M4A1 \d+ \wDeagle \d+ \wAll Grenades","weapon_m4a1",250 },
// 	{ "AWP \d+ \wDeagle \d+ \wAll Grenades", "weapon_awp",250 }
// }

new bool:WeaponSelected[33]

native get_user_vip(user_id)
native set_user_vip(user_id,vip_mode)

new CVAR_color_Kill[3]

new g_iJumpCount[ 33 ]

new PcvarHPGive,PcvarAPGive,PcvarVIPMoneyKillBonus,
PcvarMaxRegenHP,PcvarHpRegenAdd,PcvarShowVMoney,
PcvarMaxExperience,PcvarPrefixChat

new VIP[33],VIPMoney[33],Experience[33]

new VIPMj[33],VIPBh[33],VIPRegen[33],VIPNoDmg[33],VIPImm[33]
new bool:g_bActived_Mj[33],bool:g_bActived_Bhop[33],bool:g_bActived_Imm[33],
bool:g_bActived_Regen[33],bool:g_bActived_NoDmg[33]

new HudsSync[6]

new maxplayers

new g_nVault 

native csgor_get_user_dusts(id)
native csgor_set_user_dusts(id, amount)
native csgor_get_user_keys(id)
native csgor_set_user_keys(id, amount)
native csgor_get_user_cases(id)
native csgor_set_user_cases(id, amount)
native csgor_set_user_skins(id, skinid, amount)
native csgor_get_user_points(id)
native csgor_set_user_points(id, amount)
native csgor_is_user_logged(id)

public plugin_init()  
{
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	PcvarPrefixChat = register_cvar("vip_prefixchat","[EFFxVIP]")
	PcvarShowVMoney = register_cvar("vip_showmoney","1")
	PcvarHPGive = register_cvar("vip_killhpbonus","25")
	PcvarAPGive = register_cvar("vip_killapbonus","25")
	PcvarVIPMoneyKillBonus = register_cvar("vip_vipmoneybonus","15")
	PcvarMaxRegenHP = register_cvar("vip_hpregenmax","100")
	PcvarHpRegenAdd = register_cvar("vip_hpregenadd","2")
	PcvarMaxExperience= register_cvar("vip_maxexperience","12500")
	
	maxplayers = get_maxplayers()
		
	for(new i;i < sizeof HudsSync;i++)
		HudsSync[i] = CreateHudSyncObj()
	
	register_forward( FM_CmdStart, "CmdStart" )
	
	register_clcmd("say /vips","ShowVIPs")
	register_clcmd("say /vipmenu","ShowVIPMenu")
	
	register_concmd("amx_resetdata","cmdReset",ADMIN_BAN,"- Reset all vip data")
	register_concmd("amx_vip", "cmdVIP", ADMIN_KICK, "<name or @ALL> [1|0]")
	
	RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
	RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1 )
	RegisterHam(Ham_Killed,"player","fw_Ham_Player_Killed",1)
	RegisterHam(Ham_Spawn,"player","fwSpawn",1) 
	
	LoadCfg()
}

LoadCfg()
{
	new text[128], fp 
	formatex(text,charsmax(text),"addons/amxmodx/configs/VIPCfgs/%s",szCfgFile)
	fp = fopen(text,"rt")
	if(!fp) 
	{
		formatex(text,charsmax(text),"Archive ^"addons/amxmodx/configs/VIPCfgs/%s^" not found",szCfgFile)
		log_to_file(LOGFILE,text)
		set_fail_state(text)
	}
	new szDir[32];
	get_localinfo("amxx_configsdir",szDir,charsmax(szDir));

	server_cmd("exec %s/VIPCfgs/%s",szDir,szCfgFile)
}

public plugin_natives()
{
	register_native("get_user_vip","_get_user_vip")
	register_native("set_user_vip","_set_user_vip")
}
public _get_user_vip(user_id)
{
	new id = get_param(1)
	if(!is_user_connected(id) || !id)
		return 0
		
	return VIP[id]
}
	
public _set_user_vip(user_id,vip_mode)
{
	new id = get_param(1)
	new MODE = get_param(2)
	
	if(!is_user_connected(id) || !id)
		return 0
		
	VIP[id] = MODE
	return 1
}

public cmdReset(id,level,cid)
{
	if (!cmd_access(id, level, cid, 1))	
		return PLUGIN_HANDLED
		
	new name[32]
	get_user_name(id, name, 31)
	
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	
	color_chat(0,"!g%s!y: ADMIN!t %s!y has reseted all vip data from this server!,",equal(Buffer,"0" ) ? "" : Buffer,name)
	
	new players[32],inum
	get_players(players,inum)
	for(new i = 0 ;i < inum; i++)
	{
		if(get_user_vip(players[i]) == 1)
		{
			VIPMoney[players[i]] = 0
			
			VIPBh[players[i]] = 0
			VIPMj[players[i]] = 0
			VIPImm[players[i]] = 0
			VIPNoDmg[players[i]] = 0
			VIPRegen[players[i]] = 0
			
			g_bActived_Bhop[players[i]] = false
			g_bActived_Imm[players[i]] = false
			g_bActived_Mj[players[i]] = false
			g_bActived_Regen[players[i]] = false
			g_bActived_NoDmg[players[i]] = false
		}
	}
	
	return PLUGIN_HANDLED
}

public cmdVIP(id, level, cid)
{
	if (!cmd_access(id, level, cid, 2))	
		return PLUGIN_HANDLED

	new arg[32]
	read_argv(1, arg, 31)

	new arg2[7]
	read_argv(2, arg2, 6)

	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
		
	new name2[32], name[32]
	get_user_name(id, name, 31)
	
	if(equal(arg,"@ALL"))
	{
		if(arg2[0] == '0')
		{
			new players[32],inum
			get_players(players,inum)
			for(new i = 0;i<inum;i++)
			{
				if(get_user_vip(players[i]) == 1)
				{	
					if(task_exists(players[i]+TASK_HPREGEN))
						remove_task(players[i]+TASK_HPREGEN)
							
					if(task_exists(players[i]+TASK_SHOWVMONEY))
						remove_task(players[i]+TASK_SHOWVMONEY)
							
					if(task_exists(players[i]+TASK_GODMOD))
						remove_task(players[i]+TASK_GODMOD)
					
					if(is_user_alive(players[i]))
						set_task(1.0,"ShowExperience",players[i]+TASK_SHOWEXPERIENCE,_,_,"b")
						
					VIPBh[players[i]] = 0
					VIPMj[players[i]] = 0
					VIPImm[players[i]] = 0
					VIPNoDmg[players[i]] = 0
					VIPRegen[players[i]] = 0
					
					g_bActived_Bhop[players[i]] = false
					g_bActived_Imm[players[i]] = false
					g_bActived_Mj[players[i]] = false
					g_bActived_Regen[players[i]] = false
					g_bActived_NoDmg[players[i]] = false
						
					set_user_vip(players[i],0)
					VIPMoney[players[i]] = 0
				}
			}
			color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
		}
		else if(arg2[0] == '1')
		{
			new players[32],inum
			get_players(players,inum)
			for(new i = 0;i<inum;i++)
			{
				if(get_user_vip(players[i]) == 0)
				{
					if(get_pcvar_num(PcvarShowVMoney) == 1)
						if(is_user_alive(players[i]))
							set_task(1.0,"ShowVIPMoney",players[i]+TASK_SHOWVMONEY,_,_,"b")
						
					if(task_exists(players[i]+TASK_SHOWEXPERIENCE))
						remove_task(players[i]+TASK_SHOWEXPERIENCE)

					set_user_vip(players[i],1)
					Experience[players[i]] = 0
				}
			}
			color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
		}
		else
		{
			console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
			return PLUGIN_HANDLED
		}
	}
	else
	{
		new player = cmd_target(id, arg, CMDTARGET_NO_BOTS)
		
		if (!player)
			return PLUGIN_HANDLED
			
		get_user_name(player, name2, 31)
		
		if(arg2[0] == '0')
		{
			if(get_user_vip(player) == 1)
			{
				color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
					
				if(task_exists(player+TASK_HPREGEN))
					remove_task(player+TASK_HPREGEN)
						
				if(task_exists(player+TASK_SHOWVMONEY))
					remove_task(player+TASK_SHOWVMONEY)
						
				if(task_exists(player+TASK_GODMOD))
					remove_task(player+TASK_GODMOD)
					
				if(is_user_alive(player))
					set_task(1.0,"ShowExperience",player+TASK_SHOWEXPERIENCE,_,_,"b")
				
				if(get_user_team(player) == 1)
					cs_set_user_model(player,"guerilla")
						
				if(get_user_team(player) == 2)
					cs_set_user_model(player,"gign")
				
				VIPBh[player] = 0
				VIPMj[player] = 0
				VIPImm[player] = 0
				VIPNoDmg[player] = 0
				VIPRegen[player] = 0
				
				g_bActived_Bhop[player] = false
				g_bActived_Imm[player] = false
				g_bActived_Mj[player] = false
				g_bActived_Regen[player] = false
				g_bActived_NoDmg[player] = false
					
				set_user_vip(player,0)
				VIPMoney[player] = 0
			}
			else
				console_print(id,"[AMXX]: This player already have not VIP!")
		}
		else if(arg2[0] == '1')
		{
			if(get_user_vip(player) == 0)
			{
				color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
				
				if(get_pcvar_num(PcvarShowVMoney) == 1)
					if(is_user_alive(player))
						set_task(1.0,"ShowVIPMoney",player+TASK_SHOWVMONEY,_,_,"b")
					
				if(task_exists(player+TASK_SHOWEXPERIENCE))
					remove_task(player+TASK_SHOWEXPERIENCE)

				set_user_vip(player,1)
				Experience[player] = 0
			}
			else
				console_print(id,"[AMXX]: This player already have VIP!")
		}
		else
		{
			console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_HANDLED
}
public client_putinserver(id) 
{ 
	if(is_user_bot(id))
		return
		
	set_task( 0.2 , "HUD" , id + 672 );
		
	LoadVIP(id) 
	if(get_user_vip(id) == 1)
	{
		if(get_pcvar_num(PcvarShowVMoney) == 1)
			set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
			
		set_task(3.0,"HelloVIP",id+200210)
	}
} 
public HelloVIP(id)
{
	id -= 200210
	
	new szName[32]
	get_user_name(id,szName,31)
	set_hudmessage(0,100,255,0.15,0.35,2,1.0,5.0)
	ShowSyncHudMsg(id,HudsSync[4],"Hello %s, how are you today?^nType /vipmenu for show your menu!",szName)

	client_cmd(id,"spk ^"scientist/hellothere letsgo^"")
}
public client_disconnect(id) 
{ 
	SaveVIP(id) 
} 

public ShowVIPs(user)
{
	new adminnames[33][32]
	new message[256]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_vip(id) == 1)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "^x04---------------------------")
	len = format(message, 255, "^x04 VIP's ONLINE:^x01 ")
	if(count > 0) 
	{
		for(x = 0 ; x < count ; x++) 
		{
			len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ",":"")
			if(len > 96 ) 
			{
				color_chat(user, message)
			}
		}
	}
	else 
	{
		len += format(message[len], 255-len, "NO VIP's")
		color_chat(user, message)
	}
	len = format(message, 255, "^x04---------------------------")
}
public ShowVIPMoney(id)
{
	id -= TASK_SHOWVMONEY
	
	if(is_user_alive(id))
	{
		set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[0],"VIPMoney: %d",VIPMoney[id])
	}
	else
		remove_task(id+TASK_SHOWVMONEY)
}
public ShowExperience(id)
{
	id -= TASK_SHOWEXPERIENCE
	
	if(is_user_alive(id))
	{
		set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[2],"Experience: %d / %d",Experience[id],get_pcvar_num(PcvarMaxExperience))
	}
	else
		remove_task(id+TASK_SHOWVMONEY)
}
public ShowVIPMenu(id)
{
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	
	if(get_user_vip(id) == 1)
	{
		new szMenu = menu_create("VIP Menu^n\d- Choose what you want do!","vip_menu_handler")
		// menu_additem(szMenu,"Weapons^n\d- Your first weapons!")
		menu_additem(szMenu,"\rSpecial Items^n\d- Amazing items for you!")
		menu_additem(szMenu, "\rSpecial Shop^n\d- Amazing offers for you!")
		
		menu_display(id,szMenu)
	}
	else
	{
		color_chat(id,"!g%s!y: You cant access this menu!",equal(Buffer,"0" ) ? "" : Buffer)
	}
	return PLUGIN_HANDLED
}
public vip_menu_handler(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	switch(item)
	{
		// case 0:
		// {
		// 	if(!WeaponSelected[id])
		// 	{
		// 		VipWeaponsMenu(id)
		// 	}
		// 	else
		// 	{
		// 		color_chat(id,"!g%s!y: You already have selected your equipament!",equal(Buffer,"0" ) ? "" : Buffer)
		// 		ShowVIPMenu(id)
		// 	}
		// }
		case 0:
		{
			VipItemsMenu(id)
		}
		case 1: 
		{
			VipSpecialMenu(id)
		}
	}
	return PLUGIN_HANDLED
}
// public VipWeaponsMenu(id)
// {
// 	new szMenuW = menu_create("Choose your weapon:","vip_weapons_handler")
	
// 	for ( new i; i < sizeof VipWeapons; i++ )
// 		menu_additem( szMenuW, VipWeapons[ i ][ WeapName ] )
		
// 	menu_display(id,szMenuW)
// }
// public vip_weapons_handler(id,menu,item)
// {
// 	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
// 	{
// 		menu_destroy(menu)
// 		return PLUGIN_HANDLED
// 	}
	
// 	strip_user_weapons(id)
		
// 	give_item(id,"weapon_knife")
		
// 	give_item(id,"weapon_hegrenade")
// 	give_item(id,"weapon_flashbang")
// 	give_item(id,"weapon_smokegrenade")
		
// 	cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
		
// 	WeaponSelected[id] = true
		
// 	give_item( id, VipWeapons[ item ][ WeaponID ] )
// 	cs_set_user_bpammo( id, get_weaponid( VipWeapons[ item ][ WeaponID ] ), VipWeapons[ item ][ BpAmmo ] )
		
// 	give_item(id,"weapon_deagle")
// 	cs_set_user_bpammo(id,CSW_DEAGLE,250)
	
// 	ShowVIPMenu(id)
// 	return PLUGIN_HANDLED
// }
public VipItemsMenu(id)
{
	new szTittle = menu_create("VIP Items Menu^n\d- Your items will be permenently.","vip_items_handler")
		
	if(VIPMj[id] == 0)
		menu_additem(szTittle,"Multi-Jump \r500VM^n\d- Add for you 2 more jumps!")
			
	else
		menu_additem(szTittle,!g_bActived_Mj[id] ? "Multi-Jump \r[OFF]^n\d- Add for you 2 more jumps!" 
		: "Multi-Jump \y[ON]^n\d- Add for you 2 more jumps!")
			
	if(VIPRegen[id] == 0)
		menu_additem(szTittle,"HP Regenerate \r800VM^n\d- Add 2HP per second.")
			
	else
		menu_additem(szTittle,!g_bActived_Regen[id] ? "HP Regenerate \r[OFF]^n\d- Add 2HP per second." : 
		"HP Regenerate \y[ON]^n\d- Add 2HP per second.")
			
	if(VIPImm[id] == 0)
		menu_additem(szTittle,"Immobilize \r1100VM^n\d- Chance for immobilize with a shot!")
			
	else
		menu_additem(szTittle,!g_bActived_Imm[id] ? "Immobilize \r[OFF]^n\d- Chance for immobilize with a shot!" : 
		"Immobilize \y[ON]^n\d- Chance for immobilize with a shot!")
			
	if(VIPBh[id] == 0)
		menu_additem(szTittle,"BunnyHop \r1500VM^n\d- Add for you automatic bhop!")
			
	else
		menu_additem(szTittle,!g_bActived_Bhop[id] ? "BunnyHop \r[OFF]^n\d- Add for you automatic bhop!" : 
		"BunnyHop \y[ON]^n\d- Add for you automatic bhop!")
			
	if(VIPNoDmg[id] == 0)
		menu_additem(szTittle,"No Damage \r2000VM^n\d- You dont lose hp per 15 seconds!")
			
	else
		menu_additem(szTittle,!g_bActived_NoDmg[id] ? "No Damage \r[OFF]^n\d- You dont lose hp per 15 seconds!" : 
		"No Damage \y[ON]^n\d- You dont lose hp per 15 seconds!")
		
	menu_additem(szTittle,"Back")
			
	menu_display(id,szTittle)
			
}
public vip_items_handler(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	switch(item)
	{
		case 0:
		{
			if(VIPMj[id] == 0)
			{
				if(VIPMoney[id] >= 500)
				{
					VIPMj[id] = 1
					VIPMoney[id] -= 500
					color_chat(id,"!g%s!y: You've buyed !gMulti Jump!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,500 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Mj[id])
					{
						g_bActived_Mj[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Bhop[id] = false
						g_bActived_Imm[id] = false
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Mj[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 1:
		{
			if(VIPRegen[id] == 0)
			{
				if(VIPMoney[id] >= 800)
				{
					VIPRegen[id] = 1
					VIPMoney[id] -= 800
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					color_chat(id,"!g%s!y: You've buyed !gHP Regenerate!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,800 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Regen[id])
					{
						g_bActived_Regen[id] = true
						
						g_bActived_Bhop[id] = false
						g_bActived_Imm[id] = false
						g_bActived_Mj[id] = false
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
						
						set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 2:
		{
			if(VIPImm[id] == 0)
			{
				if(VIPMoney[id] >= 1100)
				{
					VIPImm[id] = 1
					VIPMoney[id] -= 1100
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					color_chat(id,"!g%s!y: You've buyed !gImmobilize!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1100 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Imm[id])
					{
						g_bActived_Imm[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Bhop[id] = false
						g_bActived_Mj[id] = false
						g_bActived_Regen[id] = false
	
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Imm[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 3:
		{
			if(VIPBh[id] == 0)
			{
				if(VIPMoney[id] >= 1500)
				{
					VIPBh[id] = 1
					VIPMoney[id] -= 1500
					color_chat(id,"!g%s!y: You've buyed !gBunnyHop!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1500 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Bhop[id])
					{
						g_bActived_Bhop[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Imm[id] = false
						g_bActived_Mj[id] = false
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Bhop[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 4:
		{
			if(VIPNoDmg[id] == 0)
			{
				if(VIPMoney[id] >= 2000)
				{
					VIPNoDmg[id] = 1
					VIPMoney[id] -= 2000
					color_chat(id,"!g%s!y: You've buyed !gNo Damage!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					set_pev(id,pev_takedamage,DAMAGE_NO)
					set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,2000 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					g_bActived_NoDmg[id] = true
					
					if(task_exists(id+TASK_GODMOD))
						remove_task(id+TASK_GODMOD)
						
					if(task_exists(id+TASK_HPREGEN))
						remove_task(id+TASK_HPREGEN)
					
					g_bActived_Bhop[id] = false
					g_bActived_Imm[id] = false
					g_bActived_Mj[id] = false
					g_bActived_Regen[id] = false
					
					set_pev(id,pev_takedamage,DAMAGE_NO)
					set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item right now! Wait the round restart!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 5: ShowVIPMenu(id)
	}
	return PLUGIN_HANDLED
}

public VipSpecialMenu(id)
{
	if(get_user_vip(id) == 1)
	{
		new Temp[64];
		formatex(Temp, charsmax(Temp), "\y[\rVIP\y] Special Market^n^n\wVIPMoney: \y%d", VIPMoney[id])
		new Menu = menu_create(Temp, "vip_special");
		menu_additem(Menu, "\wBuy 100 \rScraps \y( \r200 \y| \wVipMoney\y)", "1");
		menu_additem(Menu, "\wBuy 10 \rChei \y( \r70 \y| \wVipMoney\y)", "2");
		menu_additem(Menu, "\wBuy 10 \rCufere \y( \r70 \y| \wVipMoney\y)", "3");
		menu_additem(Menu, "\wBuy 1000 \rDolari \y( \r50 \y| \wVipMoney\y)", "4");
		
		menu_display(id, Menu, 0);
	}
}

public vip_special(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}

	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	if(get_user_vip(id) == 1)
	{
		switch(item)
		{
			case 0:
			{
				if( 200 <= VIPMoney[id] )
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 200
						new dusts = csgor_get_user_dusts(id);
						csgor_set_user_dusts(id, dusts + 100);	
						color_chat(id,"!g%s!y: You bought 100 !gscraps!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gScraps.",equal(Buffer,"0" ) ? "" : Buffer,200 - VIPMoney[id])
					VipSpecialMenu(id);
				}
				
			}
			
			case 1:
			{
				if( VIPMoney[id] >= 70 )
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 70
						new keys = csgor_get_user_keys(id);
						csgor_set_user_keys(id, keys + 10);
						color_chat(id,"!g%s!y: You bought 10 !gkeys!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gKeys.",equal(Buffer,"0" ) ? "" : Buffer,70 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
			
			case 2:
			{
				if(VIPMoney[id] >= 70)
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 70
						new cases = csgor_get_user_cases(id);
						csgor_set_user_cases(id, cases + 10);
						color_chat(id,"!g%s!y: You bought 10 !gcases!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gCases.",equal(Buffer,"0" ) ? "" : Buffer,70 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
			
			case 3:
			{
				if(VIPMoney[id] >= 50)
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 50
						new points = csgor_get_user_points(id);
						csgor_set_user_points(id, points + 1000);
						color_chat(id,"!g%s!y: You bought 1000 !gdollars!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gDollars.",equal(Buffer,"0" ) ? "" : Buffer,50 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
		}
	}
	return PLUGIN_HANDLED;
}

public fwSpawn(id) 
{ 
	if(!is_user_alive(id)) 
		return HAM_IGNORED 
	
	if(get_user_vip(id) == 1)
	{
		WeaponSelected[id] = false
		
		g_bActived_NoDmg[id] = false
		
		ShowVIPMenu(id)
		
		set_pev(id,pev_takedamage,DAMAGE_AIM)
		
		timer[id] = 15
		
		if(get_pcvar_num(PcvarShowVMoney) == 1)
			if(!task_exists(id+TASK_SHOWVMONEY))
				set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
			
		if(g_bActived_Regen[id])
			set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
			
		if(task_exists(id+TASK_GODMOD))
			remove_task(id+TASK_GODMOD)

		cs_set_user_armor(id,100,CsArmorType:2)
			
		if(get_user_team(id) == 2)
			give_item(id, "item_thighpack")
	}
	else
	{
		if(!task_exists(id+TASK_SHOWEXPERIENCE))
			set_task(1.0,"ShowExperience",id+TASK_SHOWEXPERIENCE,_,_,"b")
	}
	return HAM_IGNORED 
} 
public fw_Ham_Player_Killed(iVictim,iAttacker)
{
	if(!iVictim || !iAttacker && !is_user_alive(iVictim) || !is_user_alive(iAttacker))
		return HAM_IGNORED
		
	if(task_exists(iVictim+TASK_HPREGEN))
		remove_task(iVictim+TASK_HPREGEN)
		
	if(task_exists(iVictim+TASK_SHOWVMONEY))
		remove_task(iVictim+TASK_SHOWVMONEY)
		
	if(task_exists(iVictim+TASK_SHOWEXPERIENCE))
		remove_task(iVictim+TASK_SHOWEXPERIENCE)
		
	if(task_exists(iVictim+TASK_GODMOD))
		remove_task(iVictim+TASK_GODMOD)
		
	if(get_user_vip(iAttacker) == 1)
	{
		set_user_health(iAttacker,get_user_health(iAttacker) + get_pcvar_num(PcvarHPGive))
		set_user_armor(iAttacker,get_user_armor(iAttacker) + get_pcvar_num(PcvarAPGive))
			
		VIPMoney[iAttacker] += get_pcvar_num(PcvarVIPMoneyKillBonus)
		
		static color[12],parts[3][4];
			
		switch( CsTeams:cs_get_user_team( iAttacker ) )
		{
			case CS_TEAM_CT:
			{	
				CVAR_color_Kill[0] = 000;
				CVAR_color_Kill[1] = 100;
				CVAR_color_Kill[2] = 200;
						
				message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
				write_short(400 * 14);
				write_short(0);
				write_short(0);
				write_byte(CVAR_color_Kill[0]);
				write_byte(CVAR_color_Kill[1]);
				write_byte(CVAR_color_Kill[2]);
				write_byte(75) ;
				message_end();
						
				parse(color,parts[0],3,parts[1],3,parts[2],3);
				CVAR_color_Kill[0] = str_to_num(parts[0]);
				CVAR_color_Kill[1] = str_to_num(parts[1]);
				CVAR_color_Kill[2] = str_to_num(parts[2]);
			}
			case CS_TEAM_T:
			{		
				CVAR_color_Kill[0] = 200;
				CVAR_color_Kill[1] = 000;
				CVAR_color_Kill[2] = 000;
						
				message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
				write_short(400 * 14);
				write_short(0);
				write_short(0);
				write_byte(CVAR_color_Kill[0]);
				write_byte(CVAR_color_Kill[1]);
				write_byte(CVAR_color_Kill[2]);
				write_byte(75) ;
				message_end();
						
				parse(color,parts[0],3,parts[1],3,parts[2],3);
				CVAR_color_Kill[0] = str_to_num(parts[0]);
				CVAR_color_Kill[1] = str_to_num(parts[1]);
				CVAR_color_Kill[2] = str_to_num(parts[2]);
			}
		}
	}
	else
	{
		Experience[iAttacker] += random_num(25,80)
		if(Experience[iAttacker] >= get_pcvar_num(PcvarMaxExperience))
		{
			set_user_vip(iAttacker,1)
			if(get_pcvar_num(PcvarShowVMoney) == 1)
				set_task(1.0,"ShowVIPMoney",iAttacker+TASK_SHOWVMONEY,_,_,"b")
				
			set_hudmessage(0,255,0,-1.0,0.25,1,1.0,5.0)
			ShowSyncHudMsg(iAttacker,HudsSync[3],"CONGRATULATIONS!^nYou got VIP!")
			
			remove_task(iAttacker+TASK_SHOWEXPERIENCE)
			
			new Buffer[85]
			get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))

			new Name[32]
			get_user_name(iAttacker,Name,31)
			color_chat(0,"!g%s!y: Player!t %s!y got vip with!g %d!y of !g%d!y experience!",equal(Buffer,"0" ) ? "" : Buffer,Name,Experience[iAttacker],get_pcvar_num(PcvarMaxExperience))
			
			client_cmd(0,"spk buttons/bell1")
		}
	}
	return HAM_IGNORED
}
public GodMod_CountDown(id)
{
	id -= TASK_GODMOD
	
	if(task_exists(id+TASK_GODMOD))
	{
		set_hudmessage(255,255,255,-1.0,0.70,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[1],"No Dmg will be off in %d second%s",timer[id],( timer[id] >= 2 ) ? "s" : "")
		
		timer[id]--
		
		if(timer[id] == 0)
		{
			remove_task(id+TASK_GODMOD)
			
			new Buffer[85]
			get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
			
			set_pev(id,pev_takedamage,DAMAGE_AIM)

			color_chat(id,"!g%s!y: !yNo Damage deactived!",equal(Buffer,"0" ) ? "" : Buffer)
			ShowVIPMenu(id)
			
			timer[id] = 15
		}
	}
}
public HPRegen(id)
{
	id -= TASK_HPREGEN
	
	if(get_user_health(id) >= get_pcvar_num(PcvarMaxRegenHP))
	{
		set_user_health(id,get_pcvar_num(PcvarMaxRegenHP))
		return PLUGIN_HANDLED
	}
	
	else
	{
		set_user_health(id,get_user_health(id) + get_pcvar_num(PcvarHpRegenAdd))
	}
	return PLUGIN_CONTINUE
}
public ham_Player_TakeDamage_Post( iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits )
{
	if( !is_user_connected( iVictim ) || !is_user_connected( iAttacker ) || iVictim == iAttacker )
		return HAM_IGNORED
		
	if( g_bActived_Imm[iAttacker] )
	{
		if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
		{
			if( iDmgBits & DMG_BULLET || iDmgBits & (1<<24) || iDmgBits & DMG_SLASH )
			{
				new random = random_num( 1,4 )
				if( random == 2 )
				{
					set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) | FL_FROZEN )
					if( !task_exists( iVictim ) )
						set_task( 2.0, "remove_frozen", iVictim )
				}
			}
		}
	}
	return HAM_IGNORED
}

public remove_frozen( iVictim )
	set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) & ~FL_FROZEN )

SaveVIP( id ) 
{ 
	new szAuthid[ 32 ] 
	get_user_authid( id, szAuthid, charsmax( szAuthid ) ) 
	
	new szVaultKey[ 128 ], szVaultData[ 512 ] 
	
	formatex( szVaultKey, 127, "VIP_%s", szAuthid ) 
	formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id]) 
	nvault_set( g_nVault, szVaultKey, szVaultData ) 
} 

LoadVIP( id ) 
{ 
	new szAuthid[ 32 ] 
	get_user_authid( id, szAuthid, charsmax( szAuthid ) ) 

	new szVaultKey[ 128 ], szVaultData[ 512 ] 

	formatex( szVaultKey, 127, "VIP_%s", szAuthid ) 
	formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id]) 

	nvault_get( g_nVault, szVaultKey, szVaultData, 511 ) 

	new vp[32],vpm[32],vpmj[32],vpbhop[32],vpnodmg[32],vpregen[32],vpimm[32],exp[32]

	parse( szVaultData, vp, 31,vpm, 31,vpmj, 31, vpbhop, 31, vpnodmg, 31, vpregen, 31 ,vpimm, 31, exp, 31) 

	VIP[ id ] = str_to_num( vp )
	VIPMoney[ id ] = str_to_num( vpm ) 
	VIPBh[id] = str_to_num( vpbhop )
	VIPMj[id] = str_to_num( vpmj )
	VIPNoDmg[id] = str_to_num( vpnodmg )
	VIPRegen[id] = str_to_num( vpregen )
	VIPImm[id] = str_to_num( vpimm )
	Experience[id] = str_to_num( exp )
	
} 
public HUD( id )
{    
	id -= 672;
	
	set_task( 0.2, "HUD", id+672 );    
	if(!is_user_alive( id ) )
	{
		new szHud[64];
			
		new target = entity_get_int( id, EV_INT_iuser2 );
		if( target == 0 )
			return PLUGIN_HANDLED
			
		if(get_user_vip(target) == 1)
		{
			if(g_bActived_Bhop[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: BunnyHop ]", VIPMoney[target])
				
			else if(g_bActived_Imm[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: Immobilize ]", VIPMoney[target])
				
			else if(g_bActived_Mj[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: MultiJump ]", VIPMoney[target])
			
			else if(g_bActived_NoDmg[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: No Damage ]", VIPMoney[target])
				
			else if(g_bActived_Regen[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: HP Regenerate ]", VIPMoney[target])
				
			else
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: None ]", VIPMoney[target])
		}
				
		else
			formatex(szHud,63,"[ Experience: %d of %s ]", Experience[target],get_pcvar_num(PcvarMaxExperience))
			
		set_hudmessage(150, 50, 35, -1.0, 0.95, 0, 1.0, 0.1);
		ShowSyncHudMsg(id,HudsSync[5],szHud);
	}
	return PLUGIN_CONTINUE;
}
public plugin_end( ) 
{ 
	nvault_close( g_nVault ) 
	return PLUGIN_CONTINUE 
} 

public plugin_cfg( ) 
{ 
	g_nVault = nvault_open( "VIP_Player" ) 

	if( g_nVault == INVALID_HANDLE ) 
		set_fail_state( "Error opening VIP nVault, file does not exist!" ) 
}  
public CmdStart( id, uc_handle )
{
	if( !is_user_alive( id ))
		return FMRES_IGNORED
		
	new flags = pev( id, pev_flags )
	
	if( ( get_uc( uc_handle, UC_Buttons ) & IN_JUMP ) && !( flags & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) && g_iJumpCount[ id ] )
	{
		g_iJumpCount[ id ]--
		new Float:velocity[ 3 ]
		pev( id, pev_velocity, velocity )
		velocity[ 2 ] = random_float( 265.0,285.0 )
		set_pev( id, pev_velocity, velocity )
	}
	else if( flags & FL_ONGROUND )
	{
		g_iJumpCount[ id ] = g_bActived_Mj[id] ? 2 : 0
	}
	return FMRES_IGNORED
}
public ham_Player_PostThink_Post( id )
{
	if( !is_user_alive( id ) )
		return HAM_IGNORED
		
	if( g_bActived_Bhop[id])
	{
		if( pev( id, pev_button) & IN_JUMP )
		{
			new flags = pev( id, pev_flags )
			
			if( flags & FL_WATERJUMP )
				return HAM_IGNORED
				
			if( pev( id, pev_waterlevel ) >= 2 )
				return HAM_IGNORED
				
			if( !( flags & FL_ONGROUND ) )
				return HAM_IGNORED
				
			static Float:velocity[ 3 ]
			pev( id, pev_velocity, velocity )
			velocity[ 2 ] += 250.0
			set_pev( id, pev_velocity, velocity )
			
			set_pev( id, pev_gaitsequence, 6 )
		}
	}
	return HAM_IGNORED
}
stock color_chat( id, const szStr[], any:... ) 
{
	new szMsg[ 191 ], iPlayers[ 32 ], iCount = 1
	
	vformat( szMsg, sizeof szMsg - 1, szStr, 3 )
	
	replace_all( szMsg, 190, "!g", "^4" )
	replace_all( szMsg, 190, "!y", "^1" )
	replace_all( szMsg, 190, "!t", "^3" )
	
	if( id )
		iPlayers[ 0 ] = id

	else 
		get_players( iPlayers, iCount, "ch" )
	
	for( new i = 0 ; i < iCount ; i++ )
	{
		if(is_user_connected( iPlayers[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[ i ] )
			write_byte( iPlayers[ i ] )
			write_string( szMsg )
			message_end( )
		}
	}
}
EugenH
Membru, skill 0
Membru, skill 0
Posts: 41
Joined: 01 Oct 2022, 21:07
Detinator Steam: Nu
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Discord: EugenH#4686
Has thanked: 12 times

31 May 2023, 21:03

Wow multumesc mult , te rog faci sa nu mai apara automat , sa fie la comanca shop trg <3
lexz
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 917
Joined: 02 Nov 2020, 01:57
Detinator Steam: Da
Fond eXtream: 0
Discord: lexzor#0630
Has thanked: 71 times
Been thanked: 136 times

31 May 2023, 23:09

EugenH wrote:
31 May 2023, 21:03
Wow multumesc mult , te rog faci sa nu mai apara automat , sa fie la comanca shop trg <3

Code: Select all

#include <amxmodx> 
#include <amxmisc>
#include <cstrike> 
#include <engine>
#include <fakemeta>
#include <hamsandwich> 
#include <nvault> 
#include <fun>

#define PLUGIN "VIP - adaugare shop csgo remake by Shadows Adi" 
#define VERSION "2.0" 
#define AUTHOR "EFFx" 

static const OPEN_MENU_COMMANDS[][] =
{
	"/shop",
	"!shop",
	"/sp",
	"!sp",
	"/vipmenu",
	"!vipmenu",
	"/vmenu",
	"!vmenu",
	"/vm",
	"!vm"
}

#define nvault_clear(%1) nvault_prune(%1, 0, get_systime() + 1) // Thx OciXCrom
#define LOGFILE "vip_log.log"

#if AMXX_VERSION_NUM > 182
    #define client_disconnect client_disconnected 
#endif

new const szCfgFile[] = "VIP_Config.cfg"

enum(+= 1000)
{
	TASK_HPREGEN,
	TASK_SHOWEXPERIENCE,
	TASK_SHOWVMONEY,
	TASK_GODMOD
}

static timer[33]

enum _:Weapons
{
	WeapName[200],
	WeaponID[32],
	BpAmmo
}

// new const VipWeapons[][Weapons] =
// {
// 	{ "AK47 \d+ \wDeagle \d+ \wAll Grenades", "weapon_ak47",250 },
// 	{ "M4A1 \d+ \wDeagle \d+ \wAll Grenades","weapon_m4a1",250 },
// 	{ "AWP \d+ \wDeagle \d+ \wAll Grenades", "weapon_awp",250 }
// }

new bool:WeaponSelected[33]


new CVAR_color_Kill[3]

new g_iJumpCount[ 33 ]

new PcvarHPGive,PcvarAPGive,PcvarVIPMoneyKillBonus,
PcvarMaxRegenHP,PcvarHpRegenAdd,PcvarShowVMoney,
PcvarMaxExperience,PcvarPrefixChat

new VIP[33],VIPMoney[33],Experience[33]

new VIPMj[33],VIPBh[33],VIPRegen[33],VIPNoDmg[33],VIPImm[33]
new bool:g_bActived_Mj[33],bool:g_bActived_Bhop[33],bool:g_bActived_Imm[33],
bool:g_bActived_Regen[33],bool:g_bActived_NoDmg[33]

new HudsSync[6]

new maxplayers

new g_nVault

native get_user_vip(user_id);
native set_user_vip(user_id,vip_mode);
native csgor_get_user_dusts(id);
native csgor_set_user_dusts(id, amount);
native csgor_get_user_keys(id);
native csgor_set_user_keys(id, amount);
native csgor_get_user_cases(id);
native csgor_set_user_cases(id, amount);
native csgor_set_user_skins(id, skinid, amount);
native csgor_get_user_points(id);
native csgor_set_user_points(id, amount);
native csgor_is_user_logged(id);

public plugin_init()  
{
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	PcvarPrefixChat = register_cvar("vip_prefixchat","[EFFxVIP]")
	PcvarShowVMoney = register_cvar("vip_showmoney","1")
	PcvarHPGive = register_cvar("vip_killhpbonus","25")
	PcvarAPGive = register_cvar("vip_killapbonus","25")
	PcvarVIPMoneyKillBonus = register_cvar("vip_vipmoneybonus","15")
	PcvarMaxRegenHP = register_cvar("vip_hpregenmax","100")
	PcvarHpRegenAdd = register_cvar("vip_hpregenadd","2")
	PcvarMaxExperience= register_cvar("vip_maxexperience","12500")
	
	maxplayers = get_maxplayers()
		
	for(new i;i < sizeof HudsSync;i++)
		HudsSync[i] = CreateHudSyncObj()
	
	register_forward( FM_CmdStart, "CmdStart" )
	
	register_clcmd("say /vips","ShowVIPs")

	for(new i = 0; i < sizeof(OPEN_MENU_COMMANDS); i++)
	{
		register_clcmd(fmt("say %s", OPEN_MENU_COMMANDS[i]), "ShowVIPMenu")
		register_clcmd(fmt("say_team %s", OPEN_MENU_COMMANDS[i]), "ShowVIPMenu")
	}
	
	register_concmd("amx_resetdata","cmdReset",ADMIN_BAN,"- Reset all vip data")
	register_concmd("amx_vip", "cmdVIP", ADMIN_KICK, "<name or @ALL> [1|0]")
	
	RegisterHam(Ham_TakeDamage, "player", "ham_Player_TakeDamage_Post", 0)
	RegisterHam(Ham_Player_PostThink, "player", "ham_Player_PostThink_Post", 1 )
	RegisterHam(Ham_Killed,"player","fw_Ham_Player_Killed",1)
	RegisterHam(Ham_Spawn,"player","fwSpawn",1) 
	
	LoadCfg()
}

LoadCfg()
{
	new text[128], fp 
	formatex(text,charsmax(text),"addons/amxmodx/configs/VIPCfgs/%s",szCfgFile)
	fp = fopen(text,"rt")
	if(!fp) 
	{
		formatex(text,charsmax(text),"Archive ^"addons/amxmodx/configs/VIPCfgs/%s^" not found",szCfgFile)
		log_to_file(LOGFILE,text)
		set_fail_state(text)
	}
	new szDir[32];
	get_localinfo("amxx_configsdir",szDir,charsmax(szDir));

	server_cmd("exec %s/VIPCfgs/%s",szDir,szCfgFile)
}

public plugin_natives()
{
	register_native("get_user_vip","_get_user_vip")
	register_native("set_user_vip","_set_user_vip")
}
public _get_user_vip(user_id)
{
	new id = get_param(1)
	if(!is_user_connected(id) || !id)
		return 0
		
	return VIP[id]
}
	
public _set_user_vip(user_id,vip_mode)
{
	new id = get_param(1)
	new MODE = get_param(2)
	
	if(!is_user_connected(id) || !id)
		return 0
		
	VIP[id] = MODE
	return 1
}

public cmdReset(id,level,cid)
{
	if (!cmd_access(id, level, cid, 1))	
		return PLUGIN_HANDLED
		
	new name[32]
	get_user_name(id, name, 31)
	
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	
	color_chat(0,"!g%s!y: ADMIN!t %s!y has reseted all vip data from this server!,",equal(Buffer,"0" ) ? "" : Buffer,name)
	
	new players[32],inum
	get_players(players,inum)
	for(new i = 0 ;i < inum; i++)
	{
		if(get_user_vip(players[i]) == 1)
		{
			VIPMoney[players[i]] = 0
			
			VIPBh[players[i]] = 0
			VIPMj[players[i]] = 0
			VIPImm[players[i]] = 0
			VIPNoDmg[players[i]] = 0
			VIPRegen[players[i]] = 0
			
			g_bActived_Bhop[players[i]] = false
			g_bActived_Imm[players[i]] = false
			g_bActived_Mj[players[i]] = false
			g_bActived_Regen[players[i]] = false
			g_bActived_NoDmg[players[i]] = false
		}
	}
	
	return PLUGIN_HANDLED
}

public cmdVIP(id, level, cid)
{
	if (!cmd_access(id, level, cid, 2))	
		return PLUGIN_HANDLED

	new arg[32]
	read_argv(1, arg, 31)

	new arg2[7]
	read_argv(2, arg2, 6)

	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
		
	new name2[32], name[32]
	get_user_name(id, name, 31)
	
	if(equal(arg,"@ALL"))
	{
		if(arg2[0] == '0')
		{
			new players[32],inum
			get_players(players,inum)
			for(new i = 0;i<inum;i++)
			{
				if(get_user_vip(players[i]) == 1)
				{	
					if(task_exists(players[i]+TASK_HPREGEN))
						remove_task(players[i]+TASK_HPREGEN)
							
					if(task_exists(players[i]+TASK_SHOWVMONEY))
						remove_task(players[i]+TASK_SHOWVMONEY)
							
					if(task_exists(players[i]+TASK_GODMOD))
						remove_task(players[i]+TASK_GODMOD)
					
					if(is_user_alive(players[i]))
						set_task(1.0,"ShowExperience",players[i]+TASK_SHOWEXPERIENCE,_,_,"b")
						
					VIPBh[players[i]] = 0
					VIPMj[players[i]] = 0
					VIPImm[players[i]] = 0
					VIPNoDmg[players[i]] = 0
					VIPRegen[players[i]] = 0
					
					g_bActived_Bhop[players[i]] = false
					g_bActived_Imm[players[i]] = false
					g_bActived_Mj[players[i]] = false
					g_bActived_Regen[players[i]] = false
					g_bActived_NoDmg[players[i]] = false
						
					set_user_vip(players[i],0)
					VIPMoney[players[i]] = 0
				}
			}
			color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
		}
		else if(arg2[0] == '1')
		{
			new players[32],inum
			get_players(players,inum)
			for(new i = 0;i<inum;i++)
			{
				if(get_user_vip(players[i]) == 0)
				{
					if(get_pcvar_num(PcvarShowVMoney) == 1)
						if(is_user_alive(players[i]))
							set_task(1.0,"ShowVIPMoney",players[i]+TASK_SHOWVMONEY,_,_,"b")
						
					if(task_exists(players[i]+TASK_SHOWEXPERIENCE))
						remove_task(players[i]+TASK_SHOWEXPERIENCE)

					set_user_vip(players[i],1)
					Experience[players[i]] = 0
				}
			}
			color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t All Players",equal(Buffer,"0" ) ? "" : Buffer,name)
		}
		else
		{
			console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
			return PLUGIN_HANDLED
		}
	}
	else
	{
		new player = cmd_target(id, arg, CMDTARGET_NO_BOTS)
		
		if (!player)
			return PLUGIN_HANDLED
			
		get_user_name(player, name2, 31)
		
		if(arg2[0] == '0')
		{
			if(get_user_vip(player) == 1)
			{
				color_chat(0,"!g%s!y: ADMIN!t %s!y has !gremoved!y VIP from!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
					
				if(task_exists(player+TASK_HPREGEN))
					remove_task(player+TASK_HPREGEN)
						
				if(task_exists(player+TASK_SHOWVMONEY))
					remove_task(player+TASK_SHOWVMONEY)
						
				if(task_exists(player+TASK_GODMOD))
					remove_task(player+TASK_GODMOD)
					
				if(is_user_alive(player))
					set_task(1.0,"ShowExperience",player+TASK_SHOWEXPERIENCE,_,_,"b")
				
				if(get_user_team(player) == 1)
					cs_set_user_model(player,"guerilla")
						
				if(get_user_team(player) == 2)
					cs_set_user_model(player,"gign")
				
				VIPBh[player] = 0
				VIPMj[player] = 0
				VIPImm[player] = 0
				VIPNoDmg[player] = 0
				VIPRegen[player] = 0
				
				g_bActived_Bhop[player] = false
				g_bActived_Imm[player] = false
				g_bActived_Mj[player] = false
				g_bActived_Regen[player] = false
				g_bActived_NoDmg[player] = false
					
				set_user_vip(player,0)
				VIPMoney[player] = 0
			}
			else
				console_print(id,"[AMXX]: This player already have not VIP!")
		}
		else if(arg2[0] == '1')
		{
			if(get_user_vip(player) == 0)
			{
				color_chat(0,"!g%s!y: ADMIN!t %s!y has!g given!y VIP for!t %s",equal(Buffer,"0" ) ? "" : Buffer,name,name2)
				
				if(get_pcvar_num(PcvarShowVMoney) == 1)
					if(is_user_alive(player))
						set_task(1.0,"ShowVIPMoney",player+TASK_SHOWVMONEY,_,_,"b")
					
				if(task_exists(player+TASK_SHOWEXPERIENCE))
					remove_task(player+TASK_SHOWEXPERIENCE)

				set_user_vip(player,1)
				Experience[player] = 0
			}
			else
				console_print(id,"[AMXX]: This player already have VIP!")
		}
		else
		{
			console_print(id,"[AMXX]: Use '1' or '0' to active/deactive the VIP from player!")
			return PLUGIN_HANDLED
		}
	}
	return PLUGIN_HANDLED
}
public client_putinserver(id) 
{ 
	if(is_user_bot(id))
		return
		
	set_task( 0.2 , "HUD" , id + 672 );
		
	LoadVIP(id) 
	if(get_user_vip(id) == 1)
	{
		if(get_pcvar_num(PcvarShowVMoney) == 1)
			set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
			
		set_task(3.0,"HelloVIP",id+200210)
	}
} 
public HelloVIP(id)
{
	id -= 200210
	
	new szName[32]
	get_user_name(id,szName,31)
	set_hudmessage(0,100,255,0.15,0.35,2,1.0,5.0)
	ShowSyncHudMsg(id,HudsSync[4],"Hello %s, how are you today?^nType /vipmenu for show your menu!",szName)

	client_cmd(id,"spk ^"scientist/hellothere letsgo^"")
}
public client_disconnect(id) 
{ 
	SaveVIP(id) 
} 

public ShowVIPs(user)
{
	new adminnames[33][32]
	new message[256]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_vip(id) == 1)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "^x04---------------------------")
	len = format(message, 255, "^x04 VIP's ONLINE:^x01 ")
	if(count > 0) 
	{
		for(x = 0 ; x < count ; x++) 
		{
			len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ",":"")
			if(len > 96 ) 
			{
				color_chat(user, message)
			}
		}
	}
	else 
	{
		len += format(message[len], 255-len, "NO VIP's")
		color_chat(user, message)
	}
	len = format(message, 255, "^x04---------------------------")
}
public ShowVIPMoney(id)
{
	id -= TASK_SHOWVMONEY
	
	if(is_user_alive(id))
	{
		set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[0],"VIPMoney: %d",VIPMoney[id])
	}
	else
		remove_task(id+TASK_SHOWVMONEY)
}
public ShowExperience(id)
{
	id -= TASK_SHOWEXPERIENCE
	
	if(is_user_alive(id))
	{
		set_hudmessage(0,200,0,0.83,0.80,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[2],"Experience: %d / %d",Experience[id],get_pcvar_num(PcvarMaxExperience))
	}
	else
		remove_task(id+TASK_SHOWVMONEY)
}
public ShowVIPMenu(id)
{
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	
	if(get_user_vip(id) == 1)
	{
		new szMenu = menu_create("VIP Menu^n\d- Choose what you want do!","vip_menu_handler")
		// menu_additem(szMenu,"Weapons^n\d- Your first weapons!")
		menu_additem(szMenu,"\rSpecial Items^n\d- Amazing items for you!")
		menu_additem(szMenu, "\rSpecial Shop^n\d- Amazing offers for you!")
		
		menu_display(id,szMenu)
	}
	else
	{
		color_chat(id,"!g%s!y: You cant access this menu!",equal(Buffer,"0" ) ? "" : Buffer)
	}
	return PLUGIN_HANDLED
}
public vip_menu_handler(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	switch(item)
	{
		// case 0:
		// {
		// 	if(!WeaponSelected[id])
		// 	{
		// 		VipWeaponsMenu(id)
		// 	}
		// 	else
		// 	{
		// 		color_chat(id,"!g%s!y: You already have selected your equipament!",equal(Buffer,"0" ) ? "" : Buffer)
		// 		ShowVIPMenu(id)
		// 	}
		// }
		case 0:
		{
			VipItemsMenu(id)
		}
		case 1: 
		{
			VipSpecialMenu(id)
		}
	}
	return PLUGIN_HANDLED
}
// public VipWeaponsMenu(id)
// {
// 	new szMenuW = menu_create("Choose your weapon:","vip_weapons_handler")
	
// 	for ( new i; i < sizeof VipWeapons; i++ )
// 		menu_additem( szMenuW, VipWeapons[ i ][ WeapName ] )
		
// 	menu_display(id,szMenuW)
// }
// public vip_weapons_handler(id,menu,item)
// {
// 	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
// 	{
// 		menu_destroy(menu)
// 		return PLUGIN_HANDLED
// 	}
	
// 	strip_user_weapons(id)
		
// 	give_item(id,"weapon_knife")
		
// 	give_item(id,"weapon_hegrenade")
// 	give_item(id,"weapon_flashbang")
// 	give_item(id,"weapon_smokegrenade")
		
// 	cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
		
// 	WeaponSelected[id] = true
		
// 	give_item( id, VipWeapons[ item ][ WeaponID ] )
// 	cs_set_user_bpammo( id, get_weaponid( VipWeapons[ item ][ WeaponID ] ), VipWeapons[ item ][ BpAmmo ] )
		
// 	give_item(id,"weapon_deagle")
// 	cs_set_user_bpammo(id,CSW_DEAGLE,250)
	
// 	ShowVIPMenu(id)
// 	return PLUGIN_HANDLED
// }
public VipItemsMenu(id)
{
	new szTittle = menu_create("VIP Items Menu^n\d- Your items will be permenently.","vip_items_handler")
		
	if(VIPMj[id] == 0)
		menu_additem(szTittle,"Multi-Jump \r500VM^n\d- Add for you 2 more jumps!")
			
	else
		menu_additem(szTittle,!g_bActived_Mj[id] ? "Multi-Jump \r[OFF]^n\d- Add for you 2 more jumps!" 
		: "Multi-Jump \y[ON]^n\d- Add for you 2 more jumps!")
			
	if(VIPRegen[id] == 0)
		menu_additem(szTittle,"HP Regenerate \r800VM^n\d- Add 2HP per second.")
			
	else
		menu_additem(szTittle,!g_bActived_Regen[id] ? "HP Regenerate \r[OFF]^n\d- Add 2HP per second." : 
		"HP Regenerate \y[ON]^n\d- Add 2HP per second.")
			
	if(VIPImm[id] == 0)
		menu_additem(szTittle,"Immobilize \r1100VM^n\d- Chance for immobilize with a shot!")
			
	else
		menu_additem(szTittle,!g_bActived_Imm[id] ? "Immobilize \r[OFF]^n\d- Chance for immobilize with a shot!" : 
		"Immobilize \y[ON]^n\d- Chance for immobilize with a shot!")
			
	if(VIPBh[id] == 0)
		menu_additem(szTittle,"BunnyHop \r1500VM^n\d- Add for you automatic bhop!")
			
	else
		menu_additem(szTittle,!g_bActived_Bhop[id] ? "BunnyHop \r[OFF]^n\d- Add for you automatic bhop!" : 
		"BunnyHop \y[ON]^n\d- Add for you automatic bhop!")
			
	if(VIPNoDmg[id] == 0)
		menu_additem(szTittle,"No Damage \r2000VM^n\d- You dont lose hp per 15 seconds!")
			
	else
		menu_additem(szTittle,!g_bActived_NoDmg[id] ? "No Damage \r[OFF]^n\d- You dont lose hp per 15 seconds!" : 
		"No Damage \y[ON]^n\d- You dont lose hp per 15 seconds!")
		
	menu_additem(szTittle,"Back")
			
	menu_display(id,szTittle)
			
}
public vip_items_handler(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id) || get_user_vip(id) == 0)
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}
	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	switch(item)
	{
		case 0:
		{
			if(VIPMj[id] == 0)
			{
				if(VIPMoney[id] >= 500)
				{
					VIPMj[id] = 1
					VIPMoney[id] -= 500
					color_chat(id,"!g%s!y: You've buyed !gMulti Jump!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,500 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Mj[id])
					{
						g_bActived_Mj[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Bhop[id] = false
						g_bActived_Imm[id] = false
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Mj[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 1:
		{
			if(VIPRegen[id] == 0)
			{
				if(VIPMoney[id] >= 800)
				{
					VIPRegen[id] = 1
					VIPMoney[id] -= 800
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					color_chat(id,"!g%s!y: You've buyed !gHP Regenerate!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,800 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Regen[id])
					{
						g_bActived_Regen[id] = true
						
						g_bActived_Bhop[id] = false
						g_bActived_Imm[id] = false
						g_bActived_Mj[id] = false
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
						
						set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 2:
		{
			if(VIPImm[id] == 0)
			{
				if(VIPMoney[id] >= 1100)
				{
					VIPImm[id] = 1
					VIPMoney[id] -= 1100
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					color_chat(id,"!g%s!y: You've buyed !gImmobilize!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1100 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Imm[id])
					{
						g_bActived_Imm[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Bhop[id] = false
						g_bActived_Mj[id] = false
						g_bActived_Regen[id] = false
	
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Imm[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 3:
		{
			if(VIPBh[id] == 0)
			{
				if(VIPMoney[id] >= 1500)
				{
					VIPBh[id] = 1
					VIPMoney[id] -= 1500
					color_chat(id,"!g%s!y: You've buyed !gBunnyHop!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,1500 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					if(!g_bActived_Bhop[id])
					{
						g_bActived_Bhop[id] = true
						
						if(task_exists(id+TASK_GODMOD))
							remove_task(id+TASK_GODMOD)
							
						if(task_exists(id+TASK_HPREGEN))
							remove_task(id+TASK_HPREGEN)
						
						g_bActived_Imm[id] = false
						g_bActived_Mj[id] = false
						g_bActived_Regen[id] = false
						VipItemsMenu(id)
					}
					else
					{
						g_bActived_Bhop[id] = false
						VipItemsMenu(id)
					}
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item now. Wait your No Damage finish!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 4:
		{
			if(VIPNoDmg[id] == 0)
			{
				if(VIPMoney[id] >= 2000)
				{
					VIPNoDmg[id] = 1
					VIPMoney[id] -= 2000
					color_chat(id,"!g%s!y: You've buyed !gNo Damage!",equal(Buffer,"0" ) ? "" : Buffer)
					
					client_cmd(id,"spk items/gunpickup2.wav")
					
					set_pev(id,pev_takedamage,DAMAGE_NO)
					set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. Need more!g %d!y for buy.",equal(Buffer,"0" ) ? "" : Buffer,2000 - VIPMoney[id])
					VipItemsMenu(id)
				}
			}
			else
			{
				if(!g_bActived_NoDmg[id])
				{
					g_bActived_NoDmg[id] = true
					
					if(task_exists(id+TASK_GODMOD))
						remove_task(id+TASK_GODMOD)
						
					if(task_exists(id+TASK_HPREGEN))
						remove_task(id+TASK_HPREGEN)
					
					g_bActived_Bhop[id] = false
					g_bActived_Imm[id] = false
					g_bActived_Mj[id] = false
					g_bActived_Regen[id] = false
					
					set_pev(id,pev_takedamage,DAMAGE_NO)
					set_task(1.0,"GodMod_CountDown",id+TASK_GODMOD,_,_,"a",15)
					
					VipItemsMenu(id)
				}
				else
				{
					color_chat(id,"!g%s!y: You cant use this item right now! Wait the round restart!",equal(Buffer,"0" ) ? "" : Buffer)
					VipItemsMenu(id)
				}
			}
		}
		case 5: ShowVIPMenu(id)
	}
	return PLUGIN_HANDLED
}

public VipSpecialMenu(id)
{
	if(get_user_vip(id) == 1)
	{
		new Temp[64];
		formatex(Temp, charsmax(Temp), "\y[\rVIP\y] Special Market^n^n\wVIPMoney: \y%d", VIPMoney[id])
		new Menu = menu_create(Temp, "vip_special");
		menu_additem(Menu, "\wBuy 100 \rScraps \y( \r200 \y| \wVipMoney\y)", "1");
		menu_additem(Menu, "\wBuy 10 \rChei \y( \r70 \y| \wVipMoney\y)", "2");
		menu_additem(Menu, "\wBuy 10 \rCufere \y( \r70 \y| \wVipMoney\y)", "3");
		menu_additem(Menu, "\wBuy 1000 \rDolari \y( \r50 \y| \wVipMoney\y)", "4");
		
		menu_display(id, Menu, 0);
	}
}

public vip_special(id,menu,item)
{
	if(item == MENU_EXIT || !is_user_alive(id))
	{
		menu_destroy(menu)
		return PLUGIN_HANDLED
	}

	new Buffer[85]
	get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
	if(get_user_vip(id) == 1)
	{
		switch(item)
		{
			case 0:
			{
				if( 200 <= VIPMoney[id] )
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 200
						new dusts = csgor_get_user_dusts(id);
						csgor_set_user_dusts(id, dusts + 100);	
						color_chat(id,"!g%s!y: You bought 100 !gscraps!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gScraps.",equal(Buffer,"0" ) ? "" : Buffer,200 - VIPMoney[id])
					VipSpecialMenu(id);
				}
				
			}
			
			case 1:
			{
				if( VIPMoney[id] >= 70 )
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 70
						new keys = csgor_get_user_keys(id);
						csgor_set_user_keys(id, keys + 10);
						color_chat(id,"!g%s!y: You bought 10 !gkeys!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gKeys.",equal(Buffer,"0" ) ? "" : Buffer,70 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
			
			case 2:
			{
				if(VIPMoney[id] >= 70)
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 70
						new cases = csgor_get_user_cases(id);
						csgor_set_user_cases(id, cases + 10);
						color_chat(id,"!g%s!y: You bought 10 !gcases!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gCases.",equal(Buffer,"0" ) ? "" : Buffer,70 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
			
			case 3:
			{
				if(VIPMoney[id] >= 50)
				{
					if( csgor_is_user_logged( id ) )
					{
						VIPMoney[id] -= 50
						new points = csgor_get_user_points(id);
						csgor_set_user_points(id, points + 1000);
						color_chat(id,"!g%s!y: You bought 1000 !gdollars!", equal(Buffer,"0" ) ? "" : Buffer);
					}
					else {
						color_chat(id,"!g%s!y: You need to be !glogged in !yin order to buy items!", equal(Buffer,"0" ) ? "" : Buffer);
						VipSpecialMenu(id);
					}
				}
				else {
					color_chat(id,"!g%s!y: You haven't sufficient VIPMoney. You need!g %d!y more for buy !gDollars.",equal(Buffer,"0" ) ? "" : Buffer,50 - VIPMoney[id])
					VipSpecialMenu(id);
				}
			}
		}
	}
	return PLUGIN_HANDLED;
}

public fwSpawn(id) 
{ 
	if(!is_user_alive(id)) 
		return HAM_IGNORED 
	
	if(get_user_vip(id) == 1)
	{
		WeaponSelected[id] = false
		
		g_bActived_NoDmg[id] = false
		
		// ShowVIPMenu(id)
		
		set_pev(id,pev_takedamage,DAMAGE_AIM)
		
		timer[id] = 15
		
		if(get_pcvar_num(PcvarShowVMoney) == 1)
			if(!task_exists(id+TASK_SHOWVMONEY))
				set_task(1.0,"ShowVIPMoney",id+TASK_SHOWVMONEY,_,_,"b")
			
		if(g_bActived_Regen[id])
			set_task(1.0,"HPRegen",id+TASK_HPREGEN,_,_,"b")
			
		if(task_exists(id+TASK_GODMOD))
			remove_task(id+TASK_GODMOD)

		cs_set_user_armor(id,100,CsArmorType:2)
			
		if(get_user_team(id) == 2)
			give_item(id, "item_thighpack")
	}
	else
	{
		if(!task_exists(id+TASK_SHOWEXPERIENCE))
			set_task(1.0,"ShowExperience",id+TASK_SHOWEXPERIENCE,_,_,"b")
	}
	return HAM_IGNORED 
} 
public fw_Ham_Player_Killed(iVictim,iAttacker)
{
	if(!iVictim || !iAttacker && !is_user_alive(iVictim) || !is_user_alive(iAttacker))
		return HAM_IGNORED
		
	if(task_exists(iVictim+TASK_HPREGEN))
		remove_task(iVictim+TASK_HPREGEN)
		
	if(task_exists(iVictim+TASK_SHOWVMONEY))
		remove_task(iVictim+TASK_SHOWVMONEY)
		
	if(task_exists(iVictim+TASK_SHOWEXPERIENCE))
		remove_task(iVictim+TASK_SHOWEXPERIENCE)
		
	if(task_exists(iVictim+TASK_GODMOD))
		remove_task(iVictim+TASK_GODMOD)
		
	if(get_user_vip(iAttacker) == 1)
	{
		set_user_health(iAttacker,get_user_health(iAttacker) + get_pcvar_num(PcvarHPGive))
		set_user_armor(iAttacker,get_user_armor(iAttacker) + get_pcvar_num(PcvarAPGive))
			
		VIPMoney[iAttacker] += get_pcvar_num(PcvarVIPMoneyKillBonus)
		
		static color[12],parts[3][4];
			
		switch( CsTeams:cs_get_user_team( iAttacker ) )
		{
			case CS_TEAM_CT:
			{	
				CVAR_color_Kill[0] = 000;
				CVAR_color_Kill[1] = 100;
				CVAR_color_Kill[2] = 200;
						
				message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
				write_short(400 * 14);
				write_short(0);
				write_short(0);
				write_byte(CVAR_color_Kill[0]);
				write_byte(CVAR_color_Kill[1]);
				write_byte(CVAR_color_Kill[2]);
				write_byte(75) ;
				message_end();
						
				parse(color,parts[0],3,parts[1],3,parts[2],3);
				CVAR_color_Kill[0] = str_to_num(parts[0]);
				CVAR_color_Kill[1] = str_to_num(parts[1]);
				CVAR_color_Kill[2] = str_to_num(parts[2]);
			}
			case CS_TEAM_T:
			{		
				CVAR_color_Kill[0] = 200;
				CVAR_color_Kill[1] = 000;
				CVAR_color_Kill[2] = 000;
						
				message_begin(MSG_ONE,get_user_msgid("ScreenFade"),_,iAttacker);
				write_short(400 * 14);
				write_short(0);
				write_short(0);
				write_byte(CVAR_color_Kill[0]);
				write_byte(CVAR_color_Kill[1]);
				write_byte(CVAR_color_Kill[2]);
				write_byte(75) ;
				message_end();
						
				parse(color,parts[0],3,parts[1],3,parts[2],3);
				CVAR_color_Kill[0] = str_to_num(parts[0]);
				CVAR_color_Kill[1] = str_to_num(parts[1]);
				CVAR_color_Kill[2] = str_to_num(parts[2]);
			}
		}
	}
	else
	{
		Experience[iAttacker] += random_num(25,80)
		if(Experience[iAttacker] >= get_pcvar_num(PcvarMaxExperience))
		{
			set_user_vip(iAttacker,1)
			if(get_pcvar_num(PcvarShowVMoney) == 1)
				set_task(1.0,"ShowVIPMoney",iAttacker+TASK_SHOWVMONEY,_,_,"b")
				
			set_hudmessage(0,255,0,-1.0,0.25,1,1.0,5.0)
			ShowSyncHudMsg(iAttacker,HudsSync[3],"CONGRATULATIONS!^nYou got VIP!")
			
			remove_task(iAttacker+TASK_SHOWEXPERIENCE)
			
			new Buffer[85]
			get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))

			new Name[32]
			get_user_name(iAttacker,Name,31)
			color_chat(0,"!g%s!y: Player!t %s!y got vip with!g %d!y of !g%d!y experience!",equal(Buffer,"0" ) ? "" : Buffer,Name,Experience[iAttacker],get_pcvar_num(PcvarMaxExperience))
			
			client_cmd(0,"spk buttons/bell1")
		}
	}
	return HAM_IGNORED
}
public GodMod_CountDown(id)
{
	id -= TASK_GODMOD
	
	if(task_exists(id+TASK_GODMOD))
	{
		set_hudmessage(255,255,255,-1.0,0.70,0,1.0,1.0)
		ShowSyncHudMsg(id,HudsSync[1],"No Dmg will be off in %d second%s",timer[id],( timer[id] >= 2 ) ? "s" : "")
		
		timer[id]--
		
		if(timer[id] == 0)
		{
			remove_task(id+TASK_GODMOD)
			
			new Buffer[85]
			get_pcvar_string(PcvarPrefixChat,Buffer,charsmax(Buffer))
			
			set_pev(id,pev_takedamage,DAMAGE_AIM)

			color_chat(id,"!g%s!y: !yNo Damage deactived!",equal(Buffer,"0" ) ? "" : Buffer)
			ShowVIPMenu(id)
			
			timer[id] = 15
		}
	}
}
public HPRegen(id)
{
	id -= TASK_HPREGEN
	
	if(get_user_health(id) >= get_pcvar_num(PcvarMaxRegenHP))
	{
		set_user_health(id,get_pcvar_num(PcvarMaxRegenHP))
		return PLUGIN_HANDLED
	}
	
	else
	{
		set_user_health(id,get_user_health(id) + get_pcvar_num(PcvarHpRegenAdd))
	}
	return PLUGIN_CONTINUE
}
public ham_Player_TakeDamage_Post( iVictim, iInfictor, iAttacker, Float:fDamage, iDmgBits )
{
	if( !is_user_connected( iVictim ) || !is_user_connected( iAttacker ) || iVictim == iAttacker )
		return HAM_IGNORED
		
	if( g_bActived_Imm[iAttacker] )
	{
		if(cs_get_user_team(iAttacker) != cs_get_user_team(iVictim))
		{
			if( iDmgBits & DMG_BULLET || iDmgBits & (1<<24) || iDmgBits & DMG_SLASH )
			{
				new random = random_num( 1,4 )
				if( random == 2 )
				{
					set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) | FL_FROZEN )
					if( !task_exists( iVictim ) )
						set_task( 2.0, "remove_frozen", iVictim )
				}
			}
		}
	}
	return HAM_IGNORED
}

public remove_frozen( iVictim )
	set_pev( iVictim, pev_flags, pev( iVictim, pev_flags ) & ~FL_FROZEN )

SaveVIP( id ) 
{ 
	new szAuthid[ 32 ] 
	get_user_authid( id, szAuthid, charsmax( szAuthid ) ) 
	
	new szVaultKey[ 128 ], szVaultData[ 512 ] 
	
	formatex( szVaultKey, 127, "VIP_%s", szAuthid ) 
	formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id]) 
	nvault_set( g_nVault, szVaultKey, szVaultData ) 
} 

LoadVIP( id ) 
{ 
	new szAuthid[ 32 ] 
	get_user_authid( id, szAuthid, charsmax( szAuthid ) ) 

	new szVaultKey[ 128 ], szVaultData[ 512 ] 

	formatex( szVaultKey, 127, "VIP_%s", szAuthid ) 
	formatex( szVaultData, 511, "%i %i %i %i %i %i %i %i", VIP[id],VIPMoney[id],VIPBh[id],VIPMj[id],VIPNoDmg[id],VIPRegen[id],VIPImm[id], Experience[id]) 

	nvault_get( g_nVault, szVaultKey, szVaultData, 511 ) 

	new vp[32],vpm[32],vpmj[32],vpbhop[32],vpnodmg[32],vpregen[32],vpimm[32],exp[32]

	parse( szVaultData, vp, 31,vpm, 31,vpmj, 31, vpbhop, 31, vpnodmg, 31, vpregen, 31 ,vpimm, 31, exp, 31) 

	VIP[ id ] = str_to_num( vp )
	VIPMoney[ id ] = str_to_num( vpm ) 
	VIPBh[id] = str_to_num( vpbhop )
	VIPMj[id] = str_to_num( vpmj )
	VIPNoDmg[id] = str_to_num( vpnodmg )
	VIPRegen[id] = str_to_num( vpregen )
	VIPImm[id] = str_to_num( vpimm )
	Experience[id] = str_to_num( exp )
	
} 
public HUD( id )
{    
	id -= 672;
	
	set_task( 0.2, "HUD", id+672 );    
	if(!is_user_alive( id ) )
	{
		new szHud[64];
			
		new target = entity_get_int( id, EV_INT_iuser2 );
		if( target == 0 )
			return PLUGIN_HANDLED
			
		if(get_user_vip(target) == 1)
		{
			if(g_bActived_Bhop[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: BunnyHop ]", VIPMoney[target])
				
			else if(g_bActived_Imm[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: Immobilize ]", VIPMoney[target])
				
			else if(g_bActived_Mj[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: MultiJump ]", VIPMoney[target])
			
			else if(g_bActived_NoDmg[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: No Damage ]", VIPMoney[target])
				
			else if(g_bActived_Regen[target])
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: HP Regenerate ]", VIPMoney[target])
				
			else
				formatex(szHud,63,"[ VIPMoney: %d | VIP Item: None ]", VIPMoney[target])
		}
				
		else
			formatex(szHud,63,"[ Experience: %d of %s ]", Experience[target],get_pcvar_num(PcvarMaxExperience))
			
		set_hudmessage(150, 50, 35, -1.0, 0.95, 0, 1.0, 0.1);
		ShowSyncHudMsg(id,HudsSync[5],szHud);
	}
	return PLUGIN_CONTINUE;
}
public plugin_end( ) 
{ 
	nvault_close( g_nVault ) 
	return PLUGIN_CONTINUE 
} 

public plugin_cfg( ) 
{ 
	g_nVault = nvault_open( "VIP_Player" ) 

	if( g_nVault == INVALID_HANDLE ) 
		set_fail_state( "Error opening VIP nVault, file does not exist!" ) 
}  
public CmdStart( id, uc_handle )
{
	if( !is_user_alive( id ))
		return FMRES_IGNORED
		
	new flags = pev( id, pev_flags )
	
	if( ( get_uc( uc_handle, UC_Buttons ) & IN_JUMP ) && !( flags & FL_ONGROUND ) && !( pev( id, pev_oldbuttons ) & IN_JUMP ) && g_iJumpCount[ id ] )
	{
		g_iJumpCount[ id ]--
		new Float:velocity[ 3 ]
		pev( id, pev_velocity, velocity )
		velocity[ 2 ] = random_float( 265.0,285.0 )
		set_pev( id, pev_velocity, velocity )
	}
	else if( flags & FL_ONGROUND )
	{
		g_iJumpCount[ id ] = g_bActived_Mj[id] ? 2 : 0
	}
	return FMRES_IGNORED
}
public ham_Player_PostThink_Post( id )
{
	if( !is_user_alive( id ) )
		return HAM_IGNORED
		
	if( g_bActived_Bhop[id])
	{
		if( pev( id, pev_button) & IN_JUMP )
		{
			new flags = pev( id, pev_flags )
			
			if( flags & FL_WATERJUMP )
				return HAM_IGNORED
				
			if( pev( id, pev_waterlevel ) >= 2 )
				return HAM_IGNORED
				
			if( !( flags & FL_ONGROUND ) )
				return HAM_IGNORED
				
			static Float:velocity[ 3 ]
			pev( id, pev_velocity, velocity )
			velocity[ 2 ] += 250.0
			set_pev( id, pev_velocity, velocity )
			
			set_pev( id, pev_gaitsequence, 6 )
		}
	}
	return HAM_IGNORED
}
stock color_chat( id, const szStr[], any:... ) 
{
	new szMsg[ 191 ], iPlayers[ 32 ], iCount = 1
	
	vformat( szMsg, sizeof szMsg - 1, szStr, 3 )
	
	replace_all( szMsg, 190, "!g", "^4" )
	replace_all( szMsg, 190, "!y", "^1" )
	replace_all( szMsg, 190, "!t", "^3" )
	
	if( id )
		iPlayers[ 0 ] = id

	else 
		get_players( iPlayers, iCount, "ch" )
	
	for( new i = 0 ; i < iCount ; i++ )
	{
		if(is_user_connected( iPlayers[ i ] ) )
		{
			message_begin( MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, iPlayers[ i ] )
			write_byte( iPlayers[ i ] )
			write_string( szMsg )
			message_end( )
		}
	}
}
la inceputul pluginului ai astea

Code: Select all

static const OPEN_MENU_COMMANDS[][] =
{
	"/shop",
	"!shop",
	"/sp",
	"!sp",
	"/vipmenu",
	"!vipmenu",
	"/vmenu",
	"!vmenu",
	"/vm",
	"!vm"
}
sunt comenzile din chat (say si say_team) care pornesc meniul
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: Dot [Bot] and 4 guests