Agregarle native al arma ak47 paladin
#1
Hola estoy usando el plugin de Skylar Tienda por Natives 1.0
Quiero agregar la ak 47 paladin pero no se como ponerle la native al plugin del Extra-Item

Aca esta la include :
TiendaNatives.inc
Código:
/* Tienda por natives */

#if defined _TiendaNatives_included
    #endinput
#endif

#define _TiendaNatives_included

native tienda_gatling(id)
native tienda_plasma(id)
native tienda_balrog(id)
native tienda_paladin(id)

/* Tienda por natives */

Aca esta el plugin de la tienda por natives 1.0

Código PHP:
#include <amxmodx>
#include <cstrike>
#include <TiendaNatives>
#include <ColorChat>

/*------------------ / Defines \ ------------------*/
#define gPlugin "Tienda[Natives]"
#define Prefix "[AMXX-ES]"

/*------------------ / Enumerador \ ------------------*/
enum _:DATA_TIENDA {
    
NOMBRE[20],
    
PRECIO
}

/*------------------ / Constante \ ------------------*/
new const ItemsTienda[][DATA_TIENDA] = {
    {
"Gatling"1000},
    {
"Plasma-Gun"1200},
    {
"Balrog-III"1400},
    {
"AK-47 Paladin"1600}
}

/*------------------ / Funciones \ ------------------*/
public plugin_init() {
    
/* = Plugin = */
    
register_plugin(gPlugin"1.0""Skylar")
    
    
/* = Clcmd = */
    
register_clcmd("nightvision""menu_tienda")
}

/*------------------ / Tienda \ ------------------*/
public menu_tienda(id) {
    new 
imenutext[100]
    
menu menu_create("\y[\dAMXX-ES\y]\w Tienda por Natives""handler_tienda")
    
    for(
0sizeof(ItemsTienda); i++) {
        if(
cs_get_user_money(id) < ItemsTienda[i][PRECIO]) {
            
formatex(textcharsmax(text), "\d%s \r[ $%d ]"ItemsTienda[i][NOMBRE], ItemsTienda[i][PRECIO])
        } else {
            
formatex(textcharsmax(text), "\w%s \y[ $%d ]"ItemsTienda[i][NOMBRE], ItemsTienda[i][PRECIO])
        }
        
menu_additem(menutext__menu_makecallback("tienda_callback"))
    }
    
menu_display(idmenu)
}

/*------------------ / Callback \ ------------------*/
public tienda_callback(idmenuitem) {
    if(
cs_get_user_money(id) < ItemsTienda[item][PRECIO])
        return 
ITEM_DISABLED;
        
    return 
ITEM_ENABLED;
}

