Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.17 KB | None | 0 0
  1. Script "DnD Monster Scanner Picker" ENTER {
  2. int thisactor = ActivatorTID();
  3. int monhp, monlvl, monsterid, mmaxhp, healthbarcolor, traits, traits2, nameskip, monprop;
  4. bool monelite = false;
  5. while(1) {
  6. SetActivatorToTarget(thisactor);
  7. if(!CheckInventory("EnemyInDisguise") && (CheckActorProperty(0, APROP_Friendly, 0) || CheckInventory("FriendlyInDisguise")))
  8. healthbarcolor = 1;
  9. else if(CheckActorProperty(0, APROP_Friendly, 1) || CheckInventory("EnemyInDisguise"))
  10. healthbarcolor = 0;
  11. if(ActivatorTID() == thisactor || CheckInventory("EnemyInDisguise")) {
  12. // player has no targets
  13. SetActivator(thisactor);
  14. SetInventory("TargetMaximumHealth", 0);
  15. SetInventory("TargetCurrentHealth", 0);
  16. SetInventory("TargetLevel", 0);
  17. SetInventory("TargetTraits", 0);
  18. SetInventory("TargetTraits2", 0);
  19. SetInventory("TargetIsWhat", 0);
  20. SetInventory("TargetIsElite", 0);
  21. SetInventory("TargetProperties", 0);
  22. }
  23. else {
  24. mmaxhp = CheckInventory("MonsterMaxHealth");
  25. monhp = GetActorProperty (0, APROP_Health);
  26. monlvl = CheckInventory("MonsterLevel");
  27. monsterid = CheckInventory("MonsterID");
  28. traits = CheckInventory("MonsterTraits");
  29. traits2 = CheckInventory("MonsterTraits2");
  30. nameskip = CheckInventory("MonsterNameSkip");
  31. monelite = CheckInventory("MonsterIsElite");
  32. monprop = CheckInventory("MonsterProperties");
  33. str temp = GetActorProperty(0, APROP_NAMETAG);
  34. SetActivator(thisactor);
  35. SetInventory("TargetMaximumHealth", mmaxhp);
  36. SetInventory("TargetCurrentHealth", monhp);
  37. SetInventory("TargetHealthBarColor", healthbarcolor);
  38. SetInventory("TargetLevel", monlvl);
  39. SetInventory("TargetTraits", traits);
  40. SetInventory("TargetTraits2", traits2);
  41. SetInventory("TargetIsWhat", monsterid);
  42. SetInventory("TargetIsElite", monelite);
  43. SetInventory("TargetProperties", monprop);
  44. SetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber()), temp);
  45. }
  46. // fixes initialization bug
  47. SetActivator(thisactor);
  48. Delay (1);
  49. }
  50. }
  51.  
  52. Script "DnD Monster Scanner" ENTER CLIENTSIDE {
  53. int mmaxhp, hdisp, monhp, monlevel, monid, traits, traits2;
  54. bool isPet = false;
  55. while(1) {
  56. // if we have any shared items in our player queue to turn, do turn them
  57. if(CheckInventory("Ability_MonsterInfo")) {
  58. mmaxhp = CheckInventory("TargetMaximumHealth");
  59. if(mmaxhp && GetCVar("dnd_monsterbars")) {
  60. monhp = CheckInventory("TargetCurrentHealth");
  61. monlevel = CheckInventory("TargetLevel");
  62. monid = CheckInventory("TargetIsWhat");
  63. traits = CheckInventory("TargetTraits");
  64. traits2 = CheckInventory("TargetTraits2");
  65. isPet = traits2 & DND_PET_POW;
  66. hdisp = (monhp * 100 / mmaxhp);
  67. int i, j = 0.0;
  68. if(CheckInventory("TargetHealthBarColor"))
  69. SetFont("MNRHPBAR");
  70. else
  71. SetFont("MNGHPBAR");
  72.  
  73. SetHudSize(800, 600, 0);
  74. HudMessage(s:"a"; 1, MONSTER_BARID, CR_UNTRANSLATED, 400.0, 27.0, 1);
  75. if(!isPet) {
  76. if(!CheckInventory("TargetProperties"))
  77. SetFont(MonsterTypeIcons[GetMonsterType(monid)]);
  78. else {
  79. SetFont(MonsterTypeIcons[InferMonsterPower(CheckInventory("TargetProperties"))]);
  80. }
  81. }
  82. else
  83. SetFont(MonsterTypeIcons[GetPetMonsterType(monid)]);
  84. HudMessage(s:"a"; 1, MONSTER_TYPEICONID, CR_UNTRANSLATED, 270.0, 27.0, 1);
  85. HudMessage(s:"a"; 1, MONSTER_TYPEICONID - 1, CR_UNTRANSLATED, 540.0, 27.0, 1);
  86. // inner text
  87. SetFont ("MONFONT");
  88. HudMessage(s:"Lvl: ", i:monlevel, s:" ", i:monhp, s:"/", i:mmaxhp; 1, MONSTER_TEXTID, CR_WHITE, 400.0, 27.0, 1);
  89. str prefix = "";
  90. if(CheckInventory("TargetIsElite"))
  91. prefix = "\cfElite ";
  92. if(traits2 & DND_LEGENDARY)
  93. HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_RED, 404.4, 10.0, 1);
  94. else if(isBoss())
  95. HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_ORANGE, 404.4, 10.0, 1);
  96. else
  97. HudMessage(s:prefix, s:GetCVarString(Strparam(s:"DND_NAMETAGS", i:PlayerNumber())); 1, MONSTER_NAMEID, CR_WHITE, 404.4, 10.0, 1);
  98.  
  99. for (i = 0; i <= hdisp && i <= 100; ++i) {
  100. j = j + 2.0;
  101. if(CheckInventory("TargetHealthBarColor"))
  102. SetFont("FILLCRIT");
  103. else
  104. SetFont("FILLNORM");
  105. if(monhp)
  106. HudMessage(s:"a"; 1, MONSTER_BARFILLID + i, CR_GREEN, 303.0 + j, 27.0, 1);
  107. }
  108. i = j = 0;
  109. // show monster traits
  110. if(traits) {
  111. SetFont ("MONFONT");
  112. for(i = 0; i < MAX_MONSTER_TRAITS; ++i) {
  113. if(IsSet(traits, i)) {
  114. HudMessage(s:GetTraitColorCode(i, DND_TRAITSIDE_1), s:MonsterTraits[i]; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
  115. ++j;
  116. }
  117. }
  118. }
  119. if(traits2) {
  120. SetFont ("MONFONT");
  121. for(i = 0; i < MAX_MONSTER_TRAITS2; ++i) {
  122. if(IsSet(traits2, i)) {
  123. HudMessage(s:GetTraitColorCode(i, DND_TRAITSIDE_2), s:MonsterTraits2[i]; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
  124. ++j;
  125. }
  126. }
  127. }
  128. if(traits2 & DND_LEGENDARY)
  129. HudMessage(s:"Legendary Monster"; 1, MONSTER_TRAITID + j, CR_WHITE, 404.4, 44.0 + 8.0 * j, 1);
  130. }
  131. }
  132. Delay (1);
  133. }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement