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

Fix Error Plugin Weapon Bizon


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 03-08-2020 , 04:55   Fix Error Plugin Weapon Bizon
Reply With Quote #1

Someone can fix the Errors?

Plugin:
PHP Code:
/*
    ================================================
    Counter-Strike Weapons System Mod v1.4.3 [CSWS1]
    ================================================
    2017
    
    This source code falls under the GNU General Public License.
    (https://www.gnu.org/licenses/gpl-3.0.en.html)
    
    Additionally, you are allowed to modify, improve or build
    upon the code but under NO circumstances are you allowed to
    sell, trade, or receive any compensation for the source code
    whatsoever and should freely share said code to anyone,
    modified or otherwise.
    
    Description:
    ============
    The CSWS script is built upon the endeavor
    of adding an extra weapon that behaves like
    a real CS 1.6 weapon in every way while
    providing optimum performance. If you want
    to improve the code feel free to do so and
    share it with everyone.
    
    Credits:
    ========
    Sneaky.amxx    - original weapons code
    dias        - original weapons code
    MeRcyLeZZ    - price mechanic
    Arkshine    - HUD sprites replacement
    HamletEagle    - optimization
    edon1337    - optimization
*/

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

#define DAMAGE 18
#define CLIP 64
#define BPAMMO 120
#define RATEOFIRE 0.98
#define RECOIL 1.5
#define RELOAD_TIME 2.4
#define RELOAD_POINT 1.4
#define WALKSPEED 240.0
#define PRICE 1400
#define BASEWPN_PRICE 1500
#define BOT_BUY_CHANCE 2

#define SHOOT_ANIM random_num(3, 5)
#define DRAW_ANIM 2
#define RELOAD_ANIM 1
#define INSPECT_ANIM 6
#define BODY_NUM 0

#define WEAPON_SECRETCODE 296154

// 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 const PLUGIN[]    = "CS:GO PP-19 Bizon";
new const 
VERSION[]     = "2.14.1";
new const 
CSWS_VER[]     = "1.4.3";
new const 
DATE[]     = "1 December 2017";

new const 
P_MODEL[]     = "models/csgo_ports/bizon/p_bizon.mdl";
new const 
W_MODEL[]     = "models/csgo_ports/bizon/w_bizon.mdl";
new const 
V_MODEL[]     = "models/csgo_ports/bizon/v_bizon.mdl";
new const 
V_MODEL_ALT[]    = "models/csgo_ports/bizon/alt/v_bizon.mdl";

new const 
CSW_NEWPN CSW_MP5NAVY;
new const 
weapon_newpn[] = "weapon_mp5navy";
new const 
WEAPON_EVENT[] = "events/mp5n.sc";
new const 
BASE_W_MODEL[] = "models/w_mp5.mdl";
new const 
FIRE_SOUND[] = "weapons/csgo_ports/bizon/bizon-1.wav";

new const 
NEWPN_NAME[]     = "weapon_bizon";
new const 
PRI_AMMO_ID     10;
new const 
SLOT_ID     0;
new const 
NUM_IN_SLOT     7;
new const 
ITEM_FLAGS     0;

new const 
newpn_shortname[]     = "bizon";
new const 
basewpn_shortname[]     = "mp5navy";
new const 
basewpn_buynames[][]     = {"mp5""smg"}

new const 
weapon_classnames[][] =
{
    
"weapon_ak47",
    
"weapon_m4a1",
    
"weapon_awp",
    
"weapon_mp5navy",
    
"weapon_ump45",
    
"weapon_galil",
    
"weapon_famas",
    
"weapon_sg552",
    
"weapon_aug",
    
"weapon_p90",    
    
"weapon_mac10",
    
"weapon_tmp",
    
"weapon_scout",
    
"weapon_m3",
    
"weapon_xm1014",
    
"weapon_g3sg1",
    
"weapon_sg550",
    
"weapon_m249"
}

new const 
weapon_sprites[][] =
{
    
"sprites/weapon_bizon.txt",
    
"sprites/640csws01.spr",
    
"sprites/640csws01_s.spr"
}

new 
Float:g_idletime[] =
{
    
0.7,    // 0 draw
    
2.6,    // 1 reload
    
0.6,    // 2 shoot
    
3.7    // 3 inspect
}

const 
m_pPlayer         41;
const 
m_flNextPrimaryAttack      46;
const 
m_flTimeWeaponIdle    48;
const 
m_iClip             51;
const 
m_fInReload        54;
const 
m_flNextAttack        83;
const 
m_pActiveItem         373;

// Weapon bitsums
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);

new 
g_hambotg_has_weapong_weapon_eventg_buytime_expireg_rebuy[32], g_restart_round;
new 
Float:g_recoil[33][3], g_clip[33], g_prev_weapon[33], shell_modelsmoke_sprite;
new 
cvar_bot_allow_wpnscvar_freezetimecvar_buytimecvar_decalscvar_alteam;
new 
msg_Moneymsg_BlinkAcctmsg_WeaponList;

new 
TASKID_BUYTIME 100000;

public 
plugin_init()
{
    
register_plugin(PLUGINVERSION"Sneaky.amxx, dias, MeRcyLeZZ, Arkshine, hellmonja");
    
    
register_event("TextMsg""Game_Commencing""a""2=#Game_Commencing""2=#Game_will_restart_in");
    
register_event("HLTV""Event_New_Round""a""1=0""2=0");
    
register_event("CurWeapon""Event_CurWeapon""be""1=1");
    
register_message(get_user_msgid("DeathMsg"), "Message_DeathMsg");
    
    
register_forward(FM_UpdateClientData"Fw_UpdateClientData_Post"1);
    
register_forward(FM_PlaybackEvent"Fw_PlaybackEvent");
    
register_forward(FM_SetModel"Fw_SetModel");
    
    
RegisterHam(Ham_Item_Deployweapon_newpn"Fw_ItemDeployPost"1);
    
RegisterHam(Ham_AddPlayerItem"player""Fw_AddItem");
    
RegisterHam(Ham_RemovePlayerItem"player""Fw_RemoveItem");
    
RegisterHam(Ham_TraceAttack"worldspawn""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_breakable""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_wall""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_door""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_door_rotating""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_plat""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"func_rotating""Fw_TraceAttack_World");
    
RegisterHam(Ham_TraceAttack"player""Fw_TraceAttack_Player");
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_newpn"Fw_Weapon_PrimaryAttack");
    
RegisterHam(Ham_Weapon_PrimaryAttackweapon_newpn"Fw_Weapon_PrimaryAttack_Post"1);
    
RegisterHam(Ham_Item_AddToPlayerweapon_newpn"Fw_Item_AddToPlayer_Post"1);
    
RegisterHam(Ham_Item_PostFrameweapon_newpn"Fw_Item_PostFrame");
    
RegisterHam(Ham_Weapon_Reloadweapon_newpn"Fw_Weapon_Reload");
    
RegisterHam(Ham_Weapon_Reloadweapon_newpn"Fw_Weapon_Reload_Post"1);
    
RegisterHam(Ham_CS_Item_GetMaxSpeedweapon_newpn"Player_Weapon_Walkspeed");
    
RegisterHam(Ham_Killed"player""Fw_Player_Death");
    
    
msg_WeaponList     get_user_msgid("WeaponList");  
    
msg_Money     get_user_msgid("Money");
    
msg_BlinkAcct     get_user_msgid("BlinkAcct");
    
    new 
clcmd[24]; formatex(clcmd25"say %s"newpn_shortname);
    for(new 
0sizeof basewpn_buynames 1i++)
        
register_clcmd(basewpn_buynames[i], "ClientCommand_BuyBaseWpn");
    
    
register_clcmd(clcmd"Get_Weapon");
    
register_clcmd(NEWPN_NAME"ClientCommand_SelectWeapon");
    
register_clcmd("inspect""Inspect_Weapon");
    
register_concmd("inspect""Inspect_Weapon");
    
register_concmd("repurchase""ClientCommand_RePurchase");
    
register_concmd(newpn_shortname"Get_Weapon");
    
register_concmd("ver_bizon""Code_Version");
    
    
//CVARS
    
cvar_freezetime get_cvar_pointer("mp_freezetime");
    
cvar_buytime get_cvar_pointer("mp_buytime");
    
cvar_bot_allow_wpns get_cvar_pointer("bot_allow_sub_machine_guns");
    
cvar_alteam register_cvar("armsw_team""1");
    
cvar_decals register_cvar("csws_decals""0");
}

public 
plugin_precache()
{
    for(new 
1sizeof weapon_spritesi++)
        
precache_generic(weapon_sprites[i]);
    
    
precache_model(P_MODEL);
    
precache_model(W_MODEL);
    
precache_model(V_MODEL);
    
precache_model(V_MODEL_ALT);
    
precache_sound(FIRE_SOUND);
    
    
smoke_sprite engfunc(EngFunc_PrecacheModel"sprites/gunsmoke.spr");
    
shell_model engfunc(EngFunc_PrecacheModel"models/rshell.mdl")
    
    
register_forward(FM_PrecacheEvent"Fw_PrecacheEvent_Post"1);
}

public 
Code_Version(id)
{
    
console_print(id"==============================");
    
console_print(id"%s v%s"PLUGINVERSION);
    
console_print(id"Counter-Strike Weapons System v%s"CSWS_VER);
    
console_print(id"%s"DATE);
    
console_print(id"==============================");
}

public 
Fw_PrecacheEvent_Post(type, const name[])
{
    if(
equal(WEAPON_EVENTname))
        
g_weapon_event get_orig_retval();
}

public 
client_putinserver(id)
{
    if(!
g_hambot && is_user_bot(id))
    {
        
g_hambot 1
        set_task
(0.1"Do_RegisterHam"id)
    }
}

public 
Do_RegisterHam(id)
{
    
RegisterHamFromEntity(Ham_TraceAttackid"Fw_TraceAttack_Player");
    
RegisterHamFromEntity(Ham_AddPlayerItemid"Fw_AddItem"1);
    
RegisterHamFromEntity(Ham_RemovePlayerItemid"Fw_RemoveItem"1);
    
RegisterHamFromEntity(Ham_Killedid"Fw_Player_Death");
}

public 
Game_Commencing()
{
    
g_restart_round 1;
}

public 
Event_New_Round()
{
    new 
freezetime get_pcvar_num(cvar_freezetime);
    new 
buytime floatround((get_pcvar_float(cvar_buytime) * 60));
    new 
Float:t;
    
    
g_buytime_expire 0;
        
    if(
g_restart_round)
    {
        
Remove_Weapon(01);
        
g_restart_round 0;
    }

    
remove_task(TASKID_BUYTIME);
    
    if(
get_pcvar_num(cvar_bot_allow_wpns) && g_buytime_expire == 0)
        
set_task(1.5"Bot_Weapon");
    
    if(
buytime freezetime)
        
float(buytime);
    else
        
float(buytime+freezetime);
    
    
set_task(t"Buytime_Expired"TASKID_BUYTIME);
}

public 
Buytime_Expired()
{
    
g_buytime_expire 1;
}

public 
Bot_Weapon()
{
    new 
players[32], pnumwpn_id;
    
get_players(playerspnum"ad");
    
    for(new 
0pnumi++)
        if(
random_num(1,100) <= BOT_BUY_CHANCE && get_user_armor(players[i]) != 99 && !is_weapon_slot_empty(players[i], 1wpn_id) && !Get_BitVar(g_has_weaponplayers[i]))
        {    
            
Get_Weapon(players[i]);
            
cs_set_user_armor(players[i], 99CS_ARMOR_VESTHELM);
        }
}

public 
ClientCommand_BuyBaseWpn(id)
{
    if(
purchase_check(idBASEWPN_PRICE) && Get_BitVar(g_has_weaponid))
    {
        
drop_weapons(id);
        
UnSet_BitVar(g_has_weapon,id);
        
g_rebuy[id] = 0;
    }
}

public 
ClientCommand_RePurchase(id)
{
    if(
g_rebuy[id] == && !Get_BitVar(g_has_weaponid))
        
Get_Weapon(id);
    
    if(
is_plugin_loaded("Weapon Price Editor"false) <= 0)
        
client_cmd(id"rebuy");
}

public 
Get_Weapon(id)
{
    if(!
is_user_alive(id) || !is_user_connected(id))
        return

    
// Player tries to buy the same gun
    
if(Get_BitVar(g_has_weaponid))
    {
        
client_print(idprint_center"#Cstrike_Already_Own_Weapon");
        return
    }

    if(
purchase_check(idPRICE))
    {
        if(
cs_get_user_shield(id))
        {
            
engclient_cmd(id"slot1");
            
engclient_cmd(id"drop");
        }
        else
            
drop_weapons(id);
        
        
Set_BitVar(g_has_weaponid);
        
g_rebuy[id] = 1;
        new 
weapon give_item(idweapon_newpn);
        
        
// Set Ammo
        
cs_set_weapon_ammo(weaponCLIP);
        
cs_set_user_bpammo(idCSW_NEWPNBPAMMO);
    
        
// Calculate new money amount
        
static newmoney;
        
newmoney cs_get_user_money(id) - PRICE;
    
        
// Update money offset
        
cs_set_user_money(idnewmoney);
    
        
// Update money on HUD
        
message_begin(MSG_ONEmsg_Money_id);
        
write_long(newmoney);     // amount
        
write_byte(1);         // flash
        
message_end();
    }
}

public 
ClientCommand_SelectWeapon(id)
{  
    
engclient_cmd(idweapon_newpn);
    return 
PLUGIN_HANDLED


public 
Event_CurWeapon(id)
{
    if(!
is_user_alive(id))
        return
    
    static 
CSW_IDCSW_ID read_data(2);
    static 
weaponweaponfind_ent_by_owner(-1weapon_newpnid);

    if((
CSW_ID == CSW_NEWPN && g_prev_weapon[id] == CSW_NEWPN) && Get_BitVar(g_has_weaponid))
    {
        if(!
pev_valid(weapon))
        {
            
g_prev_weapon[id] = get_user_weapon(id)
            return
        }
        
set_pdata_float(weaponm_flNextPrimaryAttackget_pdata_float(weaponm_flNextPrimaryAttack4) * RATEOFIRE4)
    }
    else if((
CSW_ID != CSW_NEWPN && g_prev_weapon[id] == CSW_NEWPN) && Get_BitVar(g_has_weaponid))
        
draw_new_weapon(idget_user_weapon(id));
        
    
g_prev_weapon[id] = get_user_weapon(id);
}

public 
Fw_ItemDeployPost(weapon)
{
    static 
id;
    
id get_pdata_cbase(weaponm_pPlayer4);
    
    if(!
is_user_alive(id))
        return
        
    if(
Get_BitVar(g_has_weaponid))
        
arm_switch(id);
}

public 
Fw_AddItem(idweapon)
{
    static 
classname[24];
    
pev(weaponpev_classnameclassnamecharsmax(classname));

    if(!
Get_BitVar(g_has_weapon,id) && g_rebuy[id] == 1)
    {
        for(new 
0sizeof weapon_classnamesi++)
            if(
equali(classnameweapon_classnames[i]))
            {
                
g_rebuy[id] = 0;
                return
            }
    }
    else if(
equali(classnameweapon_newpn) && Get_BitVar(g_has_weapon,id))
        
g_rebuy[id] = 1;
}

public 
Fw_RemoveItem(id)
{
    
set_task(0.01"Fw_AddItem"id);
}

public 
Fw_UpdateClientData_Post(idsendweaponscd_handle)
{
    if(!
is_user_alive(id))
        return 
FMRES_IGNORED

    
if(get_user_weapon(id) == CSW_NEWPN && Get_BitVar(g_has_weaponid))
        
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_NEWPN || !Get_BitVar(g_has_weaponinvoker))
        return 
FMRES_IGNORED
        
    
if(eventid != g_weapon_event)
        return 
FMRES_IGNORED
    
    engfunc
(EngFunc_PlaybackEventflags FEV_HOSTONLYinvokereventiddelayoriginanglesfparam1fparam2iParam1iParam2bParam1bParam2);
    
set_weapon_anim(invokerSHOOT_ANIM);
    
emit_sound(invokerCHAN_WEAPONFIRE_SOUNDVOL_NORMATTN_NORM0PITCH_NORM);
    
make_shell(invoker);
    
    return 
FMRES_SUPERCEDE
}

public 
Fw_SetModel(wpn_entmodel[])
{
    if(!
pev_valid(wpn_ent))
        return 
FMRES_IGNORED
    
    
static classname[32];
    
pev(wpn_entpev_classnameclassnamesizeof classname);
    
    if(!
equal(classname"weaponbox"))
        return 
FMRES_IGNORED
    
    
static id;
    
idpev(wpn_entpev_owner);
    
    if(
equal(modelBASE_W_MODEL))
    {
        static 
weapon;
        
weapon find_ent_by_owner(-1weapon_newpnwpn_ent);

        if(!
pev_valid(weapon))
            return 
FMRES_IGNORED;
        
        if(
Get_BitVar(g_has_weaponid))
        {
            
UnSet_BitVar(g_has_weapon,id)
            
            
set_pev(weaponpev_impulseWEAPON_SECRETCODE)
            
engfunc(EngFunc_SetModelwpn_entW_MODEL)
            
set_pev(wpn_entpev_bodyBODY_NUM)
            
            return 
FMRES_SUPERCEDE
        
}
    }

    return 
FMRES_IGNORED;
}

public 
Fw_TraceAttack_World(victimattackerFloat:damageFloat:direction[3], prtdamage_bits)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED
        
    
if(get_user_weapon(attacker) != CSW_NEWPN || !Get_BitVar(g_has_weaponattacker))
        return 
HAM_IGNORED
        
    
static Float:origin[3], Float:vecPlane[3];
    
    
get_tr2(prtTR_vecEndPosorigin);
    
get_tr2(prtTR_vecPlaneNormalvecPlane);
    
    
make_bullet_hole(victimattackerorigin);
    
make_bullet_smoke(attackerprt);

    
SetHamParamFloat(3float(DAMAGE));
    
    return 
HAM_IGNORED
}

public 
Fw_TraceAttack_Player(victimattackerFloat:damageFloat:direction[3], ptrdamage_bits)
{
    if(!
is_user_connected(attacker))
        return 
HAM_IGNORED
        
    
if(get_user_weapon(attacker) != CSW_NEWPN || !Get_BitVar(g_has_weaponattacker))
        return 
HAM_IGNORED
        
    SetHamParamFloat
(3float(DAMAGE))

    return 
HAM_IGNORED
}

public 
Fw_Weapon_PrimaryAttack(weapon)
{
    static 
id;
    
id pev(weaponpev_owner);
    
pev(idpev_punchangleg_recoil[id]);
    
    return 
HAM_IGNORED
}

public 
Fw_Weapon_PrimaryAttack_Post(weapon)
{
    static 
id;
    
id pev(weaponpev_owner);
    
    if(
Get_BitVar(g_has_weaponid))
    {
        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_pdata_float(weaponm_flTimeWeaponIdleg_idletime[2], 4);
    }
}

public 
Fw_Item_AddToPlayer_Post(weaponid)
{
    if(!
pev_valid(weapon))
        return 
HAM_IGNORED
        
    
if(pev(weaponpev_impulse) == WEAPON_SECRETCODE)
    {
        
Set_BitVar(g_has_weaponid);
        
set_pev(weaponpev_impulse0);
        
g_rebuy[id] = 1;
    }

    if(
Get_BitVar(g_has_weapon,id))
    {
        
message_begin(MSG_ONEmsg_WeaponList, .player id);
        
write_string(NEWPN_NAME);     // WeaponName  
        
write_byte(PRI_AMMO_ID);    // PrimaryAmmoID
        
write_byte(BPAMMO);        // PrimaryAmmoMaxAmount  
        
write_byte(-1);            // SecondaryAmmoID  
        
write_byte(-1);            // SecondaryAmmoMaxAmount  
        
write_byte(SLOT_ID);        // SlotID (0...N)  
        
write_byte(NUM_IN_SLOT);    // NumberInSlot (1...N)  
        
write_byte(CSW_NEWPN);      // WeaponID  
        
write_byte(ITEM_FLAGS);        // Flags  
        
message_end();
    } else {
        
message_begin(MSG_ONEmsg_WeaponList, .player id);
        
write_string(weapon_newpn);     // WeaponName  
        
write_byte(PRI_AMMO_ID);    // PrimaryAmmoID
        
write_byte(BPAMMO);        // PrimaryAmmoMaxAmount  
        
write_byte(-1);            // SecondaryAmmoID  
        
write_byte(-1);            // SecondaryAmmoMaxAmount  
        
write_byte(SLOT_ID);        // SlotID (0...N)  
        
write_byte(NUM_IN_SLOT);    // NumberInSlot (1...N)  
        
write_byte(CSW_NEWPN);        // WeaponID  
        
write_byte(ITEM_FLAGS);        // Flags  
        
message_end();
    }
    
    return 
HAM_HANDLED    
}

public 
Fw_Item_PostFrame(weapon)
{
    if(!
pev_valid(weapon))
        return 
HAM_IGNORED
    
    
static id
    id 
pev(weaponpev_owner)
    
    if(
is_user_alive(id) && Get_BitVar(g_has_weaponid))
    {    
        static 
Float:flNextAttackflNextAttack get_pdata_float(idm_flNextAttack5);
        static 
bpammobpammo cs_get_user_bpammo(idCSW_NEWPN);
        static 
i_clipi_clip get_pdata_int(weaponm_iClip4);
        static 
fInReloadfInReload get_pdata_int(weaponm_fInReload4);
        
        if(
fInReload && flNextAttack <= 0.0)
        {
            static 
temp1temp1 min(CLIP i_clipbpammo);

            
set_pdata_int(weaponm_iClipi_clip temp14);
            
cs_set_user_bpammo(idCSW_NEWPNbpammo temp1);
            
            
set_pdata_int(weaponm_fInReload04);
            
            
fInReload 0;
            
            
set_pdata_float(weaponm_flNextPrimaryAttackRELOAD_TIME RELOAD_POINT4);
        }        
    }
    
    return 
HAM_IGNORED    
}

public 
Fw_Weapon_Reload(weapon)
{
    static 
idid pev(weaponpev_owner);
    
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
        
    
if(!Get_BitVar(g_has_weaponid))
        return 
HAM_IGNORED
    
    g_clip
[id] = -1;
    
    static 
bpammobpammo cs_get_user_bpammo(idCSW_NEWPN);
    static 
i_clipi_clip get_pdata_int(weaponm_iClip4);
    
    if(
bpammo <= 0)
        return 
HAM_SUPERCEDE
    
    
if(i_clip >= CLIP)
        return 
HAM_SUPERCEDE        
        
    g_clip
[id] = i_clip;

    return 
HAM_HANDLED
}

public 
Fw_Weapon_Reload_Post(weapon)
{
    static 
id;
    
id pev(weaponpev_owner);
    
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
    
if(!Get_BitVar(g_has_weaponid))
        return 
HAM_IGNORED

    
if (g_clip[id] == -1)
        return 
HAM_IGNORED
    
    set_pdata_int
(weaponm_iClipg_clip[id], 4);
    
set_pdata_int(weaponm_fInReload14);
    
    
set_weapon_anim(idRELOAD_ANIM);
    
set_pdata_float(idm_flNextAttackRELOAD_POINT5);

    return 
HAM_HANDLED
}

public 
Fw_Player_Death(id)
{
    if(!
is_user_connected(id))
        return 
HAM_IGNORED
    
    
if(Get_BitVar(g_has_weaponid))
    {
        
set_task(0.1"Remove_Weapon"id);
        
g_rebuy[id] = 1;
    }
    
    return 
HAM_HANDLED
}

public 
Message_DeathMsg(msg_idmsg_destid)
{
    static 
attackerweapon[33];
    
    
attacker get_msg_arg_int(1);
    
get_msg_arg_string(4weaponcharsmax(weapon))
    
    if(!
is_user_connected(attacker))
        return 
PLUGIN_CONTINUE
        
    
if(equal(weaponbasewpn_shortname) && Get_BitVar(g_has_weaponattacker))
        
set_msg_arg_string(4newpn_shortname);
    
    return 
PLUGIN_CONTINUE
}

public 
Player_Weapon_Walkspeed(weapon)
{
    new 
id get_pdata_cbase(weaponm_pPlayer4);
    
    if(!
is_user_alive(id))
        return 
HAM_IGNORED
    
    
if(Get_BitVar(g_has_weapon,id))
        
SetHamReturnFloat(WALKSPEED);
    else
        return 
HAM_IGNORED

    
return HAM_SUPERCEDE
}

public 
Inspect_Weapon(id)
{
    if(!
is_user_alive(id))
        return

    if(!
Get_BitVar(g_has_weaponid))
        return
    
    if(
get_user_weapon(id) != CSW_NEWPN)
        return
        
    static 
weaponweapon get_pdata_cbase(idm_pActiveItem);
    new 
current_anim pev(get_pdata_cbase(weaponm_pPlayer4), pev_weaponanim);
    
    if(!
current_anim)
        
set_weapon_anim(idINSPECT_ANIM);
}

public 
Remove_Weapon(idall)
{
    switch(
all)
    {
        case 
1:
        {
            new 
players[32], pnum;
            
get_players(playerspnum"a");
    
            for(new 
0<= pnumi++)
                
UnSet_BitVar(g_has_weaponplayers[i]);
        }
        default:
            
UnSet_BitVar(g_has_weaponid);
    }
}

bool:purchase_check(idcost)
{
    if (!
cs_get_user_buyzone(id))
        return 
false
    
    
// Check for buy time
    
if(g_buytime_expire)
    {
        
client_print(idprint_center"%d seconds have passed.^n You can't buy anything now!",floatround(get_cvar_float("mp_buytime") * 60));
        return 
false
    
}
    
    
// Check if player has enough money
    
if (cs_get_user_money(id) < cost)
    {
        
client_print(idprint_center"#Cstrike_TitlesTXT_Not_Enough_Money");
        
        
// Blink money
        
message_begin(MSG_ONE_UNRELIABLEmsg_BlinkAcct_id);
        
write_byte(2); // times
        
message_end();
        return 
false
    
}
    return 
true
}

draw_new_weapon(idCSW_ID)
{
    static 
weapon;
    
weapon find_ent_by_owner(-1weapon_newpnid);

    if(
CSW_ID == CSW_NEWPN)
    {
        if(
pev_valid(weapon) && Get_BitVar(g_has_weaponid))
        {
            
set_pev(weaponpev_effectspev(weaponpev_effects) &~ EF_NODRAW);
            
engfunc(EngFunc_SetModelweaponP_MODEL);
            
set_pev(weaponpev_bodyBODY_NUM);
        }
    }
    else
        if(
pev_valid(weapon))
            
set_pev(weaponpev_effectspev(weaponpev_effects) | EF_NODRAW);
}

make_bullet_smoke(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(smoke_sprite);
    
write_byte(5);
    
write_byte(50);
    
write_byte(TE_FLAG);
    
message_end();
}

make_bullet_hole(victimattackerFloat:origin[3])
{
    static 
decal;

    if(!
get_pcvar_num(cvar_decals))
        
decal random_num(4143);
    else
        
decal random_num(5255);
        
    if(
victim)
    {
        
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
        
write_byte(TE_DECAL)
        
engfunc(EngFunc_WriteCoordorigin[0])
        
engfunc(EngFunc_WriteCoordorigin[1])
        
engfunc(EngFunc_WriteCoordorigin[2])
        
write_byte(decal)
        
write_short(victim)
        
message_end()
    }
    else
    {
        
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()
    }
    
message_begin(MSG_BROADCASTSVC_TEMPENTITY)
    
write_byte(TE_GUNSHOTDECAL)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoordorigin[1])
    
engfunc(EngFunc_WriteCoordorigin[2])
    
write_short(attacker)
    
write_byte(decal)
    
message_end()
}

make_shell(id)
{
    static 
Float:player_origin[3], Float:origin[3], Float:origin2[3], Float:gunorigin[3], Float:oldangles[3], Float:v_forward[3], Float:v_forward2[3], Float:v_up[3], Float:v_up2[3], Float:v_right[3], Float:v_right2[3], Float:viewoffsets[3];
    
    
pev(id,pev_v_angleoldangles); pev(id,pev_origin,player_origin); pev(idpev_view_ofsviewoffsets);

    
engfunc(EngFunc_MakeVectorsoldangles)
    
    
global_get(glb_v_forwardv_forward); global_get(glb_v_upv_up); global_get(glb_v_rightv_right);
    
global_get(glb_v_forwardv_forward2); global_get(glb_v_upv_up2); global_get(glb_v_rightv_right2);
    
    
xs_vec_add(player_originviewoffsetsgunorigin);
    
    
xs_vec_mul_scalar(v_forward10.3v_forward); xs_vec_mul_scalar(v_right2.9v_right);
    
xs_vec_mul_scalar(v_up, -3.7v_up);
    
xs_vec_mul_scalar(v_forward210.0v_forward2); xs_vec_mul_scalar(v_right23.0v_right2);
    
xs_vec_mul_scalar(v_up2, -4.0v_up2);
    
    
xs_vec_add(gunoriginv_forwardorigin);
    
xs_vec_add(gunoriginv_forward2origin2);
    
xs_vec_add(originv_rightorigin);
    
xs_vec_add(origin2v_right2origin2);
    
xs_vec_add(originv_uporigin);
    
xs_vec_add(origin2v_up2origin2);

    static 
Float:velocity[3]
    
get_speed_vector(origin2originrandom_float(140.0160.0), velocity)

    static 
angleangle random_num(0360)

    
message_begin(MSG_ONE_UNRELIABLESVC_TEMPENTITY_id)
    
write_byte(TE_MODEL)
    
engfunc(EngFunc_WriteCoordorigin[0])
    
engfunc(EngFunc_WriteCoord,origin[1])
    
engfunc(EngFunc_WriteCoord,origin[2])
    
engfunc(EngFunc_WriteCoord,velocity[0])
    
engfunc(EngFunc_WriteCoord,velocity[1])
    
engfunc(EngFunc_WriteCoord,velocity[2])
    
write_angle(angle)
    
write_short(shell_model)
    
write_byte(1)
    
write_byte(20)
    
message_end()
}

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;
}

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

set_weapon_anim(idanim)
{
    if(!
is_user_alive(id))
        return
    
    
set_pev(idpev_weaponanimanim);
    
    
message_begin(MSG_ONE_UNRELIABLESVC_WEAPONANIM, {000}, id);
    
write_byte(anim);
    
write_byte(pev(idpev_body));
    
message_end();
    
    static 
weapon;
    
weapon find_ent_by_owner(-1weapon_newpnid);
    
    new 
Float:idle;
    switch(
anim)
    {
        case 
DRAW_ANIM:       idle g_idletime[0];
        case 
RELOAD_ANIM:  idle g_idletime[1];
        case 
INSPECT_ANIMidle g_idletime[3];
    }
    
    
set_pdata_float(weaponm_flTimeWeaponIdleidle4);
}

// Drop primary/secondary weapons
drop_weapons(id)
{
    
// Get user weapons
    
static weapons[32], numiwpn_id;
    
num 0;     // reset passed weapons count (bugfix)
    
get_user_weapons(idweaponsnum);
    
    
// Loop through them and drop primaries or secondaries
    
for (0numi++)
    {
        
// Prevent re-indexing the array
        
wpn_id weapons[i];
        
        if(
1<<wpn_id PRIMARY_WEAPONS_BIT_SUM)
        {
            
// Get weapon entity
            
static wname[32];
            
get_weaponname(wpn_idwnamecharsmax(wname));

            
// Player drops the weapon
            
engclient_cmd(id"drop"wname);
        }
    }
}

arm_switch(id)
{
    if(
get_user_team(id) == get_pcvar_num(cvar_alteam))
        
set_pev(idpev_viewmodel2V_MODEL_ALT);
    else
        
set_pev(idpev_viewmodel2V_MODEL);
    
    
set_pev(idpev_weaponmodel2P_MODEL)
    
set_weapon_anim(idDRAW_ANIM)
    
draw_new_weapon(idCSW_NEWPN)
}

is_weapon_slot_emptyid iSlot , &iEntity )
{
    if ( !( 
<= iSlot <= ) )
        return 
0;
    
    
iEntity 0;
    const 
m_rgpPlayerItems_Slot0 367;
    const 
m_iId 43;
    const 
EXTRAOFFSET_WEAPONS 4;
    
    
iEntity get_pdata_cbaseid m_rgpPlayerItems_Slot0 iSlot EXTRAOFFSET_WEAPONS );
    
    return ( 
iEntity ) ? get_pdata_intiEntity m_iId EXTRAOFFSET_WEAPONS ) : 0;

Error:
Code:
L 03/08/2020 - 00:51:34: [AMXX] Displaying debug trace (plugin "CSWS/csgo_bizon.amxx")
L 03/08/2020 - 00:51:34: [AMXX] Run time error 10: native error (native "get_pcvar_num")
L 03/08/2020 - 00:51:34: [AMXX]    [0] csgo_bizon.sma::Event_New_Round (line 278)
my amx mod x is 1.8.3

Last edited by alferd; 03-08-2020 at 05:07.
alferd is offline
Napoleon_be
Veteran Member
Join Date: Jul 2011
Location: Belgium
Old 03-08-2020 , 08:37   Re: Fix Error Plugin Weapon Bizon
Reply With Quote #2

PHP Code:
cvar_bot_allow_wpns get_cvar_pointer("bot_allow_sub_machine_guns"); 
Check if this is a valid cvar.
__________________
Napoleon_be is offline
Send a message via Skype™ to Napoleon_be
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 03-08-2020 , 10:33   Re: Fix Error Plugin Weapon Bizon
Reply With Quote #3

Quote:
Originally Posted by Napoleon_be View Post
PHP Code:
cvar_bot_allow_wpns get_cvar_pointer("bot_allow_sub_machine_guns"); 
Check if this is a valid cvar.
I want the plugin for the server
I don't need a bot code
alferd is offline
alferd
Veteran Member
Join Date: Dec 2019
Location: Iran is Always Eternal
Old 03-08-2020 , 10:55   Re: Fix Error Plugin Weapon Bizon
Reply With Quote #4

Quote:
Originally Posted by Napoleon_be View Post
PHP Code:
cvar_bot_allow_wpns get_cvar_pointer("bot_allow_sub_machine_guns"); 
Check if this is a valid cvar.
good,Corrected by deleting this code

SLOVED
alferd 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 19:36.


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