Modificar item para que todos lo puedan comprar
#1
Quería saber me pueden dar una mano con esto..
Encontré este plugin y necesito que el item se pueda comprar mediante chat y tenga un costo y sea para uso publico (es decir que todos la puedan comprar)

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "Balrog-III"
#define VERSION "1.0"
#define AUTHOR "Dias"

#define V_MODEL "models/v_balrog3.mdl"
#define P_MODEL "models/p_balrog3.mdl"
#define W_MODEL "models/w_balrog3.mdl"

#define DAMAGE 24
#define BPAMMO 240
#define ACTIVE_CLIP 15

#define CSW_BALROG3 CSW_MP5NAVY
#define weapon_balrog3 "weapon_mp5navy"

#define WEAPON_SECRETCODE 4962
#define WEAPON_EVENT "events/mp5n.sc"
#define OLD_W_MODEL "models/w_mp5.mdl"

new const Balrog3_Sounds[6][] =
{
    
"weapons/balrig3-1.wav",
    
"weapons/balrig3-2.wav",
    
"weapons/balrig3_boltpull.wav",
    
"weapons/balrig3_clipin.wav",
    
"weapons/balrig3_clipout.wav",
    
"weapons/balrig3_draw.wav"
}

#define EXPLOSE_SPR "sprites/balrog5stack.spr"

enum
{
    
ANIM_IDLE 0,
    
ANIM_DRAW,
    
ANIM_RELOAD,
    
ANIM_SHOOT_A,
    
ANIM_SHOOT_B
}


new 
g_Had_Balrog3[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33]
new 
g_Exp_SprIdg_balrog3_eventg_ShellIdg_SmokePuff_SprId

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
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_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon_balrog3"fw_Item_AddToPlayer_Post"1)
    
    
register_clcmd("admin_get_balrog3""Get_Balrog3"ADMIN_BAN)
}

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelV_MODEL)
    
engfunc(EngFunc_PrecacheModelP_MODEL)
    
engfunc(EngFunc_PrecacheModelW_MODEL)
    
    for(new 
0sizeof(Balrog3_Sounds); i++)
        
engfunc(EngFunc_PrecacheSoundBalrog3_Sounds[i])
        
    
g_Exp_SprId engfunc(EngFunc_PrecacheModelEXPLOSE_SPR)
    
g_SmokePuff_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
g_ShellId engfunc(EngFunc_PrecacheModel"models/pshell.mdl")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

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

public 
Get_Balrog3(id)
{
    if(!
is_user_alive(id))
        return
        
    
g_Had_Balrog3[id] = 1
    g_Shoot_Special
[id] = 0
    g_Holding_Attack
[id] = 0
    g_Shoot_Count
[id] = 0
    
    fm_give_item
(idweapon_balrog3)
    
    
cs_set_user_bpammo(idCSW_BALROG3BPAMMO)
}

public 
Remove_Balrog3(id)
{
    if(!
is_user_connected(id))
        return
        
    
g_Had_Balrog3[id] = 0
    g_Shoot_Special
[id] = 0    
}

public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
    
    if(
get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id)
    
    if(
get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[id])
    {
        if(
g_Old_Weapon[id] != CSW_BALROG3)
        {
            
set_pev(idpev_viewmodel2V_MODEL)
            
set_pev(idpev_weaponmodel2P_MODEL)
        }
    }
    
    
g_Old_Weapon[id] = get_user_weapon(id)
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[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_BALROG3 || !g_Had_Balrog3[invoker])
        return 
FMRES_IGNORED
    
if(eventid != g_balrog3_event)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
    if(!
g_Shoot_Special[invoker] && cs_get_user_bpammo(invokerCSW_BALROG3) > 0)
    {
        
g_Shoot_Count[invoker]++
        if(
g_Shoot_Count[invoker] >= ACTIVE_CLIP)
        {
            
g_Shoot_Special[invoker] = 1
            
            
static EntEnt fm_get_user_weapon_entity(invokerCSW_BALROG3)
            if(
pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent)
        }
    } else if(
g_Shoot_Special[invoker]) {
        
cs_set_user_bpammo(invokerCSW_BALROG3cs_get_user_bpammo(invokerCSW_BALROG3) - 1)
        
        if(
cs_get_user_bpammo(invokerCSW_BALROG3) <= 0)
        {
            
g_Shoot_Special[invoker] = 0
            g_Shoot_Count
[invoker] = 0
        
}
    }
    
    
