Advertisement
Guest User

Monster HP Bar

a guest
Sep 5th, 2015
436
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.28 KB | None | 0 0
  1. void User::DrawHP(){
  2. VAngle Angle;
  3. int PosX, PosY, LifeProgress;
  4. for (int MonsterViewPort = 0; MonsterViewPort < 30; MonsterViewPort++)
  5. {
  6. lpViewObj lpObj = &*(ObjectPreview*)pGetPreviewStruct(pPreviewThis(), MonsterViewPort);
  7. DWORD CurrentTick = GetTickCount();
  8. DWORD Delay = (CurrentTick - gObjUser.m_TargetUpdateTick);
  9. // ----
  10. if (!lpObj || lpObj->m_Model.ObjectType == emNPC || !lpObj->m_Model.Unknown4)
  11. {
  12. continue;
  13. }
  14. // ----
  15. PMSG_TARGETDATA_REQ pRequest;
  16. pRequest.h.set((LPBYTE)&pRequest, 0xFB, 7, sizeof(pRequest));
  17. pRequest.aIndex = lpObj->aIndex;
  18. // ----
  19. if (Delay >= 75)
  20. {
  21. gProtocol.DataSend((LPBYTE)&pRequest, pRequest.h.size);
  22. }
  23. // ----
  24. Angle.X = lpObj->m_Model.VecPosX;
  25. Angle.Y = lpObj->m_Model.VecPosY;
  26. Angle.Z = lpObj->m_Model.VecPosZ + lpObj->m_Model.Unknown216.Z + 100.0;
  27. // ----
  28. float BarWidth = (64.5f / 100.0f) *monlife[lpObj->aIndex];
  29. float LifeBarWidth = 65.0f;
  30. // ----
  31. pGetPosFromAngle(&Angle, &PosX, &PosY);
  32. PosX -= (int)floor(LifeBarWidth / (double)2.0);
  33. // ----
  34. if (monlife[lpObj->aIndex] <= 0.1f || !lpObj->IsLiveObject)
  35. {
  36. continue;
  37. }
  38. // Player HP Bar
  39. if (lpObj->m_Model.ObjectType == emPlayer)
  40. {
  41. if (!gObjUser.showHPBar)
  42. {
  43. pDrawGUI(0x7B3F, (float)PosX - 1.2, (float)PosY - 1.5, 66.95, 6);
  44. pDrawGUI(0x7B40, (float)PosX, (float)PosY, BarWidth, 3);
  45. }
  46.  
  47. // Monster HP Bar
  48. else{
  49. if (!gObjUser.showHPBar)
  50. {
  51.  
  52. glColor4f(0.0, 0.0, 0.0, 0.7);
  53. pDrawBarForm((float)(PosX - 1.2), (float)(PosY - 1.5), 66.95, 4.4, 0.0, 0);
  54. pGLSwitchBlend();
  55. // ----
  56. glColor3f(1.0, 0.2, 0.0);
  57. pDrawBarForm((float)(PosX), (float)(PosY), BarWidth, 2.1, 0.0, 0);
  58.  
  59. pDrawText(pTextThis(), PosX - 1, PosY - 11, " ", 67, 0, (LPINT)0, 0);
  60. pDrawText(pTextThis(), PosX + 0.5*(66.95 - (4.35*float(strlen(lpObj->Name)))), PosY - 11, lpObj->Name, (4.35*float(strlen(lpObj->Name))), 0, (LPINT)0, 0);
  61. }
  62. }
  63. // ----
  64. if ((int)(monlife[lpObj->aIndex] / 10) > 10)
  65. {
  66. LifeProgress = 10;
  67. }
  68. else
  69. {
  70. LifeProgress = (int)(monlife[lpObj->aIndex] / 10);
  71. }
  72.  
  73. }
  74.  
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement