[Cerere] Modificare Vip

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
CaTa.
Fost moderator
Fost moderator
Posts: 420
Joined: 28 Jul 2013, 15:06
Detinator Steam: Nu
Detinator server CS: In curand !
Reputatie: Fost Moderator ajutator
Location: Targu-Mures
Has thanked: 99 times
Been thanked: 19 times
Contact:

09 Dec 2013, 22:26

Salut !
Imi poate scoate careva glow ala verde de la vip si accesul sa fie pentru toti playerii !
| Afiseaza codul
////////////////////////////////////////////////////////////////////////////////////////////////////////////
//----------------------------------------------| VIP Sistem |-----------------------------------------------
//==========================================================================================================
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta_util>
#include <hamsandwich>

#define PLUGIN "VIP Sistem"
#define VERSION "1.0"
#define AUTHOR "sDs|Aragon*"

#define VIP_LEVEL ADMIN_LEVEL_H

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// New Plugin |
//==========================================================================================================
//--| Menu/Power |--//
new menu, HasPower[33], bool:HasChose[33];
//--| HE Grenade |--//
new HE_Cooldown[33] = 0;
//--| GodMode |--//
new GodMode_Cooldown[33] = 0;
new GodMode_DurationCooldown[33] = 0;
//--| Drop Enemy Weapon |--//
new DropSprite, DropSprite2;
new Drop_Cooldown[33] = 0;
new const DROP_HIT_SND[] = "Furien/DropWpn_HIT.wav";
const WPN_NOT_DROP = ((1<<2)|(1<<CSW_HEGRENADE)|(1<<CSW_SMOKEGRENADE)|(1<<CSW_FLASHBANG)|(1<<CSW_KNIFE)|(1<<CSW_C4));
//--| Freeze |--//
new Freeze_Cooldown[33] = 0;
new FreezeSprite, FreezeSprite3;
new Frozen[33];
new Float:TempSpeed[33], Float:TempGravity[33]
new const FreezeSprite2[] = { "models/glassgibs.mdl" };
new const FROSTBREAK_SND[][] = { "Furien/FrostBreak.wav" };
new const FROSTPLAYER_SND[][] = { "Furien/FrostPlayer.wav" };
const BREAK_GLASS = 0x01;
const UNIT_SECOND = (1<<12);
const FFADE_IN = 0x0000;
//--| Drag |--//
new DRAG_MISS_SND[] = "Furien/DragMiss.wav";
new DRAG_HIT_SND[] = "Furien/DragHit.wav";
new Hooked[33], Unable2move[33], OvrDmg[33];
new Float:LastHook[33];
new bool: BindUse[33] = false, bool: Drag_I[33] = false;
new Drag_Cooldown[33] = 0;
new bool:Not_Cooldown[33];
new DragSprite;
//--| Teleport |--//
new TeleportSprite, TeleportSprite2;
new Teleport_Cooldown[33];
new const SOUND_BLINK[] = { "weapons/flashbang-1.wav" };
const UNIT_SEC = 0x1000;
const FFADE = 0x0000;
//--| NoRecoil |--//
new Float: cl_pushangle[33][3]
const WEAPONS_BITSUM = (1<<CSW_KNIFE|1<<CSW_HEGRENADE|1<<CSW_FLASHBANG|1<<CSW_SMOKEGRENADE|1<<CSW_C4)
//--| Cvars |--//
new CvarHECooldown, CvarHPAmount, CvarAPAmount, CvarGodModeCooldown, CvarGodModeDuration, CvarDropDistance,
CvarDropCooldown, CvarFreezeDuration, CvarFreezeCooldown, CvarFreezeDistance, CvarDragSpeed, CvarDragCooldown,
CvarDragDmg2Stop, CvarDragUnb2Move, CvarTeleportCooldown, CvarTeleportRange;

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin Init |
//==========================================================================================================
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("say", "handle_say");
	register_clcmd("say_team", "handle_say");
	register_clcmd("+drag","DragStart");
	register_clcmd("-drag","DragEnd");
	register_clcmd("power", "Power");
	register_clcmd("vipmenu","cmdMenu");
	register_clcmd("say /vipmenu","cmdMenu");
	register_clcmd("say_team /vipmenu","cmdMenu");
	register_clcmd("say vipmenu","cmdMenu");
	register_clcmd("say_team vipmenu","cmdMenu");
	
	register_event("CurWeapon", "CurWeapon", "be", "1=1");
	register_event("DeathMsg", "Death", "a");
	RegisterHam(Ham_Spawn, "player", "Spawn", 1);
	RegisterHam(Ham_TakeDamage, "player", "TakeDamage")
	register_forward(FM_PlayerPreThink, "PlayerPreThink")
	
	new weapon_name[24]
	for (new i = 1; i <= 30; i++) {
		if (!(WEAPONS_BITSUM & 1 << i) && get_weaponname(i, weapon_name, 23)) {
			RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Pre")
			RegisterHam(Ham_Weapon_PrimaryAttack, weapon_name, "Weapon_PrimaryAttack_Post", 1)
		}
	}
	
	CvarHECooldown = register_cvar("vip_he_cooldown", "10");			// He Cooldown
	CvarHPAmount = register_cvar("vip_hp_amount", "355");			// Health
	CvarAPAmount = register_cvar("vip_ap_amount", "355");			// Armor
	CvarGodModeCooldown = register_cvar("vip_godmode_cooldown", "20");	// GodMode Cooldown
	CvarGodModeDuration = register_cvar("vip_godmode_duration", "5");	// GodMode Duration
	CvarDropDistance = register_cvar ("vip_drop_distance", "5000");		// Distanta maxima la care poate ajunge puterea
	CvarDropCooldown = register_cvar ("vip_drop_cooldown" , "20.0");		// Drop Enemy WPN Cooldown
	CvarFreezeDuration = register_cvar("vip_freeze_duration", "5.0");	// Freeze Duration
	CvarFreezeCooldown = register_cvar("vip_freeze_cooldown", "20.0");	// Freeze Cooldown
	CvarFreezeDistance = register_cvar ("vip_freeze_distance", "5000");	// Distanta maxima la care poate ajunge puterea
	CvarDragSpeed = register_cvar("vip_drag_speed", "500");			// Drag Speed
	CvarDragCooldown = register_cvar("vip_drag_cooldown", "15.0");		// Drag Cooldown
	CvarDragDmg2Stop = register_cvar("vip_drag_dmg2stop", "50");		// Drag Damage to stop
	CvarDragUnb2Move = register_cvar("vip_drag_unable_move", "1");		// Drag Unable to move
	CvarTeleportCooldown = register_cvar("vip_teleport_cooldown", "10.0");	// Teleport Cooldown
	CvarTeleportRange = register_cvar("vip_teleport_range", "12345");	// Teleport Range
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin CFG |
//==========================================================================================================
public plugin_cfg() {
	new iCfgDir[32], iFile[192];
	
	get_configsdir(iCfgDir, charsmax(iCfgDir));
	formatex(iFile, charsmax(iFile), "%s/VIP.cfg", iCfgDir);
	
	if(!file_exists(iFile)) {
		server_print("[VIP] VIP.cfg nu exista. Se creeaza.", iFile);
		write_file(iFile, " ", -1);
	}
	
	else {		
		server_print("[VIP] VIP.cfg sa incarcat.", iFile);
		server_cmd("exec %s", iFile);
	}
	server_cmd("sv_maxspeed 99999999.0");
	server_cmd("sv_airaccelerate 99999999.0");
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Menu |
//==========================================================================================================
public cmdMenu(id) { 
	if(HasChose[id] && is_user_alive(id)) {
		ColorChat(id,"^x03[Furien]^x04 Ai ales deja o putere runda aceasta.");
		return PLUGIN_HANDLED;
	}
	menu = menu_create("\rVIP Menu \yPage\r", "VIPMenu");
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dHe Grenade");
		menu_additem(menu, buffer, "1", 0);
	}
	else if(HasPower[id] == 1) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yHe Grenade");
		menu_additem(menu, buffer, "1", 0);
	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wHe Grenade");
		menu_additem(menu, buffer, "1", 0);
	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\d%dHP & %dAP", get_pcvar_num(CvarHPAmount), get_pcvar_num(CvarAPAmount));
		menu_additem(menu, buffer, "2", 0);
	}
	else if(HasPower[id] == 2) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\y%dHP & %dAP", get_pcvar_num(CvarHPAmount), get_pcvar_num(CvarAPAmount));
	menu_additem(menu, buffer, "2", 0);	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\w%dHP & %dAP", get_pcvar_num(CvarHPAmount), get_pcvar_num(CvarAPAmount));
	menu_additem(menu, buffer, "2", 0);	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dGodMode");
		menu_additem(menu, buffer, "3", 0);
	}
	else if(HasPower[id] == 3) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yGodMode");
		menu_additem(menu, buffer, "3", 0);
	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wGodMode");
		menu_additem(menu, buffer, "3", 0);
	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dDrop Enemy Weapon");
		menu_additem(menu, buffer, "4", 0);
	}
	else if(HasPower[id] == 4) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yDrop Enemy Weapon");
		menu_additem(menu, buffer, "4", 0);
	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wDrop Enemy Weapon");
		menu_additem(menu, buffer, "4", 0);
	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dFreeze the Enemy");
		menu_additem(menu, buffer, "5", 0);
	}
	else if(HasPower[id] == 5) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yFreeze the Enemy");
		menu_additem(menu, buffer, "5", 0);
	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wFreeze the Enemy");
		menu_additem(menu, buffer, "5", 0);
	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dDrag the Enemy");
		menu_additem(menu, buffer, "6", 0);	
	}
	else if(HasPower[id] == 6) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yDrag the Enemy");
	menu_additem(menu, buffer, "6", 0);	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wDrag the Enemy");
	menu_additem(menu, buffer, "6", 0);	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dTeleport");
		menu_additem(menu, buffer, "7", 0);
	}
	else if(HasPower[id] == 7) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yTeleport");
	menu_additem(menu, buffer, "7", 0);	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wTeleport");
	menu_additem(menu, buffer, "7", 0);	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\dNoRecoil");
		menu_additem(menu, buffer, "8", 0);
	}
	else if(HasPower[id] == 8) {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\yNoRecoil");
	menu_additem(menu, buffer, "8", 0);	}
	else {
		new buffer[256];
		formatex(buffer,sizeof(buffer)-1,"\wNoRecoil");
	menu_additem(menu, buffer, "8", 0);	}
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	return PLUGIN_CONTINUE;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP Menu Case |
//==========================================================================================================
public VIPMenu(id, menu, item) {
	if (item == MENU_EXIT) {
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	if(!(get_user_flags(id) & VIP_LEVEL)) {
		ColorChat(id,"^x03[Furien]^x04 Cumpara^x03 VIP^x04 de la CaTa.");
		return PLUGIN_HANDLED;
	}
	new data[6], iName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
	new key = str_to_num(data);
	switch(key) {
		case 1: {
			if(HasPower[id] == 1) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Vei primi o grenada HE odata la 10 secunde.");
			remove_task(id);
			if(HE_Cooldown[id]) {
				HEShowHUD(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 1;
			HasChose[id] = true;
		}
		case 2: {
			if(HasPower[id] == 2) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Vei primi %d HP si %d AP.", get_pcvar_num(CvarHPAmount), get_pcvar_num(CvarAPAmount));
			remove_task(id);
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 2;
			set_task(0.1, "Give_HP_AP", id);
			HasChose[id] = true;
		}
		case 3: {
			if(HasPower[id] == 3) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 GodMode^x04 Duration:^x03 %d^x04 Cooldown;^x03 %d.", get_pcvar_num(CvarGodModeDuration), get_pcvar_num(CvarGodModeCooldown));
			ColorChat(id,"^x03[Furien]^x04 Pentru a activa GodMode apasa tasta^x03 V.");
			client_cmd(id, "bind v power");
			remove_task(id);
			if(GodMode_Cooldown[id]) {
				GodModeShowHUD2(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 3;
			HasChose[id] = true;
		}
		case 4: {
			if(HasPower[id] == 4) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Drop Enemy Weapon^x04 Cooldown;^x03 %d.", get_pcvar_num(CvarDropCooldown));
			ColorChat(id,"^x03[Furien]^x04 Pentru a aruna armele inamicului apasa tasta^x03 V.");
			client_cmd(id, "bind v power");
			remove_task(id);
			if(Drop_Cooldown[id]) {
				DropShowHUD(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 4;
			HasChose[id] = true;
		}
		case 5: {
			if(HasPower[id] == 5) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Freeze the enemy^x04 Cooldown;^x03 %d.", get_pcvar_num(CvarFreezeCooldown));
			ColorChat(id,"^x03[Furien]^x04 Pentru a folosi^x03 Freeze^x04 apasa tasta^x03 V.");
			client_cmd(id, "bind v power");
			remove_task(id);
			if(Freeze_Cooldown[id]) {
				FreezeShowHUD(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 5;
			HasChose[id] = true;
		}
		case 6: {
			if(HasPower[id] == 6) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Drag the Enemy^x04 Cooldown;^x03 %d.", get_pcvar_num(CvarDragCooldown));
			ColorChat(id,"^x03[Furien]^x04 Pentru a trage inamicul apasa tasta^x03 X.");
			client_cmd(id, "bind x +drag");
			remove_task(id);
			if(Drag_Cooldown[id]) {
				DragShowHUD(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 6;
			HasChose[id] = true;
		}
		case 7: {
			if(HasPower[id] == 7) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 Teleport.^x04 Cooldown;^x03 %d.", get_pcvar_num(CvarTeleportCooldown));
			ColorChat(id,"^x03[Furien]^x04 Pentru a folosi^x03 Teleport^x04 apasa tasta^x03 V.");
			client_cmd(id, "bind v power");
			remove_task(id);
			if(Teleport_Cooldown[id]) {
				TeleportShowHUD(id);
			}
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 7;
			HasChose[id] = true;
		}
		case 8: {
			if(HasPower[id] == 8) {
				ColorChat(id,"^x03[Furien]^x04 Ai deja aceasta putere.");
				return PLUGIN_HANDLED;
			}
			ColorChat(id,"^x03[Furien]^x04 Power:^x03 NoRecoil.");
			remove_task(id);
			if(HasPower[id] == 2 && get_user_health(id) > 100) {
				set_user_health(id, 100)
				set_user_armor(id, 0);
			}
			if(HasPower[id] == 3 && get_user_godmode(id)) {
				set_user_godmode(id, 0);
			}
			HasPower[id] = 8;
			HasChose[id] = true;
		}
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// He Grenade |
//==========================================================================================================	
public CurWeapon(id) {
	if(get_user_flags(id) & VIP_LEVEL && !user_has_weapon(id, CSW_HEGRENADE) && !HE_Cooldown[id] && HasPower[id] == 1) {
		HE_Cooldown[id] = get_pcvar_num(CvarHECooldown);
		set_task(1.0, "HEShowHUD", id, _, _, "b");
		set_hudmessage(0, 100, 255, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(is_user_alive(id) && get_pcvar_num(CvarHECooldown) > 1) {
			show_hudmessage(id, "Vei primi o grenada HE in %d secunde",get_pcvar_num(CvarHECooldown));
		}
		if(is_user_alive(id) && get_pcvar_num(CvarHECooldown) == 1) {
			show_hudmessage(id, "Vei primi o grenada HE in %d secunda",get_pcvar_num(CvarHECooldown));
		}
	}
	if(get_user_flags(id) & VIP_LEVEL && get_user_team(id) != 1) {
		set_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 50);
	}
	if (Frozen[id]) {
		set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
		set_pev(id, pev_maxspeed, 1.0) 
	}
	return PLUGIN_HANDLED;
}

public HEShowHUD(id) {
	if (!is_user_alive(id) || user_has_weapon(id, CSW_HEGRENADE) || HasPower[id] != 1) {
		remove_task(id);
		HE_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && HE_Cooldown[id] == 1) {
		HE_Cooldown[id] --;
		show_hudmessage(id, "Vei primi o grenada HE in: %d secunda",HE_Cooldown[id]);
	}
	if(is_user_alive(id) && HE_Cooldown[id] > 1) {
		HE_Cooldown[id] --;
		show_hudmessage(id, "Vei primi o grenada HE in: %d secunde",HE_Cooldown[id]);
	}
	if(HE_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ai primit o grenada HE");
		ColorChat(id,"^x03[Furien]^x04 Ai primit o grenada HE.");
		remove_task(id);
		HE_Cooldown[id] = 0;
		give_item(id, "weapon_hegrenade");
	}
	return PLUGIN_HANDLED;
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Health and Armor |
//==========================================================================================================	
public Give_HP_AP(id) {
	if(get_user_flags(id) & VIP_LEVEL && HasPower[id] == 2) {
		fm_set_user_health(id, get_pcvar_num(CvarHPAmount));
		cs_set_user_armor(id, get_pcvar_num(CvarAPAmount), CS_ARMOR_VESTHELM);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// GodMode |
//==========================================================================================================	
public GodModeShowHUD(id) {
	if (!is_user_alive(id) || HasPower[id] != 3) {
		remove_task(id);
		GodMode_DurationCooldown[id] = 0;
		set_user_godmode(id, 0);
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && GodMode_DurationCooldown[id] == 1) {
		GodMode_DurationCooldown[id] --;
		show_hudmessage(id, "Ai GodMode pentru: %d secunda",GodMode_DurationCooldown[id]);
	}
	if(is_user_alive(id) && GodMode_DurationCooldown[id] > 1) {
		GodMode_DurationCooldown[id] --;
		show_hudmessage(id, "Ai GodMode pentru: %d secunde",GodMode_DurationCooldown[id]);
	}
	if(GodMode_DurationCooldown[id] <= 0) {
		show_hudmessage(id, "Nu mai ai GodMode");
		ColorChat(id,"^x03[Furien]^x04 Nu mai ai GodMode.");
		remove_task(id);
		set_user_godmode(id, 0);
		GodMode_DurationCooldown[id] = 0;
		GodMode_Cooldown[id] = get_pcvar_num(CvarGodModeCooldown);
		set_task(1.0, "GodModeShowHUD2", id, _, _, "b");
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarGodModeCooldown) != 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarGodModeCooldown));
		}
		if(get_pcvar_num(CvarGodModeCooldown) == 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarGodModeCooldown));
		}
		return PLUGIN_HANDLED;
	}
	return PLUGIN_HANDLED;
}

public GodModeShowHUD2(id) {
	if (!is_user_alive(id) || HasPower[id] != 3) {
		remove_task(id);
		GodMode_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && GodMode_Cooldown[id] == 1) {
		GodMode_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunda",GodMode_Cooldown[id]);
	}
	if(is_user_alive(id) && GodMode_Cooldown[id] > 1) {
		GodMode_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunde",GodMode_Cooldown[id]);
	}
	if(GodMode_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"^x03[Furien]^x04 Iti poti folosi din nou puterea.");
		remove_task(id);
		GodMode_Cooldown[id] = 0;
	}
	return PLUGIN_HANDLED;
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Drop Enemy Weapon |
//==========================================================================================================	
public DropShowHUD(id) {
	if (!is_user_alive(id) || HasPower[id] != 4) {
		remove_task(id);
		Drop_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && Drop_Cooldown[id] == 1) {
		Drop_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drop_Cooldown[id]);
	}
	if(is_user_alive(id) && Drop_Cooldown[id] > 1) {
		Drop_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drop_Cooldown[id]);
	}
	if(Drop_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"^x03[Furien]^x04 Iti poti folosi din nou puterea.");
		remove_task(id);
		Drop_Cooldown[id] = 0;
	}
	return PLUGIN_HANDLED;
}

stock Drop(id)  {
	new wpn, wpnname[32];
	wpn = get_user_weapon(id);
	if(!(WPN_NOT_DROP & (1<<wpn)) && get_weaponname(wpn, wpnname, charsmax(wpnname))) {
		engclient_cmd(id, "drop", wpnname);
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Freeze |
//==========================================================================================================
public Freeze(id) {
	if (!is_user_alive(id) || Frozen[id]) return;
	
	pev(id, pev_maxspeed, TempSpeed[id]) //get temp speed
	pev(id, pev_gravity, TempGravity[id]) //get temp speed
	fm_set_rendering(id, kRenderFxGlowShell, 0, 100, 200, kRenderNormal, 25)
	engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTPLAYER_SND[random_num(0, sizeof FROSTPLAYER_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
	message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("ScreenFade"), _, id)
	write_short(UNIT_SECOND*1)
	write_short(floatround(UNIT_SECOND*get_pcvar_float(CvarFreezeDuration)))
	write_short(FFADE_IN)
	write_byte(0)
	write_byte(50) 
	write_byte(200)
	write_byte(100)
	message_end()
	if (pev(id, pev_flags) & FL_ONGROUND)
		set_pev(id, pev_gravity, 999999.9)
	else
		set_pev(id, pev_gravity, 0.000001)
	
	Frozen[id] = true;
	set_task(get_pcvar_float(CvarFreezeDuration), "remove_freeze", id)
}

public remove_freeze(id) {
	if (!Frozen[id] || !is_user_alive(id)) return;
	
	Frozen[id] = false;
	set_task(0.2, "set_normal", id)
	engfunc(EngFunc_EmitSound, id, CHAN_BODY, FROSTBREAK_SND[random_num(0, sizeof FROSTBREAK_SND - 1)], 1.0, ATTN_NORM, 0, PITCH_NORM)
	fm_set_rendering(id)
	static Float:origin2F[3]
	pev(id, pev_origin, origin2F)
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin2F, 0)
	write_byte(TE_BREAKMODEL) 
	engfunc(EngFunc_WriteCoord, origin2F[0]) 
	engfunc(EngFunc_WriteCoord, origin2F[1]) 
	engfunc(EngFunc_WriteCoord, origin2F[2]+24.0) 
	write_coord(16) 
	write_coord(16) 
	write_coord(16) 
	write_coord(random_num(-50, 50)) 
	write_coord(random_num(-50, 50)) 
	write_coord(25) 
	write_byte(10) 
	write_short(FreezeSprite) 
	write_byte(10) 
	write_byte(25) 
	write_byte(BREAK_GLASS) 
	message_end()
}
public set_normal(id) {
	set_pev(id, pev_gravity, TempGravity[id])
	set_pev(id, pev_maxspeed, TempSpeed[id])
}

public FreezeShowHUD(id) {
	if (!is_user_alive(id) || HasPower[id] != 5) {
		remove_task(id);
		Freeze_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && Freeze_Cooldown[id] == 1) {
		Freeze_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Freeze_Cooldown[id]);
	}
	if(is_user_alive(id) && Freeze_Cooldown[id] > 1) {
		Freeze_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Freeze_Cooldown[id]);
	}
	if(Freeze_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"^x03[Furien]^x04 Iti poti folosi din nou puterea.");
		remove_task(id);
		Freeze_Cooldown[id] = 0;
	}
	return PLUGIN_HANDLED;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Drag |
//==========================================================================================================
public DragStart(id) {
	if (get_user_flags(id) & VIP_LEVEL && HasPower[id] == 6 && !Drag_I[id]) {
		
		if (!is_user_alive(id)) {
			return PLUGIN_HANDLED;
		}
		if (Drag_Cooldown[id]) {
			ColorChat(id,"^x03[Furien]^x04 Puterea iti va reveni in^x03 %d secunde.",Drag_Cooldown[id]);
			return PLUGIN_HANDLED;
		}
		new hooktarget, body;
		get_user_aiming(id, hooktarget, body);
		
		if (is_user_alive(hooktarget)) {
			if (get_user_team(id) != get_user_team(hooktarget)) {				
				Hooked[id] = hooktarget;
				emit_sound(hooktarget, CHAN_BODY, DRAG_HIT_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
			}
			else {
				return PLUGIN_HANDLED;
			}
			
			if (get_pcvar_float(CvarDragSpeed) <= 0.0)
				CvarDragSpeed = 1;
			
			new parm[2];
			parm[0] = id;
			parm[1] = hooktarget;
			
			set_task(0.1, "DragReelin", id, parm, 2, "b");
			HarpoonTarget(parm);
			Drag_I[id] = true;
			Not_Cooldown[id] = false;
			if(get_pcvar_num(CvarDragUnb2Move) == 1)
				Unable2move[hooktarget] = true;
			
			if(get_pcvar_num(CvarDragUnb2Move) == 2)
				Unable2move[id] = true;
			
			if(get_pcvar_num(CvarDragUnb2Move) == 3) {
				Unable2move[hooktarget] = true;
				Unable2move[id] = true;
			}
		} 
		else {
			Hooked[id] = 33;
			NoTarget(id);
			Not_Cooldown[id] = false;
			set_task(1.0,"DragEnd",id);
			emit_sound(id, CHAN_BODY, DRAG_MISS_SND, 1.0, ATTN_NORM, 0, PITCH_HIGH);
			Drag_I[id] = true;
		}
	}
	else
		return PLUGIN_HANDLED;
	
	return PLUGIN_CONTINUE;
}

public DragEnd(id) { // drags end function
	LastHook[id] = get_gametime();
	Hooked[id] = 0;
	BeamRemove(id);
	Drag_I[id] = false;
	Unable2move[id] = false;
	if(get_user_flags(id) & VIP_LEVEL && !Not_Cooldown[id] && HasPower[id] == 6) {
		Drag_Cooldown[id] = get_pcvar_num(CvarDragCooldown);
		set_task(1.0, "DragShowHUD", id, _, _, "b");
		Not_Cooldown[id] = true;
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarDragCooldown) != 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDragCooldown));
		}
		if(get_pcvar_num(CvarDragCooldown) == 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDragCooldown));
		}
	}
}

public DragShowHUD(id) {
	if (!is_user_alive(id) || HasPower[id] != 6) {
		remove_task(id);
		Drag_Cooldown[id] = 0;
		Not_Cooldown[id] = true;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && Drag_Cooldown[id] == 1) {
		Drag_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Drag_Cooldown[id]);
	}
	if(is_user_alive(id) && Drag_Cooldown[id] > 1) {
		Drag_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Drag_Cooldown[id]);
	}
	if(Drag_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"^x03[Furien]^x04 Iti poti folosi din nou puterea.");
		remove_task(id);
		Drag_Cooldown[id] = 0;
		Not_Cooldown[id] = true;
	}
	return PLUGIN_HANDLED;
}