/*------------------ / Handler Tienda \ ------------------*/
public handler_tienda(idmenuitem) {
    if(
item == MENU_EXIT)
        return 
PLUGIN_HANDLED;
        
    switch(
item) {
        case 
0tienda_gatling(id)
        case 
1tienda_plasma(id)
        case 
2tienda_balrog(id)
        case 
3tienda_paladin(id)
    }
    
    
cs_set_user_money(idcs_get_user_money(id) - ItemsTienda[item][PRECIO], 1)
    
ColorChat(idGREEN"%s^1 Compraste:^4 %s."PrefixItemsTienda[item][NOMBRE])
    return 
PLUGIN_HANDLED;

Necesito que me ayuden a ponerle native al extra item Ak-47 Paladin
Aca les dejo el .sma


Archivos adjuntos
.sma   Descargar AMXX / zp_extra_ak47paladin.sma (Tamaño: 23.83 KB / Descargas: 19)
Responder
#2
prueba ahora
Código PHP:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>

#define PLUGIN "[ZP] Extra: AK-47 Paladin"
#define VERSION "Beta 1.0"
#define AUTHOR "Dev!l"

#define V_MODEL "models/cso/v_buffak.mdl"
#define P_MODEL "models/cso/p_buffak.mdl"
#define W_MODEL "models/cso/w_buffak.mdl"
#define S_MODEL "sprites/cso/ef_buffak_hit.spr"

#define CSW_BUFFAK CSW_AK47
#define weapon_buffak "weapon_ak47"
#define OLD_W_MODEL "models/w_ak47.mdl"
#define WEAPON_EVENT "events/ak47.sc"
#define ENG_NULLENT        -1
#define EV_INT_WEAPONKEY    EV_INT_impulse
#define WEAPONKEY 35145632

#define WEAP_LINUX_XTRA_OFF            4
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_flNextAttack                83
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF            5

#define FIRERATE 1.0
#define DAMAGE 70
#define DAMAGE2 95
#define AMMO 50
#define BPAMMO 240
#define RELOAD_TIME 2.0
#define RECOIL 0.60
#define RADIUS 50
#define BUFFAK_SPEED 1000.0

new const WeaponSounds[5][] = 
{
    
"weapons/cso/ak47buff-1.wav",
    
"weapons/cso/ak47buff-2.wav",
    
"weapons/cso/ak47buff_draw.wav",
    
"weapons/cso/ak47buff_idle.wav",
    
"weapons/cso/ak47buff_reload.wav"
}

new const 
WeaponResources[3][] =
{
    
"sprites/weapon_buffak.txt",
    
"sprites/cso/640hud7.spr",
    
"sprites/cso/640hud132.spr"
}

#define AKBALL_CLASSNAME "buffakball"

new const MuzzleFlash[] = "sprites/cso/muzzleflash41.spr"
new const Buffak_hit_spr[] = "sprites/cso/ef_buffak_hit.spr"

enum
{
    
IDLE 0,
    
RELOAD,
    
DRAW,
    
SHOOT1,
    
SHOOT2,
    
SHOOT3
}

enum
{
    
MODE_A 1,
    
MODE_B
}

new 
g_had_ak47paladin[33], g_WeaponMode[33]
new 
g_old_weapon[33], g_ak47paladin_eventg_smokepuff_idg_MuzzleFlash_SprId
new g_clip_ammo[33], gmsgWeaponListg_ak47paladin_TmpClip[33], g_exp_sprid
new Float:cl_pushangle[33][3], g_reload[33]

const 
PRIMARY_WEAPONS_BIT_SUM 
(
1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<
CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

public 
plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_think(AKBALL_CLASSNAME"fw_Think")
    
register_touch(AKBALL_CLASSNAME"*""fw_Touch")
    
    
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_TraceAttack"player""fw_TraceAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_buffak"fw_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_buffak"fw_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Weapon_Reloadweapon_buffak"fw_Weapon_Reload")
    
RegisterHam(Ham_Weapon_Reloadweapon_buffak"fw_Weapon_Reload_Post"1)
    
RegisterHam(Ham_Item_PostFrameweapon_buffak"fw_Weapon_ItemPostFrame")
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_buffak"fw_Weapon_Idleanim"1)
    
RegisterHam(Ham_Item_AddToPlayerweapon_buffak"fw_Item_AddToPlayer_Post"1)
    
    
    
gmsgWeaponList get_user_msgid("WeaponList")
    
register_clcmd("weapon_buffak""hook_weapon")
}

public 
plugin_precache()
{
    
engfunc(EngFunc_PrecacheModelV_MODEL)
    
engfunc(EngFunc_PrecacheModelP_MODEL)
    
engfunc(EngFunc_PrecacheModelW_MODEL)
    
engfunc(EngFunc_PrecacheModelS_MODEL)
    
    new 

    
for(0sizeof(WeaponSounds); i++)
        
engfunc(EngFunc_PrecacheSoundWeaponSounds[i])
    for(
0sizeof(WeaponResources); i++)
    {
        if(
== 0engfunc(EngFunc_PrecacheGenericWeaponResources[i])
        else 
engfunc(EngFunc_PrecacheModelWeaponResources[i])
    }
    
    
g_smokepuff_id engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
    
g_exp_sprid engfunc(EngFunc_PrecacheModelBuffak_hit_spr)
    
g_MuzzleFlash_SprId engfunc(EngFunc_PrecacheModelMuzzleFlash)
}

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

public 
plugin_natives() register_native("paladin""get_buffak"1);

public 
get_buffak(id)
{
    if(!
is_user_alive(id))
        return
        
    
drop_weapons(id1)
    
client_printc(id"!g[ZP]!n Right-Click for Special Mode.")
    
    new 
iWep2 fm_give_item(idweapon_buffak)
    if(
iWep2 0)
    {
        
cs_set_weapon_ammo(iWep2AMMO)
        
cs_set_user_bpammo(idCSW_BUFFAKBPAMMO)
        
set_weapons_timeidle(id1.0)
        
set_player_nextattack(id1.0)
        
set_weapon_anim(idDRAW)
    }
    
    
g_had_ak47paladin[id] = 1
    g_WeaponMode
[id] = MODE_A
    message_begin
(MSG_ONEgmsgWeaponList, {0,0,0}, id)
    
write_string("weapon_buffak")
    
write_byte(2)
    
write_byte(90)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(1)
    
write_byte(CSW_BUFFAK)
    
write_byte(0)
    
message_end()
}

public 
remove_buffak(id)
{
    if(!
is_user_connected(id))
        return
            
    
g_had_ak47paladin[id] = 0
    g_WeaponMode
[id] = 0
}

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

public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
        
    if((
get_user_weapon(id) == CSW_BUFFAK && g_had_ak47paladin[id]) && g_old_weapon[id] != CSW_BUFFAK)
    {
        
set_pev(idpev_viewmodel2V_MODEL)
        
set_pev(idpev_weaponmodel2P_MODEL)
        
set_weapon_anim(idDRAW)
        
set_weapons_timeidle(id1.0)
        
set_player_nextattack(id1.0)
        
g_WeaponMode[id] = MODE_A
    
}
    
g_old_weapon[id] = get_user_weapon(id)
    
    
Check_Rate(id)
}

public 
Check_Rate(id)
{
    static 
entent fm_get_user_weapon_entity(idCSW_BUFFAK)
    if(
pev_valid(ent))  set_pdata_float(ent46get_pdata_float(ent464) * FIRERATE4)
}

public 
message_DeathMsg(msg_idmsg_destid)
{
    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(get_user_weapon(iAttacker) == CSW_BUFFAK)
    {
        if(
g_had_ak47paladin[iAttacker])
            
set_msg_arg_string(4"ak47")
    }
                
    return 
PLUGIN_CONTINUE
}

public 
fw_Weapon_Idleanim(Weapon)
{
    new 
id get_pdata_cbase(Weapon414)

    if(!
is_user_alive(id) || !g_had_ak47paladin[id] || get_user_weapon(id) != CSW_BUFFAK)
        return 
HAM_IGNORED;

    if(
get_pdata_float(Weapon484) <= 0.25)
    {
        
set_weapon_anim(idIDLE)
        
set_pdata_float(Weapon4820.04)
        return 
HAM_SUPERCEDE;
    }

    return 
HAM_IGNORED;
}

public 
fw_Think(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    static 
Classname[32]
    
pev(Entpev_classnameClassnamesizeof(Classname))
    
    if(!
equal(ClassnameAKBALL_CLASSNAME))
        return
}

public 
fw_Touch(EntId)
{
    if(!
pev_valid(Ent))
        return
    if(
pev(Entpev_movetype) == MOVETYPE_NONE)
        return
        
    static 
OwnerOwner pev(Entpev_owner)
        
    if(
is_user_alive(Id))
    {
        
set_hudmessage(25500, -1.0, -1.000.30.3)
        
show_hudmessage(Id">   <")
        
        static 
Float:MyOrigin[3]
        
pev(Ownerpev_originMyOrigin)
    
        
hook_ent2(IdMyOrigin250.02)
    }
    
Make_Explosion(Ent)
}

public 
Do_Explosion(ent)
{
    static 
Float:Origin[3], TE_FLAG
    pev
(entpev_originOrigin)
    
    
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
    TE_FLAG 
|= TE_EXPLFLAG_NOSOUND
    TE_FLAG 
|= TE_EXPLFLAG_NOPARTICLES
    
    message_begin
(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_exp_sprid)
    
write_byte(7)
    
write_byte(30)
    
write_byte(TE_FLAG)
    
message_end()
}

public 
Make_Explosion(ent)
{
    
Do_Explosion(ent)
    
    static 
idid pev(entpev_owner)
    
    
Damage_Ball(entid)
    
engfunc(EngFunc_RemoveEntityent)
}

public 
Damage_Ball(EntId)
{
    new 
FM_NULLENT
    
static Float:Origin[3]
    
pev(Entpev_originOrigin)
    
    while((
find_ent_in_sphere(aOriginfloat(RADIUS))) != 0)
    {
        if (
Id == a)
            continue
    
        if(
pev(apev_takedamage) != DAMAGE_NO)
        {
            
ExecuteHamB(Ham_TakeDamagea0Id200.0DMG_BULLET)
        }
    }
}

