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

Solved Add New unlock in Gunxp mod


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
benqcon
Member
Join Date: Jul 2020
Old 07-14-2020 , 12:17   Add New unlock in Gunxp mod
Reply With Quote #1

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:

Last edited by benqcon; 07-15-2020 at 09:31. Reason: solved
benqcon 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 08:27.


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