HLMOD.HU Forrás Megtekintés - www.hlmod.hu
  1. #pragma semicolon 1
  2. #define VERSION "1.0"
  3.  
  4. public Plugin:myinfo =
  5. {
  6. name = "HP Regeneration",
  7. author = "MaTTe",
  8. description = "Regeneráció, az életed vissza töltõdik.",
  9. version = VERSION,
  10. url = "http://www.sourcemod.net/"
  11. };
  12.  
  13. new Handle:g_hRegenTimer[MAXPLAYERS + 1];
  14.  
  15. new Handle:g_Interval;
  16. new Handle:g_MaxHP;
  17. new Handle:g_Inc;
  18.  
  19. public OnPluginStart()
  20. {
  21. CreateConVar("hpregeneration_version", VERSION, "HP Regeneráció Verziója", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
  22.  
  23. g_Interval = CreateConVar("hpregen_interval", "1.0");
  24. g_MaxHP = CreateConVar("hpregen_maxhp", "100");
  25. g_Inc = CreateConVar("hpregen_inc", "10");
  26.  
  27. HookEvent("player_hurt", HookPlayerHurt);
  28. }
  29.  
  30. public HookPlayerHurt(Handle:event, const String:name[], bool:dontBroadcast)
  31. {
  32. new iUserId = GetEventInt(event, "userid");
  33. new client = GetClientOfUserId(iUserId);
  34.  
  35. if(g_hRegenTimer[client] == INVALID_HANDLE)
  36. {
  37. g_hRegenTimer[client] = CreateTimer(GetConVarFloat(g_Interval), Regenerate, client, TIMER_REPEAT);
  38. }
  39. }
  40.  
  41. public Action:Regenerate(Handle:timer, any:client)
  42. {
  43. new ClientHealth = GetClientHealth(client);
  44.  
  45. if(ClientHealth < GetConVarInt(g_MaxHP))
  46. {
  47. SetClientHealth(client, ClientHealth + GetConVarInt(g_Inc));
  48. }
  49. else
  50. {
  51. SetClientHealth(client, GetConVarInt(g_MaxHP));
  52. g_hRegenTimer[client] = INVALID_HANDLE;
  53. KillTimer(timer);
  54. }
  55. }
  56.  
  57. SetClientHealth(client, amount)
  58. {
  59. new HealthOffs = FindDataMapOffs(client, "m_iHealth");
  60. SetEntData(client, HealthOffs, amount, true);
  61. }