set_weapon_anim(invokerg_Shoot_Special[invoker] == ANIM_SHOOT_B ANIM_SHOOT_A)
    
emit_sound(invokerCHAN_WEAPONg_Shoot_Special[invoker] == Balrog3_Sounds[1] : Balrog3_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
    
    
Eject_Shell(invokerg_ShellId0.0)
        
    return 
FMRES_SUPERCEDE
}

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 
weaponweapon fm_find_ent_by_owner(-1weapon_balrog3entity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
g_Had_Balrog3[iOwner])
        {
            
Remove_Balrog3(iOwner)
            
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE)
            
engfunc(EngFunc_SetModelentityW_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id))
        return
    if(
g_Current_Weapon[id] != CSW_BALROG3 || !g_Had_Balrog3[id])
        return
        
    static 
NewButtonNewButton get_uc(uc_handleUC_Buttons)
    static 
OldButtonOldButton pev(idpev_oldbuttons)
    
    if(
NewButton IN_ATTACK)
    {
        if(!
g_Holding_Attack[id]) g_Holding_Attack[id] = 1
    
} else if((NewButton IN_ATTACK2) && !(OldButton IN_ATTACK2)) {
        if(
cs_get_user_zoom(id) == 1cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1)
        else 
cs_set_user_zoom(idCS_SET_NO_ZOOM1)
    } else {
        if(
OldButton IN_ATTACK)
        {
            if(
g_Holding_Attack[id]) 
            {
                
g_Holding_Attack[id] = 0
                g_Shoot_Count
[id] = 0
                g_Shoot_Special
[id] = 0
            
}
        }
    }
}

public 
fw_TraceAttack(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_user_alive(Attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(Attacker) != CSW_BALROG3 || !g_Had_Balrog3[Attacker])
        return 
HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
    
    
get_tr2(PtrTR_vecEndPosflEnd)
    
get_tr2(PtrTR_vecPlaneNormalvecPlane)        
        
    if(!
is_user_alive(Victim))
    {
        
Make_BulletHole(AttackerflEndDamage)
        
Make_BulletSmoke(AttackerPtr)
    }
    
    if(
g_Shoot_Special[Attacker])
    {
        
Make_BalrogEffect(AttackerPtr)
        
radius_damage(AttackerflEndfloat(DAMAGE), 96.0)
    }
    
    
SetHamParamFloat(3float(DAMAGE))
    
    return 
HAM_IGNORED
}

public 
fw_Weapon_PrimaryAttack(Ent)
{
    if(!
pev_valid(Ent))
        return
    static 
IdId pev(Entpev_owner)
    if(!
g_Had_Balrog3[Id])
        return
    
    if(
g_Shoot_Special[Id]) set_pdata_float(Ent620.44)
    else 
set_pdata_float(Ent620.24)
}

public 
fw_Weapon_PrimaryAttack_Post(Ent)
{
    if(!
pev_valid(Ent))
        return
    static 
IdId pev(Entpev_owner)
    if(!
g_Had_Balrog3[Id])
        return
    
    if(
g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0
    {
        
cs_set_weapon_ammo(Entg_Shoot_Count[Id])
        
set_pdata_float(Ent46get_pdata_float(Ent464) * 0.754)    
    }
}

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

    return 
HAM_HANDLED    
}

stock Make_BulletHole(idFloat:Origin[3], Float:Damage)
{
    
// Find target
    
static DecalDecal random_num(4145)
    static 
LoopTime
    
    if(
Damage 100.0LoopTime 2
    
else LoopTime 1
    
    
for(new 0LoopTimei++)
    {
        
// 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 
Make_BulletSmoke(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    
get_tr2(TrResultTR_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_SprId)
    
write_byte(2)
    
write_byte(50)
    
write_byte(TE_FLAG)
    
message_end()
}

public 
Make_BalrogEffect(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    
get_tr2(TrResultTR_vecPlaneNormalvecEnd)
    
    
xs_vec_mul_scalar(vecEnd5.0vecEnd)
    
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])
    
write_short(g_Exp_SprId)
    
write_byte(5)
    
write_byte(30)
    
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 radius_damage(idFloat:Origin[3], Float:DamageFloat:Radius)
{
    static 
VictimVictim = -1

    
while((Victim engfunc(EngFunc_FindEntityInSphereVictimOriginRadius)) != 0)
    {
        if(!
is_user_alive(Victim) || id == Victim
            continue

        
ExecuteHamB(Ham_TakeDamageVictimfm_get_user_weapon_entity(idget_user_weapon(id)), idDamageDMG_BULLET)
    }
}

stock Eject_Shell(idShell_ModelIndexFloat:Time// By Dias
{
    static 
EntEnt get_pdata_cbase(id3735)
    if(!
pev_valid(Ent))
        return

        
set_pdata_int(Ent57Shell_ModelIndex4)
        
set_pdata_float(id111get_gametime() + Time)
}

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()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
Responder
#2
Prueba si te funciona

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "Balrog-III"
#define VERSION "1.0"
#define AUTHOR "Dias"

#define V_MODEL "models/v_balrog3.mdl"
#define P_MODEL "models/p_balrog3.mdl"
#define W_MODEL "models/w_balrog3.mdl"

#define DAMAGE 24
#define BPAMMO 240
#define ACTIVE_CLIP 15

#define CSW_BALROG3 CSW_MP5NAVY
#define weapon_balrog3 "weapon_mp5navy"

#define WEAPON_SECRETCODE 4962
#define WEAPON_EVENT "events/mp5n.sc"
#define OLD_W_MODEL "models/w_mp5.mdl"

new const Balrog3_Sounds[6][] =
{
    
"weapons/balrig3-1.wav",
    
"weapons/balrig3-2.wav",
    
"weapons/balrig3_boltpull.wav",
    
"weapons/balrig3_clipin.wav",
    
"weapons/balrig3_clipout.wav",
    
"weapons/balrig3_draw.wav"
}

#define EXPLOSE_SPR "sprites/balrog5stack.spr"

enum
{
    
ANIM_IDLE 0,
    
ANIM_DRAW,
    
ANIM_RELOAD,
    
ANIM_SHOOT_A,
    
ANIM_SHOOT_B
}


new 
g_Had_Balrog3[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33]
new 
g_Exp_SprIdg_balrog3_eventg_ShellIdg_SmokePuff_SprId
new cvar_price;

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
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_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon_balrog3"fw_Item_AddToPlayer_Post"1)
    
    
register_clcmd("admin_get_balrog3""Get_Balrog3"ADMIN_BAN)
    
    
register_clcmd("say /balrog""buy_Item");
    
cvar_price register_cvar("amx_balrog_price""9000");
}

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelV_MODEL)
    
engfunc(EngFunc_PrecacheModelP_MODEL)
    
engfunc(EngFunc_PrecacheModelW_MODEL)
    
    for(new 
0sizeof(Balrog3_Sounds); i++)
        
engfunc(EngFunc_PrecacheSoundBalrog3_Sounds[i])
        
    
g_Exp_SprId engfunc(EngFunc_PrecacheModelEXPLOSE_SPR)
    
g_SmokePuff_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
g_ShellId engfunc(EngFunc_PrecacheModel"models/pshell.mdl")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

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

public 
buy_Item(id)
{
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
    new 
iMoney;
    
iMoney cs_get_user_money(id);
    if(
iMoney get_pcvar_num(cvar_price))
    {
        
client_print(idprint_team_default"[AMX] No tienes suficiente dinero para comprar este item");
        return 
PLUGIN_HANDLED;
    }
    
cs_set_user_money(idiMoney get_pcvar_num(cvar_price));
    
Get_Balrog3(id);
    
client_print(idprint_team_default"[AMX] Has comprado correctamente este item!");
    return 
PLUGIN_HANDLED;
}

public 
Get_Balrog3(id)
{
    if(!
is_user_alive(id))
        return
        
    
g_Had_Balrog3[id] = 1
    g_Shoot_Special
[id] = 0
    g_Holding_Attack
[id] = 0
    g_Shoot_Count
[id] = 0
    
    fm_give_item
(idweapon_balrog3)
    
    
cs_set_user_bpammo(idCSW_BALROG3BPAMMO)
}

public 
Remove_Balrog3(id)
{
    if(!
is_user_connected(id))
        return
        
    
g_Had_Balrog3[id] = 0
    g_Shoot_Special
[id] = 0    
}

public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
    
    if(
get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id)
    
    if(
get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[id])
    {
        if(
g_Old_Weapon[id] != CSW_BALROG3)
        {
            
set_pev(idpev_viewmodel2V_MODEL)
            
set_pev(idpev_weaponmodel2P_MODEL)
        }
    }
    
    
g_Old_Weapon[id] = get_user_weapon(id)
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[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_BALROG3 || !g_Had_Balrog3[invoker])
        return 
FMRES_IGNORED
    
if(eventid != g_balrog3_event)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
    if(!
g_Shoot_Special[invoker] && cs_get_user_bpammo(invokerCSW_BALROG3) > 0)
    {
        
g_Shoot_Count[invoker]++
        if(
g_Shoot_Count[invoker] >= ACTIVE_CLIP)
        {
            
g_Shoot_Special[invoker] = 1
            
            
static EntEnt fm_get_user_weapon_entity(invokerCSW_BALROG3)
            if(
pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent)
        }
    } else if(
g_Shoot_Special[invoker]) {
        
cs_set_user_bpammo(invokerCSW_BALROG3cs_get_user_bpammo(invokerCSW_BALROG3) - 1)
        
        if(
cs_get_user_bpammo(invokerCSW_BALROG3) <= 0)
        {
            
g_Shoot_Special[invoker] = 0
            g_Shoot_Count
[invoker] = 0
        
}
    }
    
    
set_weapon_anim(invokerg_Shoot_Special[invoker] == ANIM_SHOOT_B ANIM_SHOOT_A)
    
emit_sound(invokerCHAN_WEAPONg_Shoot_Special[invoker] == Balrog3_Sounds[1] : Balrog3_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
    
    
Eject_Shell(invokerg_ShellId0.0)
        
    return 
FMRES_SUPERCEDE
}

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 
weaponweapon fm_find_ent_by_owner(-1weapon_balrog3entity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
g_Had_Balrog3[iOwner])
        {
            
Remove_Balrog3(iOwner)
            
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE)
            
engfunc(EngFunc_SetModelentityW_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id))
        return
    if(
g_Current_Weapon[id] != CSW_BALROG3 || !g_Had_Balrog3[id])
        return
        
    static 
NewButtonNewButton get_uc(uc_handleUC_Buttons)
    static 
OldButtonOldButton pev(idpev_oldbuttons)
    
    if(
NewButton IN_ATTACK)
    {
        if(!
g_Holding_Attack[id]) g_Holding_Attack[id] = 1
    
} else if((NewButton IN_ATTACK2) && !(OldButton IN_ATTACK2)) {
        if(
cs_get_user_zoom(id) == 1cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1)
        else 
cs_set_user_zoom(idCS_SET_NO_ZOOM1)
    } else {
        if(
OldButton IN_ATTACK)
        {
            if(
g_Holding_Attack[id]) 
            {
                
g_Holding_Attack[id] = 0
                g_Shoot_Count
[id] = 0
                g_Shoot_Special
[id] = 0
            
}
        }
    }
}

public 
fw_TraceAttack(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_user_alive(Attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(Attacker) != CSW_BALROG3 || !g_Had_Balrog3[Attacker])
        return 
HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
    
    
get_tr2(PtrTR_vecEndPosflEnd)
    
get_tr2(PtrTR_vecPlaneNormalvecPlane)        
        
    if(!
is_user_alive(Victim))
    {
        
Make_BulletHole(AttackerflEndDamage)
        
Make_BulletSmoke(AttackerPtr)
    }
    
    if(
g_Shoot_Special[Attacker])
    {
        
Make_BalrogEffect(AttackerPtr)
        
radius_damage(AttackerflEndfloat(DAMAGE), 96.0)
    }
    
    
SetHamParamFloat(3float(DAMAGE))
    
    return 
HAM_IGNORED
}

