Jump to content
Sign in to follow this  
eNdless

[ REZOLVAT ] Plugin VIP server CLASIC .

Recommended Posts

Nume : PLUGIN VIP

Versiune : Proprie

Descriere detaliata :

As dori si eu un plugin VIP , pentru server clasic . Am gasit mai multe dar niciunul nu a fost asa cum il doresc eu , asa ca m-am decis sa postez aici .

As dori in felul urmator :

1. Bulletdamage
2. 10hp pe kill
3. 10ap pe kill
4. Sa nu aiba double jump
5. Max HP / AP sa fie 100 nu sa fie diferit de ceilalti jucatori
6. Sa primeasca automat 100ap la runda.
7. Sa aiba /vips - /wantvip 
8. Sa nu apara mesaje d-alea hud , sau cand intra un vip pe server.
9. FLAGUL (important) sa il aiba pe " t "
10. Sa nu aiba anumite modele
12. Sa se elimine flagul "t" daca se poate pe mapele de awp/lame
13. AWP sa fie pentru toti , sa nu fie restrictionat.
14. Si sa aiba un meniu dar care sa apara automat la a doua runda , nu sa scriu /vmenu sau alte chestii sa-mi aleg meniul .

Meniul sa contina astea :

1.AK47 + Deagle + GRENAZI
2.M4a1 + Deagle + GRENAZI
3.AWP + Deagle + GRENAZI
( Acest meniu sa fie la ambele echipe , general , iar la CT sa aiba DEFUSE)

V-as ramane super recunoscator daca as primi un asemenea plugin .
Multumesc anticipat .

Edited by eNdless
  • Like 1

Share this post


Link to post
Share on other sites
 
 

Descriere:
Plugin vip pentru mod-ul clasic, aceasta versiune este diferita fata de plugin-ul pe care-l stiti voi.

Info:
- Dupa ce activati plugin-ul, o sa va apara in configs un folder Vip cu 2 fisiere (vips-list.ini si vip-config.cfg)
- Fata de versiunea precedenta, acuma nu mai este nevoie de flag-uri.Pentru a adauga un vip, mergeti in configs/Vip/vips-list.ini si adaugati numele sau steamid-ul jucatorului
- Cvar-urile au fost mutate in configs/Vip/vip-config.cfg (unde sunt explicate)
- Pentru a putea folosi amx_addvips si amx_vips va trebuie flag-ul "l" , adica cel de RCON
- Meniul de arme este compus, momentan din M4a1 si Ak47 (Deagle-ul din versiunea precedenta a fost mutat la itemele pe runda)
- Meniul de arme si itemele ce le primiti la fiecare runda, sunt dezactivate atunci cand pe server ruleaza o harta de tip awp
- Design-ul de la /vips a fost modificat, acuma va apar Vip-urile in Hud
- Meniul de arme o sa apara din a 3-a runda (de cand s-a schimbat harta sau s-a dat restart la runde)
- Am renuntat la motd, puteti sa va faceti separat un plugin
- Il puteti modifica voi si compila dupa bunul plac ( dar pastrati macar autorul:) )
- Cvar-urile se modifica doar din vip-config.cfg, nu aveti treaba cu sma-ul si amxx.cfg
Instalare:
1. Fisierul VIP.sma il puneti in addons/amxmodx/scripting
2. Fisierul VIP.amxx il puneti in addons/amxmodx/plugins
4. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: VIP.amxx



4. Alti pasi necesari....

Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg):

vip_bulletdamage "1" - Afiseaza dmg-ul facut unui jucator
vip_hud "1" - Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips
vip_hp_kill "10" - Hp primit pe un kill
vip_hp_hs "25" - Hp primit pe un hs
vip_hp_max "100" - Valoarea maxima a hp-ului pe care o poate avea Vip-ul
vip_money_damage "3" - Banii primiti pe un damage
vip_money_kill "500" - Banii primiti pe un kill
vip_money_hs "1000" - Banii primiti pe un hs
vip_gun_menu "1" - Afiseaza meniul cu arme
vip_jumps "1" - Permite efectuarea mai multor sarituri deodata
vip_maxjumps "1" - Cate sarituri in plus poate sa faca deodata
vip_items_round "abcdefg" - Primiti diverse obiecte la inceputul fiecarei runde
a - He Grenade
b - Flashbang (x2)
c - Smoke Grenade
d - Deagle
e - Vest + Helm
f - Defuse Kit (Doar CT)
g - NightVision


Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator):

amx_addvips <Nume sau SteamID> - Adauga Vip-urile in lista
amx_vips - Afiseaza toate Vip-urile ce se afla in lista

Comenzi publice (se tasteaza in joc prin apasarea tastei Y):

/vips - arata Vip-urile care se afla pe server

Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini):
fun
fakemeta_util
hamsandwich
engine
 
 
Sper ca te-am fost de ajutor.
Edited by RiLL

Share this post


Link to post
Share on other sites

