Raised This Month: $51 Target: $400
 12% 

VIP plugin bugs


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Shadows Adi
AlliedModders Donor
Join Date: Aug 2019
Location: Romania
Old 11-21-2019 , 13:51   VIP plugin bugs
Reply With Quote #1

Plugin with bugs:
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <engine>
#include <colorchat>

#define ITEM_HE (1<<0) // "y"
#define ITEM_FS (1<<1) // "y"
#define ITEM_SG (1<<2) // "y"
#define ITEM_DG (1<<3) // "y"
#define ITEM_VH (1<<4) // "y"
#define ITEM_DF (1<<5) // "y"
#define ITEM_NV (1<<6) // "y"
#define VIP_LEVEL_ACCES ADMIN_LEVEL_H

#pragma tabsize 0

new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4128 ];
new 
hk_VipsList128 ][ 32 ], hk_TotalLines;
new 
hk_IsUserVip33 ];
new 
hk_viplist[ ] = "Lista_VIP.ini";
new 
hk_Folder[ ] = "CSGO_VIP";
new 
hk_cfg[ ] = "Setari_VIP";
new 
hk_File128 ];
new 
hk_File1128 ];
new 
g_typeg_hudmsg
new vip_hud
new maxplayers
new mpdmkbmhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new jumpsitems
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
    
Primary 1
    
Secondary
    
Knife
    
Grenades
    
C4
};

const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

public 
plugin_init() 
{
    
register_plugin("Vip""1.0""Adi")
    
    
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_clcmd("say /vmenu""vmenu", -1);
    
register_clcmd("say /arme""vmenu2", -1);
    
RegisterHam Ham_Spawn"player""Hook_PlayerSpawn")
    
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_event("TextMsg""Event_TextMsg_Restart""a""2&#Game_C""2&#Game_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 
Dir64 ];
    
get_configsdir(Dir,charsmax(Dir));
    
formatex hk_Filecharsmax hk_File ), "%s/%s"Dirhk_Folder );
    
formatex hk_File1charsmax hk_File1 ), "%s/%s.cfg"hk_Filehk_cfg );
    if(!
dir_exists(hk_File))
    
mkdir(hk_File);

    
formatex hk_File4charsmax hk_File4 ), "%s/%s"hk_Filehk_viplist );
    
    if (!
file_exists(hk_File4))
    
write_file(hk_File4,"; -->VIP List<--");
    
    new 
hk_Buffer192 ], hk_Linehk_Len;
    while ( ( 
hk_Line read_file hk_File4hk_Linehk_Buffercharsmax hk_Buffer ), hk_Len ) ) )
    {
        if ( ! 
strlen hk_Buffer ) || hk_Buffer] == ';' || ( hk_Buffer] == '/' && hk_Buffer] == '/' ) )
            continue;
            
        
copy hk_VipsListhk_TotalLines++ ], 32hk_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 ^"500^"")
    
write_file(hk_File1,"")
    
write_file(hk_File1,"// Banii primiti pe un hs")
    
write_file(hk_File1,"vip_money_hs ^"1000^"")
    
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 ^"abcdef^"")
    
write_file(hk_File1,"")
    
write_file(hk_File1,"// Jumps - Salturi")
    
write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
    
write_file(hk_File1,"vip_jumps ^"1^"")
    
write_file(hk_File1,"")
    
write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
    
write_file(hk_File1,"vip_maxjumps ^"1^"")
    
write_file(hk_File1,"")
    
    }
    
    
server_cmd("exec %s",hk_File1)
}

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

public 
client_disconnect(id)
{
    
    
hk_IsUserVipid ] = 0;
    
jumpnum[id] = 0
    dojump
[id] = false
}
public 
addvips(idlevelcid)
{
    if (!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED

    
new arg[32]    
    
    
read_argv(1arg31)
    
    new 
szLog[256];
    
formatex(szLog,255,"%s",arg);
    
write_file(hk_File4,szLog,-1);
    
console_print(id"[KRIPT] Vip-ul a fost adaugat in lista")
    
    return 
PLUGIN_HANDLED
    
}

public 
vmenu(id)
{
    if(
get_user_flags(id))
    {
        
GameMenu(id);
    }
    else
    {
        
client_printidprint_chat"!g[CSGO.KRIPT.RO] !tAcest meniu este doar pentru !gVIP !n!");
    }
    return 
0;
}

public 
vmenu2(id)
{
    if(
get_user_flags(id))
    {
        
Showrodid );
    }
    else
    {
        
ColorChat(idGREEN"^x04[CSGO.KRIPT.RO] ^x01Acest meniu este doar pentru ^x04VIP ^x03!");
    }
    return 
0;
}

public 
GameMenu(id)
{
    new 
Menu menu_create("\r[CSGO.KRIPT.RO]  \rVIP \yMENU""GameMenuCmd");
    
menu_additem(Menu"\rARME"""0);
    
menu_additem(Menu"\yCumpara \rZeus x27-\w2500$"""0);
    
menu_additem(Menu"\yCumpara \rMolotov-\w1200$"""0);
    
menu_additem(Menu"\yV.I.P \rModels"""0);
    
menu_setprop(Menu61);
    
menu_display(idMenu0);
    return 
1;
}

public 
GameMenuCmd(idmenuitem)
{
    if (
item == -3)
    {
        
menu_destroy(menu);
        return 
1;
    }
    new 
data[6];
    new 
iName[64];
    new 
access;
    new 
callback;
    
menu_item_getinfo(menuitemaccessdata5iName63callback);
    new 
key str_to_num(data);
    switch (
key)
    {
        case 
1:
        {
            
client_cmd(id";say /arme");
        }
        case 
2:
        {
            
client_cmd(id";say /zeus");
        }
        case 
3:
        {
            
client_cmd(id";say /molotov");
        }
        case 
4:
        {
            
client_cmd(id";say /models");
        }
        default:
        {
        }
    }
    
menu_destroy(menu);
    return 
1;
}

public 
vips(idlevelcid)
{
    if (!
cmd_access(idlevelcid1))
        return 
PLUGIN_HANDLED
    
    
new s_Name32 ], s_AuthID32 ];
    
get_user_name ids_Name31 );
    
get_user_authid ids_AuthID31 );
    
    
console_print(id"========= .::CSGO.KRIPT.RO::. ==========")
    for ( new 
ihk_TotalLinesi++ )
    {
        if (  
strcmp s_Namehk_VipsList] ) || strcmp s_AuthIDhk_VipsList] ) )
        
console_print(id" - %s"hk_VipsList])    
            
        
    }
    
console_print(id"========== .::CSGO.KRIPT.RO::. ============")
    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_IsUserVipid ] = 0;
        return 
HAM_IGNORED;
    }
    
    
hk_IsUserVipid ] = 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 
attackerattacker get_user_attacker(id)
        static 
damagedamage read_data(2)    

        if ( 
is_user_vip attacker ) )
        {
            
hk_IsUserVipid ] = 1;
        
            if(
is_user_connected(attacker))
            {
                if(
fm_is_ent_visible(attacker,id))
                {
                    
set_hudmessage(0100200, -1.00.5520.14.00.020.02, -1)
                    
ShowSyncHudMsg(attackerg_hudmsg"%i^n"damage)                
                }
                    
                
            }
        }else 
hk_IsUserVipid ] = 0;
    }
}

public 
Damage(id)
{
    new 
weaponhitpointattacker get_user_attacker(id,weapon,hitpoint)
    if(
attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
    
    if ( 
is_user_vip id ) )
    {
        
hk_IsUserVipid ] = 1;
        new 
money read_data(2) * get_pcvar_num(mpd)
        if(
hitpoint==1money += get_pcvar_num(mhb)
        
cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
    }else 
hk_IsUserVipid ] = 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_IsUserViphk_Killer ] = 0;
        return;
    }
    
hk_IsUserViphk_Killer ] = 1;
    
    
hk_KillerHp get_user_health(hk_Killer)
    
hk_KillerHp += hk_HpAdd
   
    
if (hk_KillerHp hk_HpMaxhk_KillerHp hk_HpMax
    set_user_health
(hk_Killerhk_KillerHp)

    
set_hudmessage(02550, -1.00.1501.01.00.10.1, -1)
    
show_hudmessage(hk_Killer"Healed +%d hp"hk_HpAdd)

}

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

    
        
set_hudmessage(025500.020.206.07.0 )
        
show_hudmessage(id" %s online:^n%s"admin "Vips" "Vips"szBuff)
    
        
arrayset(szBuff02048)
    }
    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_IsUserVipid ] = 0;
            return 
PLUGIN_CONTINUE
        
}
    
    
        
hk_IsUserVipid ] = 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_IsUserVipid ] = 0;
        return 
PLUGIN_CONTINUE
    
}
    
    
    
