AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Crosshair thunderbolt issue (https://forums.alliedmods.net/showthread.php?t=314939)

Apb hq 03-14-2019 09:53

Crosshair thunderbolt issue
 
Hi everyone i need a little help with this plugin in fact when you use the thunderbolt and you scope you dont have a crosshair the zoom is like when you use crosshair 0 and when you aim on the enemy a + via hudmessage appears , i want to disable all those features and get the default scope
Here is the code thanks in advance
PHP Code:

#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <fun>

#define PLUGIN "[CSO] Thunderbolt"
#define VERSION "3.0"
#define AUTHOR "Dias"

#define DAMAGE 600
#define DEFAULT_AMMO 20
#define RELOAD_TIME 2.67

#define DELAY_SOUND 0.25

#define CSW_THUNDERBOLT CSW_AWP
#define weapon_thunderbolt "weapon_awp"
#define old_event "events/awp.sc"
#define old_w_model "models/w_awp.mdl"
#define WEAPON_SECRETCODE 4234234

#define V_MODEL "models/v_sfsniper2.mdl"
#define P_MODEL "models/p_sfsniper.mdl"
#define W_MODEL "models/w_sfsniper.mdl"

new const WeaponSounds[5][] = 
{
    
"weapons/sfsniper-1.wav",
    
"weapons/sfsniper_insight1.wav",
    
"weapons/sfsniper_zoom.wav",
    
"weapons/sfsniper_idle.wav",
    
"weapons/sfsniper_draw.wav"
}

new const 
WeaponResources[4][] = 
{
    
"sprites/weapon_sfsniper.txt",
    
"sprites/640hud2_2.spr",
    
"sprites/640hud10_2.spr",
    
"sprites/640hud81_2.spr"
}

enum
{
    
TB_ANIM_IDLE 0,
    
TB_ANIM_SHOOT,
    
TB_ANIM_DRAW
}

// 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_Thunderboltg_Zoomedg_Aim_HudId
new Float:g_TargetOrigin[3], Float:CheckDelay[33]
new 
g_Msg_CurWeapong_Msg_AmmoX
new g_Beam_SprIdg_Smoke_SprIdg_HamBot_Registerg_Event_Thunderbolt

public plugin_init()
{
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_event("CurWeapon""Event_CurWeapon""be""1=1")
    
    
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"player""fw_TraceAttack_Player")
    
RegisterHam(Ham_TraceAttack"worldspawn""fw_TraceAttack_World")
    
    
RegisterHam(Ham_Item_AddToPlayerweapon_thunderbolt"fw_AddToPlayer_Post"1)
    
RegisterHam(Ham_Item_Deployweapon_thunderbolt"fw_Item_Deploy_Post"1)
    
    
g_Msg_CurWeapon get_user_msgid("CurWeapon")
    
g_Msg_AmmoX get_user_msgid("AmmoX")
    
    
g_Aim_HudId CreateHudSyncObj(8)
    
    
register_clcmd("admin_get_thunderbolt""get_thunderbolt"ADMIN_BAN)
    
register_clcmd("weapon_sfsniper""CLCMD_HookWeapon")
}

public 
plugin_precache()
{
    
precache_model(V_MODEL)
    
precache_model(P_MODEL)
    
precache_model(W_MODEL)
    
    for(new 
0sizeof(WeaponSounds); i++) 
        
engfunc(EngFunc_PrecacheSoundWeaponSounds[i])
    for(new 
0sizeof(WeaponResources); i++)
    {
        if(
== 0engfunc(EngFunc_PrecacheGenericWeaponResources[0])
        else 
engfunc(EngFunc_PrecacheModelWeaponResources[i])
    }
    
    
g_Beam_SprId =  engfunc(EngFunc_PrecacheModel"sprites/laserbeam.spr")
    
g_Smoke_SprId engfunc(EngFunc_PrecacheModel"sprites/wall_puff1.spr")
    
    
register_forward(FM_PrecacheEvent"fw_PrecacheEvent_Post"1)    
}

public 
client_putinserver(id)
{
    if(
is_user_bot(id) && !g_HamBot_Register)
    {
        
g_HamBot_Register 1
        set_task
(0.1"Do_RegisterHamBot"id)
    }
}

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

public 
fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal(old_eventname)) g_Event_Thunderbolt get_orig_retval()
}

public 
get_thunderbolt(id)
{
    if(!
is_user_alive(id))
        return
        
    
Set_BitVar(g_Had_Thunderboltid)
    
UnSet_BitVar(g_Zoomedid)
    
    
fm_give_item(idweapon_thunderbolt)
    
    static 
weapon_entweapon_ent fm_find_ent_by_owner(-1weapon_thunderboltid)
    if(
pev_valid(weapon_ent)) cs_set_weapon_ammo(weapon_ent1)
    
    
cs_set_user_bpammo(idCSW_THUNDERBOLTDEFAULT_AMMO)
}

public 
Event_CurWeapon(id)
{
    static 
CSWIDCSWID read_data(2)
    if(
CSWID != CSW_THUNDERBOLT || !Get_BitVar(g_Had_Thunderboltid))
        return
        
    if(
cs_get_user_zoom(id) > && !Get_BitVar(g_Zoomedid)) // Zoom
    
{
        
set_pev(idpev_viewmodel2"")
        
Set_BitVar(g_Zoomedid)
    } else { 
// Not Zoom
        
set_pev(idpev_viewmodel2V_MODEL)
        
UnSet_BitVar(g_Zoomedid)
    }
    
    
UpdateAmmo(id, -1cs_get_user_bpammo(idCSW_THUNDERBOLT))
}

public 
CLCMD_HookWeapon(id)
{
    
engclient_cmd(idweapon_thunderbolt)
    return
}

public 
fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED    
    
if(get_user_weapon(id) == CSW_THUNDERBOLT && Get_BitVar(g_Had_Thunderboltid))
        
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(
eventid != g_Event_Thunderbolt)
        return 
FMRES_IGNORED
    
if (!is_user_alive(invoker))
        return 
FMRES_IGNORED        
    
if(get_user_weapon(invoker) != CSW_THUNDERBOLT || !Get_BitVar(g_Had_Thunderboltinvoker))
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    
Thunderbolt_Shooting(invoker)

    return 
FMRES_SUPERCEDE
}

public 
fw_SetModel(entitymodel[])
{
    if(!
pev_valid(entity))
        return 
FMRES_IGNORED
    
    
static Classname[64]
    
pev(entitypev_classnameClassnamesizeof(Classname))
    
    if(!
equal(Classname"weaponbox"))
        return 
FMRES_IGNORED
    
    
static id
    id 
pev(entitypev_owner)
    
    if(
equal(modelold_w_model))
    {
        static 
weapon
        weapon 
fm_get_user_weapon_entity(entityCSW_THUNDERBOLT)
        
        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED
        
        
if(Get_BitVar(g_Had_Thunderboltid))
        {
            
UnSet_BitVar(g_Had_Thunderboltid)
            
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE)
            
set_pev(weaponpev_iuser4cs_get_user_bpammo(idCSW_THUNDERBOLT))
            
            
engfunc(EngFunc_SetModelentityW_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
fw_CmdStart(idUcHandleSeed)
{
    if(!
is_user_alive(id))
        return
    if(
get_user_weapon(id) != CSW_THUNDERBOLT || !Get_BitVar(g_Had_Thunderboltid))
        return
    if(
cs_get_user_zoom(id) <= 1)
        return
    
    if(
get_gametime() - DELAY_SOUND CheckDelay[id])
    {
        static 
BodyTarget
        get_user_aiming
(idTargetBody99999)
        
        if(
is_user_alive(Target))
        {
            
emit_sound(idCHAN_WEAPONWeaponSounds[1], VOL_NORMATTN_NORM0PITCH_NORM)
            
            
set_hudmessage(25000, -1.0, -1.000.10.1)
            
ShowSyncHudMsg(idg_Aim_HudId"+")
        }
        
        
CheckDelay[id] = get_gametime()
    }
}

public 
Thunderbolt_Shooting(id)
{
    
set_weapon_anim(idTB_ANIM_SHOOT)
    
emit_sound(idCHAN_WEAPONWeaponSounds[0], VOL_NORMATTN_NORM0PITCH_NORM)
    
    static 
AmmoAmmo cs_get_user_bpammo(idCSW_THUNDERBOLT)
    
    
Ammo--
    
UpdateAmmo(id, -1Ammo)
    
    if(
Ammo <= 0)
    {
        static 
EntEnt fm_get_user_weapon_entity(idCSW_THUNDERBOLT)
        if(
pev_valid(Ent)) cs_set_weapon_ammo(Ent0)
        
        
cs_set_user_bpammo(idCSW_THUNDERBOLT0)
    }

    
Create_Laser(idg_TargetOrigin)
    
    
// Fixed Shell Eject
    
set_pdata_float(id11199999999.05)

    
// Next Attack
    
Set_Player_NextAttack(idCSW_THUNDERBOLTRELOAD_TIME)
}

public 
Create_Laser(idFloat:End[3])
{
    static 
Float:Start[3]
    
Stock_Get_Postion(id50.05.0, -5.0Start)
    
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMPOINTS)
    
engfunc(EngFunc_WriteCoordStart[0])
    
engfunc(EngFunc_WriteCoordStart[1])
    
engfunc(EngFunc_WriteCoordStart[2])
    
engfunc(EngFunc_WriteCoordEnd[0])
    
engfunc(EngFunc_WriteCoordEnd[1])
    
engfunc(EngFunc_WriteCoordEnd[2])
    
write_short(g_Beam_SprId)
    
write_byte(0)
    
write_byte(0)
    
write_byte(10)
    
write_byte(25)
    
write_byte(0)
    
write_byte(0)
    
write_byte(0)
    
write_byte(200)
    
write_byte(200)
    
write_byte(0)
    
message_end()    
}

public 
fw_AddToPlayer_Post(entid)
{
    if(
pev(entpev_impulse) == WEAPON_SECRETCODE)
    {
        
Set_BitVar(g_Had_Thunderboltid)
        
cs_set_user_bpammo(idCSW_THUNDERBOLTpev(entpev_iuser4))
        
        
set_pev(entpev_impulse0)
    }            
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("WeaponList"), _id)
    
write_string((Get_BitVar(g_Had_Thunderboltid) ? "weapon_sfsniper" "weapon_awp"))
    
write_byte(1)
    
write_byte(30)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(2)
    
write_byte(CSW_THUNDERBOLT)
    
write_byte(0)
    
message_end()
}

public 
fw_TraceAttack_Player(entattackerFloat:DamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(attacker) != CSW_THUNDERBOLT || !Get_BitVar(g_Had_Thunderboltattacker))
        return 
HAM_IGNORED

    get_tr2
(ptrTR_vecEndPosg_TargetOrigin)
    
SetHamParamFloat(3float(DAMAGE))
    
    return 
HAM_HANDLED
}

public 
fw_TraceAttack_World(entattackerFloat:DamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_alive(attacker))
        return 
HAM_IGNORED    
    
if(get_user_weapon(attacker) != CSW_THUNDERBOLT || !Get_BitVar(g_Had_Thunderboltattacker))
        return 
HAM_IGNORED

    get_tr2
(ptrTR_vecEndPosg_TargetOrigin)
    
Make_WorldHitEffect(attackerptr)
    
    
SetHamParamFloat(3float(DAMAGE))

    return 
HAM_HANDLED
}

public 
fw_Item_Deploy_Post(Ent)
{
    if(!
pev_valid(Ent))
        return
        
    static 
IdId get_pdata_cbase(Ent414)
    if(!
Get_BitVar(g_Had_ThunderboltId))
        return
        
    
UnSet_BitVar(g_ZoomedId)
        
    
set_pev(Idpev_viewmodel2V_MODEL)
    
set_pev(Idpev_weaponmodel2P_MODEL)    
        
    
set_weapon_anim(IdTB_ANIM_DRAW)
}

public 
UpdateAmmo(IdAmmoBpAmmo)
{
    static 
weapon_entweapon_ent fm_get_user_weapon_entity(IdCSW_THUNDERBOLT)
    if(
pev_valid(weapon_ent))
    {
        if(
BpAmmo 0cs_set_weapon_ammo(weapon_ent1)
        else 
cs_set_weapon_ammo(weapon_ent0)
    }
    
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEg_Msg_CurWeapon, {000}, Id)
    
write_byte(1)
    
write_byte(CSW_THUNDERBOLT)
    
write_byte(-1)
    
message_end()
    
    
message_begin(MSG_ONE_UNRELIABLEg_Msg_AmmoX_Id)
    
write_byte(1)
    
write_byte(BpAmmo)
    
message_end()
    
    
cs_set_user_bpammo(IdCSW_THUNDERBOLTBpAmmo)
}

public 
Make_WorldHitEffect(idTrResult)
{
    
// Handle First
    
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
    
    
// Make Spark
    
for(new 03i++)
    {
        
engfunc(EngFunc_MessageBeginMSG_PASSVC_TEMPENTITYvecEnd0)
        
write_byte(TE_SPARKS)
        
engfunc(EngFunc_WriteCoordvecEnd[0])
        
engfunc(EngFunc_WriteCoordvecEnd[1])
        
engfunc(EngFunc_WriteCoordvecEnd[2] - 10.0)
        
message_end()
    }
    
    
// Make Smoke
    
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_Smoke_SprId)
    
write_byte(2)
    
write_byte(50)
    
write_byte(TE_FLAG)
    
message_end()    
}

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

stock Stock_Get_Postion(id,Float:forw,Float:rightFloat:up,Float: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


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 Set_Player_NextAttack(idCSWIDFloat:NextTime)
{
    static 
EntEnt fm_get_user_weapon_entity(idCSWID)
    if(!
pev_valid(Ent)) return
    
    
set_pdata_float(id83NextTime5)
    
    
set_pdata_float(Ent46 NextTime4)
    
set_pdata_float(Ent47NextTime4)
    
set_pdata_float(Ent48NextTime4)




All times are GMT -4. The time now is 23:24.

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