Asta il am acum , l`am bagat dar ... cum pot pune si AWP in meniu ?


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

#define Keysrod (1<<0)|(1<<1)|(1<<9)
#define ITEM_HE                (1<<0) // "a" 
#define ITEM_FS                (1<<1) // "b" 
#define ITEM_SG                (1<<2) // "c" 
#define ITEM_DG                (1<<3) // "d" 
#define ITEM_VH                (1<<4) // "e"
#define ITEM_DF                (1<<5) // "f"
#define ITEM_NV                (1<<6) // "g"

new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4[ 128 ];
new hk_VipsList[ 128 ][ 32 ], hk_TotalLines;
new hk_IsUserVip[ 33 ];
new hk_viplist[ ] = "vips_list.ini";
new hk_Folder[ ] = "Vip";
new hk_cfg[ ] = "vip-config";
new hk_File[ 128 ];
new hk_File1[ 128 ];
new g_type, g_hudmsg
new vip_hud
new maxplayers
new mpd, mkb, mhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new jumps, items
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
   Primary = 1
   , Secondary
   , Knife
   , Grenades
   , C4
};

public plugin_init() 
{
   register_plugin("Vip", "2.0", "Hasky")
   
   register_concmd("say /vips", "showAdmin", ADMIN_ALL, "")
   register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>")
   register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor")
   register_concmd("say /vip","ShowMotd")
   
   RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 )
   register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
   register_event("DeathMsg", "hook_death", "a", "1>0")
   register_event("Damage","Damage","b")
   register_event("DeathMsg","death_msg","a")
   register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
   register_event("TextMsg", "Event_TextMsg_Restart", "a", "2Game_C", "2Game_w")
   register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
   
   register_cvar("vip_maxjumps","1")
   jumps = register_cvar("vip_jumps","1")
   vip_hud = register_cvar("vip_hud","1")
   g_type = register_cvar("vip_bulletdamage","1")
   health_add = register_cvar("vip_hp_kill", "10")
   health_hs_add = register_cvar("vip_hp_hs", "25")
   health_max = register_cvar("vip_hp_max", "100")
   mpd = register_cvar("vip_money_damage","3")
   mkb = register_cvar("vip_money_kill","500")
   mhb = register_cvar("vip_money_hs","1000")
   items = register_cvar("vip_items_round", "abcdefg")
   gun_menu = register_cvar("vip_gun_menu","1")
   g_hudmsg = CreateHudSyncObj()
   maxplayers = get_maxplayers()
   
   
}

public plugin_cfg()
{   
   
   
   new Dir[ 64 ];
   get_configsdir(Dir,charsmax(Dir));
   formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder );
   formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg );
   if(!dir_exists(hk_File))
   mkdir(hk_File);

   formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist );
   
   if (!file_exists(hk_File4))
   write_file(hk_File4,"; -->VIP List<--");
   
   new hk_Buffer[ 192 ], hk_Line, hk_Len;
   while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) )
   {
      if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) )
         continue;
         
      copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer );

   }   
   
   if(!file_exists(hk_File1))
   {
   write_file(hk_File1,"// Vip Configuration File")
   write_file(hk_File1,"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// BulletDamage - afiseaza dmg-ul facut unui jucator")
   write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
   write_file(hk_File1,"vip_bulletdamage ^"1^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Vips Online")
   write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips")
   write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
   write_file(hk_File1,"vip_hud ^"1^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Hp primit pe un kill  ")
   write_file(hk_File1,"vip_hp_kill ^"10^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Hp primit pe un hs")
   write_file(hk_File1,"vip_hp_hs ^"25^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul")
   write_file(hk_File1,"vip_hp_max ^"100^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Banii primiti pe un damage")
   write_file(hk_File1,"vip_money_damage ^"3^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Banii primiti pe un kill")
   write_file(hk_File1,"vip_money_kill ^"200^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Banii primiti pe un hs")
   write_file(hk_File1,"vip_money_hs ^"500^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme")
   write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat")
   write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
   write_file(hk_File1,"vip_gun_menu ^"1^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde")
   write_file(hk_File1,"// a - He Grenade")
   write_file(hk_File1,"// b - Flashbang (x2)")
   write_file(hk_File1,"// c - Smoke Grenade ")
   write_file(hk_File1,"// d - Deagle")
   write_file(hk_File1,"// e - Vest + Helm")
   write_file(hk_File1,"// f - Defuse Kit (Doar CT)")
   write_file(hk_File1,"// g - NightVision")
   write_file(hk_File1,"vip_items_round ^"abcdefg^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Jumps - Salturi")
   write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
   write_file(hk_File1,"vip_jumps ^"0^"")
   write_file(hk_File1,"")
   write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
   write_file(hk_File1,"vip_maxjumps ^"0^"")
   write_file(hk_File1,"")
   
   }
   
   server_cmd("exec %s",hk_File1)
}

public client_putinserver(id)
{
   
   hk_IsUserVip[ id ] = 0;
   jumpnum[id] = 0
   dojump[id] = false
}

public client_disconnect(id)
{
   
   hk_IsUserVip[ id ] = 0;
   jumpnum[id] = 0
   dojump[id] = false
}
public addvips(id, level, cid)
{
   if (!cmd_access(id, level, cid, 2))
      return PLUGIN_HANDLED

   new arg[32]   
   
   read_argv(1, arg, 31)
   
   new szLog[256];
   formatex(szLog,255,"%s",arg);
   write_file(hk_File4,szLog,-1);
   console_print(id, "[DROGATII] Vip-ul a fost adaugat in lista")
   
   return PLUGIN_HANDLED
   
}
public vips(id, level, cid)
{
   if (!cmd_access(id, level, cid, 1))
      return PLUGIN_HANDLED
   
   new s_Name[ 32 ], s_AuthID[ 32 ];
   get_user_name ( id, s_Name, 31 );
   get_user_authid ( id, s_AuthID, 31 );
   
   console_print(id, "===========================")
   for ( new i; i < hk_TotalLines; i++ )
   {
      if (  strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) )
      console_print(id, " - %s", hk_VipsList[ i ])   
         
      
   }
   console_print(id, "===========================")
   return PLUGIN_HANDLED
}


public Event_TextMsg_Restart()
{
    hk_IsRestarting = true
}
 
public Event_HLTV_New_Round()
{
    if( hk_IsRestarting )
    {
        hk_IsRestarting = false
        hk_iRoundCount = 0
    }
}

public Hook_PlayerSpawn ( const id )
{
   if ( ! is_user_alive ( id ) )
      return HAM_IGNORED;
   if ( ! is_user_vip ( id ) )
   {
      hk_IsUserVip[ id ] = 0;
      return HAM_IGNORED;
   }
   
   hk_IsUserVip[ id ] = 1;
   hk_iRoundCount++
   new map[32];
   get_mapname(map,31);
   
   if(equali(map, "awp_", 3))
   return HAM_IGNORED;
   
   if (get_pcvar_num(gun_menu) == 1)
   if(hk_iRoundCount>=4)
   Showrod(id);
   
   set_task(0.3, "giveitems", id)
   return HAM_IGNORED;
}

public on_damage(id)
{
   if(get_pcvar_num(g_type))
   {
      static attacker; attacker = get_user_attacker(id)
      static damage; damage = read_data(2)   

      if ( is_user_vip ( attacker ) )
      {
         hk_IsUserVip[ id ] = 1;
      
         if(is_user_connected(attacker))
         {
            if(fm_is_ent_visible(attacker,id))
            {
               set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
               ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage)            
            }
               
            
         }
      }else hk_IsUserVip[ id ] = 0;
   }
}

public ShowMotd(id)
{
 show_motd(id, "vip.txt")
}
public client_authorized(id)
{
 set_task(30.0, "PrintText" ,id)
}
public PrintText(id)
{
 client_print(id, print_chat, "[V.I.P] Scrie /vip pentru a vedea privilegiile V.I.P-ULUI.")
}
public Damage(id)
{
   new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
   if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
   
   if ( is_user_vip ( id ) )
   {
      hk_IsUserVip[ id ] = 1;
      new money = read_data(2) * get_pcvar_num(mpd)
      if(hitpoint==1) money += get_pcvar_num(mhb)
      cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
   }else hk_IsUserVip[ id ] = 0;
}

public death_msg()
{
   if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) 
   cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public hook_death()
{
   hk_Killer = read_data(1)
   
   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      hk_HpAdd = get_pcvar_num (health_hs_add)
   }
   else
   hk_HpAdd = get_pcvar_num (health_add)
   
   hk_HpMax = get_pcvar_num (health_max)
   
   
   if ( ! is_user_vip ( hk_Killer ) )
   {
      hk_IsUserVip[ hk_Killer ] = 0;
      return;
   }
   hk_IsUserVip[ hk_Killer ] = 1;
   
   hk_KillerHp = get_user_health(hk_Killer)
   hk_KillerHp += hk_HpAdd
   
   if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax
   set_user_health(hk_Killer, hk_KillerHp)

   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(hk_Killer, "Healed +%d hp", hk_HpAdd)

}

public showAdmin(id)
{
   if(get_pcvar_num(vip_hud) == 1)
   {
         
      
      new num, iLen, admin
      static pl[32], name[32], szBuff[2048]
   
      get_players(pl, num, "c")
   
      for(new i = 0; i < num; i++)
      {
         if (  is_user_vip ( pl[i] ) )
         {
         hk_IsUserVip[ pl[i] ] = 1;
         get_user_name(pl[i], name, 31)
         iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name)
         admin++
         }
         
      }

   
      set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 )
      show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff)
   
      arrayset(szBuff, 0, 2048)
   }
   return PLUGIN_HANDLED
}

public client_PreThink(id)
{
      if(!is_user_alive(id)) return PLUGIN_CONTINUE
      if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
   
      if ( ! is_user_vip ( id ) )
      {
         hk_IsUserVip[ id ] = 0;
         return PLUGIN_CONTINUE
      }
   
   
      hk_IsUserVip[ id ] = 1;
      new nbut = get_user_button(id)
      new obut = get_user_oldbutton(id)
      if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
      {
         if(jumpnum[id] < get_cvar_num("vip_maxjumps"))
         {
            dojump[id] = true
            jumpnum[id]++
            return PLUGIN_CONTINUE
         }
      }
      if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
      {
         jumpnum[id] = 0
         return PLUGIN_CONTINUE
      }
   
      return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
   if(!is_user_alive(id)) return PLUGIN_CONTINUE
   if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
   
   if ( ! is_user_vip ( id ) )
   {
      hk_IsUserVip[ id ] = 0;
      return PLUGIN_CONTINUE
   }
   
   
   hk_IsUserVip[ id ] = 1;
   if(dojump[id] == true)
   {
      new Float:velocity[3]   
      entity_get_vector(id,EV_VEC_velocity,velocity)
      velocity[2] = random_float(265.0,285.0)
      entity_set_vector(id,EV_VEC_velocity,velocity)
      dojump[id] = false
      return PLUGIN_CONTINUE
   }
   
   return PLUGIN_CONTINUE
}

public Showrod(id) 
{
   show_menu(id, Keysrod, "Guns Menu^n\w1. M4a1^n\w2. AK47^n\w3. AWP^n0 Exit^n", -1, "rod")
}

public Pressedrod(id, key) 
{
   
   switch (key) {
      case 0: { 
         StripWeapons(id, Primary)
         give_item(id,"weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90 );
         }

      case 1: { 
         StripWeapons(id, Primary)
         give_item(id,"weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90);
         }

                case 2: { 
         StripWeapons(id, Primary)
         give_item(id,"weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 90);
         }


      case 9: {          
         }
           }
   return PLUGIN_CONTINUE
}

public get_item_flags() 
{ 
   new sFlags[24] 
   get_pcvar_string(items,sFlags,23) 
   return read_flags(sFlags) 
} 

public giveitems(id)
{
      new iFlags = get_item_flags()  
      new CsTeams:userTeam = cs_get_user_team(id)
   
      if (iFlags&ITEM_HE)
      fm_give_item(id,"weapon_hegrenade") 
      
             
      if(iFlags&ITEM_FS)
      {
      fm_give_item(id,"weapon_flashbang") 
      fm_give_item(id,"weapon_flashbang") 
      }
      
      if(iFlags&ITEM_SG)
      fm_give_item(id,"weapon_smokegrenade") 
      
      
      if(iFlags&ITEM_DG)
      {
      StripWeapons(id, Secondary);
      fm_give_item(id,"weapon_deagle") 
      cs_set_user_bpammo(id, CSW_DEAGLE, 35 );
      }
      
      if(iFlags&ITEM_VH)
      fm_give_item(id,"item_assaultsuit")
   
      if(userTeam == CS_TEAM_CT && iFlags&ITEM_DF)
      fm_give_item(id,"item_thighpack")
      
      if(iFlags&ITEM_NV)
      cs_set_user_nvg(id, 1)
      
      
}

stock is_user_vip ( id )
{
   new s_Name[ 32 ], s_AuthID[ 32 ];
   get_user_name ( id, s_Name, 31 );
   get_user_authid ( id, s_AuthID, 31 );
   
   for ( new i; i < hk_TotalLines; i++ )
   {
      if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) )
         return 1;
      if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) )
         return 1;
   }
   
   return 0;

}

stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
   new iReturn;
   
   if(is_user_alive(id))
   {
      new iEntity, iWeapon;
      while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
         iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
   }
   
   return iReturn;
}

stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
   if ( !( 1 <= iSlot <= 5 ) )
      return 0;
   
   iEntity = 0;
   const m_rgpPlayerItems_Slot0 = 367;
   const m_iId = 43;
   const XO_WEAPONS = 4;
   const XO_PLAYER = 5;
      
   iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );
   
   return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
}  

stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
   new iWeapon
   if( !iSlot )
   {
      static const iWeaponsSlots[] = {
         -1,
         2, //CSW_P228
         -1,
         1, //CSW_SCOUT
         4, //CSW_HEGRENADE
         1, //CSW_XM1014
         5, //CSW_C4
         1, //CSW_MAC10
         1, //CSW_AUG
         4, //CSW_SMOKEGRENADE
         2, //CSW_ELITE
         2, //CSW_FIVESEVEN
         1, //CSW_UMP45
         1, //CSW_SG550
         1, //CSW_GALIL
         1, //CSW_FAMAS
         2, //CSW_USP
         2, //CSW_GLOCK18
         1, //CSW_AWP
         1, //CSW_MP5NAVY
         1, //CSW_M249
         1, //CSW_M3
         1, //CSW_M4A1
         1, //CSW_TMP
         1, //CSW_G3SG1
         4, //CSW_FLASHBANG
         2, //CSW_DEAGLE
         1, //CSW_SG552
         1, //CSW_AK47
         3, //CSW_KNIFE
         1 //CSW_P90
      }
      iSlot = iWeaponsSlots[iCswId]
   }

   const XTRA_OFS_PLAYER = 5
   const m_rgpPlayerItems_Slot0 = 367

   iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)

   const XTRA_OFS_WEAPON = 4
   const m_pNext = 42
   const m_iId = 43

   while( iWeapon > 0 )
   {
      if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
      {
         break
      }
      iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
   }

   if( iWeapon > 0 )
   {
      const m_pActiveItem = 373
      if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
      {
         ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
      }

      if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
      {
         user_has_weapon(id, iCswId, 0)
         ExecuteHamB(Ham_Item_Kill, iWeapon)
         return 1
      }
   }

   return 0
}

Am pus eu acolo AWP , dar cand dau pe 3 nu face nimic ...

Cred ca e de aici : show_menu(id, Keysrod, "Guns Menu^n\w1. M4a1^n\w2. AK47^n\w3. AWP^n0. Exit^n", -1, "rod")

inainte era : show_menu(id, Keysrod, "Guns Menu^n\w1. M4a1^n\w2. AK47^n0. Exit^n", -1, "rod")

Edited by eNdless

Share this post


Link to post
Share on other sites

/* Plugin generated by AMXX-Studio */

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

public plugin_init()
{
    register_plugin("VIPGunmenu", "0.1", "Ex1ne")
    RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1);
}

public Fwd_PlayerSpawn_Post(id)
{
    if(!(get_user_flags(id) & ADMIN_LEVEL_H))
{
        return PLUGIN_HANDLED
    }
    set_task(3.0, "VipMenu", id)
    return PLUGIN_CONTINUE
}
public VipMenu(id)
{
    new szText[555 char]
    formatex(szText, charsmax(szText), "\yVIP-Menu!")
    new VipMenu = menu_create(szText, "VipMenuHandle")
    
    formatex(szText, charsmax(szText), "\rM4A1 + Deagle.")
    menu_additem(VipMenu, szText, "1", 0)
    formatex(szText, charsmax(szText), "\rAK47 + Deagle.")
    menu_additem(VipMenu, szText, "2", 0)
    formatex(szText, charsmax(szText), "\rAWP + Deagle.")
    menu_additem(VipMenu, szText, "3", 0)
    
    menu_setprop(VipMenu, MPROP_EXIT, MEXIT_ALL)
    menu_display(id, VipMenu, 0)
    
    return PLUGIN_HANDLED
}

public VipMenuHandle(id, menu, item)
{
    if(item == MENU_EXIT)
    {
        menu_destroy(menu)
        return PLUGIN_HANDLED
    }
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data, charsmax(data), iName, charsmax(iName), callback )
    new key = str_to_num(data)
    
    switch(key)
    {
        case 1: HandleM4Menu(id)
        case 2: HandleAKMenu(id)
        case 3: HandleAwpMenu(id)
    }
    return PLUGIN_HANDLED
}

public HandleM4Menu(id)
{
    if(!is_user_alive(id))
    {
        return PLUGIN_HANDLED
    }
    give_item(id, "weapon_m4a1")
    give_item(id, "weapon_deagle")
    cs_set_user_bpammo(id, CSW_M4A1, 90)
    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
    return PLUGIN_HANDLED
}

public HandleAKMenu(id)
{
    if(!is_user_alive(id))
    {
        return PLUGIN_HANDLED
    }
    give_item(id, "weapon_ak47")
    give_item(id, "weapon_deagle")
    cs_set_user_bpammo(id, CSW_AK47, 90)
    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
    return PLUGIN_HANDLED
}

public HandleAwpMenu(id)
{
    if(!is_user_alive(id))
    {
        return PLUGIN_HANDLED
    }
    give_item(id, "weapon_awp")
    give_item(id, "weapon_deagle")
    cs_set_user_bpammo(id, CSW_AWP, 30)
    cs_set_user_bpammo(id, CSW_DEAGLE, 35)
    return PLUGIN_HANDLED
}

  • Like 1

Share this post


Link to post
Share on other sites

/* Plugin generated by AMXX-Studio */

 

#include <amxmodx>

#include <amxmisc>

#include <hamsandwich>

#include <fun>

#include <cstrike>

 

public plugin_init()

{

    register_plugin("VIPGunmenu", "0.1", "Ex1ne")

    RegisterHam(Ham_Spawn, "player", "Fwd_PlayerSpawn_Post", 1);

}

 

public Fwd_PlayerSpawn_Post(id)

{

    if(!(get_user_flags(id) & ADMIN_LEVEL_H))

{

        return PLUGIN_HANDLED

    }

    set_task(3.0, "VipMenu", id)

    return PLUGIN_CONTINUE

}

public VipMenu(id)

{

    new szText[555 char]

    formatex(szText, charsmax(szText), "\yVIP-Menu!")

    new VipMenu = menu_create(szText, "VipMenuHandle")

    

    formatex(szText, charsmax(szText), "\rM4A1 + Deagle.")

    menu_additem(VipMenu, szText, "1", 0)

    formatex(szText, charsmax(szText), "\rAK47 + Deagle.")

    menu_additem(VipMenu, szText, "2", 0)

    formatex(szText, charsmax(szText), "\rAWP + Deagle.")

    menu_additem(VipMenu, szText, "3", 0)

    

    menu_setprop(VipMenu, MPROP_EXIT, MEXIT_ALL)

    menu_display(id, VipMenu, 0)

    

    return PLUGIN_HANDLED

}

 

public VipMenuHandle(id, menu, item)

{

    if(item == MENU_EXIT)

    {

        menu_destroy(menu)

        return PLUGIN_HANDLED

    }

    new data[6], iName[64], access, callback

    menu_item_getinfo(menu, item, access, data, charsmax(data), iName, charsmax(iName), callback )

    new key = str_to_num(data)

    

    switch(key)

    {

        case 1: HandleM4Menu(id)

        case 2: HandleAKMenu(id)

        case 3: HandleAwpMenu(id)

    }

    return PLUGIN_HANDLED

}

 

public HandleM4Menu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_m4a1")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_M4A1, 90)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

}

 

public HandleAKMenu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_ak47")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_AK47, 90)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

}

 

public HandleAwpMenu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_awp")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_AWP, 30)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

}

 

Si adaug asta in continuare sau trebuie sa sterg ceva ?

Share this post


Link to post
Share on other sites

 

 

public HandleM4Menu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_m4a1")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_M4A1, 90)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

}

 

public HandleAKMenu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_ak47")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_AK47, 90)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

}

 

public HandleAwpMenu(id)

{

    if(!is_user_alive(id))

    {

        return PLUGIN_HANDLED

    }

    give_item(id, "weapon_awp")

    give_item(id, "weapon_deagle")

    cs_set_user_bpammo(id, CSW_AWP, 30)

    cs_set_user_bpammo(id, CSW_DEAGLE, 35)

    return PLUGIN_HANDLED

Deasta ziceam endless, la cum obs le-a schimbat rill, tu doar ai schimbat numai la ShowPlayerDialog, mie asa imi place sa ii spun sau SetPlayerDialog.

Share this post


Link to post
Share on other sites

Deci asta o pun acolo in sma la sfarsit ? Nu mai sterg nimic ?

 

Sau puneti-mi mie direct in asta :
 


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

#define Keysrod (1<<0)|(1<<1)|(1<<9)
#define ITEM_HE                (1<<0) // "a" 
#define ITEM_FS                (1<<1) // "b" 
#define ITEM_SG                (1<<2) // "c" 
#define ITEM_DG                (1<<3) // "d" 
#define ITEM_VH                (1<<4) // "e"
#define ITEM_DF                (1<<5) // "f"
#define ITEM_NV                (1<<6) // "g"

new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4[ 128 ];
new hk_VipsList[ 128 ][ 32 ], hk_TotalLines;
new hk_IsUserVip[ 33 ];
new hk_viplist[ ] = "vips_list.ini";
new hk_Folder[ ] = "Vip";
new hk_cfg[ ] = "vip-config";
new hk_File[ 128 ];
new hk_File1[ 128 ];
new g_type, g_hudmsg
new vip_hud
new maxplayers
new mpd, mkb, mhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new jumps, items
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
	Primary = 1
	, Secondary
	, Knife
	, Grenades
	, C4
};

public plugin_init() 
{
	register_plugin("Vip", "2.0", "Hasky")
	
	register_concmd("say /vips", "showAdmin", ADMIN_ALL, "")
	register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>")
	register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor")
	register_concmd("say /vip","ShowMotd")
	
	RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 )
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
	register_event("DeathMsg", "hook_death", "a", "1>0")
	register_event("Damage","Damage","b")
	register_event("DeathMsg","death_msg","a")
	register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
	register_event("TextMsg", "Event_TextMsg_Restart", "a", "2Game_C", "2Game_w")
	register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
	
	register_cvar("vip_maxjumps","1")
	jumps = register_cvar("vip_jumps","1")
	vip_hud = register_cvar("vip_hud","1")
	g_type = register_cvar("vip_bulletdamage","1")
	health_add = register_cvar("vip_hp_kill", "10")
	health_hs_add = register_cvar("vip_hp_hs", "25")
	health_max = register_cvar("vip_hp_max", "100")
	mpd = register_cvar("vip_money_damage","3")
	mkb = register_cvar("vip_money_kill","500")
	mhb = register_cvar("vip_money_hs","1000")
	items = register_cvar("vip_items_round", "abcdefg")
	gun_menu = register_cvar("vip_gun_menu","1")
	g_hudmsg = CreateHudSyncObj()
	maxplayers = get_maxplayers()
	
	
}

public plugin_cfg()
{	
	
	
	new Dir[ 64 ];
	get_configsdir(Dir,charsmax(Dir));
	formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder );
	formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg );
	if(!dir_exists(hk_File))
	mkdir(hk_File);

	formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist );
	
	if (!file_exists(hk_File4))
	write_file(hk_File4,"; -->VIP List<--");
	
	new hk_Buffer[ 192 ], hk_Line, hk_Len;
	while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) )
	{
		if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) )
			continue;
			
		copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer );

	}	
	
	if(!file_exists(hk_File1))
	{
	write_file(hk_File1,"// Vip Configuration File")
	write_file(hk_File1,"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// BulletDamage - afiseaza dmg-ul facut unui jucator")
	write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
	write_file(hk_File1,"vip_bulletdamage ^"1^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Vips Online")
	write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips")
	write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
	write_file(hk_File1,"vip_hud ^"1^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Hp primit pe un kill  ")
	write_file(hk_File1,"vip_hp_kill ^"10^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Hp primit pe un hs")
	write_file(hk_File1,"vip_hp_hs ^"25^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul")
	write_file(hk_File1,"vip_hp_max ^"100^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Banii primiti pe un damage")
	write_file(hk_File1,"vip_money_damage ^"3^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Banii primiti pe un kill")
	write_file(hk_File1,"vip_money_kill ^"200^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Banii primiti pe un hs")
	write_file(hk_File1,"vip_money_hs ^"500^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme")
	write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat")
	write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
	write_file(hk_File1,"vip_gun_menu ^"1^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde")
	write_file(hk_File1,"// a - He Grenade")
	write_file(hk_File1,"// b - Flashbang (x2)")
	write_file(hk_File1,"// c - Smoke Grenade ")
	write_file(hk_File1,"// d - Deagle")
	write_file(hk_File1,"// e - Vest + Helm")
	write_file(hk_File1,"// f - Defuse Kit (Doar CT)")
	write_file(hk_File1,"// g - NightVision")
	write_file(hk_File1,"vip_items_round ^"abcdefg^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Jumps - Salturi")
	write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
	write_file(hk_File1,"vip_jumps ^"0^"")
	write_file(hk_File1,"")
	write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
	write_file(hk_File1,"vip_maxjumps ^"0^"")
	write_file(hk_File1,"")
	
	}
	
	server_cmd("exec %s",hk_File1)
}

public client_putinserver(id)
{
	
	hk_IsUserVip[ id ] = 0;
	jumpnum[id] = 0
	dojump[id] = false
}

public client_disconnect(id)
{
	
	hk_IsUserVip[ id ] = 0;
	jumpnum[id] = 0
	dojump[id] = false
}
public addvips(id, level, cid)
{
	if (!cmd_access(id, level, cid, 2))
		return PLUGIN_HANDLED

	new arg[32]	
	
	read_argv(1, arg, 31)
	
	new szLog[256];
	formatex(szLog,255,"%s",arg);
	write_file(hk_File4,szLog,-1);
	console_print(id, "[DROGATII] Vip-ul a fost adaugat in lista")
	
	return PLUGIN_HANDLED
	
}
public vips(id, level, cid)
{
	if (!cmd_access(id, level, cid, 1))
		return PLUGIN_HANDLED
	
	new s_Name[ 32 ], s_AuthID[ 32 ];
	get_user_name ( id, s_Name, 31 );
	get_user_authid ( id, s_AuthID, 31 );
	
	console_print(id, "===========================")
	for ( new i; i < hk_TotalLines; i++ )
	{
		if (  strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) )
		console_print(id, " - %s", hk_VipsList[ i ])	
			
		
	}
	console_print(id, "===========================")
	return PLUGIN_HANDLED
}


public Event_TextMsg_Restart()
{
    hk_IsRestarting = true
}
 
public Event_HLTV_New_Round()
{
    if( hk_IsRestarting )
    {
        hk_IsRestarting = false
        hk_iRoundCount = 0
    }
}

public Hook_PlayerSpawn ( const id )
{
	if ( ! is_user_alive ( id ) )
		return HAM_IGNORED;
	if ( ! is_user_vip ( id ) )
	{
		hk_IsUserVip[ id ] = 0;
		return HAM_IGNORED;
	}
	
	hk_IsUserVip[ id ] = 1;
	hk_iRoundCount++
	new map[32];
	get_mapname(map,31);
	
	if(equali(map, "awp_", 3))
	return HAM_IGNORED;
	
	if (get_pcvar_num(gun_menu) == 1)
	if(hk_iRoundCount>=4)
	Showrod(id);
	
	set_task(0.3, "giveitems", id)
	return HAM_IGNORED;
}

public on_damage(id)
{
	if(get_pcvar_num(g_type))
	{
		static attacker; attacker = get_user_attacker(id)
		static damage; damage = read_data(2)	

		if ( is_user_vip ( attacker ) )
		{
			hk_IsUserVip[ id ] = 1;
		
			if(is_user_connected(attacker))
			{
				if(fm_is_ent_visible(attacker,id))
				{
					set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
					ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage)				
				}
					
				
			}
		}else hk_IsUserVip[ id ] = 0;
	}
}

public ShowMotd(id)
{
 show_motd(id, "vip.txt")
}
public client_authorized(id)
{
 set_task(30.0, "PrintText" ,id)
}
public PrintText(id)
{
 client_print(id, print_chat, "[V.I.P] Scrie /vip pentru a vedea privilegiile V.I.P-ULUI.")
}
public Damage(id)
{
	new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
	if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
	
	if ( is_user_vip ( id ) )
	{
		hk_IsUserVip[ id ] = 1;
		new money = read_data(2) * get_pcvar_num(mpd)
		if(hitpoint==1) money += get_pcvar_num(mhb)
		cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
	}else hk_IsUserVip[ id ] = 0;
}

public death_msg()
{
	if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) 
	cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public hook_death()
{
	hk_Killer = read_data(1)
   
	if ( (read_data(3) == 1) && (read_data(5) == 0) )
	{
		hk_HpAdd = get_pcvar_num (health_hs_add)
	}
	else
	hk_HpAdd = get_pcvar_num (health_add)
	
	hk_HpMax = get_pcvar_num (health_max)
   
   
	if ( ! is_user_vip ( hk_Killer ) )
	{
		hk_IsUserVip[ hk_Killer ] = 0;
		return;
	}
	hk_IsUserVip[ hk_Killer ] = 1;
	
	hk_KillerHp = get_user_health(hk_Killer)
	hk_KillerHp += hk_HpAdd
   
	if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax
	set_user_health(hk_Killer, hk_KillerHp)

	set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
	show_hudmessage(hk_Killer, "Healed +%d hp", hk_HpAdd)

}

public showAdmin(id)
{
	if(get_pcvar_num(vip_hud) == 1)
	{
			
		
		new num, iLen, admin
		static pl[32], name[32], szBuff[2048]
	
		get_players(pl, num, "c")
	
		for(new i = 0; i < num; i++)
		{
			if (  is_user_vip ( pl[i] ) )
			{
			hk_IsUserVip[ pl[i] ] = 1;
			get_user_name(pl[i], name, 31)
			iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name)
			admin++
			}
			
		}

	
		set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 )
		show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff)
	
		arrayset(szBuff, 0, 2048)
	}
	return PLUGIN_HANDLED
}

public client_PreThink(id)
{
		if(!is_user_alive(id)) return PLUGIN_CONTINUE
		if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
	
		if ( ! is_user_vip ( id ) )
		{
			hk_IsUserVip[ id ] = 0;
			return PLUGIN_CONTINUE
		}
	
	
		hk_IsUserVip[ id ] = 1;
		new nbut = get_user_button(id)
		new obut = get_user_oldbutton(id)
		if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
		{
			if(jumpnum[id] < get_cvar_num("vip_maxjumps"))
			{
				dojump[id] = true
				jumpnum[id]++
				return PLUGIN_CONTINUE
			}
		}
		if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
		{
			jumpnum[id] = 0
			return PLUGIN_CONTINUE
		}
	
		return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
	if(!is_user_alive(id)) return PLUGIN_CONTINUE
	if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
	
	if ( ! is_user_vip ( id ) )
	{
		hk_IsUserVip[ id ] = 0;
		return PLUGIN_CONTINUE
	}
	
	
	hk_IsUserVip[ id ] = 1;
	if(dojump[id] == true)
	{
		new Float:velocity[3]	
		entity_get_vector(id,EV_VEC_velocity,velocity)
		velocity[2] = random_float(265.0,285.0)
		entity_set_vector(id,EV_VEC_velocity,velocity)
		dojump[id] = false
		return PLUGIN_CONTINUE
	}
	
	return PLUGIN_CONTINUE
}

public Showrod(id) 
{
	show_menu(id, Keysrod, "Guns Menu^n\w1. M4a1^n\w2. AK47^n\w3. AWP^n0 Exit^n", -1, "rod")
}

public Pressedrod(id, key) 
{
	
	switch (key) {
		case 0: { 
			StripWeapons(id, Primary)
			give_item(id,"weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90 );
			}

		case 1: { 
			StripWeapons(id, Primary)
			give_item(id,"weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90);
			}

                case 2: { 
			StripWeapons(id, Primary)
			give_item(id,"weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 90);
			}


		case 9: { 			
			}
		     }
	return PLUGIN_CONTINUE
}

public get_item_flags() 
{ 
	new sFlags[24] 
	get_pcvar_string(items,sFlags,23) 
	return read_flags(sFlags) 
} 

public giveitems(id)
{
		new iFlags = get_item_flags()  
		new CsTeams:userTeam = cs_get_user_team(id)
	
		if (iFlags&ITEM_HE)
		fm_give_item(id,"weapon_hegrenade") 
		
             
		if(iFlags&ITEM_FS)
		{
		fm_give_item(id,"weapon_flashbang") 
		fm_give_item(id,"weapon_flashbang") 
		}
		
		if(iFlags&ITEM_SG)
		fm_give_item(id,"weapon_smokegrenade") 
		
		
		if(iFlags&ITEM_DG)
		{
		StripWeapons(id, Secondary);
		fm_give_item(id,"weapon_deagle") 
		cs_set_user_bpammo(id, CSW_DEAGLE, 35 );
		}
		
		if(iFlags&ITEM_VH)
		fm_give_item(id,"item_assaultsuit")
	
		if(userTeam == CS_TEAM_CT && iFlags&ITEM_DF)
		fm_give_item(id,"item_thighpack")
		
		if(iFlags&ITEM_NV)
		cs_set_user_nvg(id, 1)
		
		
}

stock is_user_vip ( id )
{
	new s_Name[ 32 ], s_AuthID[ 32 ];
	get_user_name ( id, s_Name, 31 );
	get_user_authid ( id, s_AuthID, 31 );
	
	for ( new i; i < hk_TotalLines; i++ )
	{
		if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) )
			return 1;
		if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) )
			return 1;
	}
	
	return 0;

}

stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
	new iReturn;
	
	if(is_user_alive(id))
	{
		new iEntity, iWeapon;
		while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
			iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
	}
	
	return iReturn;
}

stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
	if ( !( 1 <= iSlot <= 5 ) )
		return 0;
	
	iEntity = 0;
	const m_rgpPlayerItems_Slot0 = 367;
	const m_iId = 43;
	const XO_WEAPONS = 4;
	const XO_PLAYER = 5;
		
	iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );
	
	return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
}  

stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
	new iWeapon
	if( !iSlot )
	{
		static const iWeaponsSlots[] = {
			-1,
			2, //CSW_P228
			-1,
			1, //CSW_SCOUT
			4, //CSW_HEGRENADE
			1, //CSW_XM1014
			5, //CSW_C4
			1, //CSW_MAC10
			1, //CSW_AUG
			4, //CSW_SMOKEGRENADE
			2, //CSW_ELITE
			2, //CSW_FIVESEVEN
			1, //CSW_UMP45
			1, //CSW_SG550
			1, //CSW_GALIL
			1, //CSW_FAMAS
			2, //CSW_USP
			2, //CSW_GLOCK18
			1, //CSW_AWP
			1, //CSW_MP5NAVY
			1, //CSW_M249
			1, //CSW_M3
			1, //CSW_M4A1
			1, //CSW_TMP
			1, //CSW_G3SG1
			4, //CSW_FLASHBANG
			2, //CSW_DEAGLE
			1, //CSW_SG552
			1, //CSW_AK47
			3, //CSW_KNIFE
			1 //CSW_P90
		}
		iSlot = iWeaponsSlots[iCswId]
	}

	const XTRA_OFS_PLAYER = 5
	const m_rgpPlayerItems_Slot0 = 367

	iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)

	const XTRA_OFS_WEAPON = 4
	const m_pNext = 42
	const m_iId = 43

	while( iWeapon > 0 )
	{
		if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
		{
			break
		}
		iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
	}

	if( iWeapon > 0 )
	{
		const m_pActiveItem = 373
		if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
		{
			ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
		}

		if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
		{
			user_has_weapon(id, iCswId, 0)
			ExecuteHamB(Ham_Item_Kill, iWeapon)
			return 1
		}
	}

	return 0
} 

Puneti meniu cu 3 arme , adaugati AWP .

Edited by RF Sp1dey
Edit Sp1dey ca-sa nu fac off topic. Da, adauga aia ce ti-a dat rill daca nu iti merge posteaza tot aici.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×
×
  • Create New...