07-28-2024, 11:17 PM
This plugin allows HLDM players to go to spectator and back. It also adds the functionality of writing /spec in chat to alternate between states.
Code:
#include <amxmodx>
#include <fakemeta>
#define PLUGIN_NAME "Spectator Fix"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "sToP !"
#define HUD_OFFSET 296
public plugin_init()
{
register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
register_concmd("spectate", "hook_spectate")
register_clcmd("say /spec", "chat_spectate")
}
public chat_spectate(id)
{
client_cmd(id, "spectate")
return PLUGIN_CONTINUE
}
public hook_spectate(id)
{
if(pev(id, pev_iuser1) || pev(id, pev_iuser2))
{
spawn_player(id)
return PLUGIN_HANDLED
}
return PLUGIN_CONTINUE
}
spawn_player(id)
{
set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
dllfunc(DLLFunc_Spawn, id)
set_pev(id, pev_iuser1, 0)
set_pev(id, pev_iuser2, 0)
set_pdata_int(id, HUD_OFFSET, 0)
new szTeam[16]
get_user_info(id,"model", szTeam, charsmax(szTeam))
message_begin(MSG_ALL, get_user_msgid("TeamInfo"))
write_byte(id)
write_string(szTeam)
message_end()
}