[Shop & VIP] Plugin PaintBall Mode [rezolvat!]

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
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:

08 Jun 2020, 13:22

Plugin Cerut: Paintball shop si paintball vip [las sursele mai jos doresc doar modificare]
Descriere (adica ce face el mai exact): vip ofera abilitati plus o arma doar persoanelor cu gradul de vip si shopul ofera tuturor playerilor posibilitatea de a cumpara abilitati suplimentare
Serverul impune conditii strict HLDS/REHLDS?: rehlds
Ai cautat pluginul?(daca da, precizeaza cum): da
Necesita mod special?: paintball

La pluginul shop doresc sa se adauge si posibilitatea de a cumpara 2 flashbang-uri pack cum ar veni cand selectezi
\wPRICE : \r3000$ \w] 2 flashbang sa dea doua direct si sa poata fi accesat de 3 ori pe runda nu doar odata si hp-ul sau ap-ul sa nu treaca de 250
sursa:

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define PLUGIN "PaintBall Shop System"
#define VERSION "1.0"
#define AUTHOR "DoNii"

new bool:item_used[33];

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_clcmd( "say /pbmenu","menumenu" );
    register_clcmd( "say pbmenu","menumenu" );
    RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Pre", 0);
}

public Fwd_PlayerSpawn_Pre(id) {
    
    static player[32], num;    
    get_players(player, num)    
    
    for ( new i; i < num; i++ ) {
        
        item_used[player[i]] = false
    }
}

public menumenu( id )
{
    if(is_user_alive(id)) {
        new menu = menu_create( "\rPaintBall Menu!:", "menu_handler" );
        
        menu_additem( menu, "\r[ \wPRICE : \r5500$ \w] 50 HP ", "", 0 );
        menu_additem( menu, "\r[ \wPRICE : \r2000$ \w] 50 Armor", "", 1 );
        menu_additem( menu, "\r[ \wPRICE : \r6000$ \w] 1 HE Grenade", "", 2 );
        menu_additem( menu, "\r[ \wPRICE : \r3000$ \w] 1 Smoke Grenade", "", 3 );    
        
        menu_setprop( menu, MPROP_EXIT, MEXIT_ALL );
        
        menu_display( id, menu, 0 );
    }
    
    else {
        client_print(id, print_chat, "You Can't Use This Menu While Dead");
        return PLUGIN_HANDLED;    
    }
    
    return PLUGIN_HANDLED;
}

public menu_handler( id, menu, item )
{
    
    if(item_used[id]) {
        client_print(id, print_chat, "Can't Buy Again, Next Round Only");
        return PLUGIN_HANDLED;
    }
    
    if(!is_user_alive(id)) {
        client_print(id, print_chat, "You Can't Use This Menu While Dead");
                return PLUGIN_HANDLED;
    }
    
    else  {
        
        switch( item )
        {
            case 0:
            {
                if(get_user_health(id) > 250) {
                    client_print(id, print_chat, "You Can't Have More Than 250 HP");
                    return PLUGIN_HANDLED;    
                }
                
                
                if(cs_get_user_money(id) >= 5500) {
                    set_user_health(id, get_user_health(id) + 50);
                    cs_set_user_money(id, cs_get_user_money(id) - 5500)
                    client_print(id, print_chat, "You Just Bought 50 HP For 5500$");
                    
                    
                }
                
                else {
                    client_print(id, print_chat, "Not Enough Money");
                    return PLUGIN_HANDLED;
                }
                
                
            }
            case 1:
            {
                if(get_user_armor(id) > 250) {
                    client_print(id, print_chat, "You Can't Have More Than 250 Armor");
                    return PLUGIN_HANDLED;    
                }
                
                
                if(cs_get_user_money(id) >= 2000) {
                    set_user_health(id, get_user_health(id) + 50);
                    cs_set_user_money(id, cs_get_user_money(id) - 2000)
                    client_print(id, print_chat, "You Just Bought 50 Armor For 2000$");
                    
                    
                }
                
                else {
                    client_print(id, print_chat, "Not Enough Money");
                    return PLUGIN_HANDLED;
                }
                
                
                
            }
            case 2:
            {
                if(cs_get_user_money(id) >= 6000) {
                    give_item(id, "weapon_hegrenade");
                    client_print(id, print_chat, "You Just Bought A HE Grenade For 6000$");
                    
                    item_used[id] = true
                }
                
            }
            
            case 3:
            {
                if(cs_get_user_money(id) >= 3000) {
                    give_item(id, "weapon_smokegrenade");
                    client_print(id, print_chat, "You Just Bought A Smoke Grenade For 3000$");
                    
                    item_used[id] = true
                }
                
            }
            case MENU_EXIT:
            {
                client_print( id, print_chat, "Exited The Menu!" );
            }
        }
        
    }
    return PLUGIN_HANDLED;
} 
iar la vip doresc sa aibe flag separat de cel al adminilor adica orice grad ai avea sa nu primesti beneficiile de vip sa fie nevoit inca odata trecut adminul dar cu flagul de vip , la final in users.ini sa se puna vip-urile fara a aparea pe amx_who sau in fisier diferit in configs , sa le apara in showscore pe tab acolo vip
si as mai dorii adaugarea modelului de la arma ethereal intr-un meniu de vip cum apare shop cand scri /vmenu sa ii apara meniu doar cu arma acea (tragang cu gloante pentru modul paintball desigur)
sursa:

Code: Select all

#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta_util>
#include <fun>

#define PLUGIN "Crazy V.I.P"
#define VERSION "1.0"
#define AUTHOR "DoNii"

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1) 
}

public playerResetMaxSpeed(id)
{
    static Float:maxspeed
    pev(id,pev_maxspeed,maxspeed)
    
    if(maxspeed != 1.0 && get_user_flags(id) & ADMIN_LEVEL_H)
    {
        set_pev(id,pev_maxspeed,300)
    }
}  

public fwHamPlayerSpawnPost(id) {
    
    if(is_user_alive(id) && get_user_flags(id) & ADMIN_LEVEL_H) {
        
        set_user_health(id, get_user_health(id) + 250)
        set_user_armor(id, get_user_armor(id) + 200)
        give_item(id, "weapon_hegrenade");
        give_item(id, "weapon_flashbang");
        give_item(id, "weapon_smokegrenade");
        cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
        cs_set_user_bpammo(id, CSW_SMOKEGRENADE, 3);
        cs_set_user_money(id, 16000);
    }
} 
Acest meniu sa i-l deschida doar odata pe runda iar arma sa aibe 50 gloante / incarcator si 200 in rezerva

P.S mentionez ca pluginul shop merge compilat dar in consola serverului il arata bad load si nu functioneaza nu stiu de ce


Users.ini in caz ca 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]---------
Last edited by GENERALU' on 11 Jun 2020, 14:13, edited 1 time in total.
Image
User: Deyu*
Y/M : deyu_design
RoyalServer
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:

10 Jun 2020, 17:41

up: am rezolvat treaba cu cele 2 plugin-uri daca aveti nevoie le voi posta dupa cum cerusem eu
acum am o problema cu urmatorul plugin daca poate cineva sa il modifice va rog frumos
este un plugin de vip pentru modul respawn as dorii sa se adauge urmatoarele mentiuni
doar fonadatorii serverului sa aibe acces la comenzile amx_vip si amx_resetdata si pe langa astea as dorii sa se mai adauge comanda amx_give_money numeplayer sumar sau @all sumar (repet doar fondatorii sa aibe acces la aceste comenzi)
si ultima cerinta este sa se scoata modelul de la vip acela VIPmodel
sursa:

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 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 const VIP_MODEL[] = "VIPModel" 

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","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_precache() 
{ 
	precache_model("models/player/VIPModel/VIPModel.mdl") 
} 
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")
					
					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)
					
					if(is_user_alive(players[i]))
						cs_set_user_model(players[i],VIP_MODEL)
					
					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)
				
				if(is_user_alive(player))
					cs_set_user_model(player,VIP_MODEL)
				
				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_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_model(id,VIP_MODEL) 

		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))
			
			if(is_user_alive(iAttacker))
				cs_set_user_model(iAttacker,VIP_MODEL)
				
			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( )
		}
	}
}
Image
User: Deyu*
Y/M : deyu_design
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

10 Jun 2020, 18:36

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","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",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]
			cs_set_user_money(targets,cs_get_user_money(targets)+money,1)
		}
		client_print(0,print_chat,"Adminul %s a daruit +%d$ 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))
		cs_set_user_money(target,cs_get_user_money(target)+money,1)
		client_print(0,print_chat,"Adminul %s i-a daruit +%d$ 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,"\rSpecial 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( )
		}
	}
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
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:

10 Jun 2020, 18:48

e totul ok dar comanda amx_give_money sa adauge money pe care lucreaza pluginul , adica are propriul sistem de vip money iar tu ai pus sa dea $ din jocul de baza

si un mic info daca se poate si daca sti : am modul csdm pe server iar daca dau comanda /restart in chat sau sv_restart "1" nu apare meniul de arme e de la pluginul de baza csdm ?
Image
User: Deyu*
Y/M : deyu_design
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3844
Joined: 24 Aug 2011, 12:24
Detinator Steam: Da
CS Status:
Detinator server CS: ☯∴
SteamID: riseofevo
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 594 times
Contact:

10 Jun 2020, 18:55

dacă nu ai zis ce money, money sunt money, din mod

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","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",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,"\rSpecial 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( )
		}
	}
}
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
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:

10 Jun 2020, 21:53

imi cer scuze ca nu am mentionat , merge perfect , iti multumesc mult !!
Image
User: Deyu*
Y/M : deyu_design
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 41 guests