AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Solved Add New unlock in Gunxp mod (https://forums.alliedmods.net/showthread.php?t=325998)

benqcon 07-14-2020 12:17

Add New unlock in Gunxp mod
 
Hello,
I'm a beginner in coding and making plugins, and right now I'm working on ZM4 mod with gunxp mod
but the problem is every new unlock I make it doesn't work, IT DOES APPEAR in the menu but when I choose it nothing happens and the weapon doesn't change.


This is the new unlock I made

HTML Code:

[QUOTE]#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <fakemeta_util>
#include <hamsandwich>
#include <cstrike>
#include <fun>
#include <gunxpmod>

#define PLUGIN "[CSO] Balrog-XI (9)"
#define VERSION "1.0"
#define AUTHOR "Dias Pendragon"

#define CSW_BALROG9 CSW_KNIFE
#define weapon_balrog9 "weapon_knife"

#define ANIM_EXT "knife"

#define DAMAGE_A 45 // 250 for Zombie
#define DAMAGE_B 50 // 350 for Zombie
#define DAMAGE_EXP 200 // 250 for Zombie

#define RANGE_A 48.0
#define RANGE_B 64.0
#define RADIUS_B 100.0

#define TIME_NEXTATK_A1 0.5
#define TIME_NEXTATK_A2 0.3

#define V_MODEL "models/v_balrog9n.mdl"
#define P_MODEL "models/p_balrog9n.mdl"

new const WeaponSounds[12][] =
{
        "weapons/balrog9_charge_attack2.wav",
        "weapons/balrog9_charge_finish1.wav",
        "weapons/balrog9_charge_start1.wav",
        "weapons/balrog9_draw.wav",
        "weapons/balrog9_hit1.wav",
        "weapons/balrog9_hit2.wav",
        "weapons/balrog9_slash1.wav",
        "weapons/balrog9_slash2.wav",
        "weapons/balrog9_slash3.wav",
        "weapons/balrog9_slash4.wav",
        "weapons/balrog9_slash5.wav",
        "weapons/skullaxe_hit_wall.wav"
}

new const Balrog_ExplosionSpr[] = "sprites/balrog5stack.spr"

enum
{
        ANIM_IDLE = 0,
        ANIM_SLASH_L1,
        ANIM_SLASH_R1,
        ANIM_SLASH_L2,
        ANIM_SLASH_R2,
        ANIM_SLASH_R3,
        ANIM_DRAW,
        ANIM_CHARGE_START,
        ANIM_CHARGE_FINISH,
        ANIM_CHARGE_IDLE1,
        ANIM_CHARGE_IDLE2,
        ANIM_CHARGE_ATTACK1,
        ANIM_CHARGE_ATTACK2
}

enum
{
        CHARGE_START = 0,
        CHARGE_CHARGING,
        CHARGE_END,
        CHARGE_IDLE
}

new g_Had_Balrog9, g_Player_AttackAnim[33], g_AttackCharge, g_Balrog9_ChargeStatus[33]
new g_Exp_SprId, g_MaxPlayers

// Safety
#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_HamBot
new g_IsConnected, g_IsAlive, g_PlayerWeapon[33]

public plugin_init()
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        register_gxm_item("[ZM4]Balrog IX", "+Power", 1000, 2, GUN_SECTION_KNIFE, 2, CSW_KNIFE)
       
        Register_SafetyFunc()
       
        register_forward(FM_UpdateClientData, "fw_UpdateClientData_Post", 1)
        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_TakeDamage, "player", "fw_Player_TakeDamage")
       
        RegisterHam(Ham_Item_Deploy, weapon_balrog9, "fw_Item_Deploy_Post", 1)       
        RegisterHam(Ham_Weapon_WeaponIdle, weapon_balrog9, "fw_Weapon_WeaponIdle_Post", 1)
       
        g_MaxPlayers = get_maxplayers()
       
        register_clcmd("say /getbalrog9", "Get_Balrog9")
}

public plugin_precache()
{
        engfunc(EngFunc_PrecacheModel, V_MODEL)
        engfunc(EngFunc_PrecacheModel, P_MODEL)
       
        for(new i = 0; i < sizeof(WeaponSounds); i++)
                engfunc(EngFunc_PrecacheSound, WeaponSounds[i])
               
        g_Exp_SprId = engfunc(EngFunc_PrecacheModel, Balrog_ExplosionSpr)
}

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

public Do_Register_HamBot(id)
{
        Register_SafetyFuncBot(id)
       
        RegisterHamFromEntity(Ham_TakeDamage, id, "fw_Player_TakeDamage")
}

public client_disconnect(id)
{
        Safety_Disconnected(id)
}

public Get_Balrog9(id)
{
        if(!is_player(id, 1))
                return
       
        g_Player_AttackAnim[id] = 0
        g_Balrog9_ChargeStatus[id] = CHARGE_START
       
        UnSet_BitVar(g_AttackCharge, id)
        Set_BitVar(g_Had_Balrog9, id)
       
        give_item(id, weapon_balrog9)
       
        if(get_user_weapon(id) == CSW_BALROG9)
        {
                set_pev(id, pev_viewmodel2, V_MODEL)
                set_pev(id, pev_weaponmodel2, P_MODEL)       

                Set_WeaponAnim(id, ANIM_DRAW)
        } else {
                engclient_cmd(id, weapon_balrog9)
        }       
}

public fw_UpdateClientData_Post(id, sendweapons, cd_handle)
{
        if(!is_player(id, 1))
                return FMRES_IGNORED       
        if(get_player_weapon(id) == CSW_BALROG9 && Get_BitVar(g_Had_Balrog9, id))
        {
                switch(g_Balrog9_ChargeStatus[id])
                {
                        case CHARGE_START..CHARGE_IDLE: set_cd(cd_handle, CD_flNextAttack, get_gametime() + 0.001)
                }
               
        }
       
        return FMRES_HANDLED
}

public fw_CmdStart(id, uc_handle, seed)
{
        if(!is_player(id,1))
                return
        if(get_player_weapon(id) != CSW_BALROG9 || !Get_BitVar(g_Had_Balrog9, id))
                return
       
        static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
        if(!pev_valid(Ent))
                return
       
        static CurButton; CurButton = get_uc(uc_handle, UC_Buttons)
        if(CurButton & IN_ATTACK2)
        {
                if(get_pdata_float(id, 83, 5) >
0.0)
                        return
                       
                CurButton &= ~IN_ATTACK2
                set_uc(uc_handle, UC_Buttons, CurButton)

                static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
                if(!pev_valid(Ent)) return
               
                switch(g_Balrog9_ChargeStatus[id])
                {
                        case CHARGE_START:
                        {
                                g_Balrog9_ChargeStatus[id] = CHARGE_CHARGING
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 0.65)
                                Set_Player_NextAttack(id, 0.65)
                               
                                Set_WeaponAnim(id, ANIM_CHARGE_START)
                        }
                        case CHARGE_CHARGING:
                        {
                                g_Balrog9_ChargeStatus[id] = CHARGE_END
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 1.0)
                                Set_Player_NextAttack(id, 1.0)
                               
                                Set_WeaponAnim(id, ANIM_CHARGE_IDLE1)
                        }
                        case CHARGE_END:
                        {
                                g_Balrog9_ChargeStatus[id] = CHARGE_IDLE
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 0.25)
                                Set_Player_NextAttack(id, 0.25)
                               
                                static Float:Origin[3]
                                pev(id, pev_origin, Origin)
                               
                                // Effect
                                message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
                                write_byte(TE_DLIGHT)
                                engfunc(EngFunc_WriteCoord, Origin[0])
                                engfunc(EngFunc_WriteCoord, Origin[1])
                                engfunc(EngFunc_WriteCoord, Origin[2])
                                write_byte(floatround(RADIUS_B) / 8) // radius
                                write_byte(255) // r
                                write_byte(0) // g
                                write_byte(0) // b
                                write_byte(100) // life <<<<<<<<
                                write_byte(10) // decay rate
                                message_end()
                               
                                Set_WeaponAnim(id, ANIM_CHARGE_FINISH)
                        }
                        case CHARGE_IDLE:
                        {
                                Set_WeaponAnim(id, ANIM_CHARGE_IDLE2)
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 0.25)
                                Set_Player_NextAttack(id, 0.25)
                        }
                }
        } else if(CurButton & IN_ATTACK) {
                if(get_pdata_float(id, 83, 5) >
0.0)
                        return
               
                CurButton &= ~IN_ATTACK
                set_uc(uc_handle, UC_Buttons, CurButton)
               
                static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
                if(!pev_valid(Ent)) return
               
                g_Balrog9_ChargeStatus[id] = CHARGE_START
               
                UnSet_BitVar(g_AttackCharge, id)
                ExecuteHamB(Ham_Weapon_PrimaryAttack, Ent)
               
                if(g_Player_AttackAnim[id] > 5 || g_Player_AttackAnim[id] < 0)
                        g_Player_AttackAnim[id] = 0
               
                switch(g_Player_AttackAnim[id])
                {
                        case 0: Set_WeaponAnim(id, ANIM_SLASH_L1)
                        case 1: Set_WeaponAnim(id, ANIM_SLASH_R1)
                        case 2: Set_WeaponAnim(id, ANIM_SLASH_L2)
                        case 3: Set_WeaponAnim(id, ANIM_SLASH_R2)
                        case 4: Set_WeaponAnim(id, ANIM_SLASH_L2)
                        case 5: Set_WeaponAnim(id, ANIM_SLASH_R3)
                }
               
                g_Player_AttackAnim[id]++
        } else {
                switch(g_Balrog9_ChargeStatus[id])
                {
                        case CHARGE_CHARGING:
                        {
                                if(get_pdata_float(id, 83, 5) >
0.0)
                                        return
                               
                                g_Balrog9_ChargeStatus[id] = CHARGE_START
                               
                                static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
                                if(!pev_valid(Ent)) return
                               
                                UnSet_BitVar(g_AttackCharge, id)
                                ExecuteHamB(Ham_Weapon_PrimaryAttack, Ent)
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 1.5)
                                Set_Player_NextAttack(id, 1.0)
                       
                                Set_WeaponAnim(id, ANIM_CHARGE_ATTACK1)
                        }
                        case CHARGE_IDLE:
                        {
                                if(get_pdata_float(id, 83, 5) > 0.0)
                                        return
                               
                                g_Balrog9_ChargeStatus[id] = CHARGE_START
                               
                                static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
                                if(!pev_valid(Ent)) return
                               
                                Set_BitVar(g_AttackCharge, id)
                                ExecuteHamB(Ham_Weapon_SecondaryAttack, Ent)
                                Balrog_Explosion(id)
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 1.5)
                                Set_Player_NextAttack(id, 1.0)
                       
                                Set_WeaponAnim(id, ANIM_CHARGE_ATTACK2)
                        }
                        case CHARGE_END:
                        {
                                g_Balrog9_ChargeStatus[id] = CHARGE_START
                               
                                static Ent; Ent = fm_get_user_weapon_entity(id, CSW_BALROG9)
                                if(!pev_valid(Ent)) return
                               
                                UnSet_BitVar(g_AttackCharge, id)
                                ExecuteHamB(Ham_Weapon_PrimaryAttack, Ent)
                               
                                Set_Weapon_Idle(id, CSW_BALROG9, 1.5)
                                Set_Player_NextAttack(id, 1.0)
                       
                                Set_WeaponAnim(id, ANIM_CHARGE_ATTACK1)
                        }
                }
        }
}

public Fake_Punch(id)
{
        static Float:Punch[3]
       
        Punch[0] = random_float(-1.0, -2.5)
        Punch[1] = random_float(0.25, -0.25)
        Punch[2] = 0.0

        set_pev(id, pev_punchangle, Punch)       
}

public fw_EmitSound(id, channel, const sample[], Float:volume, Float:attn, flags, pitch)
{
        if(!is_player(id, 0))
                return FMRES_IGNORED
        if(get_player_weapon(id) != CSW_BALROG9 || !Get_BitVar(g_Had_Balrog9, id))
                return FMRES_IGNORED
               
        if(sample[8] == 'k' && sample[9] == 'n' && sample[10] == 'i')
        {
                if(sample[14] == 's' && sample[15] == 'l' && sample[16] == 'a')
                {
                        Set_Weapon_Idle(id, CSW_BALROG9, TIME_NEXTATK_A1 + 0.5)
                        Set_Player_NextAttack(id, TIME_NEXTATK_A1)       
               
                        return FMRES_IGNORED
                }
                if (sample[14] == 'h' && sample[15] == 'i' && sample[16] == 't')
                {
                        Set_Weapon_Idle(id, CSW_BALROG9, TIME_NEXTATK_A2 + 0.5)
                        Set_Player_NextAttack(id, TIME_NEXTATK_A2)       

                        if (sample[17] == 'w') // wall
                        {
                                if(!Get_BitVar(g_AttackCharge, id))
                                {
                                        emit_sound(id, channel, WeaponSounds[11], volume, attn, flags, pitch)
                                        Fake_Punch(id)
                                }
                                return FMRES_SUPERCEDE
                        } else {
                                static Sound
                                switch(g_Player_AttackAnim[id])
                                {
                                        case 0: Sound = 4
                                        case 1: Sound = 5
                                        case 2: Sound = 4
                                        case 3: Sound = 5
                                        case 4: Sound = 4
                                        case 5: Sound = 5
                                }
                               
                                if(!Get_BitVar(g_AttackCharge, id))
                                {
                                        emit_sound(id, channel, WeaponSounds[Sound], volume, attn, flags, pitch)
                                        Fake_Punch(id)
                                }
                                return FMRES_SUPERCEDE
                        }
                }
                if (sample[14] == 's' && sample[15] == 't' && sample[16] == 'a')
                        return FMRES_IGNORED
        }
       
        return FMRES_IGNORED
}

public fw_TraceLine(Float:vector_start[3], Float:vector_end[3], ignored_monster, id, handle)
{
        if(!is_player(id, 1))
                return FMRES_IGNORED       
        if(get_player_weapon(id) != CSW_BALROG9 || !Get_BitVar(g_Had_Balrog9, id))
                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(id, pev_origin, fOrigin)
        pev(id, pev_view_ofs, view_ofs)
        xs_vec_add(fOrigin, view_ofs, vecStart)
        pev(id, pev_v_angle, v_angle)
       
        engfunc(EngFunc_MakeVectors, v_angle)
        get_global_vector(GL_v_forward, v_forward)

        xs_vec_mul_scalar(v_forward, Get_BitVar(g_AttackCharge, id) ? RANGE_B : RANGE_A, v_forward)
        xs_vec_add(vecStart, v_forward, vecEnd)
       
        engfunc(EngFunc_TraceLine, vecStart, vecEnd, ignored_monster, id, handle)
       
        return FMRES_SUPERCEDE
}

public fw_TraceHull(Float:vector_start[3], Float:vector_end[3], ignored_monster, hull, id, handle)
{
        if(!is_player(id, 1))
                return FMRES_IGNORED       
        if(get_player_weapon(id) != CSW_BALROG9 || !Get_BitVar(g_Had_Balrog9, id))
                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(id, pev_origin, fOrigin)
        pev(id, pev_view_ofs, view_ofs)
        xs_vec_add(fOrigin, view_ofs, vecStart)
        pev(id, pev_v_angle, v_angle)
       
        engfunc(EngFunc_MakeVectors, v_angle)
        get_global_vector(GL_v_forward, v_forward)
       
        xs_vec_mul_scalar(v_forward, Get_BitVar(g_AttackCharge, id) ? RANGE_B : RANGE_A, v_forward)
        xs_vec_add(vecStart, v_forward, vecEnd)
       
        engfunc(EngFunc_TraceHull, vecStart, vecEnd, ignored_monster, hull, id, handle)
       
        return FMRES_SUPERCEDE
}

public fw_Player_TakeDamage(Victim, Inflictor, Attacker, Float:Damage, DamageBits)
{
        if(!is_player(Victim, 0) || !is_player(Attacker, 0))
                return HAM_IGNORED
        if(get_player_weapon(Attacker) != CSW_BALROG9 || !Get_BitVar(g_Had_Balrog9, Attacker))
                return HAM_IGNORED
        if(Damage == float(DAMAGE_EXP))
                return HAM_IGNORED

        if(Get_BitVar(g_AttackCharge, Attacker)) SetHamParamFloat(4, float(DAMAGE_B))
        else SetHamParamFloat(4, float(DAMAGE_A))
       
        return HAM_HANDLED
}

public Balrog_Explosion(Attacker)
{
        static Float:ExpOrigin[3]
        get_position(Attacker, 48.0, 0.0, 0.0, ExpOrigin)
       
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_EXPLOSION)
        engfunc(EngFunc_WriteCoord, ExpOrigin[0])
        engfunc(EngFunc_WriteCoord, ExpOrigin[1])
        engfunc(EngFunc_WriteCoord, ExpOrigin[2])
        write_short(g_Exp_SprId)
        write_byte(10)
        write_byte(20)
        write_byte(4)
        message_end()
       
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_DLIGHT)
        engfunc(EngFunc_WriteCoord, ExpOrigin[0])
        engfunc(EngFunc_WriteCoord, ExpOrigin[1])
        engfunc(EngFunc_WriteCoord, ExpOrigin[2])
        write_byte(floatround(RADIUS_B) / 6) // radius
        write_byte(255) // r
        write_byte(0) // g
        write_byte(0) // b
        write_byte(100) // life <<<<<<<<
        write_byte(10) // decay rate
        message_end()
       
        emit_sound(Attacker, CHAN_WEAPON, WeaponSounds[0], VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
       
        for(new i = 0; i < g_MaxPlayers; i++)
        {
                if(!is_player(i, 1))
                        continue
                if(cs_get_user_team(Attacker) == cs_get_user_team(i))
                        continue
                if(entity_range(Attacker, i) >
RADIUS_B)
                        continue

                ExecuteHamB(Ham_TakeDamage, i, 0, Attacker, float(DAMAGE_EXP), DMG_BLAST)
        }
}

public fw_Item_Deploy_Post(Ent)
{
        if(pev_valid(Ent) != 2)
                return
        static Id; Id = get_pdata_cbase(Ent, 41, 4)
        if(get_pdata_cbase(Id, 373) != Ent)
                return
        if(!Get_BitVar(g_Had_Balrog9, Id))
                return
               
        set_pev(Id, pev_viewmodel2, V_MODEL)
        set_pev(Id, pev_weaponmodel2, P_MODEL)
       
        set_pdata_string(Id, (492) * 4, ANIM_EXT, -1 , 20)
        Set_WeaponAnim(Id, ANIM_DRAW)
       
        g_Balrog9_ChargeStatus[Id] = CHARGE_START
        UnSet_BitVar(g_AttackCharge, Id)
}

public fw_Weapon_WeaponIdle_Post(Ent)
{
        if(pev_valid(Ent) != 2)
                return HAM_IGNORED
        static Id; Id = get_pdata_cbase(Ent, 41, 4)
        if(get_pdata_cbase(Id, 373) != Ent)
                return HAM_IGNORED
        if(!Get_BitVar(g_Had_Balrog9, Id))
                return HAM_IGNORED
               
        if(get_pdata_float(Ent, 48, 4) <= 0.25)
        {
                Set_WeaponAnim(Id, ANIM_IDLE)
                set_pdata_float(Ent, 48, 20.0, 4)
        }
       
        return HAM_IGNORED
}

stock Set_WeaponAnim(id, anim)
{
        set_pev(id, pev_weaponanim, anim)
       
        message_begin(MSG_ONE_UNRELIABLE, SVC_WEAPONANIM, {0, 0, 0}, id)
        write_byte(anim)
        write_byte(pev(id, pev_body))
        message_end()
}

stock Set_Weapon_Idle(id, WeaponId ,Float:TimeIdle)
{
        static entwpn; entwpn = fm_get_user_weapon_entity(id, WeaponId)
        if(!pev_valid(entwpn))
                return
               
        set_pdata_float(entwpn, 46, TimeIdle, 4)
        set_pdata_float(entwpn, 47, TimeIdle, 4)
        set_pdata_float(entwpn, 48, TimeIdle + 0.5, 4)
}

stock Set_Player_NextAttack(id, Float:NextTime) set_pdata_float(id, 83, NextTime, 5)

stock get_position(ent, Float:forw, Float:right, Float:up, Float:vStart[])
{
        static Float:vOrigin[3], Float:vAngle[3], Float:vForward[3], Float:vRight[3], Float:vUp[3]
       
        pev(ent, pev_origin, vOrigin)
        pev(ent, pev_view_ofs,vUp) //for player
        xs_vec_add(vOrigin,vUp,vOrigin)
        pev(ent, pev_v_angle, vAngle) // 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
}

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

public Register_SafetyFuncBot(id)
{
        RegisterHamFromEntity(Ham_Spawn, id, "fw_Safety_Spawn_Post", 1)
        RegisterHamFromEntity(Ham_Killed, id, "fw_Safety_Killed_Post", 1)
}

public Safety_Connected(id)
{
        Set_BitVar(g_IsConnected, id)
        UnSet_BitVar(g_IsAlive, id)
       
        g_PlayerWeapon[id] = 0
}

public Safety_Disconnected(id)
{
        UnSet_BitVar(g_IsConnected, id)
        UnSet_BitVar(g_IsAlive, id)
       
        g_PlayerWeapon[id] = 0
}

public Safety_CurWeapon(id)
{
        if(!is_player(id, 1))
                return
               
        static CSW; CSW = read_data(2)
        if(g_PlayerWeapon[id] != CSW) g_PlayerWeapon[id] = CSW
}

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

public fw_Safety_Killed_Post(id)
{
        UnSet_BitVar(g_IsAlive, id)
}

public is_player(id, IsAliveCheck)
{
        if(!(1 <= id <= 32))
                return 0
        if(!Get_BitVar(g_IsConnected, id))
                return 0
        if(IsAliveCheck)
        {
                if(Get_BitVar(g_IsAlive, id)) return 1
                else return 0
        }
       
        return 1
}

public get_player_weapon(id)
{
        if(!is_player(id, 1))
                return 0
       
        return g_PlayerWeapon[id]
}

/* ===============================
--------- End of SAFETY ----------
=================================*/[/QUOTE]

Quote:




All times are GMT -4. The time now is 13:46.

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