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

Buymenu (zone) without models


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 05-22-2019 , 09:36   Buymenu (zone) without models
Reply With Quote #1

I have a code that replaces MODEL to a particular weapon The problem is that once I buy from the B menu the particular weapon that brings me the Skin How can I do that it will bring without MODEL?

editing:
Why do I buy weapons at buymenu, I get it as models?

Last edited by Fuck For Fun; 05-23-2019 at 16:18.
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun
HamletEagle
AMX Mod X Plugin Approver
Join Date: Sep 2013
Location: Romania
Old 05-22-2019 , 10:15   Re: Loading model in SERVER
Reply With Quote #2

Simply store if the player should receive a custom model or default model in a global array(like HasCustomModel[33]).
__________________

Last edited by HamletEagle; 05-22-2019 at 10:15.
HamletEagle is offline
Fuck For Fun
Veteran Member
Join Date: Nov 2013
Old 05-22-2019 , 11:11   Re: Loading model in SERVER
Reply With Quote #3

Quote:
Originally Posted by HamletEagle View Post
Simply store if the player should receive a custom model or default model in a global array(like HasCustomModel[33]).
I've picked up a certain menu of X WEAPONS with external ZP WEAPONS, Why do I buy weapons at buymenu, I get it as models?

First Code hope you can show example:
PHP Code:

// START TO CREATE PLUGINS || AMXMODX FORWARD
public plugin_init()
{
    
formatex(weapon_name_buffersizeof(weapon_name_buffer), "weapon_%s_asep"system_name)
    
formatex(weapon_base_buffersizeof(weapon_base_buffer), "weapon_%s"system_base)
    
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
// Event And Message
    
register_event("CurWeapon""Forward_CurrentWeapon""be""1=1")
    
register_message(get_user_msgid("DeathMsg"), "Forward_DeathMsg")
    
    
// Ham Forward (Entity) || Ham_Use
    
RegisterHam(Ham_Use"func_tank""Forward_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankmortar""Forward_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tankrocket""Forward_UseStationary_Post"1)
    
RegisterHam(Ham_Use"func_tanklaser""Forward_UseStationary_Post"1)
    
    
// Ham Forward (Entity) || Ham_TraceAttack
    
RegisterHam(Ham_TraceAttack"player""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"worldspawn""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_wall""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_breakable""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_door""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_door_rotating""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_rotating""Forward_TraceAttack")
    
RegisterHam(Ham_TraceAttack"func_plat""Forward_TraceAttack")
    
    
// Ham Forward (Weapon)
    
RegisterHam(Ham_Item_PostFrameweapon_base_buffer"Weapon_ItemPostFrame")
    
RegisterHam(Ham_Item_AddToPlayerweapon_base_buffer"Weapon_AddToPlayer")
    
    for(new 
1sizeof WEAPONENTNAMESi++)
        if(
WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_DeployWEAPONENTNAMES[i], "Weapon_Deploy_Post"1)
    
    
// Fakemeta Forward
    
register_forward(FM_CmdStart"Forward_CommandStart")
    
register_forward(FM_SetModel"Forward_SetModel")
    
register_forward(FM_PlaybackEvent"Forward_PlaybackEvent")
    
register_forward(FM_UpdateClientData"Forward_UpdateClientData_Post"1)
    
register_clcmd("say /woiqgtaspbomzxbnn1""give_item")
    
    
// All Some Cvar
    
cvar_clip register_cvar("railgun_clip""20")
    
cvar_dmg register_cvar("railgun_damage""75")
    
    
g_MaxPlayers get_maxplayers()
    
    
    
////////////////////
    
register_event("HLTV""OnNewRound""a""1=0""2=0")
    
register_logevent("OnRoundEnd"2"1=Round_End")

    
RegisterHam(Ham_Killed"player""OnPlayerKilled")
    
RegisterHam(Ham_Player_Jump"player""OnPlayerJump")
    
RegisterHam(Ham_Weapon_SecondaryAttack"weapon_knife""OnKnifeSecAtkPost"1)
    
//RegisterHam(Ham_Item_Deploy, "weapon_knife", "OnKnifeDeployPost", 1)
    
register_event("CurWeapon""check_models""be")

    
register_forward(FM_PlayerPreThink"OnPlayerPreThink")
    
register_forward(FM_Touch"OnTouch")

    
CvarMaxFuel register_cvar("jp_maxfuel""250.0")
    
CvarRadius register_cvar("jp_radius""250.0")
    
CvarDamage register_cvar("jp_damage""800.0")
    
CvarSpeed register_cvar("jp_speed""300")
    
CvarCooldown register_cvar("jp_cooldown""10.0")
    
CvarRegen register_cvar("jp_regen""0.5")
    
CvarRocketSpeed register_cvar("jp_rocket_speed""1500")
    
CvarCount register_cvar("jp_count""3")

    
iMaxClients get_maxplayers()
    
MsgSayText get_user_msgid("SayText")
    
//ItemJetPack = zp_register_extra_item("Jetpack", 35, ZP_TEAM_HUMAN)
    
    
register_clcmd("drop""CmdDropJP")
}

public 
plugin_precache()
{
    
formatex(weapon_name_buffersizeof(weapon_name_buffer), "weapon_%s_asep"system_name)
    
formatex(weapon_base_buffersizeof(weapon_base_buffer), "weapon_%s"system_base)
    
    
precache_model(V_MODEL)
    
precache_model(P_MODEL)
    
precache_model(W_MODEL)
    
    new 
Buffer[512]
    
formatex(Buffersizeof(Buffer), "sprites/%s.txt"weapon_name_buffer)
    
precache_generic(Buffer)
    
    for(new 
0sizeof Fire_Soundsi++)
        
precache_sound(Fire_Sounds[i])
    for(new 
0sizeof WeaponResourcesi++)
        
precache_model(WeaponResources[i])
    
    
precache_viewmodel_sound(V_MODEL)
    
formatex(Buffersizeof(Buffer), "get_%s"system_name)
    
register_clcmd(Buffer"give_item")

    
register_clcmd(weapon_name_buffer"weapon_hook")
    
register_clcmd("check_ammo""check_ammo")
    
    
register_forward(FM_PrecacheEvent"Forward_PrecacheEvent_Post"1)
    
Trail precache_model("sprites/laserbeam.spr")
    
        
precache_sound(SoundPickup)
    
precache_sound(SoundShoot)
    
precache_sound(SoundTravel)
    
precache_sound(SoundFly)
    
precache_sound(SoundBlow)

    
SprExp precache_model("sprites/zerogxplode.spr")
    
SprTrail precache_model("sprites/smoke.spr")

    
#if defined DrawFlame
    
SprFlame precache_model("sprites/xfireball3.spr")
    
#endif

    #if defined DrawRing
    
SprRing precache_model("sprites/shockwave.spr")
    
#endif

    
precache_model(ModelVJetPack)
    
precache_model(ModelPJetPack)
    
precache_model(ModelRocket)
}

public 
plugin_natives()
{
    new 
Buffer[512]
    
formatex(Buffersizeof(Buffer), "get_%s"system_name)
    
register_native(Buffer"give_item"1)
    
formatex(Buffersizeof(Buffer), "remove_%s"system_name)
    
register_native(Buffer"remove_item"1)
}

// Register Extra Items For ZP
public zp_extra_item_selected(iditem)
{
    if(
item != g_item)
    return
    
give_item(id)
}
public 
zp_extra_item_selected1(iditem)
{
    if(
item == ItemJetPack)

    {
        if(
bHasJetPack[id])
        {
            
zp_colored_print(id"^x04[ZP]^x01 You already have this item!")
            return 
ZP_PLUGIN_HANDLED;
        }
        else if(
bHasJetPack[id])
        {
            
zp_colored_print(id"^x04[ZP]^x01 Sorry, but maximum JetPack's reached!")
            return 
ZP_PLUGIN_HANDLED;
        }
        else
        {
            
bHasJetPack[id] = true
            
//zp_colored_print(id, "^x04[ZP]^x01 JetPack usage:^x04 JUMP+DUCK^x01 -- fly |^x04 SECATTACK^x01 -- shoot rocket.")
            
engclient_cmd(id"weapon_knife")
            
ReplaceModel(id)
        }
    }

    return 
1;
}
// Reset Bitvar (Fix Bug) If You Connect Or Disconnect Server
public client_connect(idremove_item(id)
public 
zp_user_infected_post(idremove_item(id)
public 
zp_user_humanized_post(idremove_item(id)
/* ========= START OF REGISTER HAM TO SUPPORT BOTS FUNC ========= */
new g_HamBot
public client_putinserver(id)
{
    if(!
g_HamBot && is_user_bot(id))
    {
        
g_HamBot 1
        ResetValues
(id)
        
set_task(0.1"Do_RegisterHam"id)
    }
}
public 
client_disconnect(id)
{
    
ResetValues(id)
    
remove_item(id)
}


public 
Do_RegisterHam(id)
{
    
RegisterHamFromEntity(Ham_TraceAttackid"Forward_TraceAttack")
}

/* ======== END OF REGISTER HAM TO SUPPORT BOTS FUNC ============= */
/* ============ START OF ALL FORWARD (FAKEMETA) ================== */
public Forward_CommandStart(iduc_handleseed)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    if(
get_user_weapon(id) != CSW_BASE || !g_has_weapon[id])
        return
    
    if(!
g_Ammo[id])
    {
        if(
pev(idpev_button) & IN_ATTACK)
        {
            if(
get_pdata_float(id835) > 0.0)
                return
                
            
emit_sound(idCHAN_WEAPONFire_Sounds[2], 1.0ATTN_NORM0PITCH_NORM)
            
set_weapons_timeidle(idCSW_BASE0.5)
            
set_player_nextattackx(id0.5)
        }
    }
    
    if(
g_Ammo[id])
    {
        if(
pev(idpev_button) & IN_ATTACK2)
        {
            if(
get_pdata_float(id835) > 0.0)
                return
                
            switch(
g_charge_mode[id])
            {
                case 
UNCHARGED:
                {
                    
set_weapon_anim(idANIM_CHARGE)
                    
g_charge_mode[id] = CHARGING
                    set_pdata_float
(id832.55)
                }
                case 
CHARGING:
                {
                    
set_weapon_anim(idANIM_CHARGE_FINISH)
                    
g_charge_mode[id] = CHARGED
                    set_pdata_float
(id830.665)
                }
                case 
CHARGED:
                {
                    
set_weapon_anim(idANIM_IDLE_CHARGED)
                    
set_pdata_float(id83100.05)
                }
            }
        }
        else
        {
            if(
pev(idpev_oldbuttons) & IN_ATTACK2)
            {
                if(
g_charge_mode[id] >= CHARGING)
                    
Do_Shoot(idg_charge_mode[id])
            }
        }
    }
}

public 
Forward_PrecacheEvent_Post(type, const name[])
{
    new 
Buffer[512]
    
formatex(Buffersizeof(Buffer), "events/%s.sc"system_base)
    if(
equal(Buffername0))
    {
        
g_orig_event get_orig_retval()
        return 
FMRES_HANDLED
    
}
    return 
FMRES_IGNORED
}

public 
Forward_SetModel(entitymodel[])
{
    if( !( 
get_user_flagsentity ) & ADMIN_LEVEL_G ) )
    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(modelOLD_MODEL))
    {
        static 
iStoredAugID
        iStoredAugID 
find_ent_by_owner(ENG_NULLENTweapon_base_bufferentity)
            
        if(!
is_valid_ent(iStoredAugID))
            return 
FMRES_IGNORED

        
if(g_has_weapon[iOwner])
        {
            
entity_set_int(iStoredAugIDEV_INT_WEAPONKEYWEAPON_KEY)
            
            
g_has_weapon[iOwner] = false
            set_pev
(iStoredAugIDpev_iuser1g_Ammo[iOwner])
            
            
entity_set_model(entityW_MODEL)
            
            return 
FMRES_SUPERCEDE
        
}
    }
    return 
FMRES_IGNORED
}

public 
Forward_UseStationary_Post(entitycalleractivatoruse_type)
{
    if(!
use_type && is_user_connected(caller))
        
replace_weapon_models(callerget_user_weapon(caller))
}

public 
Forward_UpdateClientData_Post(PlayerSendWeaponsCD_Handle)
{
    if(!
is_user_alive(Player) || (get_user_weapon(Player) != CSW_BASE || !g_has_weapon[Player]))
        return 
FMRES_IGNORED
    
    set_cd
(CD_HandleCD_flNextAttackhalflife_time () + 0.001)
    return 
FMRES_HANDLED
}

public 
Forward_PlaybackEvent(flagsinvokereventidFloat:delayFloat:origin[3], Float:angles[3], Float:fparam1Float:fparam2iParam1iParam2bParam1bParam2)
{
    if((
eventid != g_orig_event))
        return 
FMRES_IGNORED
    
if(!(<= invoker <= g_MaxPlayers))
        return 
FMRES_IGNORED

    playback_event
(flags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2)
    return 
FMRES_SUPERCEDE
}

/* ================= END OF ALL FAKEMETA FORWARD ================= */
/* ================= START OF ALL MESSAGE FORWARD ================ */
public Forward_DeathMsg(msg_idmsg_destid)
{
    static 
szTruncatedWeapon[33], iAttackeriVictim
    get_msg_arg_string
(4szTruncatedWeaponcharsmax(szTruncatedWeapon))
    
    
iAttacker get_msg_arg_int(1)
    
iVictim get_msg_arg_int(2)
    
    if(!
is_user_connected(iAttacker) || iAttacker == iVictim)
        return 
PLUGIN_CONTINUE
    
    
if(equal(szTruncatedWeaponsystem_base) && get_user_weapon(iAttacker) == CSW_BASE)
    {
        if(
g_has_weapon[iAttacker])
            
set_msg_arg_string(4system_name)
    }
    return 
PLUGIN_CONTINUE
}
/* ================== END OF ALL MESSAGE FORWARD ================ */
/* ================== START OF ALL EVENT FORWARD ================ */
public Forward_CurrentWeapon(id)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    if(!
g_has_weapon[id])
        return
        
    
replace_weapon_models(idread_data(2))
}
/* ================== END OF ALL EVENT FORWARD =================== */
/* ================== START OF ALL HAM FORWARD =================== */
public Forward_TraceAttack(iEntiAttackerFloat:flDamageFloat:fDir[3], ptriDamageType)
{
    if(!
is_user_connected(iAttacker))
        return
    if(
get_user_weapon(iAttacker) != CSW_BASE || !g_has_weapon[iAttacker])
        return
        
    static 
Float:WallVector[3], iHitgroup
    get_tr2
(ptrTR_vecEndPosTargetOrigin[iAttacker])
    
get_tr2(ptrTR_vecPlaneNormalWallVector)
        
    if(
iEnt)
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_DECAL)
        
write_coord_f(TargetOrigin[iAttacker][0])
        
write_coord_f(TargetOrigin[iAttacker][1])
        
write_coord_f(TargetOrigin[iAttacker][2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
write_short(iEnt)
        
message_end()
    }
    else
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_WORLDDECAL)
        
write_coord_f(TargetOrigin[iAttacker][0])
        
write_coord_f(TargetOrigin[iAttacker][1])
        
write_coord_f(TargetOrigin[iAttacker][2])
        
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
        
message_end()
    }
        
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_STREAK_SPLASH)
    
engfunc(EngFunc_WriteCoordTargetOrigin[iAttacker][0])
    
engfunc(EngFunc_WriteCoordTargetOrigin[iAttacker][1])
    
engfunc(EngFunc_WriteCoordTargetOrigin[iAttacker][2])
    
engfunc(EngFunc_WriteCoordWallVector[0] * random_float(25.030.0))
    
engfunc(EngFunc_WriteCoordWallVector[1] * random_float(25.030.0))
    
engfunc(EngFunc_WriteCoordWallVector[2] * random_float(25.030.0))
    
write_byte(5)
    
write_short(50)
    
write_short(3)
    
write_short(90)    
    
message_end()
            
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_GUNSHOTDECAL)
    
write_coord_f(TargetOrigin[iAttacker][0])
    
write_coord_f(TargetOrigin[iAttacker][1])
    
write_coord_f(TargetOrigin[iAttacker][2])
    
write_short(iAttacker)
    
write_byte(GUNSHOT_DECALS[random_num (0sizeof GUNSHOT_DECALS -1)])
    
message_end()
    
    
get_tr2(ptrTR_iHitgroupiHitgroup)
    
    new 
Float:MultifDamageFloat:MultiChargeDamageFloat:NewDamage
    
switch(iHitgroup)
    {
        case 
HIT_HEADMultifDamage  2.0
        
case HIT_STOMACHMultifDamage  1.25
        
case HIT_LEFTLEGMultifDamage  0.75
        
case HIT_RIGHTLEGMultifDamage  0.75
        
default: MultifDamage  1.0
    
}
    
    switch(
g_charge_mode[iAttacker])
    {
        case 
UNCHARGEDMultiChargeDamage  1.0
        
case CHARGINGMultiChargeDamage  1.25
        
case CHARGEDMultiChargeDamage  2.0
    
}
    
    
NewDamage = (float(get_pcvar_num(cvar_dmg)) * MultiChargeDamage) * MultifDamage
    SetHamParamFloat
(3NewDamage)
}

public 
Weapon_Deploy_Post(weapon_entity)
{
    static 
owner
    owner 
fm_cs_get_weapon_ent_owner(weapon_entity)
    
    static 
weaponid
    weaponid 
cs_get_weapon_id(weapon_entity)
    
    
replace_weapon_models(ownerweaponid)
}

public 
Weapon_AddToPlayer(weapon_entityid)
{
    if(!
is_valid_ent(weapon_entity) || !is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(entity_get_int(weapon_entityEV_INT_WEAPONKEY) == WEAPON_KEY)
    {
        
g_has_weapon[id] = true
        g_Ammo
[id] = pev(weapon_entitypev_iuser1)
        
        
set_weapon_list(id1)
        
entity_set_int(weapon_entityEV_INT_WEAPONKEY0)
        
        return 
HAM_HANDLED
    
}
    else
    {
        
set_weapon_list(id0)
    }
    
    return 
HAM_IGNORED
}

public 
Weapon_ItemPostFrame(weapon_entity
{
    if(!
pev_valid(weapon_entity))
        return
        
    new 
id fm_cs_get_weapon_ent_owner(weapon_entity)
    
    if(!
is_user_connected(id))
        return
    if(!
g_has_weapon[id])
        return
            
    if(
g_Ammo[id] && get_pdata_float(id835) <= 0.0 && get_pdata_float(weapon_entity464) <= 0.0 ||
    
get_pdata_float(weapon_entity474) <= 0.0 || get_pdata_float(weapon_entity484) <= 0.0)
    {
        if(
pev(idpev_button) & IN_ATTACK && !g_charge_mode[id])
            
Do_Shoot(idg_charge_mode[id])
    }
}

/* ===================== END OF ALL HAM FORWARD ====================== */
/* ================= START OF OTHER PUBLIC FUNCTION  ================= */
public give_item(id)
{
    if( !( 
get_user_flagsid ) & ADMIN_LEVEL_G ) )
    
drop_weapons(id1)
    new 
iWeapon fm_give_item(idweapon_base_buffer)
    if(
iWeapon 0)
    {
        
g_Ammo[id] = get_pcvar_num(cvar_clip)
        
emit_sound(idCHAN_ITEM"items/gunpickup2.wav"VOL_NORMATTN_NORM0PITCH_NORM)
        
        
set_weapon_anim(idANIM_DRAW)
        
set_pdata_float(id83DRAW_TIME5)
        
        
set_weapon_list(id1)
        
set_pdata_string(id, (492) * 4ANIMEXT, -20)
    }
    
    
g_has_weapon[id] = true
    g_charge_mode
[id] = UNCHARGED
    
return 1;
}

public 
remove_item(id)
{
    
g_has_weapon[id] = false
    g_charge_mode
[id] = UNCHARGED
}

public 
weapon_hook(id)
{
    
engclient_cmd(idweapon_base_buffer)
    return 
PLUGIN_HANDLED
}

public 
replace_weapon_models(idweaponid)
{
    switch(
weaponid)
    {
        case 
CSW_BASE:
        {
            if(
g_has_weapon[id])
            {
                
g_charge_mode[id] = UNCHARGED
                
                set_pev
(idpev_viewmodel2V_MODEL)
                
set_pev(idpev_weaponmodel2P_MODEL)
                
                if(
oldweap[id] != CSW_BASE
                {
                    
set_weapon_anim(idANIM_DRAW)
                    
set_player_nextattackx(idDRAW_TIME)
                    
set_weapons_timeidle(idCSW_BASEDRAW_TIME)
                    
set_weapon_list(id1)
                    
set_pdata_string(id, (492) * 4ANIMEXT, -20)
                }
            }
        }
    }
    
    
oldweap[id] = weaponid
}

public 
Do_Shoot(idmode)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
    
    static 
weapon_ent
    weapon_ent 
fm_find_ent_by_owner(-1weapon_base_bufferid)
    
    if(!
pev_valid(weapon_ent))
        return
    if(!
g_Ammo[id])
    {
        
emit_sound(idCHAN_WEAPONFire_Sounds[2], 1.0ATTN_NORM0PITCH_NORM)
        
set_weapons_timeidle(idCSW_BASE0.5)
        
set_player_nextattackx(id0.5)
        
        return
    }
    
    
ExecuteHamB(Ham_Weapon_PrimaryAttackweapon_ent)
    
    
g_Ammo[id] --
    
set_weapon_list(id1)
    
    static 
Float:PunchAngles[3]
    
PunchAngles[0] = random_float(-2.02.0)
    
PunchAngles[1] = random_float(-2.02.0)
    
PunchAngles[2] = random_float(-2.02.0)
    
set_pev(idpev_punchanglePunchAngles)
    
    
set_weapon_anim(idmode)
    
emit_sound(idCHAN_WEAPONFire_Sounds[g_charge_mode[id] < 1], 1.0ATTN_NORM0PITCH_NORM)
    
    static 
Float:StartOrigin[3]
    
get_cvar_num("cl_righthand") ? get_position(id40.06.0, -7.0StartOrigin) : get_position(id40.0, -6.0, -7.0StartOrigin)
    
    if(
g_charge_mode[id] < 2)
    {
        
create_beampoints(StartOriginTargetOrigin[id], Trail00120025525502550)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00220022522502250)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00320020020002000)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00420017517501750)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00520015015001500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00620012512501250)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00720010010001000)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00820075750750)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00920050500500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail001020025250250)

    }
    else
    {
        
create_beampoints(StartOriginTargetOrigin[id], Trail001200255002550)
        
create_beampoints(StartOriginTargetOrigin[id], Trail002200225002250)
        
create_beampoints(StartOriginTargetOrigin[id], Trail003200200002000)
        
create_beampoints(StartOriginTargetOrigin[id], Trail004200175001750)
        
create_beampoints(StartOriginTargetOrigin[id], Trail005200150001500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail006200125001250)
        
create_beampoints(StartOriginTargetOrigin[id], Trail007200100001000)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0082007500750)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0092005000500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail00102002500250)
        
        
create_beampoints(StartOriginTargetOrigin[id], Trail0012002552552551750)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0022002252252251500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0032002002002001300)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0042001751751751100)
        
create_beampoints(StartOriginTargetOrigin[id], Trail005200150150150900)
        
create_beampoints(StartOriginTargetOrigin[id], Trail006200125125125700)
        
create_beampoints(StartOriginTargetOrigin[id], Trail007200100100100500)
        
create_beampoints(StartOriginTargetOrigin[id], Trail008200757575400)
        
create_beampoints(StartOriginTargetOrigin[id], Trail009200505050200)
        
create_beampoints(StartOriginTargetOrigin[id], Trail0010200252525100)
    }
    
    
set_weapons_timeidle(idCSW_BASE2.75)
    
set_player_nextattackx(id2.75)
            
    
g_charge_mode[id] = UNCHARGED
}

public 
check_ammo(id)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return
        
    
client_print(idprint_chat"Ammo: %i"g_Ammo[id])
}
public 
plugin_cfg()
{
    
iAllocInfoTarget engfunc(EngFunc_AllocString"info_target")
}

public 
OnNewRound()
{
    
RemoveAllJetPack()
    
CMaxFuel get_pcvar_float(CvarMaxFuel)
    
CRadius get_pcvar_float(CvarRadius)
    
CDamage get_pcvar_float(CvarDamage)
    
CSpeed get_pcvar_num(CvarSpeed)
    
CCooldown get_pcvar_float(CvarCooldown)
    
CRegen get_pcvar_float(CvarRegen)
    
CRocketSpeed get_pcvar_num(CvarRocketSpeed)
    
CCount get_pcvar_num(CvarCount)
}

public 
OnRoundEnd()
{
    
RemoveAllJetPack()
}

public 
OnPlayerKilled(id)
{
    if(
bHasJetPack[id]) DropJetPack(id);

    
ResetValues(id)
}

public 
OnPlayerJump(id)
{
    if(
bHasJetPack[id] && fJetpackFuel[id] > 0.0 && get_user_weapon(id) == CSW_KNIFE && pev(idpev_button) & IN_DUCK && ~pev(idpev_flags) & FL_ONGROUND)
    {
        static 
Float:vVelocity[3], Float:upSpeed
        pev
(idpev_velocityvVelocity)
        
upSpeed vVelocity[2] + 35.0
        velocity_by_aim
(idCSpeedvVelocity)
        
vVelocity[2] = upSpeed 300.0 300.0 upSpeed
        set_pev
(idpev_velocityvVelocity)

        
#if defined DrawFlame
        
pev(idpev_originvVelocity)
        
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYvVelocity0)
        
write_byte(TE_SPRITE)
        
engfunc(EngFunc_WriteCoordvVelocity[0])
        
engfunc(EngFunc_WriteCoordvVelocity[1])
        
engfunc(EngFunc_WriteCoordvVelocity[2])
        
write_short(SprFlame)
        
write_byte(8)
        
write_byte(128)
        
message_end()
        
#endif

        #if defined DrawTrail
        
message_begin (MSG_BROADCAST,SVC_TEMPENTITY)
        
write_byte (TE_BEAMFOLLOW)
        
write_short (id)
        
write_short (SprTrail)
        
write_byte (TRAIL_LIFE)
        
write_byte (TRAIL_WIDTH)
        
write_byte (TRAIL_RED)
        
write_byte (TRAIL_GREEN)
        
write_byte (TRAIL_BLUE)
        
write_byte (TRAIL_BRIGTHNESS)
        
message_end()
        
#endif

        
fJetpackFuel[id] > 80.0 emit_sound(idCHAN_STREAMSoundFlyVOL_NORMATTN_NORM0,  PITCH_NORM) : emit_sound(idCHAN_STREAMSoundBlowVOL_NORMATTN_NORM0PITCH_NORM);
        
fJetpackFuel[id] -= 1.0
    
}
}

public 
zp_user_infected_pre(id)
{
    if(
bHasJetPack[id]) DropJetPack(id);

    
ResetValues(id)
}

jet_count()
{
    new 
icount 0;
    
    for(
133i++)
    {
        if(
bHasJetPack[i])
        {
            
count++;
        }
    }
    return 
count;
}

public 
OnKnifeSecAtkPost(ent2)
{
    if(
pev_valid(ent2) == 2)
    {
        static 
idFloat:ctime
        id 
get_pdata_cbase(ent2414)
        
ctime get_gametime()
        if(
is_user_alive(id) && bHasJetPack[id] && fLastShoot[id] < ctime)
        {
            new 
ent engfunc(EngFunc_CreateNamedEntityiAllocInfoTarget)
            if(
ent)
            {
                
engfunc(EngFunc_SetModelentModelRocket)
                
engfunc(EngFunc_SetSizeentFloat:{0.00.00.0}, Float:{0.00.00.0})
                new 
Float:fOrigin[3]
                
pev(idpev_originfOrigin)
                
fOrigin[2] += 16.0
                engfunc
(EngFunc_SetOriginentfOrigin)
                
set_pev(entpev_classnameClassnameRocket)
                
set_pev(entpev_dmg100.0)
                
set_pev(entpev_ownerid)
                
velocity_by_aim(idCRocketSpeedfOrigin)
                
set_pev(entpev_velocityfOrigin)
                new 
Float:vecAngles[3]
                
engfunc(EngFunc_VecToAnglesfOriginvecAngles)
                
set_pev(entpev_anglesvecAngles)
                
set_pev(entPevEntTypeEntTypeRocket)    
                
set_pev(entpev_movetypeMOVETYPE_FLY)
                
set_pev(entpev_effectsEF_LIGHT)
                
set_pev(entpev_solidSOLID_BBOX)

                
emit_sound(idCHAN_STATICSoundShootVOL_NORMATTN_NORM0PITCH_NORM)
                
emit_sound(entCHAN_WEAPONSoundTravelVOL_NORMATTN_NORM0PITCH_NORM)

                
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
                
write_byte(TE_BEAMFOLLOW)
                
write_short(ent)
                
write_short(SprTrail)
                
write_byte(40)
                
write_byte(5)
                
write_byte(224)
                
write_byte(224)
                
write_byte(255)
                
write_byte(192)
                
message_end()

                
//set_pdata_float(ent2, 46, CCooldown, 4)
                //set_pdata_float(ent2, 47, CCooldown, 4)
                //set_pdata_float(ent2, 48, CCooldown, 4)
                
set_pdata_float(id83CCooldown5)
                
fLastShoot[id] = ctime+CCooldown
            
}
            else
            {
                
client_print(idprint_chat"[JpDebug] Failed to create rocket!")
                
fLastShoot[id] = ctime+1.5
            
}
        }
    }
}

public 
check_models(id
{
    
//if (zp_get_user_zombie(id))
    
{
        return 
FMRES_IGNORED
    
}
    if(
bHasJetPack[id]) 
    {
        new 
clip,ammo
        
new wpnid get_user_weapon(id,clip,ammo)
        
        if ( 
wpnid == CSW_KNIFE 
        {
            
ReplaceModel(id)
        }
        return 
PLUGIN_CONTINUE
    
}
    return 
PLUGIN_CONTINUE
}

/*
public OnKnifeDeployPost(ent)
{
    if(pev_valid(ent) == 2)
    {
    static id; id = get_pdata_cbase(ent, 41, 4)
    //if(is_user_alive(id) && bHasJetPack[id]) ReplaceModel(id);
    if(!is_user_alive(id)) return;
    //if(bHasJetPack[id]) ReplaceModel(id);
    if(bHasJetPack[id])
    {
        new clip,ammo
        new wpnid = get_user_weapon(id,clip,ammo)
        
        if ( wpnid == CSW_KNIFE ) 
        {
         ReplaceModel(id)
        }
    }
    }
}
*/

public OnPlayerPreThink(id)
{
    if(
bHasJetPack[id] && fJetpackFuel[id] < CMaxFuel)
    {
        static 
buttonbutton pev(idpev_button)
        if(!(
button IN_DUCK) && !(button IN_JUMP)) fJetpackFuel[id] += CRegen;
    }
}

public 
OnTouch(entid)
{
    if(
pev_valid(ent))
    {
        if(
pev(entPevEntType) == EntTypeJetPack)
        {
        
//    if(IsPlayer(id) && is_user_alive(id) && !zp_get_user_zombie(id) && !bHasJetPack[id])
            
{
                
engfunc(EngFunc_RemoveEntityent)
                
bHasJetPack[id] = true
                emit_sound
(idCHAN_STATICSoundPickupVOL_NORMATTN_NORM0PITCH_NORM)
                
engclient_cmd(id,"weapon_knife")
                
ReplaceModel(id)
            }
        }
        else if(
pev(entPevEntType) == EntTypeRocket)
        {
            static 
Float:fOrigin[3]
            
pev(entpev_originfOrigin)

            
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYfOrigin0)
            
write_byte(TE_EXPLOSION)
            
engfunc(EngFunc_WriteCoordfOrigin[0])
            
engfunc(EngFunc_WriteCoordfOrigin[1])
            
engfunc(EngFunc_WriteCoordfOrigin[2])
            
write_short(SprExp)
            
write_byte(40)
            
write_byte(30)
            
write_byte(10)
            
message_end()

            
#if defined DrawRing
            
engfunc(EngFunc_MessageBeginMSG_PVSSVC_TEMPENTITYfOrigin0)
            
write_byte(TE_BEAMCYLINDER)
            
engfunc(EngFunc_WriteCoordfOrigin[0])
            
engfunc(EngFunc_WriteCoordfOrigin[1])
            
engfunc(EngFunc_WriteCoordfOrigin[2])
            
engfunc(EngFunc_WriteCoordfOrigin[0])
            
engfunc(EngFunc_WriteCoordfOrigin[1])
            
engfunc(EngFunc_WriteCoordfOrigin[2]+555.0)
            
write_short(SprRing)
            
write_byte(0)
            
write_byte(1)
            
write_byte(6)
            
write_byte(8)
            
write_byte(10)
            
write_byte(224)
            
write_byte(224)
            
write_byte(255)
            
write_byte(192)
            
write_byte(5)
            
message_end()
            
#endif

            
static attackerattacker pev(entpev_owner)
            if(!
is_user_connected(attacker))
            {
                
engfunc(EngFunc_RemoveEntityent)
                return 
FMRES_IGNORED;
            }

            if(
pev_valid(id) && !is_user_connected(id))
            {
                static 
szClassname[32]
                
pev(idpev_classnameszClassname31)
                if(
equal(szClassname"func_breakable") && (pev(idpev_solid) != SOLID_NOT))
                {
                    
dllfunc(DLLFunc_Useident)
                }
            }

            static 
victimvictim = -1
            
while((victim engfunc(EngFunc_FindEntityInSpherevictimfOriginCRadius)) != 0)
            {
                if(
is_user_alive(victim) )
                {
                    static 
Float:originV[3], Float:distFloat:damage
                    pev
(victimpev_originoriginV)
                    
dist get_distance_f(fOriginoriginV)
                    
damage CDamage-(CDamage/CRadius)*dist
                    
if(damage 0.0)
                    {
                        
ExecuteHamB(Ham_TakeDamagevictimentattackerdamageDMG_BULLET)
                        
// client_print(attacker, print_chat, "[JpDebug] Rocket damage: %.1f", damage)
                    
}
                }
            }

            
engfunc(EngFunc_RemoveEntityent)
        }
    }

    return 
FMRES_IGNORED;
}

public 
CmdDropJP(id)
{
    if(
is_user_alive(id) && bHasJetPack[id] && get_user_weapon(id) == CSW_KNIFE)
    {
        
DropJetPack(id)
        
ResetValues(id)
        
set_pev(idpev_viewmodel2"models/v_knife.mdl")
        
set_pev(idpev_weaponmodel2"models/p_knife.mdl")
        return 
PLUGIN_HANDLED;
    }

    return 
PLUGIN_CONTINUE;
}

ReplaceModel(id)
{
    
set_pev(idpev_viewmodel2ModelVJetPack)
    
set_pev(idpev_weaponmodel2ModelPJetPack)
}

DropJetPack(id)
{
    new 
Float:fAim[3], Float:fOrigin[3]
    
velocity_by_aim(id64fAim)
    
pev(idpev_originfOrigin)
    
fOrigin[0] += fAim[0]
    
fOrigin[1] += fAim[1]

    new 
ent engfunc(EngFunc_CreateNamedEntityiAllocInfoTarget)
    if(
ent)
    {
        
engfunc(EngFunc_SetSizeentFloat:{-4.0,-4.0,-4.0}, Float:{4.0,4.0,4.0})
        
engfunc(EngFunc_SetOriginentfOrigin)
        
set_pev(entpev_classnameClassnameJetPack)
        
set_pev(entpev_dmg100.0)
        
set_pev(entPevEntTypeEntTypeJetPack)
        
set_pev(entpev_movetypeMOVETYPE_TOSS)
        
set_pev(entpev_solidSOLID_TRIGGER)
    }
}

RemoveAllJetPack()
{
    new 
ent engfunc(EngFunc_FindEntityByString, -1"classname"ClassnameJetPack)
    while(
ent 0)
    {
        
engfunc(EngFunc_RemoveEntityent)
        
ent engfunc(EngFunc_FindEntityByString, -1"classname"ClassnameJetPack)
    }
}

ResetValues(id)
{
    
bHasJetPack[id] = false
    fJetpackFuel
[id] = get_pcvar_float(CvarMaxFuel)
}

zp_colored_print(target, const message[], any:...)
{
    static 
buffer[512], iargscount
    argscount 
numargs()

    if (!
target)
    {
        static 
iPlayers[32], iNumjplayer
        get_players
(iPlayersiNum"ch")
        for (
0iNumj++)
        {
            
player iPlayers[j]
            static 
changed[5], changedcount
            changedcount 
0

            
for (2argscounti++)
            {
                if (
getarg(i) == LANG_PLAYER)
                {
                    
setarg(i0player)
                    
changed[changedcount] = i
                    changedcount
++
                }
            }

            
vformat(buffercharsmax(buffer), message3)
            
message_begin(MSG_ONE_UNRELIABLEMsgSayText_player)
            
write_byte(player)
            
write_string(buffer)
            
message_end()

            for (
0changedcounti++) setarg(changed[i], 0LANG_PLAYER);
        }
    }
    else
    {
        
vformat(buffercharsmax(buffer), message3)
        
message_begin(MSG_ONEMsgSayText_target)
        
write_byte(target)
        
write_string(buffer)
        
message_end()
    }
}

/* ============= END OF OTHER PUBLIC FUNCTION (Weapon) ============= */
/* ================= START OF ALL STOCK TO MACROS ================== */
stock create_beampoints(Float:StartPosition[3], Float:TargetPosition[3], SpritesIDStartFrameFramerateLifeLineWidthAmplitudeRedGreenBlueBrightnessSpeed)
{
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_BEAMPOINTS)
    
engfunc(EngFunc_WriteCoordStartPosition[0])
    
engfunc(EngFunc_WriteCoordStartPosition[1])
    
engfunc(EngFunc_WriteCoordStartPosition[2])
    
engfunc(EngFunc_WriteCoordTargetPosition[0])
    
engfunc(EngFunc_WriteCoordTargetPosition[1])
    
engfunc(EngFunc_WriteCoordTargetPosition[2])
    
write_short(SpritesID)
    
write_byte(StartFrame)
    
write_byte(Framerate)
    
write_byte(Life)
    
write_byte(LineWidth)
    
write_byte(Amplitude)
    
write_byte(Red)
    
write_byte(Green)
    
write_byte(Blue)
    
write_byte(Brightness)
    
write_byte(Speed)
    
message_end()
}

stock set_weapon_list(idset)
{
    if(!
is_user_connected(id))
        return
    
    static 
weapon_ent
    weapon_ent 
fm_find_ent_by_owner(-1weapon_base_bufferid)
    
    if(!
pev_valid(weapon_ent))
        return
    
    
message_begin(MSG_ONEget_user_msgid("WeaponList"), _id)
    if(!
setwrite_string(weapon_base_buffer)
    else if(
set == 1write_string(weapon_name_buffer)
    
write_byte(1)
    
write_byte(25)
    
write_byte(-1)
    
write_byte(-1)
    
write_byte(0)
    
write_byte(2)
    
write_byte(CSW_BASE)
    
write_byte(0)
    
message_end()
    
    if(
g_Ammo[id] > 0cs_set_weapon_ammo(weapon_ent1)
    else 
cs_set_weapon_ammo(weapon_ent0)
    
    
cs_set_user_bpammo(idCSW_BASE0)
    
    
engfunc(EngFunc_MessageBeginMSG_ONE_UNRELIABLEget_user_msgid("CurWeapon"), {000}, id)
    
write_byte(1)
    
write_byte(CSW_BASE)
    
write_byte(-1)
    
message_end()
    
    
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("AmmoX"), _id)
    
write_byte(1)
    
write_byte(g_Ammo[id])
    
message_end()
}

stock drop_weapons(iddropwhat)
{
    static 
weapons[32], num 0iweaponid
    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)
        }
    }
}

stock set_player_nextattackx(idFloat:nexttime)
{
    if(!
is_user_alive(id))
        return
        
    
set_pdata_float(id83nexttime5)
}

stock set_weapons_timeidle(idWeaponId ,Float:TimeIdle)
{
    if(!
is_user_alive(id))
        return
        
    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 1.04)
}

stock set_weapon_anim(const Player, const Sequence)
{
    
set_pev(Playerpev_weaponanimSequence)
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, .player Player)
    
write_byte(Sequence)
    
write_byte(0)
    
message_end()
}

stock precache_viewmodel_sound(const model[]) // I Get This From BTE
{
    new 
fileik
    
if((file fopen(model"rt")))
    {
        new 
szsoundpath[64], NumSeqSeqIDEventNumEventsEventID
        fseek
(file164SEEK_SET)
        
fread(fileNumSeqBLOCK_INT)
        
fread(fileSeqIDBLOCK_INT)
        
        for(
0NumSeqi++)
        {
            
fseek(fileSeqID 48 176 iSEEK_SET)
            
fread(fileNumEventsBLOCK_INT)
            
fread(fileEventIDBLOCK_INT)
            
fseek(fileEventID 176 iSEEK_SET)
            
            
// The Output Is All Sound To Precache In ViewModels (GREAT :V)
            
for(0NumEventsk++)
            {
                
fseek(fileEventID 76 kSEEK_SET)
                
fread(fileEventBLOCK_INT)
                
fseek(file4SEEK_CUR)
                
                if(
Event != 5004)
                    continue
                
                
fread_blocks(fileszsoundpath64BLOCK_CHAR)
                
                if(
strlen(szsoundpath))
                {
                    
strtolower(szsoundpath)
                    
engfunc(EngFunc_PrecacheSoundszsoundpath)
                }
            }
        }
    }
    
    
fclose(file)
}

stock fm_cs_get_weapon_ent_owner(ent)
{
    return 
get_pdata_cbase(ent414)
}

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_ofsvUp//for player
    
xs_vec_add(vOriginvUpvOrigin)
    
pev(idpev_v_anglevAngle// if normal entity ,use pev_angles
    
    
angle_vector(vAngleANGLEVECTOR_FORWARDvForward//or use EngFunc_AngleVectors
    
angle_vector(vAngleANGLEVECTOR_RIGHTvRight)
    
angle_vector(vAngleANGLEVECTOR_UPvUp)
    
    
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 is_wall_between_points(Float:start[3], Float:end[3], ignore_ent)
{
    static 
ptr
    ptr 
create_tr2()

    
engfunc(EngFunc_TraceLinestartendIGNORE_MONSTERSignore_entptr)
    
    static 
Float:EndPos[3]
    
get_tr2(ptrTR_vecEndPosEndPos)

    
free_tr2(ptr)
    return 
floatround(get_distance_f(endEndPos))


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_angle_to_target(id, const Float:fTarget[3], Float:TargetSize 0.0)
{
    static 
Float:fOrigin[3], iAimOrigin[3], Float:fAimOrigin[3], Float:fV1[3]
    
pev(idpev_originfOrigin)
    
get_user_origin(idiAimOrigin3// end position from eyes
    
IVecFVec(iAimOriginfAimOrigin)
    
xs_vec_sub(fAimOriginfOriginfV1)
    
    static 
Float:fV2[3]
    
xs_vec_sub(fTargetfOriginfV2)
    
    static 
iResultiResult get_angle_between_vectors(fV1fV2)
    if(
TargetSize 0.0)
    {
        static 
Float:fTanfTan TargetSize get_distance_f(fOriginfTarget)
        static 
fAngleToTargetSizefAngleToTargetSize floatround(floatatan(fTandegrees))
        
iResult -= (iResult 0) ? fAngleToTargetSize : -fAngleToTargetSize
    
}
    
    return 
iResult
}

stock get_angle_between_vectors(const Float:fV1[3], const Float:fV2[3])
{
    static 
Float:fA1[3], Float:fA2[3]
    
engfunc(EngFunc_VecToAnglesfV1fA1)
    
engfunc(EngFunc_VecToAnglesfV2fA2)
    
    static 
iResultiResult floatround(fA1[1] - fA2[1])
    
iResult iResult 360
    iResult 
= (iResult 180) ? (iResult 360) : iResult
    
    
return iResult
}

/* ================= END OF ALL STOCK AND PLUGINS CREATED ================== */ 

Last edited by Fuck For Fun; 05-23-2019 at 16:18.
Fuck For Fun is offline
Send a message via Skype™ to Fuck For Fun
Old 05-23-2019, 16:11
Fuck For Fun
This message has been deleted by HamletEagle. Reason: Bumping is not allowed.
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 11:14.


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