Sokarbestfrag

Untitled

Feb 26th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.52 KB | None | 0 0
  1. #include <amxmodx>
  2.  
  3. #include <fakemeta>
  4. #include <hamsandwich>
  5.  
  6. #define VERSION "0.0.2"
  7. #define PLUGIN "Auto Respawn"
  8.  
  9. #define XO_PLAYER 5
  10. #define m_iMenuCode 205
  11. #define m_iSpawnTimes 365
  12.  
  13. #define Menu_ChooseTeam 1
  14. #define Menu_ChooseAppearance 3
  15. #define cs_get_user_menu(%0) get_pdata_int(%0, m_iMenuCode, XO_PLAYER)
  16.  
  17. new bool:g_bRespawn
  18. new bool:g_bFreezePeriod
  19. new Float:g_flRoundStartGameTime
  20. new bool:g_bRespawnTime
  21.  
  22. public plugin_init()
  23. {
  24. register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
  25.  
  26. register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
  27. register_logevent("LogEvent_Round_Start", 2, "1=Round_Start")
  28. register_logevent("Logevent_Round_End", 2, "1=Round_End")
  29.  
  30. register_clcmd("joinclass", "ClCmd_CoudBeChoosingAppearance")
  31. register_clcmd("menuselect", "ClCmd_CoudBeChoosingAppearance")
  32.  
  33. register_clcmd( "say /respawn", "respawning" )
  34.  
  35. Set_Respawn( true )
  36. }
  37.  
  38. public ClCmd_CoudBeChoosingAppearance( id )
  39. {
  40. if( g_bRespawn && cs_get_user_menu(id) == Menu_ChooseAppearance )
  41. {
  42. if( !CanRespawn() )
  43. {
  44. set_task(0.1, "Respawn_User", id)
  45. }
  46. else
  47. {
  48. set_pdata_int(id, m_iSpawnTimes, 0, XO_PLAYER)
  49. }
  50. }
  51. }
  52. public respawning( id )
  53. if( is_user_connected( id ) )
  54. ExecuteHamB(Ham_CS_RoundRespawn, id)
  55.  
  56. public Respawn_User( id )
  57. {
  58. if( is_user_connected(id) && !is_user_alive(id) )
  59. {
  60. ExecuteHamB(Ham_CS_RoundRespawn, id)
  61. }
  62. }
  63.  
  64. public Ham_CBasePlayer_Killed_Post( id )
  65. {
  66. if( cs_get_user_menu(id) != Menu_ChooseAppearance )
  67. {
  68. set_pev(id, pev_deadflag, DEAD_RESPAWNABLE)
  69. }
  70. }
  71.  
  72. public Event_HLTV_New_Round()
  73. {
  74. g_bFreezePeriod = true
  75. Set_Respawn( true )
  76. }
  77.  
  78. public LogEvent_Round_Start()
  79. {
  80. g_bFreezePeriod = false
  81. g_flRoundStartGameTime = get_gametime()
  82. }
  83.  
  84. CanRespawn()
  85. {
  86. if( g_bFreezePeriod
  87. || ( g_bRespawnTime && (g_bRespawnTime = (get_gametime() - g_flRoundStartGameTime < 20.0))) )
  88. {
  89. return true
  90. }
  91. return false
  92. }
  93.  
  94. public Logevent_Round_End()
  95. {
  96. Set_Respawn( false )
  97. }
  98.  
  99. Set_Respawn(bool:bRespawn)
  100. {
  101. g_bRespawn = bRespawn
  102.  
  103. static HamHook:iHhPlayerKilled, iMsgClCorpse //, iFhClientCommandPost
  104. if( bRespawn )
  105. {
  106. if( iHhPlayerKilled )
  107. {
  108. EnableHamForward( iHhPlayerKilled )
  109. }
  110. else
  111. {
  112. iHhPlayerKilled = RegisterHam(Ham_Killed, "player", "Ham_CBasePlayer_Killed_Post", 1)
  113. }
  114.  
  115. if( !iMsgClCorpse )
  116. {
  117. iMsgClCorpse = get_user_msgid("ClCorpse")
  118. }
  119. set_msg_block(iMsgClCorpse, BLOCK_SET)
  120. }
  121. else
  122. {
  123. if( iHhPlayerKilled )
  124. {
  125. DisableHamForward( iHhPlayerKilled )
  126. }
  127.  
  128. if( iMsgClCorpse )
  129. {
  130. set_msg_block(iMsgClCorpse, BLOCK_NOT)
  131. }
  132. }
  133. }
Add Comment
Please, Sign In to add comment