Modificare vip plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
deyu*
Membru, skill +1
Membru, skill +1
Posts: 325
Joined: 27 Oct 2013, 16:46
Detinator Steam: Da
CS Status: Play Hard Cs
Detinator server CS: Nu
SteamID: Popeofcanada
Location: Romania / Timis / Timisoara
Has thanked: 4 times
Been thanked: 1 time
Contact:

18 Jun 2020, 13:59

Plugin Cerut: cel de mai jos
Descriere (adica ce face el mai exact): am observat niste buguri in el , dupa ce un vip alege meniul acesta ii ramane activ as dorii ca dupa ce selecteaza o arma sau o aptitudine sa se inchida automat acel meniu , am vazut in el ca este pusa comanda /vips dar cand scri nu se intampla nimic iar inca o chestie din ce mi-a zis un player orice player care face nu stiu ce experience este acolo primeste vip automat as dorii sa se scoata aceasta chestie daca este .. vip-ul sa fie doar persoanelor la care dau fondatorii prin comanda amx_vip 1 nume ceva de genul era iar acesta sa fie nu stiu sa adauge automat in users.ini sau sa creez un fisier in configs unde sa se salveze ca si cum ar fi admin deoarece oricine intra cu numele respectiv are vip .. daca este posibil asta sau daca v-ar fi mai usor sa scoate-ti comanda amx_vip si sa puneti un anumit flag pentru a fi adaugat intr-un fisier vip.ini dar acel flag sa nu interfereze cu adminii ,adica nici macar fondatorii daca nu sunt trecuti in vip.ini sa nu aibe acces la vip ,sper ca nu am cerut prea mult sau greu si ca se poate face va multumesc !!
Serverul impune conditii strict HLDS/REHLDS?: rehlds
Ai cautat pluginul?(daca da, precizeaza cum): -
Necesita mod special?: respawn
ps. si un motd dinacela html daca se poate cand scrii /vreauvip sa apara motd cu beneficile vip

Code: Select all

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

#define PLUGIN "EFFx's VIP" 
#define VERSION "2.0" 
#define AUTHOR "EFFx" 

#define FLAG_FONDA "a"

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

new const szCfgFile[] = "VIP_Config.cfg"

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

static timer[33]

new const ModelsT[][] =
{
	"terror", "guerilla", "arctic","leet"
}
new const ModelsCT[][] =
{
	"sas", "gign", "gsg9","urban"
}

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 

public plugin_init()  
{ 
	register_plugin(PLUGIN, VERSION, AUTHOR) 
	
	PcvarPrefixChat = register_cvar("vip_prefixchat","[PGL-VIP]")
	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","250")
	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",read_flags(FLAG_FONDA),"- Reset all vip data")
	register_concmd("amx_vip", "cmdVIP", read_flags(FLAG_FONDA), "<name or @ALL> [1|0]")
	register_concmd("amx_give_money", "cmdGM", read_flags(FLAG_FONDA), "<name or @ALL> <money to add>")
	
	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 cmdGM(id,level,cid){
	if(!cmd_access(id,level,cid,2))	return PLUGIN_HANDLED
	
	new arg[33],arg2[10]
	read_argv(1,arg,charsmax(arg))
	read_argv(2,arg2,charsmax(arg2))
	
	if(equal(arg,"")||equal(arg2,"")||!is_str_num(arg2)){
		console_print(id,"Usage: amx_give_money <target OR @ALL> <money>")
		return PLUGIN_HANDLED
	}
	
	new money=str_to_num(arg2)
	if(!money||money<=0){
		console_print(id,"Invalid MONEY SUM")
		return PLUGIN_HANDLED
	}
	
	new aname[33];	get_user_name(id,aname,charsmax(aname))
	
	if(equali(arg,"@ALL")){
		new players[32],num,targets
		get_players(players,num,"ch")
		for(new i;i<num;i++){
			targets=players[i]
			VIPMoney[targets]+=money
		}
		client_print(0,print_chat,"Adminul %s a daruit +%dVIPMoney tuturor",aname,money)
	}
	else{
		new target=cmd_target(id,arg,CMDTARGET_NO_BOTS)
		if(!target)	return PLUGIN_HANDLED
		new tname[33];	get_user_name(target,tname,charsmax(tname))
		VIPMoney[target]+=money
		client_print(0,print_chat,"Adminul %s i-a daruit +%dVIPMoney lui %s",aname,money,tname)
	}
	
	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")
					
					if(get_user_team(players[i]) == 1)
						cs_set_user_model(players[i],ModelsT[random_num(0,3)])
						
					if(get_user_team(players[i]) == 2)
						cs_set_user_model(players[i],ModelsCT[random_num(0,3)])
					
					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,"\Special Items^n\d- Amazing items 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 1:
		{
			VipItemsMenu(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 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( )
		}
	}
}
users.ini daca e nevoie

Code: Select all

;-------[Fondator]--------[abcdefghijklmnopqrstu]-------

;-------[Owner]--------[abcdefghijklmnopqrs]------

;-------[Co-Owner]------[abcdefijklmnopqrs]------

;-------[Master]-------[bcdefijklmnopqr]-------

;-------[Super-Moderator]-----[bcdefijmnop]--------

;-------[Moderator]------[bcdefijmnou]--------

;-------[Administrator]------[bcdefij]--------

;-------[Helper]-------[bceij]--------


;-------[Admin de Proba]--------[btim]--------

;-------[Nume Rezervat]-------[btim]---------
Image
User: Deyu*
Y/M : deyu_design
RoyalServer
User avatar
WHOAMI?
eXtream Mod
eXtream Mod
Posts: 999
Joined: 17 Dec 2013, 19:51
Detinator Steam: Da
Reputatie: eXtream Mod
Fost Membru Club eXtreamCS (o luna)
Location: US
Has thanked: 30 times
Been thanked: 20 times

19 Jun 2020, 01:11

Mutat in Modificari pluginuri
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: Bing [Bot] and 19 guests