Modificare plugin

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
kstewart595
Membru, skill 0
Membru, skill 0
Posts: 79
Joined: 22 Apr 2016, 13:38
Detinator Steam: Da
CS Status: *_*
Detinator server CS: Da
Fond eXtream: 0
Contact:

01 Jan 2018, 07:35

Salut.. imi scoate si mie cineva drag ability .. drop enemy Si freeze the enemy va rog
| 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("furienvip","cmdMenu");
	register_clcmd("say /furienvip","cmdMenu");
	register_clcmd("say_team /furienvip","cmdMenu");
	register_clcmd("say furienvip","cmdMenu");
	register_clcmd("say_team furienvip","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", "15");			// He Cooldown
	CvarHPAmount = register_cvar("vip_hp_amount", "255");			// Health
	CvarAPAmount = register_cvar("vip_ap_amount", "255");			// Armor
	CvarGodModeCooldown = register_cvar("vip_godmode_cooldown", "25");	// GodMode Cooldown
	CvarGodModeDuration = register_cvar("vip_godmode_duration", "2");	// 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", "3.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 Doar persoanele cu^x03 VIP^x04 pot accesa acest meniu.");
	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 20 de 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.");
	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.");
	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.");
	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.");
	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);
	if(get_user_flags(id) & VIP_LEVEL && get_user_team(id) != 1) {
	set_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 50);
	}
	}
//------| 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\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/
RoyalServer
User avatar
LNd #
Membru, skill +1
Membru, skill +1
Posts: 126
Joined: 07 Sep 2017, 23:33
Detinator Steam: Da
SteamID: eXeDLL [1337]
Fond eXtream: 0
Has thanked: 3 times
Been thanked: 9 times

01 Jan 2018, 21:49

| 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;
//--| 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, 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("power", "Power");
	register_clcmd("furienvip","cmdMenu");
	register_clcmd("say /furienvip","cmdMenu");
	register_clcmd("say_team /furienvip","cmdMenu");
	register_clcmd("say furienvip","cmdMenu");
	register_clcmd("say_team furienvip","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", "15");			// He Cooldown
	CvarHPAmount = register_cvar("vip_hp_amount", "255");			// Health
	CvarAPAmount = register_cvar("vip_ap_amount", "255");			// Armor
	CvarGodModeCooldown = register_cvar("vip_godmode_cooldown", "25");	// GodMode Cooldown
	CvarGodModeDuration = register_cvar("vip_godmode_duration", "2");	// GodMode Duration
	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,"\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 Doar persoanele cu^x03 VIP^x04 pot accesa acest meniu.");
	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 20 de 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.");
	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 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.");
	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);
	}
	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;
	}
	
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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;
	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;
	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;
	Teleport_Cooldown[id] = 0;
	set_task(1.0,"Give_HP_AP",id);
	if(get_user_flags(id) & VIP_LEVEL && get_user_team(id) != 1) {
	set_rendering(id, kRenderFxGlowShell, 0, 255, 0, kRenderNormal, 50);
	}
	}
//------| 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;
	Teleport_Cooldown[read_data(2)] = 0;
	}
//------| Client Power |------//
public Power(id)  {
	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 (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_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() { 
		
	TeleportSprite = precache_model( "sprites/shockwave.spr");
	TeleportSprite2 = precache_model( "sprites/blueflare2.spr");
	}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1048\\ f0\\ fs16 \n\\ par }
*/


nu l-am testat ca nu am unde. la compilare a dat bine , dar pe server acum nu stiu.
Legends never die
kstewart595
Membru, skill 0
Membru, skill 0
Posts: 79
Joined: 22 Apr 2016, 13:38
Detinator Steam: Da
CS Status: *_*
Detinator server CS: Da
Fond eXtream: 0
Contact:

03 Jan 2018, 08:59

Nu merge.
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 22 guests