public 
fw_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    if (!
g_had_ak47paladin[Player])
        return
    
    
pev(Player,pev_punchangle,cl_pushangle[Player])
    
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}

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

public 
fw_PrimaryAttack_Post(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    
    new 
szClipszAmmo
    get_user_weapon
(PlayerszClipszAmmo)
        
    if(
g_had_ak47paladin[Player])
    {
        if(
szClip <= 0)
        {
        }
    }
    
    if(
g_had_ak47paladin[Player])
    {
        if (!
g_clip_ammo[Player])
            return
            
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
xs_vec_mul_scalar(push,RECOIL,push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
    }
}

public 
Make_Muzzleflash(id)
{
    static 
Float:Origin[3], TE_FLAG
    get_position
(id40.06.0, -16.0Origin)
    
    
TE_FLAG |= TE_EXPLFLAG_NODLIGHTS
    TE_FLAG 
|= TE_EXPLFLAG_NOSOUND
    TE_FLAG 
|= TE_EXPLFLAG_NOPARTICLES
    
    engfunc
(EngFunc_MessageBeginMSG_ONE_UNRELIABLESVC_TEMPENTITYOriginid)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_MuzzleFlash_SprId)
    
write_byte(1)
    
write_byte(20)
    
write_byte(TE_FLAG)
    
message_end()
}

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_BUFFAK && g_had_ak47paladin[invoker] && eventid == g_ak47paladin_event)
    {
        
engfunc(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
        
g_WeaponMode[invoker] = MODE_A
        Make_Muzzleflash
(invoker)
        
emit_sound(invokerCHAN_WEAPONWeaponSounds[0], 1.0ATTN_NORM0PITCH_NORM)
        
set_weapon_anim(invokerrandom_num(SHOOT1SHOOT3))
    }
    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 
weaponweapon fm_find_ent_by_owner(-1weapon_buffakentity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
g_had_ak47paladin[iOwner])
        {
            
g_had_ak47paladin[iOwner] = 0
            
            set_pev
(weaponpev_impulseWEAPONKEY)
            
engfunc(EngFunc_SetModelentityW_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    if(
get_user_weapon(id) != CSW_BUFFAK || !g_had_ak47paladin[id])
        return
    
    static 
entent fm_get_user_weapon_entity(idCSW_BUFFAK)
    if(!
pev_valid(ent))
        return
        
    new 
szClipszAmmo
    get_user_weapon
(idszClipszAmmo)
    
    static 
iClip
    iClip 
cs_get_weapon_ammo(ent)
    
    static 
CurButton
    CurButton 
get_uc(uc_handleUC_Buttons)
    
    if(
CurButton IN_ATTACK2 && szClip >= 1)
    {
        
CurButton &= ~IN_ATTACK2
        set_uc
(uc_handleUC_ButtonsCurButton)
        
        if(
get_pdata_float(ent464) > 0.0 || get_pdata_float(ent474) > 0.0
            return
            
        
g_WeaponMode[id] = MODE_B
            
        
if(g_WeaponMode[id] == MODE_B)
        {
            
g_reload[id] = 0
            Make_Muzzleflash
(id)
            
Create_AkBall(id)
            static 
Float:PunchAngles[3]
            
PunchAngles[1] = -10.0
            set_pev
(idpev_punchanglePunchAngles)
            
set_weapons_timeidle(id0.5)
            
set_player_nextattack(id0.5)
            
cs_set_weapon_ammo(entiClip-1)
            
emit_sound(idCHAN_WEAPONWeaponSounds[1], 1.0ATTN_NORM0PITCH_NORM)
        
        }
    }
}

public 
Create_AkBall(id)
{
    static 
Float:StartOrigin[3], Float:TargetOrigin[3], Float:MyVelocity[3], Float:VecLengthFloat:angles[3], Float:angles_fix[3]
    
    
get_position(id48.010.0, -5.0StartOrigin)
    
get_position(id1024.00.00.0TargetOrigin)
    
    
pev(idpev_velocityMyVelocity)
    
VecLength vector_length(MyVelocity)
    
    if(
VecLength
    {
        
TargetOrigin[0] += random_float(-16.016.0); TargetOrigin[1] += random_float(-16.016.0); TargetOrigin[2] += random_float(-16.016.0)
    } else {
        
TargetOrigin[0] += random_float(-8.08.0); TargetOrigin[1] += random_float(-8.08.0); TargetOrigin[2] += random_float(-8.08.0)
    }
    
    
pev(id,pev_v_angle,angles)
    
    static 
EntEnt engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    if(!
pev_valid(Ent)) return
    
angles_fix[0] = 360.0 angles[0]
    
angles_fix[1] = angles[1]
    
angles_fix[2] = angles[2]
    
set_pev(Entpev_rendermodekRenderTransAdd)
    
set_pev(Entpev_renderamt255.0)
    
set_pev(Entpev_movetypeMOVETYPE_TOSS)
    
set_pev(Entpev_ownerid)
    
    
entity_set_string(EntEV_SZ_classnameAKBALL_CLASSNAME)
    
engfunc(EngFunc_SetModelEntS_MODEL)
    
set_pev(Entpev_mins,{-0.5, -0.5, -0.5})
    
set_pev(Entpev_maxs,{0.50.50.5})
    
set_pev(Entpev_originStartOrigin)
    
set_pev(Entpev_anglesangles_fix)
    
set_pev(Entpev_gravity0.01)
    
set_pev(Entpev_solidSOLID_TRIGGER)
    
set_pev(Entpev_frame1.0)
    
set_pev(Entpev_scale0.05)
    
    static 
Float:Velocity[3]
    
get_speed_vector(StartOriginTargetOriginBUFFAK_SPEEDVelocity)
    
set_pev(Entpev_velocityVelocity)
}

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_BUFFAK || !g_had_ak47paladin[attacker])
        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)
    }
    
    if(
g_WeaponMode[attacker] == MODE_A)
    {
        
SetHamParamFloat(3float(DAMAGE))
    }

    return 
HAM_HANDLED
}

public 
fw_Weapon_ItemPostFrame(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(!
g_had_ak47paladin[id])
        return 
HAM_IGNORED;
    
    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    new 
iBpAmmo cs_get_user_bpammo(idCSW_BUFFAK);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    new 
fInReload get_pdata_int(weapon_entitym_fInReloadWEAP_LINUX_XTRA_OFF)
    
    if(
fInReload && flNextAttack <= 0.0)
    {
        new 
min(AMMO iClipiBpAmmo)
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idCSW_BUFFAKiBpAmmo-j);
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}
    return 
HAM_IGNORED;
}

public 
fw_Weapon_Reload(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(!
g_had_ak47paladin[id])
        return 
HAM_IGNORED;
        
    if(
g_reload[id] == 0)
        return 
HAM_IGNORED;
    
    
g_ak47paladin_TmpClip[id] = -1;
    new 
iBpAmmo cs_get_user_bpammo(idCSW_BUFFAK);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    if(
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE;
    
    if(
iClip >= AMMO)
        return 
HAM_SUPERCEDE;
    
    
g_ak47paladin_TmpClip[id] = iClip;
    return 
HAM_IGNORED;
}

public 
fw_Weapon_Reload_Post(weapon_entity)
{
    new 
id pev(weapon_entitypev_owner)
    if(!
is_user_connected(id))
        return 
HAM_IGNORED;
    
    if(!
g_had_ak47paladin[id])
        return 
HAM_IGNORED;
    
    if(
g_ak47paladin_TmpClip[id] == -1)
        return 
HAM_IGNORED;
        
    if(
g_reload[id] == 0)
        return 
HAM_IGNORED;
    
    
set_pdata_int(weapon_entitym_iClipg_ak47paladin_TmpClip[id], WEAP_LINUX_XTRA_OFF)
    
    
set_pdata_float(weapon_entitym_flTimeWeaponIdleRELOAD_TIMEWEAP_LINUX_XTRA_OFF)
    
    
set_pdata_float(idm_flNextAttackRELOAD_TIMEPLAYER_LINUX_XTRA_OFF)
    
    
set_pdata_int(weapon_entitym_fInReload1WEAP_LINUX_XTRA_OFF)
    
    
set_weapon_anim(idRELOAD)
    
emit_sound(idCHAN_WEAPONWeaponSounds[4], 1.0ATTN_NORM0PITCH_NORM)
    
    return 
HAM_IGNORED;
}

public 
fw_Item_AddToPlayer_Post(entid)
{
    if(!
pev_valid(ent))
        return 
HAM_IGNORED
        
    
if(entity_get_int(entEV_INT_WEAPONKEY) == WEAPONKEY)
    {
        
g_had_ak47paladin[id] = 1
        set_pev
(entpev_impulse0)
    
        
message_begin(MSG_ONEgmsgWeaponList, {0,0,0}, id)
        
write_string("weapon_buffak")
        
write_byte(2)
        
write_byte(90)
        
write_byte(-1)
        
write_byte(-1)
        
write_byte(0)
        
write_byte(1)
        
write_byte(CSW_BUFFAK)
        
write_byte(0)
        
message_end()
        
        
entity_set_int(entEV_INT_WEAPONKEY0)

        return 
HAM_HANDLED
    
}

    return 
HAM_HANDLED    
}

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 set_weapons_timeidle(idFloat:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    new 
entwpn fm_get_user_weapon_entity(idCSW_BUFFAK)
    if(!
pev_valid(entwpn)) 
        return
    
    
set_pdata_float(entwpn46TimeIdle4)
    
set_pdata_float(entwpn47TimeIdle4)
    
set_pdata_float(entwpn48TimeIdle 1.04)
}

stock set_player_nextattack(idFloat:nexttime)
{
    if(!
is_user_alive(id))
        return
        
    
set_pdata_float(id83nexttime5)
}

stock get_position(id,Float:forwFloat:rightFloat:upFloat:vStart[])
{
    static 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(idpev_originvOrigin)
    
pev(idpev_view_ofsvUp//for player
    
xs_vec_add(vOriginvUpvOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngle,ANGLEVECTOR_FORWARDvForward//or use EngFunc_AngleVectors
    
angle_vector(vAngle,ANGLEVECTOR_RIGHTvRight)
    
angle_vector(vAngle,ANGLEVECTOR_UPvUp)
    
    
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 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]
    static 
Float:numnum 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 hook_ent2(entFloat:VicOrigin[3], Float:speedtype)
{
    static 
Float:fl_Velocity[3]
    static 
Float:EntOrigin[3]
    
    
pev(entpev_originEntOrigin)
    static 
Float:distance_f
    distance_f 
100.0
    
    
new Float:fl_Time distance_f speed
    
    
if(type == 1)
    {
        
fl_Velocity[0] = ((VicOrigin[0] - EntOrigin[0]) / fl_Time) * 1.5
        fl_Velocity
[1] = ((VicOrigin[1] - EntOrigin[1]) / fl_Time) * 1.5
        fl_Velocity
[2] = (VicOrigin[2] - EntOrigin[2]) / fl_Time        
        
} else if(type == 2) {
        
fl_Velocity[0] = ((EntOrigin[0] - VicOrigin[0]) / fl_Time) * 1.5
        fl_Velocity
[1] = ((EntOrigin[1] - VicOrigin[1]) / fl_Time) * 1.5
        fl_Velocity
[2] = (EntOrigin[2] - VicOrigin[2]) / fl_Time
    
}
    
    
entity_set_vector(entEV_VEC_velocityfl_Velocity)
}

stock client_printc(index, const text[], any:...)
{
    new 
szMsg[128];
    
vformat(szMsgsizeof(szMsg) - 1text3);

    
replace_all(szMsgsizeof(szMsg) - 1"!g""^x04");
    
replace_all(szMsgsizeof(szMsg) - 1"!n""^x01");
    
replace_all(szMsgsizeof(szMsg) - 1"!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();
    }
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], numiweaponid
    num 
0
    get_user_weapons
(idweaponsnum)
     
    for (
0numi++)
    {
        
weaponid weapons[i]
          
        if (
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
        {
            static 
wname[32]
            
get_weaponname(weaponidwnamesizeof wname 1)
            
engclient_cmd(id"drop"wname)
        }
    }


case
paladin( index )
inc
native paladin( i );


en tu qlo
3===D


[Imagen: 975609.jpg]
[Imagen: zcsztw-4.png] [Imagen: 6u5fj2-4.png]
[Imagen: linkedin_thumb_image.png][Imagen: 76561198283253977.png][Imagen: linkedin_thumb_image.png]
Responder
#3
Eres un genio si funciona
Muchas gracias
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)