Raised This Month: $32 Target: $400
 8% 

[CS 1.6] Adding World Model to Custom Weapon


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
KanKen YT
New Member
Join Date: Jan 2023
Old 01-29-2023 , 06:57   [CS 1.6] Adding World Model to Custom Weapon
Reply With Quote #1

Hello, I Want to Help Scripting, how to add world model to my custom weapon

PHP Code:
#include <amxmodx>
#include <cstrike>
#include <customshop>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define PLUGIN_VERSION "4.x"

additem ITEM_GOLDENAK
#define GOLDENAK_ID "asiimovak"
#define GOLDENAK_NAME "Asiimov Ak-47"
#define GOLDENAK_PRICE 0
#define GOLDENAK_LIMIT 1
#define GOLDENAK_VMODEL "models/custom_shop/v_asiimovak.mdl"
#define GOLDENAK_PMODEL "models/custom_shop/p_asiimovak.mdl"
#define GOLDENAK_WMODEL "models/custom_shop/w_asiimovak.mdl"
#define GOLDENAK_WEAPON_STR "weapon_ak47"
#define GOLDENAK_WEAPON_CSW CSW_AK47
#define GOLDENAK_DAMAGE 5
#define GOLDENAK_AMMO 90
new bool:g_blGoldenAK[33]

// Comment this line to disable the bullets.
//#define USE_BULLETS

#if defined USE_BULLETS
    // You can add a shoot sound in this line, after you remove the comment.
    #define BULLET_SOUND "weapons/ak47-1.wav"
    
    //#define BULLET_MODEL "sprites/dot.spr"
    //#define BULLET_STARTFRAME 1
    //#define BULLET_FRAMERATE 5
    //#define BULLET_LIFE 2
    //#define BULLET_WIDTH 10
    //#define BULLET_NOISE 0
    //#define BULLET_COLOR_RED 255
    //#define BULLET_COLOR_GREEN 215
    //#define BULLET_COLOR_BLUE 0
    //#define BULLET_BRIGHTNESS 200
    //#define BULLET_SPEED 150
    //new g_iGoldenBullet
#endif

#define DEFAULT_VMODEL "models/v_ak47.mdl"
#define DEFAULT_PMODEL "models/p_ak47.mdl"
#define DEFAULT_WMODEL "models/w_ak47.mdl"

public plugin_init()
{
    
register_plugin("Custom Shop: Golden AK47"PLUGIN_VERSION"OciXCrom")
    
RegisterHam(Ham_TakeDamage"player""eventTakeDamage")
    
register_event("CurWeapon""goldenModel""be""1=1")
    
    
#if defined USE_BULLETS
        
RegisterHam(Ham_Weapon_PrimaryAttackGOLDENAK_WEAPON_STR"eventPrimaryAttack"1)
    
#endif
}

public 
plugin_precache()
{
    
ITEM_GOLDENAK cshopRegisterItem(GOLDENAK_IDGOLDENAK_NAMEGOLDENAK_PRICEGOLDENAK_LIMIT)
    
precache_model(GOLDENAK_VMODEL)
    
precache_model(GOLDENAK_PMODEL)
    
precache_model(GOLDENAK_WMODEL)
    
    
//#if defined USE_BULLETS
        //g_iGoldenBullet = precache_model(BULLET_MODEL)
    //#endif
    
    #if defined BULLET_SOUND
        
precache_sound(BULLET_SOUND)
    
#endif
}

public 
cshopItemBought(idiItem)
    if(
iItem == ITEM_GOLDENAK)             { g_blGoldenAK[id] = truegive_item(idGOLDENAK_WEAPON_STR); cs_set_user_bpammo(idGOLDENAK_WEAPON_CSWGOLDENAK_AMMO); goldenModel(id); }
    
public 
cshopItemRemoved(idiItem)
    if(
iItem == ITEM_GOLDENAK)             { g_blGoldenAK[id] = falseset_default_model(id); }
    
public 
eventTakeDamage(iVictimiInflictoriAttackerFloat:flDamageiDamageBits)
    if(
is_user_alive(iAttacker) && iAttacker != iVictim)
        if(
g_blGoldenAK[iAttacker] && get_user_weapon(iAttacker) == GOLDENAK_WEAPON_CSW && iAttacker == iInflictor)
            
SetHamParamFloat(4flDamage GOLDENAK_DAMAGE)
            
#if defined USE_BULLETS            
    
public eventPrimaryAttack(iWeapon)
    {
        new 
id pev(iWeaponpev_owner)
        
        if(!
g_blGoldenAK[id])
            return
            
        new 
iClipiAmmo
        
new iWeapon get_user_weapon(idiClipiAmmo)
        
        if(!
iClip || iWeapon != GOLDENAK_WEAPON_CSW)
            return
        
        
#if defined BULLET_SOUND
            
player_emitsound(idBULLET_SOUND)
        
#endif
        
        
new iVec1[3], iVec2[3]
        
get_user_origin(idiVec11)
        
get_user_origin(idiVec23)
        
message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
        
write_byte(TE_BEAMPOINTS)
        
write_coord(iVec1[0])
        
write_coord(iVec1[1])
        
write_coord(iVec1[2])
        
write_coord(iVec2[0])
        
write_coord(iVec2[1])
        
write_coord(iVec2[2])
        
//write_short(g_iGoldenBullet)
        
write_byte(BULLET_STARTFRAME)
        
write_byte(BULLET_FRAMERATE)
        
write_byte(BULLET_LIFE)
        
write_byte(BULLET_WIDTH)
        
write_byte(BULLET_NOISE)
        
write_byte(BULLET_COLOR_RED)
        
write_byte(BULLET_COLOR_GREEN)
        
write_byte(BULLET_COLOR_BLUE)
        
write_byte(BULLET_BRIGHTNESS)
        
write_byte(BULLET_SPEED)
        
message_end()
    }
#endif

public goldenModel(id)
{
    if(
get_user_weapon(id) == GOLDENAK_WEAPON_CSW && g_blGoldenAK[id])
    {
        
set_pev(idpev_viewmodel2GOLDENAK_VMODEL)
        
set_pev(idpev_weaponmodel2GOLDENAK_PMODEL)
    }
}

set_default_model(id)
{
    if(
get_user_weapon(id) == GOLDENAK_WEAPON_CSW)
    {
        
set_pev(idpev_viewmodel2DEFAULT_VMODEL)
        
set_pev(idpev_weaponmodel2DEFAULT_PMODEL)
    }
}

#if defined BULLET_SOUND
    
player_emitsound(idszSound[])
        
emit_sound(idCHAN_WEAPONszSound1.0ATTN_NORM0PITCH_HIGH)
#endif 

Last edited by KanKen YT; 02-05-2023 at 11:45.
KanKen YT is offline
Reply


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 11:50.


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