AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help to fix scripting problem (https://forums.alliedmods.net/showthread.php?t=335988)

mohanad_2022 01-19-2022 03:24

Help to fix scripting problem
 
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 }
*/ 


OciXCrom 01-19-2022 07:09

Re: Help to fix scripting problem
 
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".


All times are GMT -4. The time now is 11:35.

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