public DragReelin(parm[]) {
	new id = parm[0];
	new victim = parm[1];
	
	if (!Hooked[id] || !is_user_alive(victim)) {
		DragEnd(id);
		return;
	}
	
	new Float:fl_Velocity[3];
	new idOrigin[3], vicOrigin[3];
	
	get_user_origin(victim, vicOrigin);
	get_user_origin(id, idOrigin);
	
	new distance = get_distance(idOrigin, vicOrigin);
	
	if (distance > 1) {
		new Float:fl_Time = distance / get_pcvar_float(CvarDragSpeed);
		
		fl_Velocity[0] = (idOrigin[0] - vicOrigin[0]) / fl_Time;
		fl_Velocity[1] = (idOrigin[1] - vicOrigin[1]) / fl_Time;
		fl_Velocity[2] = (idOrigin[2] - vicOrigin[2]) / fl_Time;
	}
	else {
		fl_Velocity[0] = 0.0;
		fl_Velocity[1] = 0.0;
		fl_Velocity[2] = 0.0;
	}
	
	entity_set_vector(victim, EV_VEC_velocity, fl_Velocity); //<- rewritten. now uses engine
}

public TakeDamage(victim, inflictor, attacker, Float:damage) { // if take damage drag off
	if (is_user_alive(attacker) && (get_pcvar_num(CvarDragDmg2Stop) > 0)) {
		OvrDmg[victim] = OvrDmg[victim] + floatround(damage);
		if (OvrDmg[victim] >= get_pcvar_num(CvarDragDmg2Stop)) {
			OvrDmg[victim] = 0;
			DragEnd(victim);
			return HAM_IGNORED;
		}
	}
	
	return HAM_IGNORED;
}