hk_IsUserVipid ] = 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 
Showrodid 
{
    if(!
is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
/*     show_menu(id, Keysrod, "\r[CSGO.KRIPT.RO] \yMeniu \yArme^n\r1. \yM4a1+Deagle+Grenazi^n\r2. \yAK47+Deagle+Grenazi^n0. Exit^n")
*/
    
new menu menu_create"\r[CSGO.KRIPT.RO] \yMeniu \yArme""Pressedrod" );
    
menu_additem(menu"\yM4A1+Deagle+Grenazi""");
    
menu_additem(menu"\yAK47+Deagle+Grenazi""");
    
menu_additem(menu"\yAWP+Deagle+Grenazi""");
    
menu_displayidmenu0);
    return 
1;
}

public 
Pressedrod(idkeymenuitem
{
    switch (
key
    {
        case 
1
        { 
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");    
            
give_item(id"weapon_m4a1");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_M4A190);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat"[CSGO] Ai ales M4A1+Deagle+Set grenazi.");
            }

        case 
2:
    {
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");
            
give_item(id"weapon_ak47");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_FAMAS90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat"[CSGO] Ai ales AK47+Deagle+Set grenazi.");
    }
        case 
3:
    {
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");
            
give_item(id"weapon_awp");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_AWP30);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat,"[CSGO] Ai ales Awp+Deagle+Set grenazi.");
    }  
    }
    if (
item == MENU_EXIT)
    {
    
menu_destroymenu );
    return 
PLUGIN_CONTINUE;
    }
    return 
1;
}

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(idSecondary);
        
fm_give_item(id,"weapon_deagle"
        
cs_set_user_bpammo(idCSW_DEAGLE35 );
        }
        
        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(id1)
        
        
}

stock is_user_vip id )
{
    new 
s_Name32 ], s_AuthID32 ];
    
get_user_name ids_Name31 );
    
get_user_authid ids_AuthID31 );
    
    for ( new 
ihk_TotalLinesi++ )
    {
        if ( ! 
strcmp s_Namehk_VipsList] ) )
            return 
1;
        if ( ! 
strcmp s_AuthIDhk_VipsList] ) )
            return 
1;
    }
    
    return 
0;

}

stock StripWeapons(idTypeboolbSwitchIfActive true)
{
    new 
iReturn;
    
    if(
is_user_alive(id))
    {
        new 
iEntityiWeapon;
        while((
iWeapon GetWeaponFromSlot(idTypeiEntity)) > 0)
            
iReturn ham_strip_user_weapon(idiWeaponTypebSwitchIfActive);
    }
    
    return 
iReturn;
}

stock GetWeaponFromSlotid iSlot , &iEntity )
{
    if ( !( 
<= iSlot <= ) )
        return 
0;
    
    
iEntity 0;
    const 
m_rgpPlayerItems_Slot0 367;
    const 
m_iId 43;
    const 
XO_WEAPONS 4;
    const 
XO_PLAYER 5;
        
    
iEntity get_pdata_cbaseid m_rgpPlayerItems_Slot0 iSlot XO_PLAYER );
    
    return ( 
iEntity ) ? get_pdata_intiEntity m_iId XO_WEAPONS ) : 0;
}  

stock ham_strip_user_weapon(idiCswIdiSlot 0bool: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
            
//CSW_P90
        
}
        
iSlot iWeaponsSlots[iCswId]
    }

    const 
XTRA_OFS_PLAYER 5
    
const m_rgpPlayerItems_Slot0 367

    iWeapon 
get_pdata_cbase(idm_rgpPlayerItems_Slot0 iSlotXTRA_OFS_PLAYER)

    const 
XTRA_OFS_WEAPON 4
    
const m_pNext 42
    
const m_iId 43

    
while( iWeapon )
    {
        if( 
get_pdata_int(iWeaponm_iIdXTRA_OFS_WEAPON) == iCswId )
        {
            break
        }
        
iWeapon get_pdata_cbase(iWeaponm_pNextXTRA_OFS_WEAPON)
    }

    if( 
iWeapon )
    {
        const 
m_pActiveItem 373
        
if( bSwitchIfActive && get_pdata_cbase(idm_pActiveItemXTRA_OFS_PLAYER) == iWeapon )
        {
            
ExecuteHamB(Ham_Weapon_RetireWeaponiWeapon)
        }

        if( 
ExecuteHamB(Ham_RemovePlayerItemidiWeapon) )
        {
            
user_has_weapon(idiCswId0)
            
ExecuteHamB(Ham_Item_KilliWeapon)
            return 
1
        
}
    }

    return 
0


stock drop_weapons(iddropwhat)
{
    
// Get user weapons
    
new weapons[32], num_weaponsindexweaponid
    get_user_weapons
(idweaponsnum_weapons)
    
    
// Loop through them and drop primaries or secondaries
    
for (index 0index num_weaponsindex++)
    {
        
// Prevent re-indexing the array
        
weaponid weapons[index]
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) 
        || (
dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))
        || (
dropwhat == 3) && (((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM) || ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            
// Get weapon entity
            
new wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
            
// Player drops the weapon
            
engclient_cmd(id"drop"wname)
        }
    }

Menu with some bugs:
- it appears but it gives only case1: items
- it appears for all players

PHP Code:
public Showrodid 
{
    if(!
is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES))
        return 
1;
/*     show_menu(id, Keysrod, "\r[CSGO.KRIPT.RO] \yMeniu \yArme^n\r1. \yM4a1+Deagle+Grenazi^n\r2. \yAK47+Deagle+Grenazi^n0. Exit^n")
*/
    
new menu menu_create"\r[CSGO.KRIPT.RO] \yMeniu \yArme""Pressedrod" );
    
menu_additem(menu"\yM4A1+Deagle+Grenazi""");
    
menu_additem(menu"\yAK47+Deagle+Grenazi""");
    
menu_additem(menu"\yAWP+Deagle+Grenazi""");
    
menu_displayidmenu0);
    return 
1;
}

public 
Pressedrod(idkeymenuitem
{
    switch (
key
    {
        case 
1
        { 
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");    
            
give_item(id"weapon_m4a1");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_M4A190);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat"[CSGO] Ai ales M4A1+Deagle+Set grenazi.");
            }

        case 
2:
    {
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");
            
give_item(id"weapon_ak47");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_FAMAS90);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat"[CSGO] Ai ales AK47+Deagle+Set grenazi.");
    }
        case 
3:
    {
            
drop_weapons(id1)
            
drop_weapons(id2)
            
give_item(id"weapon_knife");
            
give_item(id"weapon_awp");
            
give_item(id"weapon_deagle");
            
give_item(id"weapon_hegrenade");
            
give_item(id"weapon_flashbang");
            
cs_set_user_bpammo(idCSW_HEGRENADE1);
            
cs_set_user_bpammo(idCSW_FLASHBANG2);
            
cs_set_user_bpammo(idCSW_AWP30);
            
cs_set_user_bpammo(idCSW_DEAGLE35);
            
client_printidprint_chat,"[CSGO] Ai ales Awp+Deagle+Set grenazi.");
    }  
    }
    if (
item == MENU_EXIT)
    {
    
menu_destroymenu );
    return 
PLUGIN_CONTINUE;
    }
    return 
1;

Could someone help me with this?
I have an headache from this plugin :idea

Last edited by Shadows Adi; 11-22-2019 at 08:50. Reason: added [php] tags*
Shadows Adi is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 11-21-2019 , 14:29   Re: VIP plugin bugs
Reply With Quote #2

Please use [php] tags for longer codes to avoid unnecessary scrolling.

About it only using case 1:

Code:
public Pressedrod(id, key, menu, item)

The body of a menu handler function is (id, menu, item). There is no "key", so in your case "key" is the menu id which is always 1. Use "item" in the switch cases.
__________________
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Shadows Adi
AlliedModders Donor
Join Date: Aug 2019
Location: Romania
Old 11-22-2019 , 11:46   Re: VIP plugin bugs
Reply With Quote #3

Quote:
Originally Posted by OciXCrom View Post
Please use [php] tags for longer codes to avoid unnecessary scrolling.

About it only using case 1:

Code:
public Pressedrod(id, key, menu, item)

The body of a menu handler function is (id, menu, item). There is no "key", so in your case "key" is the menu id which is always 1. Use "item" in the switch cases.
Thank you

And about this?
Quote:
Originally Posted by Shadows Adi View Post
Menu with some bugs:
- it appears for all players

Last edited by Shadows Adi; 11-22-2019 at 11:49.
Shadows Adi is offline
Old 11-22-2019, 11:48
Shadows Adi
This message has been deleted by Shadows Adi. Reason: .
ZaX
Senior Member
Join Date: Jan 2015
Old 11-22-2019 , 14:58   Re: VIP plugin bugs
Reply With Quote #4

Code:
 
if(get_user_flags(id) & VIP_LEVEL_ACCES)
menu_display(..)
ZaX is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 11-22-2019 , 15:05   Re: VIP plugin bugs
Reply With Quote #5

Code:
if(get_user_flags(id)) {     GameMenu(id); }
You are checking if he has a flag. All players have a flag, so everyone will get access to the menu.
__________________

Last edited by OciXCrom; 11-22-2019 at 15:05.
OciXCrom is offline
Send a message via Skype™ to OciXCrom
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 16:52.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode