Raised This Month: $51 Target: $400
 12% 

Solved [HELP] Cso weapon on ZP Primary


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 14:29   [HELP] Cso weapon on ZP Primary
Reply With Quote #1

Hey i tried to make a CSO weapon on Zombie Plague . switching m4a1 with Dark Knight on Primary weapons

But it doesnt work.. its giving me error code and zp mode shuts down, file compiles but doesnt work.


I did add native Get_Base(id)

and

Code:
	// Give the new weapon and full ammo
	fm_give_item(id, wname)
	ExecuteHamB(Ham_GiveAmmo, id, MAXBPAMMO[weaponid], AMMOTYPE[weaponid], MAXBPAMMO[weaponid])

	if(weaponid == CSW_M4A1)

	{

	Get_Base(id)	
       
	}

Error Code: L 02/14/2019 - 20:13:03: [AMXX] Plugin "Zombie_Plague_Nightmare.amxx" failed to load: Plugin uses an unknown function (name "Get_Base") - check your modules.ini.

idk if it has to really do with modules or my main script

Last edited by elmedin; 02-15-2019 at 07:57.
elmedin is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 02-14-2019 , 16:00   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #2

Check whether native Get_Base is registered.
__________________








CrazY. is offline
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 17:09   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #3

Code:
new const ZP_CUSTOMIZATION_FILE[] = "zp_nightmare.ini"
new const ZP_EXTRAITEMS_FILE[] = "zpnm_extraitems.ini"
new const ZP_ZOMBIECLASSES_FILE[] = "zpnm_zpclass.ini"

native Get_Base(id)
it is registred on main plugin mate
elmedin is offline
PartialCloning
Senior Member
Join Date: Dec 2015
Old 02-14-2019 , 17:36   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #4

Is the native registered as a native?

PHP Code:
register_native("Get_Base""CallBack_GetBase"
PartialCloning is offline
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 17:50   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #5

On the main ZP plugin or the Weapon plugin itself ?
elmedin is offline
PartialCloning
Senior Member
Join Date: Dec 2015
Old 02-14-2019 , 17:52   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #6

Any plugin that's running. You should show the code for every part that's related to the native.

Last edited by PartialCloning; 02-14-2019 at 17:52.
PartialCloning is offline
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 17:55   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #7

I showed the code of my main ZP file, and no its no where. Also tried putting on main but still doesnt work
elmedin is offline
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 17:57   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #8

PHP Code:
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <xs>
#include <fun>

#define PLUGIN "[CSO] M4A1 Dark Knight"
#define VERSION "1.0"
#define AUTHOR "Dias Pendragon"

// Data Config
#define MODEL_V "models/v_buffm4.mdl"
#define MODEL_P "models/p_buffm4.mdl"
#define MODEL_W "models/w_buffm4.mdl"
#define MODEL_W_OLD "models/w_m4a1.mdl"

#define CSW_BASE CSW_M4A1
#define weapon_base "weapon_m4a1"

#define SUBMODEL -1 // can -1
#define WEAPON_CODE 2692015
#define WEAPON_EVENT "events/m4a1.sc"

#define ANIME_SHOOT 3
#define ANIME_RELOAD 1 // can -1
#define ANIME_DRAW 2 // can -1
#define ANIME_IDLE 0 // can -1


new const WeaponSounds[6][] =
{
    
"weapons/m4a1buff-1.wav",
    
"weapons/m4a1buff-2.wav",
    
"weapons/m4a1buff_idle.wav",
    
"weapons/m4a1buff_clipin1.wav",
    
"weapons/m4a1buff_clipin2.wav",
    
"weapons/m4a1buff_clipout.wav"
}

// Weapon Config
#define DAMAGE_A 30 // 60 for Zombie
#define DAMAGE_B 43 // 200 for Zombie
#define ACCURACY 70 // 0 - 100 ; -1 Default
#define CLIP 50
#define BPAMMO 250
#define SPEED_A 0.0875
#define SPEED_B 0.25
#define RECOIL 0.75
#define RELOAD_TIME 2.0

// Muzzleflash
#define MUZZLEFLASH1 "sprites/muzzleflash43.spr"
#define MUZZLEFLASH2 "sprites/muzzleflash44.spr"

// MACROS
#define Get_BitVar(%1,%2) (%1 & (1 << (%2 & 31)))
#define Set_BitVar(%1,%2) %1 |= (1 << (%2 & 31))
#define UnSet_BitVar(%1,%2) %1 &= ~(1 << (%2 & 31))

new g_Base
new g_Had_Baseg_Clip[33], g_OldWeapon[33], Float:g_Recoil[33][3]
new 
g_Event_Baseg_SmokePuff_SprIdg_MsgCurWeaponm_spriteTexture
new g_Muzzleflash_Entg_Muzzleflash
new g_Muzzleflash_Ent2g_Muzzleflash2

// Safety
new g_HamBot
new g_IsConnectedg_IsAliveg_PlayerWeapon[33]

public 
plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Safety
    
Register_SafetyFunc()
    
    
// Event
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
// Forward
    
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")
    
register_forward(FM_AddToFullPack"fw_AddToFullPack_Post"1)
    
register_forward(FM_CheckVisibility"fw_CheckVisibility")
    
    
// Ham
    
RegisterHam(Ham_Item_Deployweapon_base"fw_Item_Deploy_Post"1)    
    
RegisterHam(Ham_Item_AddToPlayerweapon_base"fw_Item_AddToPlayer_Post"1)
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_base"fw_Weapon_WeaponIdle_Post"1)
    
RegisterHam(Ham_Item_PostFrameweapon_base"fw_Item_PostFrame")    
    
RegisterHam(Ham_Weapon_Reloadweapon_base"fw_Weapon_Reload")
    
RegisterHam(Ham_Weapon_Reloadweapon_base"fw_Weapon_Reload_Post"1)    
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_base"fw_Weapon_PrimaryAttack")
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_base"fw_Weapon_PrimaryAttack_Post"1)
    
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack_World")
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack_Player")    
    
    
// Cache
    
g_MsgCurWeapon get_user_msgid("CurWeapon")
    
    
// Get
    
register_clcmd("say /m4""Get_Base")
}

public 
plugin_precache()
{
    
precache_model(MODEL_V)
    
precache_model(MODEL_P)
    
precache_model(MODEL_W)
    
    for(new 
0sizeof(WeaponSounds); i++)
        
precache_sound(WeaponSounds[i])
    
    
m_spriteTexture precache_model"sprites/lgtning.spr" )
    
g_SmokePuff_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
    
    
// Muzzleflash
    
g_Muzzleflash_Ent engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
g_Muzzleflash_Ent2 engfunc(EngFunc_CreateNamedEntityengfunc(EngFunc_AllocString"info_target"))
    
    
precache_model(MUZZLEFLASH1)
    
precache_model(MUZZLEFLASH2)
    
    
engfunc(EngFunc_SetModelg_Muzzleflash_EntMUZZLEFLASH1)
    
engfunc(EngFunc_SetModelg_Muzzleflash_Ent2MUZZLEFLASH2)
    
    
set_pev(g_Muzzleflash_Entpev_scale0.075)
    
set_pev(g_Muzzleflash_Ent2pev_scale0.1)
    
    
set_pev(g_Muzzleflash_Entpev_rendermodekRenderTransTexture)
    
set_pev(g_Muzzleflash_Entpev_renderamt0.0)
    
set_pev(g_Muzzleflash_Ent2pev_rendermodekRenderTransTexture)
    
set_pev(g_Muzzleflash_Ent2pev_renderamt0.0)
}

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

public 
client_putinserver(id)
{
        
Safety_Connected(id)
    
    if(!
g_HamBot && is_user_bot(id))
    {
        
g_HamBot 1
        set_task
(0.1"Register_HamBot"id)
    }
}
 
public 
Register_HamBot(id)
{
    
Register_SafetyFuncBot(id)
    
RegisterHamFromEntity(Ham_TraceAttackid"fw_TraceAttack_Player")    
}
 
public 
client_disconnect(id)
{
        
Safety_Disconnected(id)
}
/*
public Mileage_WeaponGet(id, ItemID)
{
    if(ItemID == g_Base) Get_Base(id)
}

public Mileage_WeaponRefillAmmo(id, ItemID)
{
    if(ItemID == g_Base) cs_set_user_bpammo(id, CSW_BASE, BPAMMO)
}

public Mileage_WeaponRemove(id, ItemID)
{
    if(ItemID == g_Base) Remove_Base(id)
}*/

public Get_Base(id)
{
    
Set_BitVar(g_Had_Baseid)
    
give_item(idweapon_base)
    
    
// Clip & Ammo
    
static EntEnt fm_get_user_weapon_entity(idCSW_BASE)
    if(!
pev_valid(Ent)) return
    
    
cs_set_weapon_ammo(EntCLIP)
    
cs_set_user_bpammo(idCSW_BASEBPAMMO)
    
    
message_begin(MSG_ONE_UNRELIABLEg_MsgCurWeapon_id)
    
write_byte(1)
    
write_byte(CSW_BASE)
    
write_byte(CLIP)
    
message_end()
    
    
cs_set_weapon_silen(Ent00)
}

public 
Remove_Base(id)
{
    
UnSet_BitVar(g_Had_Baseid)
}

public 
Event_CurWeapon(id)
{
    static 
CSWIDCSWID read_data(2)
    static 
SubModelSubModel SUBMODEL
    
    
if((CSWID == CSW_BASE && g_OldWeapon[id] != CSW_BASE) && Get_BitVar(g_Had_Baseid))
    {
        if(
SubModel != -1Draw_NewWeapon(idCSWID)
    } else if((
CSWID == CSW_BASE && g_OldWeapon[id] == CSW_BASE) && Get_BitVar(g_Had_Baseid)) {
        static 
EntEnt fm_get_user_weapon_entity(idCSW_BASE)
        if(!
pev_valid(Ent))
        {
            
g_OldWeapon[id] = get_user_weapon(id)
            return
        }
        
        static 
Float:Speed
        
if(cs_get_user_zoom(id) != CS_SET_AUGSG552_ZOOMSpeed SPEED_A
        
else Speed SPEED_B
        
        set_pdata_float
(Ent46Speed4)
        
set_pdata_float(Ent47Speed4)
    } else if(
CSWID != CSW_BASE && g_OldWeapon[id] == CSW_BASE) {
        if(
SubModel != -1Draw_NewWeapon(idCSWID)
    }
    
    
g_OldWeapon[id] = get_user_weapon(id)
}

public 
Draw_NewWeapon(idCSW_ID)
{
    if(
CSW_ID == CSW_BASE)
    {
        static 
ent
        ent 
fm_get_user_weapon_entity(idCSW_BASE)
        
        if(
pev_valid(ent) && Get_BitVar(g_Had_Baseid))
        {
            
set_pev(entpev_effectspev(entpev_effects) &~ EF_NODRAW
            
engfunc(EngFunc_SetModelentMODEL_P)    
            
set_pev(entpev_bodySUBMODEL)
        }
    } else {
        static 
ent
        ent 
fm_get_user_weapon_entity(idCSW_BASE)
        
        if(
pev_valid(ent)) set_pev(entpev_effectspev(entpev_effects) | EF_NODRAW)             
    }
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_alive(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_BASE && Get_BitVar(g_Had_Baseid))
        
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_connected(invoker))
        return 
FMRES_IGNORED    
    
if(get_player_weapon(invoker) != CSW_BASE || !Get_BitVar(g_Had_Baseinvoker))
        return 
FMRES_IGNORED
    
if(eventid != g_Event_Base)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)

    
Set_WeaponAnim(invokerANIME_SHOOT)
    if(
cs_get_user_zoom(invoker) != CS_SET_AUGSG552_ZOOMemit_sound(invokerCHAN_WEAPONWeaponSounds[0], 1.00.4094 random_num(015))
    else 
emit_sound(invokerCHAN_WEAPONWeaponSounds[1], 1.00.4094 random_num(015))
    
    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(modelMODEL_W_OLD))
    {
        static 
weaponweapon find_ent_by_owner(-1weapon_baseentity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
Get_BitVar(g_Had_BaseiOwner))
        {
            
set_pev(weaponpev_impulseWEAPON_CODE)
            
engfunc(EngFunc_SetModelentityMODEL_W)
            
set_pev(entitypev_bodySUBMODEL)
        
            
Remove_Base(iOwner)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if (!
is_alive(id))
        return 
FMRES_IGNORED    
    
if(get_player_weapon(id) != CSW_BASE || !Get_BitVar(g_Had_Baseid))
        return 
FMRES_IGNORED
        
    
static ButtonButton get_uc(uc_handleUC_Buttons)    
    
    if(
Button IN_ATTACK2)
    {
        static 
Float:TimeTime get_pdata_float(id835)
        if(
Time 0.0) return FMRES_IGNORED
        
        
if(cs_get_user_zoom(id) != CS_SET_AUGSG552_ZOOMcs_set_user_zoom(idCS_SET_AUGSG552_ZOOM1)
        else 
cs_set_user_zoom(idCS_RESET_ZOOM0)
        
        
Time 0.25
        set_pdata_float
(id83Time5)
    }
    
    return 
FMRES_IGNORED
}

public 
fw_AddToFullPack_Post(esStateiEiEntiHostiHostFlagsiPlayerpSet)
{
    if(
iEnt == g_Muzzleflash_Ent)
    {
        if(
Get_BitVar(g_MuzzleflashiHost))
        {
            
set_es(esStateES_Framefloat(random_num(02)))
                
            
set_es(esStateES_RenderModekRenderTransAdd)
            
set_es(esStateES_RenderAmt255.0)
            
            
UnSet_BitVar(g_MuzzleflashiHost)
            
//remove_task(iHost+WEAPON_CODE)
            
set_task(0.001"Set_NextMuzzleflash"iHost+WEAPON_CODE)
        }
            
        
set_es(esStateES_SkiniHost)
        
set_es(esStateES_Body1)
        
set_es(esStateES_AimEntiHost)
        
set_es(esStateES_MoveTypeMOVETYPE_FOLLOW)
    } else if(
iEnt == g_Muzzleflash_Ent2) {
        if(
Get_BitVar(g_Muzzleflash2iHost))
        {
            
set_es(esStateES_Framefloat(random_num(02)))
                
            
set_es(esStateES_RenderModekRenderTransAdd)
            
set_es(esStateES_RenderAmt255.0)
            
            
UnSet_BitVar(g_Muzzleflash2iHost)
        }
            
        
set_es(esStateES_SkiniHost)
        
set_es(esStateES_Body1)
        
set_es(esStateES_AimEntiHost)
        
set_es(esStateES_MoveTypeMOVETYPE_FOLLOW)
    }
}

public 
Set_NextMuzzleflash(idSet_BitVar(g_Muzzleflash2id-WEAPON_CODE)

public 
fw_CheckVisibility(iEntitypSet)
{
    if(
iEntity == g_Muzzleflash_Ent || iEntity == g_Muzzleflash_Ent2)
    {
        
forward_return(FMV_CELL1)
        return 
FMRES_SUPERCEDE
    
}
    
    return 
FMRES_IGNORED
}

public 
fw_Item_Deploy_Post(Ent)
{
    if(
pev_valid(Ent) != 2)
        return
    static 
IdId get_pdata_cbase(Ent414)
    if(
get_pdata_cbase(Id373) != Ent)
        return
    if(!
Get_BitVar(g_Had_BaseId))
        return
        
    static 
SubModelSubModel SUBMODEL
    
    set_pev
(Idpev_viewmodel2MODEL_V)
    
set_pev(Idpev_weaponmodel2SubModel != -"" MODEL_P)
    
    static 
DrawDraw ANIME_DRAW
    
if(Draw != -1Set_WeaponAnim(IdANIME_DRAW)
}

public 
fw_Item_AddToPlayer_Post(Entid)
{
    if(!
pev_valid(Ent))
        return 
HAM_IGNORED
        
    
if(pev(Entpev_impulse) == WEAPON_CODE)
    {
        
Set_BitVar(g_Had_Baseid)
        
set_pev(Entpev_impulse0)
    }
    
    return 
HAM_HANDLED    
}

public 
fw_Item_PostFrame(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    
    
    
static Float:flNextAttackflNextAttack get_pdata_float(id835)
    static 
bpammobpammo cs_get_user_bpammo(idCSW_BASE)
    
    static 
iClipiClip get_pdata_int(ent514)
    static 
fInReloadfInReload get_pdata_int(ent544)
    
    if(
fInReload && flNextAttack <= 0.0)
    {
        static 
temp1
        temp1 
min(CLIP iClipbpammo)

        
set_pdata_int(ent51iClip temp14)
        
cs_set_user_bpammo(idCSW_BASEbpammo temp1)        
        
        
set_pdata_int(ent5404)
        
        
fInReload 0
    
}        
    
    return 
HAM_IGNORED
}

public 
fw_Weapon_Reload(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    

    g_Clip
[id] = -1
        
    
static BPAmmoBPAmmo cs_get_user_bpammo(idCSW_BASE)
    static 
iClipiClip get_pdata_int(ent514)
        
    if(
BPAmmo <= 0)
        return 
HAM_SUPERCEDE
    
if(iClip >= CLIP)
        return 
HAM_SUPERCEDE        
            
    g_Clip
[id] = iClip    
    
    
return HAM_HANDLED
}

public 
fw_Weapon_Reload_Post(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Baseid))
        return 
HAM_IGNORED    
    
    
if((get_pdata_int(ent544) == 1))
    { 
// Reload
        
if(g_Clip[id] == -1)
            return 
HAM_IGNORED
        
        set_pdata_int
(ent51g_Clip[id], 4)
        
        static 
ReloadReload ANIME_RELOAD
        
if(Reload != -1Set_WeaponAnim(idANIME_RELOAD)
        
Set_PlayerNextAttack(idRELOAD_TIME)
    }
    
    return 
HAM_HANDLED
}

public 
fw_Weapon_WeaponIdle_PostiEnt )
{
    if(
pev_valid(iEnt) != 2)
        return
    static 
IdId get_pdata_cbase(iEnt414)
    if(
get_pdata_cbase(Id373) != iEnt)
        return
    if(!
Get_BitVar(g_Had_BaseId))
        return
        
    static 
IdleIdle ANIME_IDLE
    
    
if(Idle != -&& get_pdata_float(iEnt484) <= 0.25)
    {
        
Set_WeaponAnim(IdANIME_IDLE)
        
set_pdata_float(iEnt4820.04)
    }    
}

public 
fw_TraceAttack_World(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_connected(Attacker))
        return 
HAM_IGNORED    
    
if(get_player_weapon(Attacker) != CSW_BASE || !Get_BitVar(g_Had_BaseAttacker))
        return 
HAM_IGNORED
        
    
static Float:flEnd[3], Float:vecPlane[3]
        
    
get_tr2(PtrTR_vecEndPosflEnd)
    
get_tr2(PtrTR_vecPlaneNormalvecPlane)        
            
    
Make_BulletHole(AttackerflEndDamage)
    
Make_BulletSmoke(AttackerPtr)

    if(
cs_get_user_zoom(Attacker) != CS_SET_AUGSG552_ZOOMSetHamParamFloat(3float(DAMAGE_A))
    else {
        
SetHamParamFloat(3float(DAMAGE_B))
        
Create_Tracer(AttackerflEnd)
    }
    
    return 
HAM_HANDLED
}

public 
fw_TraceAttack_Player(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_connected(Attacker))
        return 
HAM_IGNORED    
    
if(get_player_weapon(Attacker) != CSW_BASE || !Get_BitVar(g_Had_BaseAttacker))
        return 
HAM_IGNORED

    
static Float:flEnd[3]
    
get_tr2(PtrTR_vecEndPosflEnd)    
        
    if(
cs_get_user_zoom(Attacker) != CS_SET_AUGSG552_ZOOMSetHamParamFloat(3float(DAMAGE_A))
    else {
        
SetHamParamFloat(3float(DAMAGE_B))
        
Create_Tracer(AttackerflEnd)
    }
    
    return 
HAM_HANDLED
}

public 
Create_Tracer(idFloat:Target[3])
{
    static 
Float:Start[3]; 
    
Get_Position(id48.06.0, -6.0Start)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMPOINTS)
    
write_coord_f(Start[0]) 
    
write_coord_f(Start[1]) 
    
write_coord_f(Start[2]) 
    
write_coord_f(Target[0]) 
    
write_coord_f(Target[1]) 
    
write_coord_f(Target[2]) 
    
write_short(m_spriteTexture)
    
write_byte(0// framerate
    
write_byte(0// framerate
    
write_byte(5// life
    
write_byte(2)  // width
    
write_byte(0)   // noise
    
write_byte(255)   // r, g, b
    
write_byte(255)   // r, g, b
    
write_byte(255)   // r, g, b
    
write_byte(175)    // brightness
    
write_byte(1)        // speed
    
message_end()
}

public 
fw_Weapon_PrimaryAttack(Ent)
{
    static 
idid pev(Entpev_owner)
    if(!
is_alive(id))
        return
    if(!
Get_BitVar(g_Had_Baseid))
        return

    
pev(idpev_punchangleg_Recoil[id])
}

public 
fw_Weapon_PrimaryAttack_Post(Ent)
{
    static 
idid pev(Entpev_owner)
    if(!
is_alive(id))
        return
    if(!
Get_BitVar(g_Had_Baseid))
        return

    static 
Float:Push[3]
    
pev(idpev_punchanglePush)
    
xs_vec_sub(Pushg_Recoil[id], Push)
    
    
xs_vec_mul_scalar(PushRECOILPush)
    
xs_vec_add(Pushg_Recoil[id], Push)
    
    
set_pev(idpev_punchanglePush)
    
Set_BitVar(g_Muzzleflashid)
    
    
// Acc
    
static AccenaAccena ACCURACY
    
if(Accena != -1)
    {
        static 
Float:Accuracy
        Accuracy 
= (float(100 ACCURACY) * 1.5) / 100.0

        set_pdata_float
(Ent62Accuracy4);
    }
}

/* ===============================
------------- SAFETY -------------
=================================*/
public Register_SafetyFunc()
{
    
register_event("CurWeapon""Safety_CurWeapon""be""1=1")
    
    
RegisterHam(Ham_Spawn"player""fw_Safety_Spawn_Post"1)
    
RegisterHam(Ham_Killed"player""fw_Safety_Killed_Post"1)
}

public 
Register_SafetyFuncBot(id)
{
    
RegisterHamFromEntity(Ham_Spawnid"fw_Safety_Spawn_Post"1)
    
RegisterHamFromEntity(Ham_Killedid"fw_Safety_Killed_Post"1)
}

public 
Safety_Connected(id)
{
    
Set_BitVar(g_IsConnectedid)
    
UnSet_BitVar(g_IsAliveid)
    
    
g_PlayerWeapon[id] = 0
}

public 
Safety_Disconnected(id)
{
    
UnSet_BitVar(g_IsConnectedid)
    
UnSet_BitVar(g_IsAliveid)
    
    
g_PlayerWeapon[id] = 0
}

public 
Safety_CurWeapon(id)
{
    if(!
is_alive(id))
        return
        
    static 
CSWCSW read_data(2)
    if(
g_PlayerWeapon[id] != CSWg_PlayerWeapon[id] = CSW
}

public 
fw_Safety_Spawn_Post(id)
{
    if(!
is_user_alive(id))
        return
        
    
Set_BitVar(g_IsAliveid)
}

public 
fw_Safety_Killed_Post(id)
{
    
UnSet_BitVar(g_IsAliveid)
}

public 
is_connected(id)
{
    if(!(
<= id <= 32))
        return 
0
    
if(!Get_BitVar(g_IsConnectedid))
        return 
0

    
return 1
}

public 
is_alive(id)
{
    if(!
is_connected(id))
        return 
0
    
if(!Get_BitVar(g_IsAliveid))
        return 
0
        
    
return 1
}

public 
get_player_weapon(id)
{
    if(!
is_alive(id))
        return 
0
    
    
return g_PlayerWeapon[id]
}

/* ===============================
--------- END OF SAFETY  ---------
=================================*/

stock Set_WeaponAnim(idanim)
{
    
set_pev(idpev_weaponanimanim)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id)
    
write_byte(anim)
    
write_byte(pev(idpev_body))
    
message_end()
}

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()
    }
}

stock 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()
}

stock get_weapon_attachment(idFloat:output[3], Float:fDis 40.0)

    static 
Float:vfEnd[3], viEnd[3
    
get_user_origin(idviEnd3)  
    
IVecFVec(viEndvfEnd
    
    static 
Float:fOrigin[3], Float:fAngle[3]
    
    
pev(idpev_originfOrigin
    
pev(idpev_view_ofsfAngle)
    
    
xs_vec_add(fOriginfAnglefOrigin
    
    static 
Float:fAttack[3]
    
    
xs_vec_sub(vfEndfOriginfAttack)
    
xs_vec_sub(vfEndfOriginfAttack
    
    static 
Float:fRate
    
    fRate 
fDis vector_length(fAttack)
    
xs_vec_mul_scalar(fAttackfRatefAttack)
    
    
xs_vec_add(fOriginfAttackoutput)
}

stock get_position(id,Float:forwFloat:rightFloat:upFloat:vStart[])
{
    new 
Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
    
    
pev(idpev_originvOrigin)
    
pev(idpev_view_ofs,vUp//for player
    
xs_vec_add(vOrigin,vUp,vOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward//or use EngFunc_AngleVectors
    
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
    
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
    
    
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]
    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_WeaponIdleTime(idWeaponId ,Float:TimeIdle)
{
    static 
entwpnentwpn fm_get_user_weapon_entity(idWeaponId)
    if(!
pev_valid(entwpn)) 
        return
        
    
set_pdata_float(entwpn46TimeIdle4)
    
set_pdata_float(entwpn47TimeIdle4)
    
set_pdata_float(entwpn48TimeIdle 0.54)
}

stock Set_PlayerNextAttack(idFloat:nexttime)
{
    
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_ofs,vUp//for player
    
xs_vec_add(vOrigin,vUp,vOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngle,ANGLEVECTOR_FORWARD,vForward//or use EngFunc_AngleVectors
    
angle_vector(vAngle,ANGLEVECTOR_RIGHT,vRight)
    
angle_vector(vAngle,ANGLEVECTOR_UP,vUp)
    
    
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
}

public 
write_coord_f(Float:Awrite_coord(floatround(A))

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1042\\ f0\\ fs16 \n\\ par }
*/ 

This is the weapon one
elmedin is offline
elmedin
Senior Member
Join Date: Nov 2013
Location: Bruh
Old 02-14-2019 , 18:12   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #9

This is main
Attached Files
File Type: sma Get Plugin or Get Source (zp.sma - 229 views - 442.4 KB)
elmedin is offline
PartialCloning
Senior Member
Join Date: Dec 2015
Old 02-14-2019 , 18:26   Re: [HELP] Cso weapon on ZP Primary
Reply With Quote #10

Read up on natives. For now, you can add the following to get the basics to work.

In your weapon code:
PHP Code:
public plugin_natives()
{
    
register_native("wpn_GetBase""Callback_GetBase");
}

public 
Callback_GetBase(PluginIDParamNum)
{
    
Get_Base(get_param(1));

In your main code:
PHP Code:
native wpn_GetBase(id); 
Then use wpn_GetBase(id) instead of GetBase(id);
PartialCloning is offline
Reply



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 22:21.


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