Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. #include "singleton.hpp"
  2. #include "ValveSDK/interfaces/IGameEventManager.hpp"
  3. #include "ValveSDK/interfaces/IGameEventManager.hpp"
  4. #include "ValveSDK/interfaces.hpp"
  5.  
  6.  
  7. #include <Windows.h>
  8. #pragma comment(lib, "Winmm.lib")
  9.  
  10. #define g_pGameEventManager g_GameEvents
  11.  
  12. class hitmarker
  13. {
  14. class player_hurt_listener
  15. : public IGameEventListener2
  16. {
  17. public:
  18. void start()
  19. {
  20. if (!g_pGameEventManager->AddListener(this, "player_hurt", false)) {
  21. throw std::exception("Failed to register the event");
  22. }
  23. }
  24. void stop()
  25. {
  26. g_pGameEventManager->RemoveListener(this);
  27. }
  28. void FireGameEvent(IGameEvent *event) override
  29. {
  30. hitmarker::singleton()->on_fire_event(event);
  31. }
  32. int GetEventDebugID(void) override
  33. {
  34. return EVENT_DEBUG_ID_INIT /*0x2A*/;
  35. }
  36. };
  37. public:
  38. static hitmarker* singleton()
  39. {
  40. static hitmarker* instance = new hitmarker;
  41. return instance;
  42. }
  43.  
  44. void initialize()
  45. {
  46. _listener.start();
  47. }
  48.  
  49. void on_fire_event(IGameEvent* event)
  50. {
  51. if (!strcmp(event->GetName(), "player_hurt")) {
  52. int attacker = event->GetInt("attacker");
  53. if (g_EngineClient->GetPlayerForUserID(attacker) == g_EngineClient->GetLocalPlayer()) {
  54. //g_pSurface->PlaySound doesnt work for some reason
  55. PlaySoundA(_soundFileName, NULL, SND_ASYNC);
  56. _flHurtTime = g_GlobalVars->curtime;
  57. }
  58. }
  59. }
  60.  
  61. void on_paint()
  62. {
  63. auto curtime = g_GlobalVars->curtime;
  64. auto lineSize = 8;
  65. if (_flHurtTime + 0.25f >= curtime) {
  66. int screenSizeX, screenCenterX;
  67. int screenSizeY, screenCenterY;
  68. g_EngineClient->GetScreenSize(screenSizeX, screenSizeY);
  69.  
  70. screenCenterX = screenSizeX / 2;
  71. screenCenterY = screenSizeY / 2;
  72.  
  73. g_VGuiSurface->DrawSetColor(200, 200, 200, 255);
  74. g_VGuiSurface->DrawLine(screenCenterX - lineSize, screenCenterY - lineSize, screenCenterX - (lineSize / 4), screenCenterY - (lineSize / 4));
  75. g_VGuiSurface->DrawLine(screenCenterX - lineSize, screenCenterY + lineSize, screenCenterX - (lineSize / 4), screenCenterY + (lineSize / 4));
  76. g_VGuiSurface->DrawLine(screenCenterX + lineSize, screenCenterY + lineSize, screenCenterX + (lineSize / 4), screenCenterY + (lineSize / 4));
  77. g_VGuiSurface->DrawLine(screenCenterX + lineSize, screenCenterY - lineSize, screenCenterX + (lineSize / 4), screenCenterY - (lineSize / 4));
  78. }
  79. }
  80.  
  81. private:
  82. player_hurt_listener _listener;
  83. const char* _soundFileName = "csgo\\sound\\hitsound.wav";
  84. float _flHurtTime;
  85. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement