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

Help with T5


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
SaBBa
Member
Join Date: Dec 2012
Old 01-16-2021 , 14:36   Help with T5
Reply With Quote #1

I am getting following errors, can anyone help me to fix them ?
Also, it's impossible to switch to this weapon 1 or [] buttons, the only way is to use Q button, what could be a reason (other gun has same issue) and how can I fix it. Thank you

PHP Code:
L 01/16/2021 19:26:02: [HAMSANDWICHEntity has null private data (5)
L 01/16/2021 19:26:02: [AMXXDisplaying debug trace (plugin "cso_thanatos5.amxx")
L 01/16/2021 19:26:02: [AMXXRun time error 10native error (native "ExecuteHamB")
L 01/16/2021 19:26:02: [AMXX]    [0cso_thanatos5.sma::Thanatos5_Damage (line 868)
L 01/16/2021 19:26:02: [AMXX]    [1cso_thanatos5.sma::fw_Scythe_Think2 (line 818)
L 01/16/2021 19:26:18: [HAMSANDWICHEntity has null private data (5)
L 01/16/2021 19:26:18: [AMXXDisplaying debug trace (plugin "cso_thanatos5.amxx")
L 01/16/2021 19:26:18: [AMXXRun time error 10native error (native "ExecuteHamB")
L 01/16/2021 19:26:18: [AMXX]    [0cso_thanatos5.sma::Thanatos5_Damage (line 868)
L 01/16/2021 19:26:18: [AMXX]    [1cso_thanatos5.sma::fw_Scythe_Think (line 723

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

#define PLUGIN "[CSO] Thanatos-5"
#define VERSION "1.0"
#define AUTHOR "Dias no Pendragon"

#define DAMAGE_A 40
#define DAMAGE_B 200

#define CLIP 30
#define SCYTHE_RADIUS 120.0

#define V_MODEL "models/v_thanatos5.mdl"
#define P_MODEL "models/p_thanatos5.mdl"
#define W_MODEL "models/w_thanatos5.mdl"
#define S_MODEL "models/thanatos5_bulleta.mdl"

new const WeaponSounds[12][] =
{
    
"weapons/thanatos5-1.wav",
    
"weapons/thanatos5_shootb2_1.wav",
    
"weapons/thanatos5_explode1.wav",
    
"weapons/thanatos5_explode2.wav",
    
"weapons/thanatos5_explode3.wav",
    
"weapons/thanatos5_changea_1.wav",
    
"weapons/thanatos5_changea_2.wav",
    
"weapons/thanatos5_changea_3.wav",
    
"weapons/thanatos5_changea_4.wav",
    
"weapons/thanatos5_reloada_1.wav",
    
"weapons/thanatos5_reloada_2.wav",
    
"weapons/thanatos5_reloada_3.wav"
}

new const 
WeaponResources[6][] =
{
    
"sprites/thanatos5_explode.spr",
    
"sprites/thanatos5_explode2.spr",
    
"sprites/640hud7_2.spr",
    
"sprites/640hud14_2.spr",
    
"sprites/640hud125_2.spr",
    
"sprites/weapon_thanatos5.txt"
}

enum
{
    
ANIM_IDLE_A 0,
    
ANIM_IDLE_B,
    
ANIM_SHOOT_A1,
    
ANIM_SHOOT_A2,
    
ANIM_SHOOT_A3,
    
ANIM_SHOOT_B1,
    
ANIM_SHOOT_B2,
    
ANIM_SHOOT_B3,
    
ANIM_SHOOT_SPECIAL,
    
ANIM_RELOAD_A,
    
ANIM_RELOAD_B,
    
ANIM_CHANGE,
    
ANIM_DRAW_A,
    
ANIM_DRAW_B
}

#define TASK_RELOAD 31515
#define SCYTHE_CLASSNAME "mines"
#define SCYTHE_CLASSNAME2 "mines2"

#define CSW_THANATOS5 CSW_M4A1
#define weapon_thanatos5 "weapon_m4a1"

// Fire Start
#define THANATOS5_OLDMODEL "models/w_m4a1.mdl"

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)
const 
SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE)

// 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_Had_Thanatos5g_Thanatos5_Clip[33], g_GrenadeMode
new g_MsgCurWeapong_MsgStatusIcong_MsgWeaponListg_InTempingAttackg_MaxPlayers
new g_Event_Thanatos5g_ShellIdg_SmokePuff_SprIdg_HamBotspr_trailg_Exp_SprIDg_Exp2_SprID

public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("HLTV""Event_NewRound""a""1=0""2=0")
    
register_think(SCYTHE_CLASSNAME"fw_Scythe_Think")
    
register_think(SCYTHE_CLASSNAME2"fw_Scythe_Think2")
    
    
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_EmitSound"fw_EmitSound")
    
register_forward(FM_TraceLine"fw_TraceLine")
    
register_forward(FM_TraceHull"fw_TraceHull")    
    
    
RegisterHam(Ham_Item_Deployweapon_thanatos5"fw_Item_Deploy_Post"1)    
    
RegisterHam(Ham_Item_AddToPlayerweapon_thanatos5"fw_Item_AddToPlayer_Post"1)
    
RegisterHam(Ham_Item_PostFrameweapon_thanatos5"fw_Item_PostFrame")    
    
RegisterHam(Ham_Weapon_Reloadweapon_thanatos5"fw_Weapon_Reload")
    
RegisterHam(Ham_Weapon_Reloadweapon_thanatos5"fw_Weapon_Reload_Post"1)    
    
RegisterHam(Ham_Weapon_WeaponIdleweapon_thanatos5"fw_Weapon_WeaponIdle_Post"1)
    
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack_World")
    
RegisterHam(Ham_TraceAttack"player""fw_TraceAttack_Player")    
    
    
g_MsgCurWeapon get_user_msgid("CurWeapon")
    
g_MsgStatusIcon get_user_msgid("StatusIcon")
    
g_MsgWeaponList get_user_msgid("WeaponList")
    
g_MaxPlayers get_maxplayers()
}

public 
plugin_precache()
{
    
precache_model(V_MODEL)
    
precache_model(P_MODEL)
    
precache_model(W_MODEL)
    
precache_model(S_MODEL)
    
    for(new 
0sizeof(WeaponSounds); i++)
        
precache_sound(WeaponSounds[i])
        
    
g_Exp_SprID precache_model(WeaponResources[0])
    
g_Exp2_SprID precache_model(WeaponResources[1])
    
precache_model(WeaponResources[2])
    
precache_model(WeaponResources[3])
    
precache_model(WeaponResources[4])
    
precache_generic(WeaponResources[5])
    
    
g_ShellId precache_model("models/rshell.mdl")
    
g_SmokePuff_SprId precache_model("sprites/wall_puff1.spr")
    
spr_trail engfunc(EngFunc_PrecacheModel"sprites/laserbeam.spr")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)
}

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal("events/m4a1.sc"name)) g_Event_Thanatos5 get_orig_retval()        
}

public 
client_putinserver(id)
{
    if(!
g_HamBot && is_user_bot(id))
    {
        
g_HamBot 1
        set_task
(0.1"Do_Register_HamBot"id)
    }
}

public 
Do_Register_HamBot(id)
{
    
RegisterHamFromEntity(Ham_TraceAttackid"fw_TraceAttack_Player")
}

public 
Event_NewRound() remove_entity_name(SCYTHE_CLASSNAME)
public 
Hook_Weapon(id
{
    
engclient_cmd(idweapon_thanatos5)
    return 
PLUGIN_HANDLED
}

public 
get_weapon(id)
{
    
drop_weapons(id1)
    
    
Set_BitVar(g_Had_Thanatos5id)
    
UnSet_BitVar(g_GrenadeModeid)
    
give_item(idweapon_thanatos5)
    
    static 
EntEnt fm_get_user_weapon_entity(idCSW_THANATOS5)
    if(
pev_valid(Ent)) cs_set_weapon_ammo(EntCLIP)
    
    
message_begin(MSG_ONE_UNRELIABLEg_MsgWeaponList_id)
    
write_string("weapon_thanatos5")
    
write_byte(4)
    
write_byte(90)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(6)
    
write_byte(CSW_THANATOS5)
    
write_byte(0)
    
message_end()    
    
    
Update_Ammo(idCLIP)
    
Update_SpecialAmmo(id10)
    
    
cs_set_user_bpammo(idCSW_THANATOS5200)
}

public 
Remove_Thanatos5(id)
{
    if(
is_user_connected(id)) 
        
Update_SpecialAmmo(id10)
    
    
UnSet_BitVar(g_Had_Thanatos5id)
    
UnSet_BitVar(g_GrenadeModeid)
}

public 
Update_Ammo(idAmmo)
{
    if(!
is_user_alive(id))
        return
    
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEg_MsgCurWeapon, {000}, id)
    
write_byte(1)
    
write_byte(CSW_THANATOS5)
    
write_byte(Ammo)
    
message_end()
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_THANATOS5 && Get_BitVar(g_Had_Thanatos5id))
        
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_THANATOS5 || !Get_BitVar(g_Had_Thanatos5invoker))
        return 
FMRES_IGNORED
    
if(eventid != g_Event_Thanatos5)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
    if(
Get_BitVar(g_GrenadeModeinvoker)) Set_WeaponAnim(invokerANIM_SHOOT_B1)
    else 
Set_WeaponAnim(invokerANIM_SHOOT_A1)
    
emit_sound(invokerCHAN_WEAPONWeaponSounds[0], 1.0ATTN_NORM0PITCH_NORM)
    
    
Eject_Shell(invokerg_ShellId0.01)

    return 
FMRES_IGNORED
}

public 
Update_SpecialAmmo(idAmmoOn)
{
    static 
AmmoSprites[33], Color[3]
    
format(AmmoSpritessizeof(AmmoSprites), "number_%d"Ammo)

    switch(
Ammo)
    {
        case 
1..3: { Color[0] = 0Color[1] = 200Color[2] = 0; }
        case 
4..5: { Color[0] = 200Color[1] = 200Color[2] = 0; }
        case 
6..10: { Color[0] = 200Color[1] = 0Color[2] = 0; }
    }
    
    
message_begin(MSG_ONE_UNRELIABLEg_MsgStatusIcon, {0,0,0}, id)
    
write_byte(On)
    
write_string(AmmoSprites)
    
write_byte(Color[0]) // red
    
write_byte(Color[1]) // green
    
write_byte(Color[2]) // blue
    
message_end()
}

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(modelTHANATOS5_OLDMODEL))
    {
        static 
weaponweapon find_ent_by_owner(-1weapon_thanatos5entity)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
Get_BitVar(g_Had_Thanatos5iOwner))
        {
            
set_pev(weaponpev_impulse3152015)
            
set_pev(weaponpev_iuser4Get_BitVar(g_GrenadeModeiOwner) ? 0)
            
            
engfunc(EngFunc_SetModelentityW_MODEL)
            
            
Remove_Thanatos5(iOwner)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(iduc_handleseed)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED
    
if(get_user_weapon(id) != CSW_THANATOS5 || !Get_BitVar(g_Had_Thanatos5id))
        return 
FMRES_IGNORED
        
    
static PressedButton
    PressedButton 
get_uc(uc_handleUC_Buttons)
    
    if(
PressedButton IN_ATTACK2)
    {
        if(
get_pdata_float(id835) > 0.0)
            return 
FMRES_IGNORED
        
        PressedButton 
&= ~IN_ATTACK2
        set_uc
(uc_handleUC_ButtonsPressedButton)

        if(!
Get_BitVar(g_GrenadeModeid))
        {
            
set_pdata_float(id835.05)
            
Set_WeaponIdleTime(idCSW_THANATOS55.0)
            
            
Set_WeaponAnim(idANIM_CHANGE)
            
            
remove_task(id+TASK_RELOAD)
            
set_task(4.75"Complete_Reload"id+TASK_RELOAD)
        } else {
            
Shoot_Scythe(id)
        }
    }
        
    return 
FMRES_HANDLED
}

public 
Complete_Reload(id)
{
    
id -= TASK_RELOAD
    
    
if(!is_user_alive(id))
        return
    if(
get_user_weapon(id) != CSW_THANATOS5 || !Get_BitVar(g_Had_Thanatos5id))
        return
    if(
Get_BitVar(g_GrenadeModeid))
        return
        
    
Set_BitVar(g_GrenadeModeid)
    
    
set_pdata_float(id830.05)
    
Set_WeaponIdleTime(idCSW_THANATOS50.0)
    
Set_WeaponAnim(idANIM_IDLE_B)
    
    
Update_SpecialAmmo(id11)
}

public 
Shoot_Scythe(id)
{
    
emit_sound(idCHAN_WEAPONWeaponSounds[1], VOL_NORMATTN_NORM0PITCH_NORM)
    
    
Create_FakeAttackAnim(id)
    
Set_WeaponAnim(idANIM_SHOOT_SPECIAL)
    
    
Update_SpecialAmmo(id10)
    
set_pdata_float(id832.05)
    
Set_WeaponIdleTime(idCSW_THANATOS52.0)
    
    
UnSet_BitVar(g_GrenadeModeid)
    
    
// Fake Punch
    //static Float:Origin[3]
    //Origin[0] = random_float(-2.5, -5.0)
    
    //set_pev(id, pev_punchangle, Origin)
    
    // Scythe
    
Create_Scythe(id)
}

public 
fw_EmitSound(idchannel, const sample[], Float:volumeFloat:attnflagspitch)
{
    if(!
is_user_connected(id))
        return 
FMRES_IGNORED
    
if(!Get_BitVar(g_InTempingAttackid))
        return 
FMRES_IGNORED
        
    
if(sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
    {
        if(
sample[14] == 's' && sample[15] == 'l' && sample[16] == 'a')
            return 
FMRES_SUPERCEDE
        
if (sample[14] == 'h' && sample[15] == 'i' && sample[16] == 't')
        {
            if (
sample[17] == 'w')  return FMRES_SUPERCEDE
            
else  return FMRES_SUPERCEDE
        
}
        if (
sample[14] == 's' && sample[15] == 't' && sample[16] == 'a')
            return 
FMRES_SUPERCEDE;
    }
    
    return 
FMRES_IGNORED
}

public 
fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monsteridhandle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED    
    
if(!Get_BitVar(g_InTempingAttackid))
        return 
FMRES_IGNORED
    
    
static Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
    
    
pev(idpev_originfOrigin)
    
pev(idpev_view_ofsview_ofs)
    
xs_vec_add(fOriginview_ofsvecStart)
    
pev(idpev_v_anglev_angle)
    
    
engfunc(EngFunc_MakeVectorsv_angle)
    
get_global_vector(GL_v_forwardv_forward)

    
xs_vec_mul_scalar(v_forward0.0v_forward)
    
xs_vec_add(vecStartv_forwardvecEnd)
    
    
engfunc(EngFunc_TraceLinevecStartvecEndignored_monsteridhandle)
    
    return 
FMRES_SUPERCEDE
}

public 
fw_TraceHull(Float:vector_start[3], Float:vector_end[3], ignored_monsterhullidhandle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED    
    
if(!Get_BitVar(g_InTempingAttackid))
        return 
FMRES_IGNORED
    
    
static Float:vecStart[3], Float:vecEnd[3], Float:v_angle[3], Float:v_forward[3], Float:view_ofs[3], Float:fOrigin[3]
    
    
pev(idpev_originfOrigin)
    
pev(idpev_view_ofsview_ofs)
    
xs_vec_add(fOriginview_ofsvecStart)
    
pev(idpev_v_anglev_angle)
    
    
engfunc(EngFunc_MakeVectorsv_angle)
    
get_global_vector(GL_v_forwardv_forward)
    
    
xs_vec_mul_scalar(v_forward0.0v_forward)
    
xs_vec_add(vecStartv_forwardvecEnd)
    
    
engfunc(EngFunc_TraceHullvecStartvecEndignored_monsterhullidhandle)
    
    return 
FMRES_SUPERCEDE
}

public 
Create_FakeAttackAnim(id)
{
    
Set_BitVar(g_InTempingAttackid)
    
    static 
EntEnt fm_get_user_weapon_entity(idCSW_KNIFE)
    if(
pev_valid(Ent)) ExecuteHamB(Ham_Weapon_PrimaryAttackEnt)
    
    
UnSet_BitVar(g_InTempingAttackid)
}

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_Thanatos5Id))
        return
    
    
set_pev(Idpev_viewmodel2V_MODEL)
    
set_pev(Idpev_weaponmodel2P_MODEL)
    
    if(
Get_BitVar(g_GrenadeModeId)) Set_WeaponAnim(IdANIM_DRAW_B)
    else 
Set_WeaponAnim(IdANIM_DRAW_A)
}

public 
fw_Item_AddToPlayer_Post(Entid)
{
    if(!
pev_valid(Ent))
        return 
HAM_IGNORED
        
    
if(pev(Entpev_impulse) == 3152015)
    {
        
Set_BitVar(g_Had_Thanatos5id)
        
set_pev(Entpev_impulse0)
        
        if(
pev(Entpev_iuser4)) 
        {
            
Set_BitVar(g_GrenadeModeid)
            
Update_SpecialAmmo(id11)
        }
        
        
message_begin(MSG_ONE_UNRELIABLEg_MsgWeaponList_id)
        
write_string("weapon_thanatos5")
        
write_byte(4)
        
write_byte(90)
        
write_byte(-1)
        
write_byte(-1)
        
write_byte(0)
        
write_byte(6)
        
write_byte(CSW_THANATOS5)
        
write_byte(0)
        
message_end()        
    }

    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_Thanatos5Id))
        return
        
    if(
get_pdata_float(iEnt484) <= 0.25)
    {
        if(
Get_BitVar(g_GrenadeModeId)) Set_WeaponAnim(IdANIM_IDLE_B)
        else 
Set_WeaponAnim(IdANIM_IDLE_A)
        
        
set_pdata_float(iEnt4820.04)
    }    
}

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

    
SetHamParamFloat(3float(DAMAGE_A))
    
    return 
HAM_IGNORED
}

public 
fw_TraceAttack_Player(VictimAttackerFloat:DamageFloat:Direction[3], PtrDamageBits)
{
    if(!
is_user_connected(Attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(Attacker) != CSW_THANATOS5 || !Get_BitVar(g_Had_Thanatos5Attacker))
        return 
HAM_IGNORED
        
    SetHamParamFloat
(3float(DAMAGE_A))
    
    return 
HAM_IGNORED
}

public 
fw_Item_PostFrame(ent)
{
    static 
idid pev(entpev_owner)
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
if(!Get_BitVar(g_Had_Thanatos5id))
        return 
HAM_IGNORED    
    
    
static Float:flNextAttackflNextAttack get_pdata_float(id835)
    static 
bpammobpammo cs_get_user_bpammo(idCSW_THANATOS5)
    
    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_THANATOS5bpammo 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_Thanatos5id))
        return 
HAM_IGNORED    

    g_Thanatos5_Clip
[id] = -1
        
    
static BPAmmoBPAmmo cs_get_user_bpammo(idCSW_THANATOS5)
    static 
iClipiClip get_pdata_int(ent514)
        
    if(
BPAmmo <= 0)
        return 
HAM_SUPERCEDE
    
if(iClip >= CLIP)
        return 
HAM_SUPERCEDE        
            
    g_Thanatos5_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_Thanatos5id))
        return 
HAM_IGNORED    
        
    
if((get_pdata_int(ent544) == 1))
    { 
// Reload
        
if(g_Thanatos5_Clip[id] == -1)
            return 
HAM_IGNORED
        
        set_pdata_int
(ent51g_Thanatos5_Clip[id], 4)
        
set_pdata_float(id833.05)
        
        if(
Get_BitVar(g_GrenadeModeid)) Set_WeaponAnim(idANIM_RELOAD_B)
        else 
Set_WeaponAnim(idANIM_RELOAD_A)
    }
    
    return 
HAM_HANDLED
}

public 
Create_Scythe(id)
{
    new 
iEnt create_entity("info_target")
    
    static 
Float:Origin[3], Float:Angles[3], Float:TargetOrigin[3], Float:Velocity[3]
    
    
get_weapon_attachment(idOrigin40.0)
    
get_position(id1024.06.00.0TargetOrigin)
    
    
pev(idpev_v_angleAngles)
    
Angles[0] *= -1.0

    
// set info for ent
    
set_pev(iEntpev_movetypeMOVETYPE_PUSHSTEP)
    
entity_set_string(iEntEV_SZ_classnameSCYTHE_CLASSNAME)
    
engfunc(EngFunc_SetModeliEntS_MODEL)
    
    
set_pev(iEntpev_minsFloat:{-1.0, -1.0, -1.0})
    
set_pev(iEntpev_maxsFloat:{1.01.01.0})
    
set_pev(iEntpev_originOrigin)
    
set_pev(iEntpev_gravity1.0)
    
set_pev(iEntpev_anglesAngles)
    
set_pev(iEntpev_solidSOLID_TRIGGER)
    
set_pev(iEntpev_ownerid)    
    
set_pev(iEntpev_iuser1get_user_team(id))
    
set_pev(iEntpev_iuser20)
    
set_pev(iEntpev_fuser1get_gametime() + 1.5)

    
get_speed_vector(OriginTargetOrigin900.0Velocity)
    
set_pev(iEntpev_velocityVelocity)    
    
    
set_pev(iEntpev_nextthinkget_gametime() + 0.1)
    
    
// Animation
    
set_pev(iEntpev_animtimeget_gametime())
    
set_pev(iEntpev_framerate2.0)
    
set_pev(iEntpev_sequence0)
    
    
// Make a Beam
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)
    
write_short(iEnt// entity
    
write_short(spr_trail// sprite
    
write_byte(20)  // life
    
write_byte(2)  // width
    
write_byte(200// r
    
write_byte(200);  // g
    
write_byte(200);  // b
    
write_byte(200); // brightness
    
message_end();
}

public 
fw_Scythe_Think(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    static 
Float:Timepev(Entpev_fuser1Time)
    
    if(
Time <= get_gametime())
    {
        static 
Float:Origin[3];
        
pev(Entpev_originOrigin)
        
        
Thanatos5_Explose(Origin)
        
emit_sound(EntCHAN_BODYWeaponSounds[2], VOL_NORMATTN_NONE0PITCH_NORM)
        
        static 
IDID pev(Entpev_owner)
        if(!
is_user_connected(ID))
        {
            
set_pev(Entpev_flagsFL_KILLME)
            
set_pev(Entpev_nextthinkget_gametime() + 0.1)
            
            return
        }
        
        
Thanatos5_Damage(IDOrigin)
        
Create_ScytheSystem(IDEnt1)
        
        
set_pev(Entpev_flagsFL_KILLME)
        
set_pev(Entpev_nextthinkget_gametime() + 0.1)
        
        return
    }
    
    
set_pev(Entpev_nextthinkget_gametime() + 0.1)
}

public 
Create_ScytheSystem(idEntNext)
{
    static 
Float:Origin[4][3]
    static 
Float:Start[3]; pev(Entpev_originStart)
    
    
get_position(Ent100.00.0100.0Origin[0])
    
get_position(Ent, -100.00.0100.0Origin[1])
    
get_position(Ent0.0, -100.0100.0Origin[2])
    
get_position(Ent0.0100.0100.0Origin[3])
    
    for(new 
04i++)
        
Create_Mine(idStartOrigin[i], Next)
}

public 
Create_Mine(idFloat:Origin[3], Float:TargetOrigin[3], Next)
{
    new 
iEnt create_entity("info_target")
    static 
Float:Velocity[3]

    
// set info for ent
    
set_pev(iEntpev_movetypeMOVETYPE_PUSHSTEP)
    
entity_set_string(iEntEV_SZ_classnameSCYTHE_CLASSNAME2)
    
engfunc(EngFunc_SetModeliEntS_MODEL)
    
    
set_pev(iEntpev_minsFloat:{-1.0, -1.0, -1.0})
    
set_pev(iEntpev_maxsFloat:{1.01.01.0})
    
set_pev(iEntpev_originOrigin)
    
set_pev(iEntpev_gravity1.0)
    
set_pev(iEntpev_solidSOLID_TRIGGER)
    
set_pev(iEntpev_ownerid)    
    
set_pev(iEntpev_iuser1get_user_team(id))
    
set_pev(iEntpev_iuser2Next)
    
set_pev(iEntpev_fuser1get_gametime() + 1.5)

    
get_speed_vector(OriginTargetOrigin250.0Velocity)
    
set_pev(iEntpev_velocityVelocity)    
    
    
set_pev(iEntpev_nextthinkget_gametime() + 0.1)
    
    
// Animation
    
set_pev(iEntpev_animtimeget_gametime())
    
set_pev(iEntpev_framerate2.0)
    
set_pev(iEntpev_sequence0)
    
    
// Make a Beam
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMFOLLOW)
    
write_short(iEnt// entity
    
write_short(spr_trail// sprite
    
write_byte(10)  // life
    
write_byte(2)  // width
    
write_byte(200// r
    
write_byte(200);  // g
    
write_byte(200);  // b
    
write_byte(200); // brightness
    
message_end();
}

public 
fw_Scythe_Think2(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    static 
Float:Timepev(Entpev_fuser1Time)
    static 
NextNext pev(Entpev_iuser2)
    
    if(
Time <= get_gametime())
    {
        static 
Float:Origin[3];
        
pev(Entpev_originOrigin)
        
        
Thanatos5_Explose(Origin)
        
emit_sound(EntCHAN_BODYWeaponSounds[2], VOL_NORMATTN_NONE0PITCH_NORM)
        
        static 
IDID pev(Entpev_owner)
        if(!
is_user_connected(ID))
        {
            
set_pev(Entpev_flagsFL_KILLME)
            
set_pev(Entpev_nextthinkget_gametime() + 0.1)
            
            return
        }
        
        
Thanatos5_Damage(IDOrigin)
        if(
NextCreate_ScytheSystem(IDEnt0)
        
        
set_pev(Entpev_flagsFL_KILLME)
        
set_pev(Entpev_nextthinkget_gametime() + 0.1)
        
        return
    }
    
    
set_pev(Entpev_nextthinkget_gametime() + 0.1)
}

public 
Thanatos5_Explose(Float:Origin[3])
{
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_Exp_SprID)    // sprite index
    
write_byte(5)    // scale in 0.1's
    
write_byte(30)    // framerate
    
write_byte(TE_EXPLFLAG_NOSOUND)    // flags
    
message_end()
    
    
message_begin(MSG_BROADCAST ,SVC_TEMPENTITY)
    
write_byte(TE_EXPLOSION)
    
engfunc(EngFunc_WriteCoordOrigin[0])
    
engfunc(EngFunc_WriteCoordOrigin[1])
    
engfunc(EngFunc_WriteCoordOrigin[2])
    
write_short(g_Exp2_SprID)    // sprite index
    
write_byte(5)    // scale in 0.1's
    
write_byte(30)    // framerate
    
write_byte(TE_EXPLFLAG_NOSOUND TE_EXPLFLAG_NODLIGHTS)    // flags
    
message_end()
}

public 
Thanatos5_Damage(idFloat:Origin[3])
{
    static 
Float:MyOrigin[3]
    for(new 
0g_MaxPlayersi++)
    {
        if(!
is_user_alive(id))
            continue
        if(
id == i)
            continue
        
pev(ipev_originMyOrigin)
        if(
get_distance_f(OriginMyOrigin) > SCYTHE_RADIUS)
            continue
            
        
ExecuteHamB(Ham_TakeDamagei0idfloat(DAMAGE_B), DMG_BULLET)
    }
}

// Drop primary/secondary weapons
stock drop_weapons(iddropwhat)
{
    
// Get user weapons
    
static weapons[32], numiweaponid
    num 
// reset passed weapons count (bugfix)
    
get_user_weapons(idweaponsnum)
    
    
// Loop through them and drop primaries or secondaries
    
for (0numi++)
    {
        
// Prevent re-indexing the array
        
weaponid weapons[i]
        
        if ((
dropwhat == && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            
// Get weapon entity
            
static wname[32]; get_weaponname(weaponidwnamecharsmax(wname))
            
engclient_cmd(id"drop"wname)
        }
    }
}

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

SaBBa is offline
CrazY.
Veteran Member
Join Date: May 2015
Location: SP, Brazil
Old 01-18-2021 , 09:02   Re: Help with T5
Reply With Quote #2

To fix this error
Code:
L 01/16/2021 - 19:26:02: [HAMSANDWICH] Entity has null private data (5)
Replace this
Code:
public Thanatos5_Damage(id, Float:Origin[3])
{
    static Float:MyOrigin[3]
    for(new i = 0; i < g_MaxPlayers; i++)
    {
        if(!is_user_alive(id))
            continue
        if(id == i)
            continue
        pev(i, pev_origin, MyOrigin)
        if(get_distance_f(Origin, MyOrigin) > SCYTHE_RADIUS)
            continue
            
        ExecuteHamB(Ham_TakeDamage, i, 0, id, float(DAMAGE_B), DMG_BULLET)
    }
}
with this
Code:
public Thanatos5_Damage(id, Float:Origin[3])
{
    if (!is_user_connected(id))
        return

    new players[32], count
    get_players(players, count, "ah")

    for (new i = 0, player, Float:MyOrigin[3]; i < count; i++)
    {
        player = players[i]
        pev(player, pev_origin, MyOrigin)

        if (player == i || get_distance_f(Origin, MyOrigin) > SCYTHE_RADIUS)
            continue

        ExecuteHamB(Ham_TakeDamage, i, id, id, float(DAMAGE_B), DMG_BULLET)
    }
}
And to fix this
Quote:
it's impossible to switch to this weapon 1 or [] buttons, the only way is to use Q button
add this somewhere inside plugin_init
Code:
register_clcmd("weapon_thanatos5", "Hook_Weapon")
Note that this fix might not work in the other plugins
__________________









Last edited by CrazY.; 01-18-2021 at 09:10.
CrazY. is offline
SaBBa
Member
Join Date: Dec 2012
Old 01-18-2021 , 15:25   Re: Help with T5
Reply With Quote #3

Thank you good sir
All fixed
__________________
SaBBa 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 16:07.


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