Plugin plugin menuvip

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

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

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
BUSKY
Membru, skill 0
Membru, skill 0
Posts: 5
Joined: 01 Aug 2012, 08:27
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Contact:

29 Dec 2013, 14:03

Salut as vrea si eu un plugin pentru furien cu /menuvip
RoyalServer
User avatar
tre3fla
Membru eXtream
Membru eXtream
Posts: 5317
Joined: 27 May 2012, 11:15
Detinator Steam: Da
CS Status: Allah Akbar !
Detinator server CS: Nu
SteamID: /id/tre3fla_xxx
Has thanked: 14 times
Been thanked: 129 times

30 Dec 2013, 01:46

si ce ar trebui sa contina ace| p|ugin ?
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

30 Dec 2013, 14:44

BUSKY wrote:Salut as vrea si eu un plugin pentru furien cu /menuvip
Mai lamurit . :))
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:

30 Dec 2013, 14:45

Foarte clar , numai "masa lu' Graham" mai explica asa clar :|
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

30 Dec 2013, 14:54

Poftim :
| 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

#pragma tabsize 0

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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;


enum { SCOREATTRIB_ARG_PLAYERID = 1, SCOREATTRIB_ARG_FLAGS };
enum ( <<= 1 ) { SCOREATTRIB_FLAG_NONE = 0, SCOREATTRIB_FLAG_DEAD = 1, SCOREATTRIB_FLAG_BOMB, SCOREATTRIB_FLAG_VIP };

#define MESAJ "Pentru a vedea beneficiine VIP tasteaza ^x04/vreauvip^x03"      // Odata la 30 sec
#define MESAJ2 "La ora 00:00 pana la 08:00 event vip gratis."      // Odata la 60 sec
#define MESAJ_HUD_PERMANENT "Este event deci toti aveti vip!"   // Mesaj Permanent

new bool:vip_free;

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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
   
   register_clcmd( "say /vreauvip" , "vipinfo" , -1 );
   register_clcmd( "say_team /vreauvip" , "vipinfo" , -1 );
   
   register_message( get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib" );
   
}

public vipinfo( id ) {
   
   show_motd( id,"http://www.legendcs.com/download/motduri/vreauvip.html" );
}

public MessageScoreAttrib( iMsgId, iDest, iReceiver ) {
   
   new iPlayer = get_msg_arg_int( SCOREATTRIB_ARG_PLAYERID );
   
   if( access( iPlayer, VIP_LEVEL ) ) {
      
      set_msg_arg_int( SCOREATTRIB_ARG_FLAGS, ARG_BYTE, SCOREATTRIB_FLAG_VIP );
   }
}

public Mesaj( id ) {
   
   ColorChat( id, "^x04[VIP]^x03 %s^x01 !!!", MESAJ );
}

public Mesaj2( id ) {
   
   ColorChat( id, "^x04[VIP]^x03 %s^x01 !!!", MESAJ2 );
}

public mesaje( ) {
   
   if( vip_free ) {
      
      set_hudmessage( 154, 44, 31, 0.2, 0.1, 0, 6.0, 1.0 );
      show_hudmessage( 0, "%s", MESAJ_HUD_PERMANENT );
      
   }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 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_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) {
   
   new o, m, s;
   time( o, m, s )
   if( o >= 00 || o < 08 )
   {
      vip_free = true
      if( get_user_flags( id ) == read_flags( "z" ) )
      {
         set_user_flags( id, read_flags( "t" ) );
      }
   }
   
   else
   {
      vip_free = false
      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;
   }
   
   set_task( 30.0, "Mesaj",id, _, _, "b" );
   set_task( 60.0, "Mesaj2",id, _, _, "b" );
   set_task( 1.0, "mesaje",id, _, _, "b" );
   
   new szName[ 32 ];
   get_user_name( id, szName, 31 );
   
   set_hudmessage( 255, 255, 255, -1.0, 0.25, 0, 10.0, 10.0, 0.8, 0.8, 1 );
   show_hudmessage( 0, "VIP '%s' has joined the server!", szName );
   ColorChat( id, "^x04[ Furien ]^x01 Welcome^x03 %s^x01 !!!", szName );
}

//------| 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;
   remove_task( id );
}
//------| 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");
}
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 37 guests