public 
fw_Weapon_PrimaryAttack(Ent)
{
    if(!
pev_valid(Ent))
        return
    static 
IdId pev(Entpev_owner)
    if(!
g_Had_Balrog3[Id])
        return
    
    if(
g_Shoot_Special[Id]) set_pdata_float(Ent620.44)
    else 
set_pdata_float(Ent620.24)
}

public 
fw_Weapon_PrimaryAttack_Post(Ent)
{
    if(!
pev_valid(Ent))
        return
    static 
IdId pev(Entpev_owner)
    if(!
g_Had_Balrog3[Id])
        return
    
    if(
g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0
    {
        
cs_set_weapon_ammo(Entg_Shoot_Count[Id])
        
set_pdata_float(Ent46get_pdata_float(Ent464) * 0.754)    
    }
}

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

    return 
HAM_HANDLED    
}

stock Make_BulletHole(idFloat:Origin[3], Float:Damage)
{
    
// Find target
    
static DecalDecal random_num(4145)
    static 
LoopTime
    
    if(
Damage 100.0LoopTime 2
    
else LoopTime 1
    
    
for(new 0LoopTimei++)
    {
        
// 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 
Make_BulletSmoke(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    
get_tr2(TrResultTR_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_SprId)
    
write_byte(2)
    
write_byte(50)
    
write_byte(TE_FLAG)
    
message_end()
}

public 
Make_BalrogEffect(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    
get_tr2(TrResultTR_vecPlaneNormalvecEnd)
    
    
xs_vec_mul_scalar(vecEnd5.0vecEnd)
    
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])
    
write_short(g_Exp_SprId)
    
write_byte(5)
    
write_byte(30)
    
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 radius_damage(idFloat:Origin[3], Float:DamageFloat:Radius)
{
    static 
VictimVictim = -1

    
while((Victim engfunc(EngFunc_FindEntityInSphereVictimOriginRadius)) != 0)
    {
        if(!
is_user_alive(Victim) || id == Victim
            continue

        
ExecuteHamB(Ham_TakeDamageVictimfm_get_user_weapon_entity(idget_user_weapon(id)), idDamageDMG_BULLET)
    }
}

stock Eject_Shell(idShell_ModelIndexFloat:Time// By Dias
{
    static 
EntEnt get_pdata_cbase(id3735)
    if(!
pev_valid(Ent))
        return

    
set_pdata_int(Ent57Shell_ModelIndex4)
    
set_pdata_float(id111get_gametime() + Time)
}

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()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 
Responder
#3
(16/03/2021, 02:04 AM)GabsHp escribió: Prueba si te funciona

Código PHP:
#include <amxmodx>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>

#define PLUGIN "Balrog-III"
#define VERSION "1.0"
#define AUTHOR "Dias"

#define V_MODEL "models/v_balrog3.mdl"
#define P_MODEL "models/p_balrog3.mdl"
#define W_MODEL "models/w_balrog3.mdl"

#define DAMAGE 24
#define BPAMMO 240
#define ACTIVE_CLIP 15

#define CSW_BALROG3 CSW_MP5NAVY
#define weapon_balrog3 "weapon_mp5navy"

#define WEAPON_SECRETCODE 4962
#define WEAPON_EVENT "events/mp5n.sc"
#define OLD_W_MODEL "models/w_mp5.mdl"

new const Balrog3_Sounds[6][] =
{
    "weapons/balrig3-1.wav",
    "weapons/balrig3-2.wav",
    "weapons/balrig3_boltpull.wav",
    "weapons/balrig3_clipin.wav",
    "weapons/balrig3_clipout.wav",
    "weapons/balrig3_draw.wav"
}

#define EXPLOSE_SPR "sprites/balrog5stack.spr"

enum
{
    ANIM_IDLE 0,
    ANIM_DRAW,
    ANIM_RELOAD,
    ANIM_SHOOT_A,
    ANIM_SHOOT_B
}


new 
g_Had_Balrog3[33], g_Shoot_Special[33], g_Holding_Attack[33], g_Shoot_Count[33], g_Old_Weapon[33], g_Current_Weapon[33]
new 
g_Exp_SprIdg_balrog3_eventg_ShellIdg_SmokePuff_SprId
new cvar_price;

public 
plugin_init() 
{
    register_plugin(PLUGINVERSIONAUTHOR)
    
    register_event
("CurWeapon""Event_CurWeapon""be""1=1")
    
    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_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack")
    RegisterHam(Ham_Weapon_PrimaryAttackweapon_balrog3"fw_Weapon_PrimaryAttack_Post"1)
    RegisterHam(Ham_Item_AddToPlayerweapon_balrog3"fw_Item_AddToPlayer_Post"1)
    
    register_clcmd
("admin_get_balrog3""Get_Balrog3"ADMIN_BAN)
    
    register_clcmd
("say /balrog""buy_Item");
    cvar_price register_cvar("amx_balrog_price""9000");
}

public 
plugin_precache()
{
    engfunc(EngFunc_PrecacheModelV_MODEL)
    engfunc(EngFunc_PrecacheModelP_MODEL)
    engfunc(EngFunc_PrecacheModelW_MODEL)
    
    
for(new 0sizeof(Balrog3_Sounds); i++)
        engfunc(EngFunc_PrecacheSoundBalrog3_Sounds[i])
        
    g_Exp_SprId 
engfunc(EngFunc_PrecacheModelEXPLOSE_SPR)
    g_SmokePuff_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    g_ShellId engfunc(EngFunc_PrecacheModel"models/pshell.mdl")
    
    register_forward
(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

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

public 
buy_Item(id)
{
 if(!
is_user_alive(id))
 return 
PLUGIN_HANDLED;
 new 
iMoney;
 
iMoney cs_get_user_money(id);
 if(
iMoney get_pcvar_num(cvar_price))
 {
 
client_print(idprint_team_default"[AMX] No tienes suficiente dinero para comprar este item");
 return 
PLUGIN_HANDLED;
 }
 
cs_set_user_money(idiMoney get_pcvar_num(cvar_price));
 
Get_Balrog3(id);
 
client_print(idprint_team_default"[AMX] Has comprado correctamente este item!");
 return 
PLUGIN_HANDLED;
}

public 
Get_Balrog3(id)
{
    if(!is_user_alive(id))
        return
        
    g_Had_Balrog3
[id] = 1
    g_Shoot_Special
[id] = 0
    g_Holding_Attack
[id] = 0
    g_Shoot_Count
[id] = 0
    
    fm_give_item
(idweapon_balrog3)
    
    cs_set_user_bpammo
(idCSW_BALROG3BPAMMO)
}

public 
Remove_Balrog3(id)
{
    if(!is_user_connected(id))
        return
        
    g_Had_Balrog3
[id] = 0
    g_Shoot_Special
[id] = 0    
}

public 
Event_CurWeapon(id)
{
    if(!is_user_alive(id))
        return
    
    
if(get_user_weapon(id) != g_Current_Weapon[id]) g_Current_Weapon[id] = get_user_weapon(id)
    
    
if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[id])
    {
        if(g_Old_Weapon[id] != CSW_BALROG3)
        {
            set_pev(idpev_viewmodel2V_MODEL)
            set_pev(idpev_weaponmodel2P_MODEL)
        }
    }
    
    g_Old_Weapon
[id] = get_user_weapon(id)
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!is_user_alive(id) || !is_user_connected(id))
        return FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BALROG3 && g_Had_Balrog3[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_BALROG3 || !g_Had_Balrog3[invoker])
        return FMRES_IGNORED
    
if(eventid != g_balrog3_event)
        return FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
    
if(!g_Shoot_Special[invoker] && cs_get_user_bpammo(invokerCSW_BALROG3) > 0)
    {
        g_Shoot_Count[invoker]++
        if(g_Shoot_Count[invoker] >= ACTIVE_CLIP)
        {
            g_Shoot_Special[invoker] = 1
            
            
static EntEnt fm_get_user_weapon_entity(invokerCSW_BALROG3)
            if(pev_valid(Ent)) g_Shoot_Count[invoker] = cs_get_weapon_ammo(Ent)
        }
    } else if(g_Shoot_Special[invoker]) {
        cs_set_user_bpammo(invokerCSW_BALROG3cs_get_user_bpammo(invokerCSW_BALROG3) - 1)
        
        
if(cs_get_user_bpammo(invokerCSW_BALROG3) <= 0)
        {
            g_Shoot_Special[invoker] = 0
            g_Shoot_Count
[invoker] = 0
        
}
    }
    
    set_weapon_anim
(invokerg_Shoot_Special[invoker] == ANIM_SHOOT_B ANIM_SHOOT_A)
    emit_sound(invokerCHAN_WEAPONg_Shoot_Special[invoker] == Balrog3_Sounds[1] : Balrog3_Sounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
    
    Eject_Shell
(invokerg_ShellId0.0)
        
    
return FMRES_SUPERCEDE
}

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 weaponweapon fm_find_ent_by_owner(-1weapon_balrog3entity)
        
        
if(!pev_valid(weapon))
            return FMRES_IGNORED;
        
        
if(g_Had_Balrog3[iOwner])
        {
            Remove_Balrog3(iOwner)
            
            set_pev
(weaponpev_impulseWEAPON_SECRETCODE)
            engfunc(EngFunc_SetModelentityW_MODEL)
            
            
return FMRES_SUPERCEDE
        
}
    }

    return FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!is_user_alive(id))
        return
    if(g_Current_Weapon[id] != CSW_BALROG3 || !g_Had_Balrog3[id])
        return
        
    
static NewButtonNewButton get_uc(uc_handleUC_Buttons)
    static OldButtonOldButton pev(idpev_oldbuttons)
    
    
if(NewButton IN_ATTACK)
    {
        if(!g_Holding_Attack[id]) g_Holding_Attack[id] = 1
    
} else if((NewButton IN_ATTACK2) && !(OldButton IN_ATTACK2)) {
        if(cs_get_user_zoom(id) == 1cs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1)
        else cs_set_user_zoom(idCS_SET_NO_ZOOM1)
    } else {
        if(OldButton IN_ATTACK)
        {
            if(g_Holding_Attack[id]) 
            {
                g_Holding_Attack[id] = 0
                g_Shoot_Count
[id] = 0
                g_Shoot_Special
[id] = 0
            
}
        }
    }
}

public 
fw_TraceAttack(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!is_user_alive(Attacker))
        return HAM_IGNORED    
    
if(get_user_weapon(Attacker) != CSW_BALROG3 || !g_Had_Balrog3[Attacker])
        return HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
    
    get_tr2
(PtrTR_vecEndPosflEnd)
    get_tr2(PtrTR_vecPlaneNormalvecPlane)        
        
    
if(!is_user_alive(Victim))
    {
        Make_BulletHole(AttackerflEndDamage)
        Make_BulletSmoke(AttackerPtr)
    }
    
    
if(g_Shoot_Special[Attacker])
    {
        Make_BalrogEffect(AttackerPtr)
        radius_damage(AttackerflEndfloat(DAMAGE), 96.0)
    }
    
    SetHamParamFloat
(3float(DAMAGE))
    
    
return HAM_IGNORED
}

public 
fw_Weapon_PrimaryAttack(Ent)
{
    if(!pev_valid(Ent))
        return
    static IdId pev(Entpev_owner)
    if(!g_Had_Balrog3[Id])
        return
    
    
if(g_Shoot_Special[Id]) set_pdata_float(Ent620.44)
    else set_pdata_float(Ent620.24)
}

public 
fw_Weapon_PrimaryAttack_Post(Ent)
{
    if(!pev_valid(Ent))
        return
    static IdId pev(Entpev_owner)
    if(!g_Had_Balrog3[Id])
        return
    
    
if(g_Shoot_Special[Id] && cs_get_weapon_ammo(Ent) > 0
    {
        cs_set_weapon_ammo(Entg_Shoot_Count[Id])
        set_pdata_float(Ent46get_pdata_float(Ent464) * 0.754)    
    
}
}

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

    
return HAM_HANDLED    
}

stock Make_BulletHole(idFloat:Origin[3], Float:Damage)
{
    // Find target
    static DecalDecal random_num(4145)
    static LoopTime
    
    
if(Damage 100.0LoopTime 2
    
else LoopTime 1
    
    
for(new 0LoopTimei++)
    {
        // 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 
Make_BulletSmoke(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    get_tr2(TrResultTR_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_SprId)
    write_byte(2)
    write_byte(50)
    write_byte(TE_FLAG)
    message_end()
}

public 
Make_BalrogEffect(idTrResult)
{
    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(TrResultTR_vecEndPosvecSrc)
    get_tr2(TrResultTR_vecPlaneNormalvecEnd)
    
    xs_vec_mul_scalar
(vecEnd5.0vecEnd)
    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])
    write_short(g_Exp_SprId)
    write_byte(5)
    write_byte(30)
    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 radius_damage(idFloat:Origin[3], Float:DamageFloat:Radius)
{
    static VictimVictim = -1

    
while((Victim engfunc(EngFunc_FindEntityInSphereVictimOriginRadius)) != 0)
    {
        if(!is_user_alive(Victim) || id == Victim
            continue

        ExecuteHamB(Ham_TakeDamageVictimfm_get_user_weapon_entity(idget_user_weapon(id)), idDamageDMG_BULLET)
    }
}

stock Eject_Shell(idShell_ModelIndexFloat:Time// By Dias
{
 static 
EntEnt get_pdata_cbase(id3735)
 if(!
pev_valid(Ent))
 return

 
set_pdata_int(Ent57Shell_ModelIndex4)
 
set_pdata_float(id111get_gametime() + Time)
}

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()
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/ 

Hola buenos días, anda de 10 gracias!!!
Te queria consultar algo mas.. tengo mas plugins asi, solamente esto agregaste o se modifica algo mas del sma?
Código PHP:
register_clcmd("say /balrog""buy_Item");
    
cvar_price register_cvar("amx_balrog_price""9000"); 
Código PHP:
public buy_Item(id)
{
    if(!
is_user_alive(id))
        return 
PLUGIN_HANDLED;
    new 
iMoney;
    
iMoney cs_get_user_money(id);
    if(
iMoney get_pcvar_num(cvar_price))
    {
        
client_print(idprint_team_default"[AMX] No tienes suficiente dinero para comprar este item");
        return 
PLUGIN_HANDLED;
    }
    
cs_set_user_money(idiMoney get_pcvar_num(cvar_price));
    
Get_Balrog3(id);
    
client_print(idprint_team_default"[AMX] Has comprado correctamente este item!");
    return 
PLUGIN_HANDLED
Responder
#4
(16/03/2021, 12:00 PM)Gstrigl escribió: Hola buenos días, anda de 10 gracias!!!
Te queria consultar algo mas.. tengo mas plugins asi, solamente esto agregaste o se modifica algo mas del sma?
Código PHP:
    register_clcmd("say /balrog""buy_Item");
    cvar_price register_cvar("amx_balrog_price""9000"); 
Código PHP:
public buy_Item(id)
{
    if(!is_user_alive(id))
        return PLUGIN_HANDLED;
    new iMoney;
    iMoney cs_get_user_money(id);
    if(iMoney get_pcvar_num(cvar_price))
    {
        client_print(idprint_team_default"[AMX] No tienes suficiente dinero para comprar este item");
        return PLUGIN_HANDLED;
    }
    cs_set_user_money(idiMoney get_pcvar_num(cvar_price));
    Get_Balrog3(id);
    client_print(idprint_team_default"[AMX] Has comprado correctamente este item!");
    return PLUGIN_HANDLED

Puedes usar eso como base, pero tienes que reemplazar la función que te da el arma. En este caso, es esta:

Código PHP:
Get_Balrog3(id); 
Responder
#5
(16/03/2021, 12:57 PM)GabsHp escribió: Puedes usar eso como base, pero tienes que reemplazar la función que te da el arma. En este caso, es esta:

Código PHP:
Get_Balrog3(id); 

ajam, no entendí bien pero ni bien llego a casa me fijo bien, gracias !
Responder
#6
(16/03/2021, 01:43 PM)Gstrigl escribió: ajam, no entendí bien pero ni bien llego a casa me fijo bien, gracias !

En los plugins de cada arma, habrá una función que es la que al usar el comando te da el arma.
Tienes que identificar esa función y reemplazarla en el pedazo de code que yo te aporté.
Como ejemplo está:
Código PHP:
Get_Balrog3(id

Esa función es la que te entrega el arma, solo tienes que identificar las funciones que te entregan las otras armas.
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)