Respawned player is flying
Hello AlliedModders!
My plugin must respawn player after dead. But spawned player flying like spectator.
some parts of plugin:
PHP Code:
#define XO_PLAYER 5
#define m_iMenuCode 205
// #define m_iSpawnTimes 365
#define Menu_ChooseAppearance 3
#define cs_get_user_menu(%0) get_pdata_int(%0, m_iMenuCode, XO_PLAYER)
#define DISABLE_CS 0
// team ids
#define UNASSIGNED 0
#define TS 1
#define CTS 2
#define AUTO_TEAM 5
public plugin_init()
{
register_event( "DeathMsg", "death_event", "a" )
set_msg_block(get_user_msgid("ClCorpse"), BLOCK_SET)
register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
register_logevent("on_EndRound", 2, "0=World triggered", "1=Round_End")
//events used in plugin
register_event("ResetHUD", "ResetHUD", "be")
RegisterHam(Ham_TakeDamage, "player", "TakeDamage", 1);
register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
RegisterHam(Ham_Spawn, "player", "HamPlayerSpawn", 1);
}
public on_EndRound()
{
g_bRoundEnd = true
}
public Event_HLTV_New_Round()
{
g_bRoundEnd = false
}
public death_event()
{
if( !is_user_alive (id) && !g_bRoundEnd && cs_get_user_menu(id) != Menu_ChooseAppearance && HasRespawn[id] && !respawned[id])
{
respawned[id] = 1;
new parm[1]
parm[0]=id
/* Spawn the player twice to avoid the HL engine bug */
set_task(0.5,"player_spawn",72,parm,1)
set_task(0.7,"player_spawn",72,parm,1)
/* Then give them a suit and a knife */
set_task(0.9,"player_giveitems",72,parm,1)
}
}
public player_giveitems(parm[1])
{
new id = parm[0]
give_item(id, "item_suit")
give_item(id, "weapon_knife")
/* Determines if a players should be given a pistol */
new wpnList[32] = 0, number = 0, bool:foundGlock = false, bool:foundUSP = false
get_user_weapons(id,wpnList,number)
/* Determine if the player already has a pistol */
for (new i = 0;i < number;i++)
{
if (wpnList[i] == CSW_GLOCK18)
foundGlock = true
if (wpnList[i] == CSW_USP)
foundUSP = true
}
/* Give a T his/her pistol */
if ( get_user_team(id)==TS && !foundGlock )
{
give_item(id,"weapon_glock18")
give_item(id,"ammo_9mm")
give_item(id,"ammo_9mm")
}
/* Give a CT his/her pistol */
else if ( get_user_team(id)==CTS && !foundUSP )
{
give_item(id,"weapon_usp")
give_item(id,"ammo_45acp")
give_item(id,"ammo_45acp")
}
return PLUGIN_CONTINUE
}
public player_spawn(parm[1])
{
spawn(parm[0])
}
|