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

Help to fix scripting problem


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
mohanad_2022
Member
Join Date: Jan 2022
Location: Palestine
Old 01-19-2022 , 03:24   Help to fix scripting problem
Reply With Quote #1

Hello everyone !

i watched vedio about how to make VIP Extra Item , and i tried that on some guns :

#include <zmvip>

g_blockar = zv_register_extra_item(PLUGIN, 70, ZV_TEAM_HUMAN)

g_blockar = zv_items_register(PLUGIN, 70)

but it did not work , .. it show this error : argument type mismatch (argument 2)

so .. i hope you guys help me to fix this problem and guid me how to make vip extra item on right way .

here the code of the sma weapon >

PHP Code:
// Dont Touch
//#define _ZP50

// Define for Nromal, Undefine for ZP 4.3 + 5.0
//#define _DEBUG

#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <zmvip>

#if defined _DEBUG
    #define _CMD "blockar"
#else
    #if !defined _ZP50
        #include <zombieplague>
    #else
        #tryinclude <zp50_items>
    #endif
#endif

#define PLUGIN "Brick Peace V2"
#define VERSION "1.0"
#define AUTHOR "Asdian"

#define V_MODEL_1 "models/v_blockar1.mdl"
#define V_MODEL_2 "models/v_blockar2.mdl"
#define V_MODEL_3 "models/v_blockchange.mdl"

#define P_MODEL_1 "models/p_blockar1.mdl"
#define P_MODEL_2 "models/p_blockar2.mdl"

#define W_MODEL_1 "models/w_blockar1.mdl"
#define W_MODEL_2 "models/w_blockar2.mdl"

#define S_MODEL_1 "models/block_shell.mdl"
#define S_MODEL_2 "models/block_missile.mdl"

#define CSW_BLOCKAR CSW_M4A1
#define weapon_blockar "weapon_m4a1"
#define OLD_W_MODEL "models/w_m4a1.mdl"
#define WEAPON_EVENT "events/m4a1.sc"
#define WEAPON_SECRETCODE 1992+999

#define RELOAD_TIME 3.0
#define LAUNCHER_RELOAD_TIME 2.0

#define TASK_CHANGE 1987
#define TASK_RELOAD 1987+9090

#define CLASSNAME "blockar"
#define CLASSNAME2 "blockar_smoke"

new const ShootSound[][] =
{
    
"weapons/blockar1-1.wav",
    
"weapons/blockar2-1.wav"
}

new const 
WeaponResources[][] =
{
    
"sprites/weapon_blockar.txt",
    
"sprites/640hud8.spr",
    
"sprites/640hud115.spr",
    
"sprites/640hud115_2.spr"
}

enum _:ANIM_A // Carbine Mode
{
    
ANIM_C_IDLE 0,
    
ANIM_C_SHOOT1,
    
ANIM_C_SHOOT2,
    
ANIM_C_SHOOT3,
    
ANIM_C_CHANGE1,
    
ANIM_C_CHANGE2,
    
ANIM_C_RELOAD,
    
ANIM_C_DRAW
}

enum _:ANIM_B // Launcher Mode
{
    
ANIM_L_IDLE 0,
    
ANIM_L_IDLE_EMPTY,
    
ANIM_L_SHOOT_START,
    
ANIM_L_SHOOT_END,
    
ANIM_L_CHANGE1,
    
ANIM_L_CHANGE1_EMPTY,
    
ANIM_L_CHANGE2,
    
ANIM_L_CHANGE2_EMPTY,
    
ANIM_L_RELOAD,
    
ANIM_L_DRAW,
    
ANIM_L_DRAW_EMPTY
}

enum _:Mode
{
    
MODE_CARBINE 0,
    
MODE_GRENADE
}

enum _:Stat
{
    
STAT_NONE 0,
    
STAT_EMPTY
}

enum _:Vars
{
    
VAR_DRAW 0,
    
VAR_RELOAD,
    
VAR_CHANGE
}

new 
g_Had_BlockAR[33], g_WeaponMode[33], g_WeaponVars[33][3], g_GrenadeAmmo[33], g_Stat[33], g_old_weapon[33], Float:g_WeaponTimer[33]
new 
g_smokepuff_idg_ham_botshells_modelg_blockar_eventspr_trailg_expspr_idg_expspr_id2g_SmokeSprId
new cvar_damagecvar_rocketcvar_l_damagecvar_l_radiuscvar_bpammo

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
register_message(get_user_msgid("DeathMsg"), "message_DeathMsg")
    
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)    
    
register_forward(FM_PlaybackEvent"fw_PlaybackEvent")    
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_CmdStart"fw_CmdStart")    
    
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack")
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack")
    
RegisterHam(Ham_Weapon_Reloadweapon_blockar"fw_Weapon_Reload")
    
RegisterHam(Ham_Weapon_Reloadweapon_blockar"fw_Weapon_Reload_Post"1)
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_blockar"fw_Weapon_WeaponIdle_Post"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon_blockar"fw_Item_AddToPlayer_Post"1)
    
RegisterHam(Ham_Item_Deployweapon_blockar"fw_Item_Deploy_Post"1)
    
RegisterHam(Ham_Killed"player""fw_PlayerKilled")
    
    
register_think(CLASSNAME2"fw_Think_Smoke")
    
register_touch(CLASSNAME"*""fw_Touch")
    
    
cvar_bpammo register_cvar("blockar_bpammo""90")
    
cvar_damage register_cvar("blockar_damage""40.0")
    
cvar_l_damage register_cvar("blockar_l_damage""100.0")
    
cvar_l_radius register_cvar("blockar_l_radius""150.0")
    
cvar_rocket register_cvar("blockar_rocket""3")
    
    
register_clcmd("weapon_blockar""hook_weapon")
    
register_item()
}

#if defined _DEBUG
    
register_item() register_concmd(_CMD"Get_BlockAR")
#else
    
new g_blockar
    
#if !defined _ZP50
        
register_item()
        {
            
g_blockar zv_register_extra_item(PLUGIN70ZP_TEAM_HUMAN)
        }
        
        public 
zv_extra_item_selected(iditemid) if(itemid == g_blockarGet_BlockAR(id)
        public 
zp_user_infected_post(idRemove_blockar(id)
        public 
zp_user_humanized_post(idsurvRemove_blockar(id)
    
#else
        
register_item()
        {
            
g_blockar zv_items_register(PLUGIN70)
        }
        
        public 
zv_fw_items_select_pre(iditemidignorecost)
        {
            if(
itemid != g_blockar)
                return 
ZP_ITEM_AVAILABLE
            
if(zp_core_is_zombie(id))
                return 
ZP_ITEM_DONT_SHOW
            
return ZP_ITEM_AVAILABLE
        
}
        
        public 
zv_fw_items_select_post(iditemid) if(itemid == g_blockarGet_BlockAR(id)
    
#endif
#endif    

public plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelV_MODEL_1)
    
engfunc(EngFunc_PrecacheModelV_MODEL_2)
    
engfunc(EngFunc_PrecacheModelV_MODEL_3)
    
    
engfunc(EngFunc_PrecacheModelP_MODEL_1)
    
engfunc(EngFunc_PrecacheModelP_MODEL_2)
    
    
engfunc(EngFunc_PrecacheModelW_MODEL_1)
    
engfunc(EngFunc_PrecacheModelW_MODEL_2)
    
    
shells_model engfunc(EngFunc_PrecacheModelS_MODEL_1)
    
engfunc(EngFunc_PrecacheModelS_MODEL_2)
    
    new 
i
    
for(0sizeof(WeaponResources); i++)
    {
        if(
== 0engfunc(EngFunc_PrecacheGenericWeaponResources[i])
        else 
engfunc(EngFunc_PrecacheModelWeaponResources[i])
    }
    for(
0sizeof(ShootSound); i++)
        
engfunc(EngFunc_PrecacheSoundShootSound[i])
    
    
// I use this way because the sound is soo many
    
precache_sounds_from_model(V_MODEL_1)
    
precache_sounds_from_model(V_MODEL_2)
    
precache_sounds_from_model(V_MODEL_3)
    
    
g_smokepuff_id engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
spr_trail engfunc(EngFunc_PrecacheModel"sprites/laserbeam.spr")
    
g_expspr_id engfunc(EngFunc_PrecacheModel"sprites/fexplo.spr")
    
g_expspr_id2 engfunc(EngFunc_PrecacheModel"sprites/eexplo.spr")
    
g_SmokeSprId engfunc(EngFunc_PrecacheModel"sprites/steam1.spr")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal(WEAPON_EVENTname))
        
g_blockar_event get_orig_retval()        
}

public 
message_DeathMsg()
{
    static 
szTruncatedWeapon[33], iAttackeriVictim
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon))
    
iAttacker get_msg_arg_int(1)
    
iVictim get_msg_arg_int(2)
        
    if(!
is_user_connected(iAttacker) || iAttacker == iVictim) return PLUGIN_CONTINUE
        
    
if(equal(szTruncatedWeapon"m4a1") && get_user_weapon(iAttacker) == CSW_BLOCKAR)
        if(
g_Had_BlockAR[iAttacker]) set_msg_arg_string(4"blockar")
                
    return 
PLUGIN_CONTINUE
}

public 
Get_BlockAR(id)
{
    if(!
is_user_alive(id))
        return
    
    if(
get_user_weapon(id) == CSW_M4A1 && !g_Had_BlockAR[id])
        
fm_strip_user_gun(idCSW_M4A1// Remove M4A1
    
    
g_Had_BlockAR[id] = 1
    g_WeaponMode
[id] = MODE_CARBINE
    g_GrenadeAmmo
[id] = get_pcvar_num(cvar_rocket)
    
Reset_Value(id)
    
    
drop_weapons(id1)
    
fm_give_item(idweapon_blockar)
    
    
set_weapon_anim(idANIM_C_DRAW)
    
Set_Model(idGet_Mode(id))
    
cs_set_user_bpammo(idCSW_BLOCKARget_pcvar_num(cvar_bpammo))
    
Update_Ammo(id)
    
    
client_printc(id"!nPress !gSpray !nbutton to buy nade. !g(Default: T)")
}

public 
fw_PlayerKilled(idRemove_blockar(id)

public 
Remove_blockar(id)
{
    if(!
is_user_connected(id))
        return
        
    
g_Had_BlockAR[id] = 0
    Reset_Value
(id)
}

Reset_Value(id)
{
    
g_WeaponVars[id][VAR_CHANGE] = 0
    g_WeaponVars
[id][VAR_RELOAD] = 0
    g_Stat
[id] = (g_GrenadeAmmo[id] > STAT_NONE STAT_EMPTY)
}

public 
hook_weapon(id)
{
    
engclient_cmd(idweapon_blockar)
    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id)
{
    if(!
g_ham_bot && is_user_bot(id))
    {
        
g_ham_bot 1
        set_task
(0.1"Do_Register_HamBot"id)
    }
}

public 
Do_Register_HamBot(id)
{
    
RegisterHamFromEntity(Ham_TraceAttackid"fw_TraceAttack")
}

public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    
    static 
ent
    ent 
fm_get_user_weapon_entity(idCSW_BLOCKAR)
    
    if(!
pev_valid(ent)) 
        return
    
    if(
g_Had_BlockAR[id] && (get_user_weapon(id) == CSW_BLOCKAR && g_old_weapon[id] != CSW_BLOCKAR))
    {
        
Set_Model(idGet_Mode(id))
        
Draw_Weapon(id)
    } else 
Reset_Value(id)
    
    
g_old_weapon[id] = get_user_weapon(id)
    
set_pdata_float(ent46get_pdata_float(ent464), 4)
}

public 
fw_Item_Deploy_Post(ent)
{
    static 
id
    id 
fm_cs_get_weapon_ent_owner(ent)
    
    if(!
pev_valid(id))
        return
    if(!
g_Had_BlockAR[id])
        return
        
    
Set_Model(idGet_Mode(id))
    
Draw_Weapon(id)
}

Draw_Weapon(id)
{
    if(
g_WeaponVars[id][VAR_CHANGE]) g_WeaponVars[id][VAR_CHANGE] = 0
    g_WeaponVars
[id][VAR_DRAW] = 1
    set_task
(1.6"Remove"id)
    
    
Update_WeaponList(id)
    
Update_Ammo(id)
            
    switch(
Get_Mode(id))
    {
        case 
MODE_CARBINE:
        {
            
set_weapon_anim(idANIM_C_DRAW)
            
set_weapons_timeidle(id1.51.6)
        }
        case 
MODE_GRENADE:
        {
            
set_weapons_timeidle(id1.82.0)
            
            if(
Get_Stat(id) == STAT_EMPTY)
            {
                
set_weapon_anim(idANIM_L_DRAW_EMPTY)
                
                if(
g_GrenadeAmmo[id] > 0)
                {
                    if(
task_exists(id+TASK_RELOAD))
                    {
                        
remove_task(id+TASK_RELOAD)
                        
set_task(1.5"Reload"id+TASK_RELOAD)
                    } else 
set_task(1.5"Reload"id+TASK_RELOAD)
                }
            } else 
set_weapon_anim(idANIM_L_DRAW)
        }
    }
}
public 
Remove(idg_WeaponVars[id][VAR_DRAW] = 0

public fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BLOCKAR && g_Had_BlockAR[id])
        
set_cd(cd_handleCD_flNextAttackget_gametime() + 0.001
    
    return 
FMRES_HANDLED
}

public 
fw_PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if(!
is_user_connected(invoker))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(invoker) != CSW_BLOCKAR || !g_Had_BlockAR[invoker])
        return 
FMRES_IGNORED
    
    
if(eventid == g_blockar_event)
    {
        
engfunc(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
        
set_weapon_anim(invokerrandom_num(ANIM_C_SHOOT1ANIM_C_SHOOT3))
        
emit_sound(invokerCHAN_WEAPONShootSound[0], 1.0ATTN_NORM0PITCH_NORM)
        
make_shell(invoker)
        
        return 
FMRES_SUPERCEDE
    
}
    return 
FMRES_HANDLED
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity))
        return 
FMRES_IGNORED
    
    
static Classname[32]
    
pev(entitypev_classnameClassnamesizeof(Classname))
    
    if(!
equal(Classname"weaponbox"))
        return 
FMRES_IGNORED
    
    
static iOwner
    iOwner 
pev(entitypev_owner)
    
    if(
equal(modelOLD_W_MODEL))
    {
        static 
weapon
        weapon 
fm_find_ent_by_owner(-1weapon_blockarentity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED
        
        
if(g_Had_BlockAR[iOwner])
        {
            
Remove_blockar(iOwner)
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE)
            
engfunc(EngFunc_SetModelentityGet_Mode(iOwner) == MODE_CARBINE W_MODEL_1 W_MODEL_2)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) != CSW_BLOCKAR || !g_Had_BlockAR[id])    
        return 
FMRES_IGNORED
        
    
static NewButton
    NewButton 
get_uc(uc_handleUC_Buttons)
    
    if(
get_uc(uc_handleUC_Impulse) == 201)
    {
        
set_uc(uc_handleUC_Impulse0)
        
        if(
g_WeaponVars[id][VAR_CHANGE])
            return 
FMRES_IGNORED
        
        
if(!g_GrenadeAmmo[id])
        {
            
set_task(0.0"Reload"id+TASK_RELOAD)
            
set_weapons_timeidle(id4.03.2)
        }
        
g_GrenadeAmmo[id] = get_pcvar_num(cvar_rocket)
    }
    
    if((
NewButton IN_ATTACK) && g_WeaponMode[id] == MODE_GRENADE)
    {
        if(!
g_GrenadeAmmo[id])
        {
            
client_print(idprint_center"Out Of Ammo")
            
set_weapons_timeidle(id99999.020.0)
        } else if(!
g_WeaponVars[id][VAR_CHANGE] && !g_WeaponVars[id][VAR_RELOAD] && g_GrenadeAmmo[id] > && g_WeaponTimer[id] < get_gametime()) {
            
g_WeaponTimer[id] = get_gametime() + 4.0
            set_weapons_timeidle
(id4.04.0)
            
            
set_weapon_anim(idANIM_L_SHOOT_START)
            
set_task(0.8"Create_Grenade"id)
            
            
NewButton &= ~IN_ATTACK
            set_uc
(uc_handleUC_ButtonsNewButton)
        }
    } 
    
    if(
NewButton IN_ATTACK2)
    {
        if((
pev(idpev_oldbuttons) & IN_ATTACK2) || g_WeaponVars[id][VAR_CHANGE])
            return 
FMRES_IGNORED
        
        
if(g_WeaponVars[id][VAR_RELOAD]) g_WeaponVars[id][VAR_RELOAD] = 0
        
        NewButton 
&= ~IN_ATTACK2
        NewButton 
&= ~IN_ATTACK
        set_uc
(uc_handleUC_ButtonsNewButton)
        
        
g_WeaponVars[id][VAR_CHANGE] = 1
        
        set_weapons_timeidle
(id5.05.2)
        
set_weapon_anim(idGet_Mode(id) == MODE_CARBINE ANIM_C_CHANGE1 : (Get_Stat(id) == STAT_NONE ANIM_L_CHANGE1 ANIM_L_CHANGE1_EMPTY))
        
set_task(1.5"Change_Idle"id+TASK_CHANGE)
    }
    return 
FMRES_IGNORED
}

public 
Change_Idle(id)
{
    
id -= TASK_CHANGE
    
    
if(!is_user_alive(id) || get_user_weapon(id) != CSW_BLOCKAR || !g_Had_BlockAR[id])
        return
    
    
g_WeaponVars[id][VAR_CHANGE] = 1
    set_pev
(idpev_viewmodel2V_MODEL_3)
    
set_weapon_anim(id0)
    
    
set_task(2.5"Change_Complete"id+TASK_CHANGE)
    
set_weapons_timeidle(id4.02.5)
}

public 
Change_Complete(id)
{
    
id -= TASK_CHANGE
    
    
if(!is_user_alive(id) || get_user_weapon(id) != CSW_BLOCKAR || !g_Had_BlockAR[id])
        return
    
    
g_WeaponMode[id] = g_WeaponMode[id]
    
g_WeaponVars[id][VAR_CHANGE] = 1
    
    set_weapon_anim
(idGet_Mode(id) == MODE_CARBINE ANIM_C_CHANGE2 : (Get_Stat(id) == STAT_EMPTY ANIM_L_CHANGE2_EMPTY ANIM_L_CHANGE2))
    
Set_Model(idGet_Mode(id))
    
set_weapons_timeidle(id2.51.7)
    
set_task(1.5"End2"id+TASK_CHANGE)
}

public 
End2(id)
{
    
id -= TASK_CHANGE
    remove_task
(id+TASK_CHANGE)
    
    
g_WeaponVars[id][VAR_CHANGE] = 0
    Update_WeaponList
(id)
    
Update_Ammo(id)
    
    
set_weapon_anim(idGet_Mode(id) == MODE_CARBINE ANIM_C_IDLE : (g_GrenadeAmmo[id] > ANIM_L_IDLE ANIM_L_IDLE_EMPTY))
    
set_weapons_timeidle(id0.020.0)
}

public 
fw_TraceAttack(entattackerFloat:DamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(attacker) || !is_user_connected(attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(attacker) != CSW_BLOCKAR || !g_Had_BlockAR[attacker] || Get_Mode(attacker) == MODE_GRENADE)
        return 
HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
    
get_tr2(ptrTR_vecEndPosflEnd)
    
get_tr2(ptrTR_vecPlaneNormalvecPlane)        
    
    if(!
is_user_alive(ent))
    {
        
make_bullet(attackerflEnd)
        
fake_smoke(attackerptr)
    }
    
SetHamParamFloat(3get_pcvar_float(cvar_damage))
    return 
HAM_HANDLED
}

public 
fw_Weapon_Reload(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!g_Had_BlockAR[id])
        return 
HAM_IGNORED
    
if(Get_Mode(id) == MODE_GRENADE)
        return 
HAM_SUPERCEDE
    
    
return HAM_HANDLED
}

public 
fw_Weapon_Reload_Post(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!g_Had_BlockAR[id])
        return 
HAM_IGNORED
    
if(Get_Mode(id) == MODE_GRENADE)
        return 
HAM_IGNORED
        
    
if((get_pdata_int(ent544) == 1) && Get_Mode(id) == MODE_CARBINE)
    {
        
set_weapon_anim(idANIM_C_RELOAD)
        
set_pdata_float(id83RELOAD_TIME5)
    }
    return 
HAM_HANDLED
}

public 
fw_Weapon_WeaponIdle_Post(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!g_Had_BlockAR[id])
        return 
HAM_IGNORED
        
    
if(get_pdata_float(ent484) <= 0.1
    {
        
set_weapon_anim(idGet_Mode(id) == MODE_CARBINE ANIM_C_IDLE : (g_GrenadeAmmo[id] > ANIM_L_IDLE ANIM_L_IDLE_EMPTY))
        
set_pdata_float(ent4820.04)
    }
    return 
HAM_IGNORED
}

public 
fw_Item_AddToPlayer_Post(entid)
{
    if(!
pev_valid(ent))
        return 
HAM_IGNORED
        
    
if(pev(entpev_impulse) == WEAPON_SECRETCODE)
    {
        
g_Had_BlockAR[id] = 1
        set_pev
(entpev_impulse0)
    }        
    
Update_WeaponList(id)
    return 
HAM_HANDLED    
}

Update_WeaponList(id)
{
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("WeaponList"), .player id)
    
write_string(g_Had_BlockAR[id] == "weapon_blockar" "weapon_m4a1")
    
