Advertisement
Guest User

prvi

a guest
Nov 14th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>
  4. #include <cstrike>
  5.  
  6.  
  7. new g_SyncGameStart
  8.  
  9. new Float:RoundStartTime
  10.  
  11. new g_Time_Interval;
  12. const MAX_PLAYERS = 32;
  13.  
  14. new g_iRespawn[MAX_PLAYERS+1], g_TeamInfoCounter[MAX_PLAYERS+1], CsTeams:g_iPlayerTeam[MAX_PLAYERS+1];
  15. new g_pCvarRespawnTime, g_pCvarRespawnDelay, g_pCvarMaxHealth;
  16.  
  17. public plugin_init()
  18. {
  19. register_plugin("Dr.Respawn", "1.2", "Vicious Vixen");
  20. RegisterHam(Ham_Killed, "player", "fwdPlayerKilledPost", 1);
  21. RegisterHam(Ham_Spawn, "player", "fwdPlayerSpawnPost", 1);
  22. register_event("TeamInfo", "eTeamInfo", "a");
  23. register_logevent( "LogEventRoundStart", 2, "1=Round_Start" )
  24. g_pCvarRespawnTime = register_cvar("amx_respawn_tickets", "0"); //Set to 0 for unlimited respawns
  25. g_pCvarRespawnDelay = register_cvar("amx_respawn_delay", "1");
  26. g_pCvarMaxHealth = register_cvar("amx_max_health", "100");
  27. g_Time_Interval = register_cvar("amx_max_time", "0");
  28. set_msg_block( get_user_msgid( "ClCorpse" ), BLOCK_SET );
  29.  
  30. }
  31.  
  32. public LogEventRoundStart()
  33. {
  34. RoundStartTime = get_gametime()
  35.  
  36. new iPlayers[32]
  37. new iNum
  38.  
  39. get_players( iPlayers, iNum )
  40.  
  41. for( new i = 0; i < iNum; i++ )
  42. {
  43. g_iRespawn[iPlayers[i]] = true
  44. }
  45. set_task(1.0,"TimeCounter",123456,_,_,"a",get_pcvar_num(g_Time_Interval))
  46. set_task(get_pcvar_float(g_Time_Interval),"Runda_Terminata",789123)
  47. }
  48.  
  49. public Runda_Terminata()
  50. {
  51. if(RoundStartTime)
  52. {
  53. set_hudmessage( 255, 0, 0, 0.09, 0.00, 1, 0.5, 1.0, 0.5, 15.0, -1)
  54. ShowSyncHudMsg( 0, g_SyncGameStart, "Modul respawn este dezactivat!")
  55. }
  56. }
  57.  
  58. public fwdPlayerKilledPost(iVictim, iKiller, iShoudlGib)
  59. {
  60. if(g_iRespawn[iVictim]++ < get_pcvar_num(g_pCvarRespawnTime) || get_pcvar_num(g_pCvarRespawnTime) == 0)
  61. {
  62. set_task(get_pcvar_float(g_pCvarRespawnDelay), "taskRespawnPlayer", iVictim);
  63. }
  64. return HAM_IGNORED;
  65. }
  66.  
  67. public fwdPlayerSpawnPost(iClient)
  68. {
  69. if(is_user_alive(iClient))
  70. {
  71. set_pev(iClient, pev_health, get_pcvar_float(g_pCvarMaxHealth));
  72. }
  73. }
  74.  
  75. public taskRespawnPlayer(id)
  76. {
  77. if(is_user_connected(id) && RoundStartTime + get_pcvar_num(g_Time_Interval) >= get_gametime() && g_iRespawn[id] && !is_user_alive(id) && cs_get_user_team(id) != CS_TEAM_SPECTATOR) {
  78. ExecuteHamB(Ham_CS_RoundRespawn, id)
  79. g_iRespawn[id] = false
  80. return PLUGIN_HANDLED;
  81. }
  82. return PLUGIN_HANDLED;
  83. }
  84.  
  85. public eTeamInfo()
  86. {
  87. new iClient = read_data(1);
  88. new szTeam[2];
  89. read_data(2, szTeam, charsmax(szTeam));
  90. switch(szTeam[0])
  91. {
  92. case 'T':
  93. {
  94. remove_task(iClient);
  95. g_iPlayerTeam[iClient] = CS_TEAM_T;
  96. }
  97. case 'C':
  98. {
  99. if(g_TeamInfoCounter[iClient] == 2 || g_iPlayerTeam[iClient] == CS_TEAM_SPECTATOR)
  100. {
  101. set_task(get_pcvar_float(g_pCvarRespawnDelay), "taskRespawnPlayer", iClient);
  102. }
  103. g_iPlayerTeam[iClient] = CS_TEAM_CT;
  104. }
  105. case 'S':
  106. {
  107. remove_task(iClient);
  108. g_iPlayerTeam[iClient] = CS_TEAM_SPECTATOR;
  109. }
  110. }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement