After being sent to a team the player is treated as he is unasigned even tho he is alive
The player is being teleported to certain places on the map every few seconds
Steps to reproduce:
1. Compile
2. Install the plugin
3. Start cs_assault
4. Observe how the player is being treated as a spectator even tho he is alive
Test Script:
PHP Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <cstrike>
#define PLUGIN "New Plug-In"
#define VERSION "1.23"
#define AUTHOR "123"
#define TASK_JOIN 7640
#define flag_get(%1,%2) (%1 & (1 << (%2 & 31)))
#define flag_get_boolean(%1,%2) (flag_get(%1,%2) ? true : false)
#define flag_set(%1,%2) %1 |= (1 << (%2 & 31))
#define flag_unset(%1,%2) %1 &= ~(1 << (%2 & 31))
new g_Joined
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_message(get_user_msgid("ShowMenu"), "message_team_menu")
register_message(get_user_msgid("VGUIMenu"), "message_team_menu")
register_clcmd("jointeam", "handle_join_command")
register_clcmd("say /spe", "spectator")
register_clcmd("say /joi", "JoinGame")
}
public message_team_menu(msgid, dest, id)
{
return PLUGIN_HANDLED;
}
public handle_join_command(id)
{
if(flag_get(g_Joined, id))
{
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
public client_putinserver(id)
{
set_task(5.1, "JoinGame", id+TASK_JOIN)
}
public client_disconnect(id)
{
if(flag_get(g_Joined, id))
{
flag_unset(g_Joined, id)
}
remove_task(id+TASK_JOIN)
}
public JoinGame(taskid)
{
new id = taskid - TASK_JOIN
if(is_user_connected(id))
{
if(!flag_get(g_Joined, id))
{
cs_set_user_team(id, CS_TEAM_CT)
//engclient_cmd(id, "jointeam", "5")
//engclient_cmd(id, "joinclass","5")
flag_set(g_Joined, id)
}
}
}
__________________