write_byte(4// PrimaryAmmoID
    
write_byte(90// PrimaryAmmoMaxAmount
    
write_byte(-1// SecondaryAmmoID
    
write_byte(-1// SecondaryAmmoMaxAmount
    
write_byte(0// SlotID (0...N)
    
write_byte(6// NumberInSlot (1...N)
    
write_byte(g_Had_BlockAR[id] == CSW_BLOCKAR CSW_M4A1// WeaponID
    
write_byte(0// Flags
    
message_end()
}

public 
Reload(id)
{
    
id -= TASK_RELOAD
    
    
if(!g_Had_BlockAR[id] || get_user_weapon(id) != CSW_BLOCKAR)
        return
    
    
g_WeaponVars[id][VAR_RELOAD] = 1
    set_weapon_anim
(idANIM_L_RELOAD)
    
set_task(LAUNCHER_RELOAD_TIME"Reload_End"id+TASK_RELOAD)
    
set_weapons_timeidle(id4.0LAUNCHER_RELOAD_TIME 0.2)
}

public 
Reload_End(id)
{
    
id -= TASK_RELOAD
    
    g_WeaponVars
[id][VAR_RELOAD] = 0
    g_Stat
[id] = STAT_NONE
    set_weapons_timeidle
(id1.01.1)
    
remove_task(id+TASK_RELOAD)
}

public 
Create_Grenade(id)
{
    
set_weapon_anim(idANIM_L_SHOOT_END)
    
g_Stat[id] = STAT_EMPTY
    
    
if(g_GrenadeAmmo[id] > 1set_task(1.0"Reload"id+TASK_RELOAD)
    else if(
g_GrenadeAmmo[id] == 1set_weapons_timeidle(id0.020.0)
    
    
emit_sound(idCHAN_WEAPONShootSound[1], 1.0ATTN_NORM0PITCH_NORM)
    
g_GrenadeAmmo[id]--
    
    static 
Float:PunchAngles[3]
    
PunchAngles[0] = random_float(-2.0, -4.0)
    
PunchAngles[2] = random_float(5.0, -5.0)
    
set_pev(idpev_punchanglePunchAngles)
        
    static 
Float:vOrigin[3], Float:vAngle[3], Float:vVelocity[3], Float:vMins[3], Float:vMaxs[3]
    
vMins[0] = vMins[1] = vMins[2] = -2.0
    vMaxs
[0] = vMaxs[1] = vMaxs[2] = 2.0
    pev
(idpev_v_anglevAngle)
    
    
Stock_Get_Postion(id15.01.5, -3.5vOrigin)
    
Stock_Velocity_By_Aim(vAngle0.01335.0vVelocity)
    
    new 
ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
set_pev(entpev_classnameCLASSNAME)
    
set_pev(entpev_movetypeMOVETYPE_FLYMISSILE)
    
engfunc(EngFunc_SetModelentS_MODEL_2)
    
engfunc(EngFunc_SetSizeentvMinsvMaxs)
    
set_pev(entpev_originvOrigin)
    
set_pev(entpev_velocityvVelocity)
    
Stock_Get_Velocity_Angle(entvAngle)
    
set_pev(ent ,pev_angles,vAngle)
    
set_pev(entpev_solidSOLID_BBOX)
    
set_pev(entpev_ownerid)
    
    
// Make a Beam
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)
    
write_short(ent// entity
    
write_short(spr_trail// sprite
    
write_byte(20)  // life
    
write_byte(2)  // width
    
write_byte(200// r
    
write_byte(200)  // g
    
write_byte(200)  // b
    
write_byte(200// brightness
    
message_end()
}

public 
fw_Think_Smoke(iEnt)
{
    if(!
pev_valid(iEnt))
        return
    
    new 
Float:vOrigin[3]
    
pev(iEntpev_originvOrigin)
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvOrigin0)
    
write_byte(TE_SMOKE)
    
engfunc(EngFunc_WriteCoord,vOrigin[0])
    
engfunc(EngFunc_WriteCoord,vOrigin[1])
    
engfunc(EngFunc_WriteCoord,vOrigin[2] + 55.0)
    
write_short(g_SmokeSprId)
    
write_byte(40)
    
write_byte(12)
    
message_end()
    
    
set_pev(iEntpev_flagspev(iEntpev_flags) | FL_KILLME)
    
engfunc(EngFunc_RemoveEntityiEnt)
    return
}

public 
fw_Touch(entid)
{
    if(!
pev_valid(ent))
        return
    
    static 
Float:Origin[3]
    
pev(entpev_originOrigin)
    
Origin[2] += 1.0
    
    message_begin
(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_WORLDDECAL)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    switch(
random_num(13))
    {
        case 
1write_byte(engfunc(EngFunc_DecalIndex"{scorch1"))
        case 
2write_byte(engfunc(EngFunc_DecalIndex"{scorch2"))
        case 
3write_byte(engfunc(EngFunc_DecalIndex"{scorch3"))
    }
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYOrigin0)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2] + 20.0)
    
write_short(g_expspr_id)
    
write_byte(25)
    
write_byte(30)
    
write_byte(TE_EXPLFLAG_NODLIGHTS TE_EXPLFLAG_NOPARTICLES TE_EXPLFLAG_NOSOUND)
    
message_end()
    
    
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYOrigin0)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0] + random_float(-64.064.0))
    
engfunc(EngFunc_WriteCoordOrigin[1] + random_float(-64.064.0))
    
engfunc(EngFunc_WriteCoordOrigin[2] + random_float(30.035.0))
    
write_short(g_expspr_id2)
    
write_byte(30)
    
write_byte(30)
    
write_byte(0)
    
message_end()
    
    new 
iEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
set_pev(iEntpev_classnameCLASSNAME2)
    
set_pev(iEntpev_originOrigin)
    
engfunc(EngFunc_SetModeliEnt"models/w_usp.mdl")
    
set_pev(iEntpev_nextthinkget_gametime() + 0.55)
    
fm_set_rendering(iEntkRenderFxGlowShell000kRenderTransAlpha0)
    
    static 
Float:Origin2[3]
    for(new 
0get_maxplayers(); i++)
    {
        if(!
is_user_alive(i))
            continue
        
        
pev(ipev_originOrigin2)
        if(
get_distance_f(OriginOrigin2) > get_pcvar_float(cvar_l_radius))
            continue

        
ExecuteHamB(Ham_TakeDamageientpev(entpev_owner), get_pcvar_float(cvar_l_damage), DMG_BULLET)
        if(
is_user_alive(i)) Stock_Fake_KnockBack(pev(entpev_owner), i0.5)
    }
    static 
classname[32]
    
pev(idpev_classnameclassnamecharsmax(classname))
    
    if(
equali(classname"func_breakable"))
        
force_use(entid)
    
    
set_pev(entpev_flagspev(entpev_flags) | FL_KILLME)
    
engfunc(EngFunc_RemoveEntityent)
}

public 
Update_Ammo(id)
{
    if(!
is_user_alive(id))
        return
    
    static 
ent
    ent 
fm_get_user_weapon_entity(idCSW_BLOCKAR)
    
    if(
pev_valid(ent))
    {
        
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id)
        
write_byte(1)
        
write_byte(CSW_BLOCKAR)
        
write_byte(cs_get_weapon_ammo(ent))
        
message_end()        
    }
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("AmmoX"), _id)
    
write_byte(1)
    
write_byte(cs_get_user_bpammo(idCSW_BLOCKAR))
    
message_end()
}

stock Get_Mode(id) return g_WeaponMode[id]
stock Get_Stat(id) return g_Stat[id]

stock Set_Model(idmode)
{
    
set_pev(idpev_viewmodel2mode V_MODEL_2 V_MODEL_1)
    
set_pev(idpev_weaponmodel2mode P_MODEL_2 P_MODEL_1)
}

public 
client_PreThink(id)
{
    if(!
is_user_alive(id) || !g_Had_BlockAR[id] || get_user_weapon(id) != CSW_BLOCKAR)
        return
    
    
set_dhudmessage(42212255, -0.055, -0.100.10.10.00.0)
    
show_dhudmessage(id"%d"g_GrenadeAmmo[id])
}

stock make_bullet(idFloat:Origin[3])
{
    
// Find target
    
new decal random_num(4145)
    const 
loop_time 2
    
    
static BodyTarget
    get_user_aiming
(idTargetBody999999)
    
    if(
is_user_connected(Target))
        return
    
    for(new 
0loop_timei++)
    {
        
// Put decal on "world" (a wall)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
engfunc(EngFunc_WriteCoordOrigin[0])
        
engfunc(EngFunc_WriteCoordOrigin[1])
        
engfunc(EngFunc_WriteCoordOrigin[2])
        
write_byte(decal)
        
message_end()
        
        
// Show sparcles
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
engfunc(EngFunc_WriteCoordOrigin[0])
        
engfunc(EngFunc_WriteCoordOrigin[1])
        
engfunc(EngFunc_WriteCoordOrigin[2])
        
write_short(id)
        
write_byte(decal)
        
message_end()
    }
}

public 
fake_smoke(idtrace_result)
{
    static 
Float:vecSrc[3], Float:vecEnd[3], TE_FLAG
    get_weapon_attachment
(idvecSrc)
    
global_get(glb_v_forwardvecEnd)
    
xs_vec_mul_scalar(vecEnd8192.0vecEnd)
    
xs_vec_add(vecSrcvecEndvecEnd)
    
get_tr2(trace_resultTR_vecEndPosvecSrc)
    
get_tr2(trace_resultTR_vecPlaneNormalvecEnd)
    
xs_vec_mul_scalar(vecEnd2.5vecEnd)
    
xs_vec_add(vecSrcvecEndvecEnd)
    
    
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
    TE_FLAG 
|= TE_EXPLFLAG_NOSOUND
    TE_FLAG 
|= TE_EXPLFLAG_NOPARTICLES
    
    engfunc
(EngFunc_MessageBeginMSG_PASSVC_TEMPENTITYvecEnd0)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordvecEnd[0])
    
engfunc(EngFunc_WriteCoordvecEnd[1])
    
engfunc(EngFunc_WriteCoordvecEnd[2] - 10.0)
    
write_short(g_smokepuff_id)
    
write_byte(2)
    
write_byte(50)
    
write_byte(TE_FLAG)
    
message_end()
}

stock get_weapon_attachment(idFloat:output[3], Float:fDis 40.0)

    new 
Float:vfEnd[3], viEnd[3
    
get_user_origin(idviEnd3)  
    
IVecFVec(viEndvfEnd
    
    new 
Float:fOrigin[3], Float:fAngle[3]
    
pev(idpev_originfOrigin
    
pev(idpev_view_ofsfAngle)
    
xs_vec_add(fOriginfAnglefOrigin
    
    new 
Float:fAttack[3]
    
xs_vec_sub(vfEndfOriginfAttack)
    
xs_vec_sub(vfEndfOriginfAttack
    
    new 
Float:fRate
    fRate 
fDis vector_length(fAttack)
    
xs_vec_mul_scalar(fAttackfRatefAttack)
    
xs_vec_add(fOriginfAttackoutput)
}

stock set_weapon_anim(idanim)
{
    if(!
is_user_alive(id))
        return
    
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(pev(idpev_body))
    
message_end()
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    if(
pev_valid(ent) != 2)
        return -
1
    
    
return get_pdata_cbase(ent414)
}

public 
make_shell(id)
{
    static 
Float:player_origin[3], Float:origin[3], Float:origin2[3], Float:gunorigin[3], Float:oldangles[3], Float:v_forward[3], Float:v_forward2[3], Float:v_up[3], Float:v_up2[3], Float:v_right[3], Float:v_right2[3], Float:viewoffsets[3]
    
pev(idpev_v_angleoldangles); pev(idpev_originplayer_origin); pev(idpev_view_ofsviewoffsets); engfunc(EngFunc_MakeVectorsoldangles)
    
global_get(glb_v_forwardv_forward); global_get(glb_v_upv_up)
    
global_get(glb_v_rightv_right); global_get(glb_v_forwardv_forward2)
    
global_get(glb_v_upv_up2); global_get(glb_v_rightv_right2)
    
    
xs_vec_add(player_originviewoffsetsgunorigin)
    
xs_vec_mul_scalar(v_forward10.3v_forward); xs_vec_mul_scalar(v_right2.9v_right)
    
xs_vec_mul_scalar(v_up, -3.7v_up); xs_vec_mul_scalar(v_forward210.0v_forward2)
    
xs_vec_mul_scalar(v_right23.0v_right2); xs_vec_mul_scalar(v_up2, -4.0v_up2)
    
xs_vec_add(gunoriginv_forwardorigin); xs_vec_add(gunoriginv_forward2origin2)
    
xs_vec_add(originv_rightorigin); xs_vec_add(origin2v_right2origin2)
    
xs_vec_add(originv_uporigin); xs_vec_add(origin2v_up2origin2)

    static 
Float:velocity[3]
    
get_speed_vector(origin2originrandom_float(140.0160.0), velocity)

    static 
angle
    angle 
random_num(0360)

    
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id)
    
write_byte(TE_MODEL)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoordorigin[1])
    
engfunc(EngFunc_WriteCoordorigin[2])
    
engfunc(EngFunc_WriteCoordvelocity[0])
    
engfunc(EngFunc_WriteCoordvelocity[1])
    
engfunc(EngFunc_WriteCoordvelocity[2])
    
write_angle(angle)
    
write_short(shells_model)
    
write_byte(1)
    
write_byte(20)
    
message_end()
}

stock get_speed_vector(const Float:origin1[3],const Float:origin2[3],Float:speedFloat:new_velocity[3])
{
    
new_velocity[0] = origin2[0] - origin1[0]
    
new_velocity[1] = origin2[1] - origin1[1]
    
new_velocity[2] = origin2[2] - origin1[2]
    new 
Float:num floatsqroot(speed*speed / (new_velocity[0]*new_velocity[0] + new_velocity[1]*new_velocity[1] + new_velocity[2]*new_velocity[2]))
    
new_velocity[0] *= num
    new_velocity
[1] *= num
    new_velocity
[2] *= num
    
    
return 1;
}

stock set_weapons_timeidle(idFloat:NextAttackFloat:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    new 
entwpn fm_get_user_weapon_entity(idCSW_BLOCKAR)
    
    if(!
pev_valid(entwpn)) 
        return
    
    
set_pdata_float(entwpn46NextAttack4)
    
set_pdata_float(entwpn47NextAttack4)
    
set_pdata_float(entwpn48TimeIdle4)
    
set_pdata_float(id83NextAttack5)
}

stock precache_sounds_from_model(const wpnmodel[])
{
    new 
fileik
    
if((file fopen(wpnmodel"rt")))
    {
        new 
szsoundpath[64]
        new 
numseqseqid
        
new eventnumeventseventid
        
        fseek
(file164SEEK_SET)
        
fread(filenumseqBLOCK_INT)
        
fread(fileseqidBLOCK_INT)
        
        for(
0numseqi++)
        {
            
fseek(fileseqid 48 176 iSEEK_SET)
            
fread(filenumeventsBLOCK_INT)
            
fread(fileeventidBLOCK_INT)
            
fseek(fileeventid 176 iSEEK_SET)

            for(
0numeventsk++)
            {
                
fseek(fileeventid 76 kSEEK_SET)
                
fread(fileeventBLOCK_INT)
                
fseek(file4SEEK_CUR)
                
                if(
event != 5004)continue
                
                
fread_blocks(fileszsoundpath64BLOCK_CHAR)
                
                if(
strlen(szsoundpath))
                {
                    
strtolower(szsoundpath)
                    
engfunc(EngFunc_PrecacheSoundszsoundpath)
                }
            }
        }
    }
    
fclose(file)
}

stock Stock_Get_Postion(id,Float:forw,Float:right,Float:up,Float:vStart[])
{
    static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
pev(idpev_originvOrigin)
    
pev(idpev_view_ofs,vUp)
    
xs_vec_add(vOrigin,vUp,vOrigin)
    
pev(idpev_v_anglevAngle)
    
    
engfunc(EngFunc_AngleVectorsvAnglevForwardvRightvUp)
    
    
vStart[0] = vOrigin[0] + vForward[0] * forw vRight[0] * right vUp[0] * up
    vStart
[1] = vOrigin[1] + vForward[1] * forw vRight[1] * right vUp[1] * up
    vStart
[2] = vOrigin[2] + vForward[2] * forw vRight[2] * right vUp[2] * up
}

stock Stock_Velocity_By_Aim(Float:vAngle[3],Float:fAngleOffset,Float:fMulti,Float:vVelocity[3])
{
    static 
Float:vForward[3],Float:vAngleTemp[3]
    
xs_vec_copy(vAnglevAngleTemp)
    
vAngleTemp[0] += fAngleOffset
    angle_vector
(vAngleTempANGLEVECTOR_FORWARDvForward)
    
xs_vec_mul_scalar(vForwardfMultivVelocity)
}

stock Stock_Get_Velocity_Angle(entityFloat:output[3])
{
    static 
Float:velocity[3]
    
pev(entitypev_velocityvelocity)
    
vector_to_angle(velocityoutput)
    if(
output[0] > 90.0output[0] = - (360.0 output[0])
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
    
    const 
PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_MAC10)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_MAC10)|(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)
    
    for (
0numi++)
    {
        
weaponid weapons[i]
        
        if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }
}

stock client_printc(index, const text[], any:...)
{
    new 
szMsg[128]
    
vformat(szMsgcharsmax(szMsg), text3)

    
replace_all(szMsgcharsmax(szMsg), "!g""^x04")
    
replace_all(szMsgcharsmax(szMsg), "!n""^x01")
    
replace_all(szMsgcharsmax(szMsg), "!t""^x03")

    if(
index == 0)
    {
        for(new 
0get_maxplayers(); i++)
        {
            if(
is_user_connected(i))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _i)
                
write_byte(i)
                
write_string(szMsg)
                
message_end()
            }
        }        
    } else {
        
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _index)
        
write_byte(index)
        
write_string(szMsg)
        
message_end()
    }


public 
Stock_Fake_KnockBack(idiVicFloat:iKb)
{
    if(
iVic 32)
        return
    
    new 
Float:vAttacker[3], Float:vVictim[3], Float:vVelocity[3], flags
    pev
(idpev_originvAttacker)
    
pev(iVicpev_originvVictim)
    
vAttacker[2] = vVictim[2] = 0.0
    flags 
pev(idpev_flags)
    
    
xs_vec_sub(vVictimvAttackervVictim)
    new 
Float:fDistance
    fDistance 
xs_vec_len(vVictim)
    
xs_vec_mul_scalar(vVictimfDistancevVictim)
    
    
pev(iVicpev_velocityvVelocity)
    
xs_vec_mul_scalar(vVictimiKbvVictim)
    
xs_vec_mul_scalar(vVictim400.0vVictim)
    
vVictim[2] = xs_vec_len(vVictim) * 0.15
    
    
if(flags &~ FL_ONGROUND)
    {
        
xs_vec_mul_scalar(vVictim1.5vVictim)
        
vVictim[2] *= 0.4
    
}
    if(
xs_vec_len(vVictim) > xs_vec_len(vVelocity)) set_pev(iVicpev_velocityvVictim)
}

stock __dhud_color__dhud_x__dhud_y__dhud_effect__dhud_fxtime__dhud_holdtime__dhud_fadeintime__dhud_fadeouttime__dhud_reliable;
stock set_dhudmessage(red 0green 160blue 0Float:= -1.0Float:0.65effects 2Float:fxtime 6.0Float:holdtime 1.0Float:fadeintime 0.1Float:fadeouttime 1.3bool:reliable false)
{
    
#define clamp_byte(%1) (clamp(%1, 0, 255 ))
    #define pack_color(%1,%2,%3) (%3 + (%2 << 8) + (%1 << 16))
    
    
__dhud_color pack_color(clamp_byte(red), clamp_byte(green), clamp_byte(blue))
    
__dhud_x _:x
    __dhud_y 
_:y
    __dhud_effect 
effects
    __dhud_fxtime 
_:fxtime
    __dhud_holdtime 
_:holdtime
    __dhud_fadeintime 
_:fadeintime
    __dhud_fadeouttime 
_:fadeouttime
    __dhud_reliable 
_:reliable
    
return 1
}

stock show_dhudmessage(index, const message[], any:...)
{
    new 
buffer[128]
    new 
numArguments numargs()

    if(
numArguments == 2send_dhudMessage(indexmessage)
    else if(
index || numArguments == 3)
    {
        
vformat(buffercharsmax(buffer), message3)
        
send_dhudMessage(indexbuffer)
    } else {
        new 
playersList[32], numPlayers
        get_players
(playersListnumPlayers"ch")

        if(!
numPlayers) return 0
    
        
new Array:handleArrayML ArrayCreate()
    
        for(new 
2jnumArgumentsi++)
        {
            if(
getarg(i) == LANG_PLAYER)
            {
                while( ( 
buffer] = getarg1j++ ) ) ) {}
                
0
                
if(GetLangTransKey(buffer) != TransKey_BadArrayPushCell(handleArrayMLi++)
            }
        }
        new 
size ArraySize(handleArrayML)
        if(!
size)
        {
            
vformat(buffercharsmax(buffer), message3)
            
send_dhudMessage(indexbuffer)
        } else {
            for(new 
0jnumPlayersi++)
            {
                
index playersList[i]
    
                for(
0sizej++) setarg(ArrayGetCell(handleArrayMLj), 0index)
                
vformat(buffercharsmax(buffer), message)
                
send_dhudMessage(indexbuffer)
            }
            
ArrayDestroy(handleArrayML)
        }
    }
    return 
1
}

stock send_dhudMessage(const index, const message[])
{
    
message_begin(__dhud_reliable ? (index MSG_ONE MSG_ALL) : (index MSG_ONE_UNRELIABLE MSG_BROADCAST), SVC_DIRECTOR_index)
    
write_byte(strlen(message) + 31)
    
write_byte(DRC_CMD_MESSAGE)
    
write_byte(__dhud_effect)
    
write_long(__dhud_color)
    
write_long(__dhud_x)
    
write_long(__dhud_y)
    
write_long(__dhud_fadeintime)
    
write_long(__dhud_fadeouttime)
    
write_long(__dhud_holdtime)
    
write_long(__dhud_fxtime)
    
write_string(message)
    
message_end();
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
mohanad_2022 is offline
OciXCrom
Veteran Member
Join Date: Oct 2013
Location: Macedonia
Old 01-19-2022 , 07:09   Re: Help to fix scripting problem
Reply With Quote #2

Take a look at the documentation for the function you're trying to use - https://amxx-bg.info/api/zmvip/zv_register_extra_item

You have "name, cost, team" when it should be "name, description, cost, team".
__________________
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 13:10.


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