public HarpoonTarget(parm[]) { // set beam (ex. tongue:) if target is player
	
	new id = parm[0];
	new hooktarget = parm[1];
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(8);	// TE_BEAMENTS
	write_short(id);
	write_short(hooktarget);
	write_short(DragSprite);	// sprite index
	write_byte(0);	// start frame
	write_byte(0);	// framerate
	write_byte(200);	// life
	write_byte(8);	// width
	write_byte(1);	// noise
	write_byte(155);	// r, g, b
	write_byte(155);	// r, g, b
	write_byte(55);	// r, g, b
	write_byte(90);	// brightness
	write_byte(10);	// speed
	message_end();
}

public NoTarget(id) { // set beam if target isn't player
	new endorigin[3];
	
	get_user_origin(id, endorigin, 3);
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_BEAMENTPOINT); // TE_BEAMENTPOINT
	write_short(id);
	write_coord(endorigin[0]);
	write_coord(endorigin[1]);
	write_coord(endorigin[2]);
	write_short(DragSprite); // sprite index
	write_byte(0);	// start frame
	write_byte(0);	// framerate
	write_byte(200);	// life
	write_byte(8);	// width
	write_byte(1);	// noise
	write_byte(155);	// r, g, b
	write_byte(155);	// r, g, b
	write_byte(55);	// r, g, b
	write_byte(75);	// brightness
	write_byte(0);	// speed
	message_end();
}

public BeamRemove(id) { // remove beam
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(99);	//TE_KILLBEAM
	write_short(id);	//entity
	message_end();
}

public PlayerPreThink(id) {
	new button = get_user_button(id)
	new oldbutton = get_user_oldbutton(id)
	
	if (!is_user_alive(id)) {
		return FMRES_IGNORED
	}
	
	if (Frozen[id]) {
		set_pev(id, pev_velocity, Float:{0.0,0.0,0.0})
		set_pev(id, pev_maxspeed, 1.0) 
	}
	
	if(get_user_flags(id) & VIP_LEVEL && HasPower[id] == 6 ) { 
		if (BindUse[id]) {
			if (!(oldbutton & IN_USE) && (button & IN_USE))
				DragStart(id)
			
			if ((oldbutton & IN_USE) && !(button & IN_USE))
				DragEnd(id)
		}
		
		if (!Drag_I[id]) {
			Unable2move[id] = false
		}
		
		if (Unable2move[id] && get_pcvar_num(CvarDragUnb2Move) > 0) {
			set_pev(id, pev_maxspeed, 1.0)
		}
	}
	return PLUGIN_CONTINUE
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Teleport |
//==========================================================================================================
public TeleportShowHUD(id) {
	if (!is_user_alive(id) || HasPower[id] != 7) {
		remove_task(id);
		Teleport_Cooldown[id] = 0;
		return PLUGIN_HANDLED;
	}
	set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
	if(is_user_alive(id) && Teleport_Cooldown[id] == 1) {
		Teleport_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunda",Teleport_Cooldown[id]);
	}
	if(is_user_alive(id) && Teleport_Cooldown[id] > 1) {
		Teleport_Cooldown[id] --;
		show_hudmessage(id, "Puterea iti va reveni in: %d secunde",Teleport_Cooldown[id]);
	}
	if(Teleport_Cooldown[id] <= 0) {
		show_hudmessage(id, "Ti-a revenit puterea");
		ColorChat(id,"^x03[Furien]^x04 Iti poti folosi din nou puterea.");
		remove_task(id);
		Teleport_Cooldown[id] = 0;
	}
	return PLUGIN_HANDLED;
}

bool:teleport(id) {
	new Float:vOrigin[3], Float:vNewOrigin[3],
	Float:vNormal[3], Float:vTraceDirection[3],
	Float:vTraceEnd[3];
	
	pev(id, pev_origin, vOrigin);
	
	velocity_by_aim(id, get_pcvar_num(CvarTeleportRange), vTraceDirection);
	xs_vec_add(vTraceDirection, vOrigin, vTraceEnd);
	
	engfunc(EngFunc_TraceLine, vOrigin, vTraceEnd, DONT_IGNORE_MONSTERS, id, 0);
	
	new Float:flFraction;
	get_tr2(0, TR_flFraction, flFraction);
	if (flFraction < 1.0) {
		get_tr2(0, TR_vecEndPos, vTraceEnd);
		get_tr2(0, TR_vecPlaneNormal, vNormal);
	}
	
	xs_vec_mul_scalar(vNormal, 40.0, vNormal); // do not decrease the 40.0
	xs_vec_add(vTraceEnd, vNormal, vNewOrigin);
	
	if (is_player_stuck(id, vNewOrigin))
		return false;
	
	emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
	tele_effect(vOrigin);
	
	engfunc(EngFunc_SetOrigin, id, vNewOrigin);
	
	tele_effect2(vNewOrigin);
	
	return true;
}

stock is_player_stuck(id, Float:originF[3]) {
	engfunc(EngFunc_TraceHull, originF, originF, 0, (pev(id, pev_flags) & FL_DUCKING) ? HULL_HEAD : HULL_HUMAN, id, 0);
	
	if (get_tr2(0, TR_StartSolid) || get_tr2(0, TR_AllSolid) || !get_tr2(0, TR_InOpen))
		return true;
	
	return false;
}

stock tele_effect(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(TeleportSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
}

stock tele_effect2(const Float:torigin[3]) {
	new origin[3];
	origin[0] = floatround(torigin[0]);
	origin[1] = floatround(torigin[1]);
	origin[2] = floatround(torigin[2]);
	
	message_begin(MSG_PAS, SVC_TEMPENTITY, origin);
	write_byte(TE_BEAMCYLINDER);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+10);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+60);
	write_short(TeleportSprite);
	write_byte(0);
	write_byte(0);
	write_byte(3);
	write_byte(60);
	write_byte(0);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(255);
	write_byte(0);
	message_end();
	
	message_begin(MSG_BROADCAST, SVC_TEMPENTITY);
	write_byte(TE_SPRITETRAIL);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]+40);
	write_coord(origin[0]);
	write_coord(origin[1]);
	write_coord(origin[2]);
	write_short(TeleportSprite2);
	write_byte(30);
	write_byte(10);
	write_byte(1);
	write_byte(50);
	write_byte(10);
	message_end();
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NoRecoil |
//==========================================================================================================
public Weapon_PrimaryAttack_Pre(entity) {
	new id = pev(entity, pev_owner)
	
	if (get_user_flags(id) & VIP_LEVEL && HasPower[id] == 8) {
		pev(id, pev_punchangle, cl_pushangle[id])
		return HAM_IGNORED;
	}
	return HAM_IGNORED;
}

public Weapon_PrimaryAttack_Post(entity) {
	new id = pev(entity, pev_owner)
	
	if (get_user_flags(id) & VIP_LEVEL && HasPower[id] == 8) {
		new Float: push[3]
		pev(id, pev_punchangle, push)
		xs_vec_sub(push, cl_pushangle[id], push)
		xs_vec_mul_scalar(push, 0.0, push)
		xs_vec_add(push, cl_pushangle[id], push)
		set_pev(id, pev_punchangle, push)
		return HAM_IGNORED;
	}
	return HAM_IGNORED;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Client |
//==========================================================================================================
//------| Client PutinServer |------//
public client_putinserver(id) {
	HasChose[id] = false;
	HasPower[id] = 0;
	HE_Cooldown[id] = 0;
	GodMode_Cooldown[id] = 0;
	GodMode_DurationCooldown[id] = 0;
	Drop_Cooldown[id] = 0;
	Freeze_Cooldown[id] = 0;
	Drag_Cooldown[id] = 0;
	Not_Cooldown[id] = false;
	Teleport_Cooldown[id] = 0;
}
//------| Client Disconnect |------//
public client_disconnect(id) {  
	HasChose[id] = false;
	HasPower[id] = 0;
	HE_Cooldown[id] = 0;
	GodMode_Cooldown[id] = 0;
	GodMode_DurationCooldown[id] = 0;
	Drop_Cooldown[id] = 0;
	Freeze_Cooldown[id] = 0;
	Drag_Cooldown[id] = 0;
	Not_Cooldown[id] = false;
	Teleport_Cooldown[id] = 0;
}
//------| Client Spawn |------//	
public Spawn(id) {
	remove_task(id);
	HasChose[id] = false;
	HE_Cooldown[id] = 0;
	GodMode_Cooldown[id] = 0;
	GodMode_DurationCooldown[id] = 0;
	Drop_Cooldown[id] = 0;
	Freeze_Cooldown[id] = 0;
	remove_freeze(id);
	DragEnd(id);
	Drag_Cooldown[id] = 0;
	Not_Cooldown[id] = false;
	Teleport_Cooldown[id] = 0;
	set_task(1.0,"Give_HP_AP",id);
}
//------| Client Death |------//
public Death() {
	remove_task(read_data(2));
	HE_Cooldown[read_data(2)] = 0;
	GodMode_Cooldown[read_data(2)] = 0;
	GodMode_DurationCooldown[read_data(2)] = 0;
	Drop_Cooldown[read_data(2)] = 0;
	Freeze_Cooldown[read_data(2)] = 0;
	Freeze_Cooldown[read_data(2)] = 0;
	remove_freeze(read_data(2));
	
	BeamRemove(read_data(2));
	Drag_Cooldown[read_data(2)] = 0;
	if (Hooked[read_data(2)])
		DragEnd(read_data(2));
	
	
	Not_Cooldown[read_data(2)] = false;
	Teleport_Cooldown[read_data(2)] = 0;
}
//------| Client Power |------//
public Power(id)  {
	new target, body;
	static Float:start[3];
	static Float:aim[3];
	
	pev(id, pev_origin, start);
	fm_get_aim_origin(id, aim);
	
	start[2] += 16.0; // raise
	aim[2] += 16.0; // raise
	
	if (get_user_flags(id) & VIP_LEVEL && is_user_alive(id) && HasPower[id] == 3 && !GodMode_DurationCooldown[id]) {
		
		if (GodMode_Cooldown[id]) {
			ColorChat(id,"^x03[Furien]^x04 Puterea iti va reveni in^x03 %d secunde.",GodMode_Cooldown[id]);
			return PLUGIN_CONTINUE;
		}
		set_user_godmode(id, 1);
		GodMode_DurationCooldown[id] = get_pcvar_num(CvarGodModeDuration)
		set_task(1.0, "GodModeShowHUD", id, _, _, "b");
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarGodModeDuration) != 1) {
			show_hudmessage(id, "Ai GodMode pentru: %d secunde",get_pcvar_num(CvarGodModeDuration));
		}
		if(get_pcvar_num(CvarGodModeDuration) == 1) {
			show_hudmessage(id, "Ai GodMode pentru: %d secunda",get_pcvar_num(CvarGodModeDuration));
		}
		return PLUGIN_HANDLED;
	}
	
	
	if (get_user_flags(id) & VIP_LEVEL && is_user_alive(id) && HasPower[id] == 4) {
		
		if (Drop_Cooldown[id]) {
			ColorChat(id,"^x03[Furien]^x04 Puterea iti va reveni in^x03 %d secunde.",Drop_Cooldown[id]);
			return PLUGIN_CONTINUE;
		}
		get_user_aiming (id, target, body, CvarDropDistance);
		if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {
			message_begin(MSG_BROADCAST ,SVC_TEMPENTITY);
			write_byte(TE_EXPLOSION);
			engfunc(EngFunc_WriteCoord, aim[0]);
			engfunc(EngFunc_WriteCoord, aim[1]);
			engfunc(EngFunc_WriteCoord, aim[2]);
			write_short(DropSprite2);
			write_byte(10);
			write_byte(30);
			write_byte(4);
			message_end();
			
			emit_sound(id, CHAN_WEAPON, DROP_HIT_SND, VOL_NORM, ATTN_NORM, 0, PITCH_NORM);
			Drop(target);
			message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
			write_short(1<<10);
			write_short(1<<10);
			write_short(0x0000);
			write_byte(230);
			write_byte(0);
			write_byte(0);
			write_byte(50);
			message_end();
			message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
			write_short(1<<10);
			write_short(1<<10);
			write_short(0x0000);
			write_byte(230);
			write_byte(0);
			write_byte(0);
			write_byte(50);
			message_end();
		}	
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
		write_byte(0);
		engfunc(EngFunc_WriteCoord,start[0]);
		engfunc(EngFunc_WriteCoord,start[1]);
		engfunc(EngFunc_WriteCoord,start[2]);
		engfunc(EngFunc_WriteCoord,aim[0]);
		engfunc(EngFunc_WriteCoord,aim[1]);
		engfunc(EngFunc_WriteCoord,aim[2]);
		write_short(DropSprite); // sprite index
		write_byte(0); // start frame
		write_byte(30); // frame rate in 0.1's
		write_byte(20); // life in 0.1's
		write_byte(50); // line width in 0.1's
		write_byte(50); // noise amplititude in 0.01's
		write_byte(0); // red
		write_byte(100); // green
		write_byte(0); // blue
		write_byte(100); // brightness
		write_byte(50); // scroll speed in 0.1's
		message_end();
		Drop_Cooldown[id] = get_pcvar_num(CvarDropCooldown);
		set_task(1.0, "DropShowHUD", id, _, _, "b");
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarDropCooldown) != 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarDropCooldown));
		}
		if(get_pcvar_num(CvarDropCooldown) == 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarDropCooldown));
		}
		return PLUGIN_HANDLED;
	}
	
	else if (get_user_flags(id) & VIP_LEVEL && is_user_alive(id) && HasPower[id] == 5) {
		if (Freeze_Cooldown[id]) {
			ColorChat(id,"^x03[Furien]^x04 Puterea iti va reveni in^x03 %d secunde.",Freeze_Cooldown[id]);
			return PLUGIN_CONTINUE;
		}
		get_user_aiming (id, target, body, CvarFreezeDistance);
		if(is_user_alive(target) && get_user_team(id) != get_user_team(target)) {	
			Freeze(target);
			
			message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
			write_short(1<<10);
			write_short(1<<10);
			write_short(0x0000);
			write_byte(0);
			write_byte(100);
			write_byte(200);
			write_byte(50);
			message_end();
			message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, target);
			write_short(1<<10);
			write_short(1<<10);
			write_short(0x0000);
			write_byte(0);
			write_byte(100);
			write_byte(200);
			write_byte(50);
			message_end();
		}	
		message_begin(MSG_BROADCAST,SVC_TEMPENTITY);
		write_byte(0);
		engfunc(EngFunc_WriteCoord,start[0]);
		engfunc(EngFunc_WriteCoord,start[1]);
		engfunc(EngFunc_WriteCoord,start[2]);
		engfunc(EngFunc_WriteCoord,aim[0]);
		engfunc(EngFunc_WriteCoord,aim[1]);
		engfunc(EngFunc_WriteCoord,aim[2]);
		write_short(FreezeSprite3); // sprite index
		write_byte(0); // start frame
		write_byte(30); // frame rate in 0.1's
		write_byte(20); // life in 0.1's
		write_byte(50); // line width in 0.1's
		write_byte(50); // noise amplititude in 0.01's
		write_byte(0); // red
		write_byte(100); // green
		write_byte(200); // blue
		write_byte(100); // brightness
		write_byte(50); // scroll speed in 0.1's
		message_end();
		Freeze_Cooldown[id] = get_pcvar_num(CvarFreezeCooldown);
		set_task(1.0, "FreezeShowHUD", id, _, _, "b");
		set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
		if(get_pcvar_num(CvarFreezeCooldown) != 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarFreezeCooldown));
		}
		if(get_pcvar_num(CvarFreezeCooldown) == 1) {
			show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarFreezeCooldown));
		}
		return PLUGIN_HANDLED;
	}
	else if  (get_user_flags(id) & VIP_LEVEL && is_user_alive(id) && HasPower[id] == 7) {	
		if (Teleport_Cooldown[id]) {
			ColorChat(id,"^x03[Furien]^x04 Puterea iti va reveni in^x03 %d secunde.",Teleport_Cooldown[id]);
			return PLUGIN_CONTINUE;
		}
		if (teleport(id)) {
			emit_sound(id, CHAN_STATIC, SOUND_BLINK, 1.0, ATTN_NORM, 0, PITCH_NORM);
			remove_task(id);
			Teleport_Cooldown[id] = get_pcvar_num(CvarTeleportCooldown);
			set_task(1.0, "TeleportShowHUD", id, _, _, "b");
			set_hudmessage(0, 100, 200, 0.05, 0.60, 0, 1.0, 1.1, 0.0, 0.0, -11);
			if(get_pcvar_num(CvarTeleportCooldown) != 1) {
				show_hudmessage(id, "Puterea iti va reveni in: %d secunde",get_pcvar_num(CvarTeleportCooldown));
			}
			if(get_pcvar_num(CvarTeleportCooldown) == 1) {
				show_hudmessage(id, "Puterea iti va reveni in: %d secunda",get_pcvar_num(CvarTeleportCooldown));
			}
			return PLUGIN_HANDLED;
		}
		else {
			Teleport_Cooldown[id] = 0;
			ColorChat(id, "^x03[Furien]^x04 Pozitia de teleportare este invalida.");
			return PLUGIN_HANDLED;
		}
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// VIP's Online |
//==========================================================================================================
public print_adminlist(user) {
	new adminnames[33][32];
	new message[256];
	new id, count, x, len;
	
	for(id = 1 ; id <= get_maxplayers() ; id++)
		if(is_user_connected(id))
		if(get_user_flags(id) & VIP_LEVEL)
		get_user_name(id, adminnames[count++], 31);
	
	len = format(message, 255, "^x04 VIP ONLINE: ");
	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) {
				print_message(user, message);
				len = format(message, 255, "^x04 ");
			}
		}
		print_message(user, message);
	}
	else {
		len += format(message[len], 255-len, "No VIP online.");
		print_message(user, message);
	}
}
print_message(id, msg[]) {
	message_begin(MSG_ONE, get_user_msgid("SayText"), {0,0,0}, id);
	write_byte(id);
	write_string(msg);
	message_end();
}

public handle_say(id) {
	new said[192];
	read_args(said,192);
	if(contain(said, "/vips") != -1)
		set_task(0.1,"print_adminlist",id);
	return PLUGIN_CONTINUE;
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Color Chat |
//==========================================================================================================
stock ColorChat(const id, const input[], any:...) {
	new count = 1, players[32];
	static msg[191];
	vformat(msg, 190, input, 3);
	
	replace_all(msg, 190, "^x04", "^4");
	replace_all(msg, 190, "^x01", "^1");
	replace_all(msg, 190, "^x03", "^3");
	
	if(id) players[0] = id;
	else get_players(players, count, "ch"); {
		for(new i = 0; i < count; i++) {
			if(is_user_connected(players)) {
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
				write_byte(players);
				write_string(msg);
				message_end();
			}
		}
	}
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Plugin Precache |
//==========================================================================================================
public plugin_precache() { 
	precache_sound(DROP_HIT_SND);
	
	DropSprite = precache_model("sprites/lgtning.spr");
	DropSprite2 = precache_model("sprites/dropwpnexp.spr");
	
	precache_sound(DRAG_HIT_SND);
	precache_sound(DRAG_MISS_SND);
	DragSprite = precache_model("sprites/zbeam4.spr");
	
	
	new i;
	for (i = 0; i < sizeof FROSTBREAK_SND; i++)
		engfunc(EngFunc_PrecacheSound, FROSTBREAK_SND);
	for (i = 0; i < sizeof FROSTPLAYER_SND; i++)
		engfunc(EngFunc_PrecacheSound, FROSTPLAYER_SND);
	FreezeSprite = engfunc(EngFunc_PrecacheModel, FreezeSprite2);
	FreezeSprite3 = precache_model("sprites/laserbeam.spr");
	
	TeleportSprite = precache_model( "sprites/shockwave.spr");
	TeleportSprite2 = precache_model( "sprites/blueflare2.spr");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ fbidis\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil\\ fcharset0 Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ ltrpar\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
CLICK ! | Afiseaza codul
Ma gasesti pe Messenger la id :[/b] [email protected]
Follow me on Instagram
Fa-ti cunoscut serverul de Counter-Strike pe facebook ! 
Fa-ti reclama gratis aici Click
My Plugin Furien Guns
RoyalServer 2
User avatar
GhosT ***
Membru, skill +2
Membru, skill +2
Posts: 604
Joined: 04 Dec 2013, 21:52
Detinator Steam: Da
CS Status: Morphin . [ Retras ]
SteamID: Mutulica1428
Reputatie: Fost Moderator ajutator
Location: Dumesti.
Has thanked: 40 times
Been thanked: 99 times
Contact:

10 Dec 2013, 13:51

Adica sa scot glow si sa fac sa fie accesibil tuturor avantajele si /vipmenu?
User avatar
CaTa.
Fost moderator
Fost moderator
Posts: 420
Joined: 28 Jul 2013, 15:06
Detinator Steam: Nu
Detinator server CS: In curand !
Reputatie: Fost Moderator ajutator
Location: Targu-Mures
Has thanked: 99 times
Been thanked: 19 times
Contact:

10 Dec 2013, 15:57

GhosT *** wrote:Adica sa scot glow si sa fac sa fie accesibil tuturor avantajele si /vipmenu?
da
CLICK ! | Afiseaza codul
Ma gasesti pe Messenger la id :[/b] [email protected]
Follow me on Instagram
Fa-ti cunoscut serverul de Counter-Strike pe facebook ! 
Fa-ti reclama gratis aici Click
My Plugin Furien Guns
User avatar
Mădălin
Administrator
Administrator
Posts: 5293
Joined: 06 Mar 2013, 21:40
Detinator Steam: Nu
Reputatie: Administrator
Fost manager cs.extream.ro
Web designer
Administratorul anului 2023
Has thanked: 45 times
Been thanked: 310 times
Contact:

10 Dec 2013, 15:57

Mutat în: Prima pagină » eXtream - Counter-Strike 1.6 » Programarea CS-ului » Modificari pluginuri
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

07 Jan 2014, 20:29

Cauta publicul Spawn( id ) { ... } si gasesti acolo set_user_rendering( ... ) si adaugi "//" in fata sa !
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 9 guests