Raised This Month: $ Target: $400
 0% 

Solved What's i do wrong ?


  
 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Author Message
yas17sin
Veteran Member
Join Date: Oct 2016
Location: Morocco/Sale
Old 01-24-2017 , 07:54   What's i do wrong ?
Reply With Quote #1

Hi all

i made a croosbow gun and all work fine but i have some problem with models.

when i buy the gun i can't see his models but when i drop it in the ground i can see it ( here is what i mean ) : http://prntscr.com/dzomcg

and here is the code :

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <xs>
#include <cstrike>
enum
{
anim_idle,
anim_reload,
anim_draw,
anim_shoot1,
anim_shoot2,
anim_shoot3
}
#define ENG_NULLENT        -1
#define EV_INT_WEAPONKEY    EV_INT_impulse
#define WEAPONKEY 33
#define MAX_PLAYERS                32
#define IsValidUser(%1) (1 <= %1 <= g_MaxPlayers)
const USE_STOPPED 0
const OFFSET_ACTIVE_ITEM 373
const OFFSET_WEAPONOWNER 41
const OFFSET_LINUX 5
const OFFSET_LINUX_WEAPONS 4
#define WEAP_LINUX_XTRA_OFF            4
#define m_fKnown                44
#define m_flNextPrimaryAttack             46
#define m_flTimeWeaponIdle            48
#define m_iClip                    51
#define m_fInReload                54
#define PLAYER_LINUX_XTRA_OFF            5
#define m_flNextAttack                83
#define RELOAD_TIME 2.0
#define wId CSW_G3SG1
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)
new const 
Fire_snd[] = {"sound/crossbow/crossbow_shoot1.wav"}
new const 
went[] ={"weapon_g3sg1"}
new const 
GUNSHOT_DECALS[] = { 4142434445 }
new 
hk416_V_MODEL[64] = "models/v_crossbow_cso.mdl"
new hk416_P_MODEL[64] = "models/p_crossbow_cso.mdl"
new hk416_W_MODEL[64] = "models/w_crossbow_cso.mdl"
new cvar_dmg_hk416cvar_clip_hk416cvar_hk416_ammo
new g_has_hk416[33]
new 
g_MaxPlayersg_orig_event_hk416g_clip_ammo[33]
new 
Float:cl_pushangle[MAX_PLAYERS 1][3], m_iBlood[2]
new 
g_hk416_TmpClip[33]
public 
plugin_init()
{
    
register_plugin("[CS 1.6] CROSSBOW""1.0""yas17sin")
    
register_event("CurWeapon","CurrentWeapon","be","1=1")
    
RegisterHam(Ham_Item_AddToPlayerwent"fw_hk416_AddToPlayer")
    
RegisterHam(Ham_Use"func_tank""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""fw_UseStationary_Post"1)
    
RegisterHam(Ham_Item_Deploywent"fw_Item_Deploy_Post"1)
    
RegisterHam(Ham_Weapon_PrimaryAttackwent"fw_hk416_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackwent"fw_hk416_PrimaryAttack_Post"1)
    
RegisterHam(Ham_Item_PostFramewent"hk416__ItemPostFrame");
    
RegisterHam(Ham_Weapon_Reloadwent"hk416__Reload");
    
RegisterHam(Ham_Weapon_Reloadwent"hk416__Reload_Post"1);
    
RegisterHam(Ham_TakeDamage"player""fw_TakeDamage")
    
register_forward(FM_SetModel"fw_SetModel")
    
register_forward(FM_UpdateClientData"fw_UpdateClientData_Post"1)
    
register_forward(FM_PlaybackEvent"fwPlaybackEvent")
    
cvar_dmg_hk416 register_cvar("CrossBow_dmg""80")
    
cvar_clip_hk416 register_cvar("CrossBow_clip""35")
    
cvar_hk416_ammo register_cvar("CrossBow_ammo""380")
    
    
register_clcmd("get_cbow""give_hk416")
    
    
g_MaxPlayers get_maxplayers()
}
public 
plugin_precache()
{
    
precache_model(hk416_V_MODEL)
    
precache_model(hk416_P_MODEL)
    
precache_model(hk416_W_MODEL)
    
precache_sound(Fire_snd)
    
m_iBlood[0] = precache_model("sprites/blood.spr")
    
m_iBlood[1] = precache_model("sprites/bloodspray.spr")
    
register_forward(FM_PrecacheEvent"fwPrecacheEvent_Post"1)
}
public 
fwPrecacheEvent_Post(type, const name[])
{
    if (
equal("events/g3sg1.sc"name))
    {
        
g_orig_event_hk416 get_orig_retval()
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED
}

public 
client_connect(id)
{
    
g_has_hk416[id] = false
}
public 
client_disconnect(id)
{
    
g_has_hk416[id] = false
}
public 
fw_SetModel(entitymodel[])
{
    if(!
is_valid_ent(entity))
        return 
FMRES_IGNORED;
    static 
szClassName[33]
    
entity_get_string(entityEV_SZ_classnameszClassNamecharsmax(szClassName))
    if(!
equal(szClassName"weaponbox"))
        return 
FMRES_IGNORED;
    static 
iOwner
    iOwner 
entity_get_edict(entityEV_ENT_owner)
    if(
equal(model"models/w_g3sg1.mdl"))
    {
        static 
iStoredSVDID
        iStoredSVDID 
find_ent_by_owner(ENG_NULLENTwententity)
        if(!
is_valid_ent(iStoredSVDID))
            return 
FMRES_IGNORED;
        if(
g_has_hk416[iOwner])
        {
            
entity_set_int(iStoredSVDIDEV_INT_WEAPONKEYWEAPONKEY)
            
g_has_hk416[iOwner] = false
            entity_set_model
(entityhk416_W_MODEL)
            return 
FMRES_SUPERCEDE;
        }
    }
    return 
FMRES_IGNORED;
}
public 
give_hk416(id)
{
    
drop_weapons(id1);
    new 
iWep2 give_item(id,went)
    if( 
iWep2 )
    {
    
cs_set_weapon_ammo(iWep2get_pcvar_num(cvar_clip_hk416))
    
cs_set_user_bpammo (idwIdget_pcvar_num(cvar_hk416_ammo))
    }
    
g_has_hk416[id] = true;
}

public 
fw_hk416_AddToPlayer(hk416id)
{
    if(!
is_valid_ent(hk416) || !is_user_connected(id))
        return 
HAM_IGNORED;
    if(
entity_get_int(hk416EV_INT_WEAPONKEY) == WEAPONKEY)
    {
        
g_has_hk416[id] = true
        entity_set_int
(hk416EV_INT_WEAPONKEY0)
        return 
HAM_HANDLED;
    }
    return 
HAM_IGNORED;
}
public 
fw_UseStationary_Post(entitycalleractivatoruse_type)
{
    if (
use_type == USE_STOPPED && is_user_connected(caller))
        
replace_weapon_models(callerget_user_weapon(caller))
}
public 
fw_Item_Deploy_Post(weapon_ent)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_ent)
    static 
weaponid
    weaponid 
cs_get_weapon_id(weapon_ent)
    
replace_weapon_models(ownerweaponid)
}
public 
CurrentWeapon(id)
{
    
replace_weapon_models(idread_data(2))
}
replace_weapon_models(idweaponid)
{
    switch (
weaponid)
    {
        case 
wId:
        {
            if (
is_user_connected(id) || is_user_alive(id))
                return;
            if(
g_has_hk416[id])
            {
                
set_pev(idpev_viewmodel2hk416_V_MODEL)
                
set_pev(idpev_weaponmodel2hk416_P_MODEL)
            }
        }
    }
}
public 
fw_UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
  if(!
is_user_alive(Player) || (get_user_weapon(Player) != wId) || !g_has_hk416[Player])
  return 
FMRES_IGNORED
  set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
  return 
FMRES_HANDLED
}
public 
fw_hk416_PrimaryAttack(Weapon)
{
    new 
Player get_pdata_cbase(Weapon414)
    if (!
g_has_hk416[Player])
        return;
    
pev(Player,pev_punchangle,cl_pushangle[Player])
    
g_clip_ammo[Player] = cs_get_weapon_ammo(Weapon)
}
public 
fwPlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if ((
eventid != g_orig_event_hk416))
        return 
FMRES_IGNORED
    
if (!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED
    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}
public 
fw_hk416_PrimaryAttack_Post(Weapon)
{    new 
Player get_pdata_cbase(Weapon414)
    new 
szClipszAmmo
    get_user_weapon
(PlayerszClipszAmmo)
    if(
Player && Player 33)
    {
    if(
g_has_hk416[Player])
    {
    if(
szClip 0)emit_sound(PlayerCHAN_WEAPONFire_sndVOL_NORMATTN_NORM0PITCH_NORM)
    }
    if(
g_has_hk416[Player])
    {
        new 
Float:push[3]
        
pev(Player,pev_punchangle,push)
        
xs_vec_sub(push,cl_pushangle[Player],push)
        
xs_vec_mul_scalar(push,0.6,push)
        
xs_vec_add(push,cl_pushangle[Player],push)
        
set_pev(Player,pev_punchangle,push)
        if (!
g_clip_ammo[Player])
            return
        
UTIL_PlayWeaponAnimation(Playerrandom_num(1,3))
        
make_blood_and_bulletholes(Player)
    }
    }
}
public 
fw_TakeDamage(victiminflictorattackerFloat:damage)
{
    if (
victim != attacker && is_user_connected(attacker))
    {
        if(
get_user_weapon(attacker) == wId)
        {
            if(
g_has_hk416[attacker])
                
SetHamParamFloat(4damage get_pcvar_float(cvar_dmg_hk416))
        }
    }
}
stock fm_cs_get_current_weapon_ent(id)
{
    return 
get_pdata_cbase(idOFFSET_ACTIVE_ITEMOFFSET_LINUX);
}
stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(entOFFSET_WEAPONOWNEROFFSET_LINUX_WEAPONS);
}
stock UTIL_PlayWeaponAnimation(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(pev(Playerpev_body))
    
message_end()
}
stock make_blood_and_bulletholes(id)
{
    new 
aimOrigin[3], targetbody
    get_user_origin
(idaimOrigin3)
    
get_user_aiming(idtargetbody)
    if(
target && target <= g_MaxPlayers && !is_user_alive(target))
    {
        new 
Float:fStart[3], Float:fEnd[3], Float:fRes[3], Float:fVel[3]
        
pev(idpev_originfStart)
        
velocity_by_aim(id64fVel)
        
fStart[0] = float(aimOrigin[0])
        
fStart[1] = float(aimOrigin[1])
        
fStart[2] = float(aimOrigin[2])
        
fEnd[0] = fStart[0]+fVel[0]
        
fEnd[1] = fStart[1]+fVel[1]
        
fEnd[2] = fStart[2]+fVel[2]
        new 
res
        engfunc
(EngFunc_TraceLinefStartfEnd0targetres)
        
get_tr2(resTR_vecEndPosfRes)
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_BLOODSPRITE)
        
write_coord(floatround(fStart[0]))
        
write_coord(floatround(fStart[1]))
        
write_coord(floatround(fStart[2]))
        
write_shortm_iBlood ])
        
write_shortm_iBlood ] )
        
write_byte(70)
        
write_byte(random_num(1,2))
        
message_end()
    }
    else if(!
is_user_connected(target))
    {
        if(
target)
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_DECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
write_short(target)
            
message_end()
        }
        else
        {
            
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
            
write_byte(TE_WORLDDECAL)
            
write_coord(aimOrigin[0])
            
write_coord(aimOrigin[1])
            
write_coord(aimOrigin[2])
            
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
            
message_end()
        }
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_GUNSHOTDECAL)
        
write_coord(aimOrigin[0])
        
write_coord(aimOrigin[1])
        
write_coord(aimOrigin[2])
        
write_short(id)
        
write_byte(GUNSHOT_DECALS[random_num 0sizeof GUNSHOT_DECALS -) ] )
        
message_end()
    }
}
public 
hk416__ItemPostFrame(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_hk416[id])
        return 
HAM_IGNORED;
    new 
Float:flNextAttack get_pdata_float(idm_flNextAttackPLAYER_LINUX_XTRA_OFF)
    new 
iBpAmmo cs_get_user_bpammo(idwId);
    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(get_pcvar_num(cvar_clip_hk416) - iClipiBpAmmo)
        
set_pdata_int(weapon_entitym_iClipiClip jWEAP_LINUX_XTRA_OFF)
        
cs_set_user_bpammo(idwIdiBpAmmo-j);
        
set_pdata_int(weapon_entitym_fInReload0WEAP_LINUX_XTRA_OFF)
        
fInReload 0
    
}
    return 
HAM_IGNORED;
}
public 
hk416__Reload(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_hk416[id])
        return 
HAM_IGNORED;
    
g_hk416_TmpClip[id] = -1;
    new 
iBpAmmo cs_get_user_bpammo(idwId);
    new 
iClip get_pdata_int(weapon_entitym_iClipWEAP_LINUX_XTRA_OFF)
    if (
iBpAmmo <= 0)
        return 
HAM_SUPERCEDE;
    if (
iClip >= get_pcvar_num(cvar_clip_hk416))
        return 
HAM_SUPERCEDE;
    
g_hk416_TmpClip[id] = iClip;
    return 
HAM_IGNORED;
}
public 
hk416__Reload_Post(weapon_entity) {
    new 
id pev(weapon_entitypev_owner)
    if (!
is_user_connected(id))
        return 
HAM_IGNORED;
    if (!
g_has_hk416[id])
        return 
HAM_IGNORED;
    if (
g_hk416_TmpClip[id] == -1)
        return 
HAM_IGNORED;
    
set_pdata_int(weapon_entitym_iClipg_hk416_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)
    
UTIL_PlayWeaponAnimation(id4)
    return 
HAM_IGNORED;
}
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)
          }
     }


Last edited by yas17sin; 01-24-2017 at 14:00.
yas17sin is offline
Send a message via ICQ to yas17sin
 


Thread Tools
Display Modes

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

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

Forum Jump


All times are GMT -4. The time now is 20:58.


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