Forum
Spectator Fix - Printable Version

+- Forum (https://dm20.net/forum)
+-- Forum: Scripting (https://dm20.net/forum/forumdisplay.php?fid=5)
+--- Forum: Showcase (https://dm20.net/forum/forumdisplay.php?fid=6)
+--- Thread: Spectator Fix (/showthread.php?tid=5)



Spectator Fix - marcudaniel1337 - 07-28-2024

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()