Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <fakemeta>
- #include <hamsandwich>
- #define VERSION "0.0.2"
- #define PLUGIN "Auto Respawn"
- #define XO_PLAYER 5
- #define m_iMenuCode 205
- #define m_iSpawnTimes 365
- #define Menu_ChooseTeam 1
- #define Menu_ChooseAppearance 3
- #define cs_get_user_menu(%0) get_pdata_int(%0, m_iMenuCode, XO_PLAYER)
- new bool:g_bRespawn
- new bool:g_bFreezePeriod
- new Float:g_flRoundStartGameTime
- new bool:g_bRespawnTime
- public plugin_init()
- {
- register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
- register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
- register_logevent("LogEvent_Round_Start", 2, "1=Round_Start")
- register_logevent("Logevent_Round_End", 2, "1=Round_End")
- register_clcmd("joinclass", "ClCmd_CoudBeChoosingAppearance")
- register_clcmd("menuselect", "ClCmd_CoudBeChoosingAppearance")
- register_clcmd( "say /respawn", "respawning" )
- Set_Respawn( true )
- }
- public ClCmd_CoudBeChoosingAppearance( id )
- {
- if( g_bRespawn && cs_get_user_menu(id) == Menu_ChooseAppearance )
- {
- if( !CanRespawn() )
- {
- set_task(0.1, "Respawn_User", id)
- }
- else
- {
- set_pdata_int(id, m_iSpawnTimes, 0, XO_PLAYER)
- }
- }
- }
- public respawning( id )
- if( is_user_connected( id ) )
- ExecuteHamB(Ham_CS_RoundRespawn, id)
- public Respawn_User( id )
- {
- if( is_user_connected(id) && !is_user_alive(id) )
- {
- ExecuteHamB(Ham_CS_RoundRespawn, id)
- }
- }
- public Ham_CBasePlayer_Killed_Post( id )
- {
- if( cs_get_user_menu(id) != Menu_ChooseAppearance )
- {
- set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
- }
- }
- public Event_HLTV_New_Round()
- {
- g_bFreezePeriod = true
- Set_Respawn( true )
- }
- public LogEvent_Round_Start()
- {
- g_bFreezePeriod = false
- g_flRoundStartGameTime = get_gametime()
- }
- CanRespawn()
- {
- if( g_bFreezePeriod
- || ( g_bRespawnTime && (g_bRespawnTime = (get_gametime() - g_flRoundStartGameTime < 20.0))) )
- {
- return true
- }
- return false
- }
- public Logevent_Round_End()
- {
- Set_Respawn( false )
- }
- Set_Respawn(bool:bRespawn)
- {
- g_bRespawn = bRespawn
- static HamHook:iHhPlayerKilled, iMsgClCorpse //, iFhClientCommandPost
- if( bRespawn )
- {
- if( iHhPlayerKilled )
- {
- EnableHamForward( iHhPlayerKilled )
- }
- else
- {
- iHhPlayerKilled = RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", 1)
- }
- if( !iMsgClCorpse )
- {
- iMsgClCorpse = get_user_msgid("ClCorpse")
- }
- set_msg_block(iMsgClCorpse, BLOCK_SET)
- }
- else
- {
- if( iHhPlayerKilled )
- {
- DisableHamForward( iHhPlayerKilled )
- }
- if( iMsgClCorpse )
- {
- set_msg_block(iMsgClCorpse, BLOCK_NOT)
- }
- }
- }
Add Comment
Please, Sign In to add comment