spectextdraws.inc 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. //Global Textdraws:
  2. new Text:spectextdraw1; // small black box
  3. new Text:spectextdraw2; // white line
  4. //Player Textdraws:
  5. new PlayerText:specnametxd[MAX_PLAYERS]; // name textdraw
  6. new PlayerText:spechptxd[MAX_PLAYERS]; // hp textdraw
  7. new PlayerText:specarmortxd[MAX_PLAYERS]; // armor testdraw
  8. new PlayerText:specleveltxd[MAX_PLAYERS]; // level textdraw
  9. new PlayerText:specpingtxd[MAX_PLAYERS]; // level textdraw
  10. forward ShowSpectateTextDraws(playerid, giveplayerid);
  11. forward HideSpectateTextDraws(playerid);
  12. Hook:spec_OnGameModeInit()
  13. {
  14. spectextdraw1 = TextDrawCreate(242.665985, 379.396331, "usebox");
  15. TextDrawLetterSize(spectextdraw1, 0.000000, 6.282086);
  16. TextDrawTextSize(spectextdraw1, 380.000122, 0.000000);
  17. TextDrawAlignment(spectextdraw1, 1);
  18. TextDrawColor(spectextdraw1, 255);
  19. TextDrawUseBox(spectextdraw1, true);
  20. TextDrawBoxColor(spectextdraw1, 255);
  21. TextDrawSetShadow(spectextdraw1, 0);
  22. TextDrawSetOutline(spectextdraw1, 0);
  23. TextDrawFont(spectextdraw1, 0);
  24. spectextdraw2 = TextDrawCreate(243.000411, 395.574066, "usebox");
  25. TextDrawLetterSize(spectextdraw2, 0.000000, -0.910901);
  26. TextDrawTextSize(spectextdraw2, 376.666778, 0.000000);
  27. TextDrawAlignment(spectextdraw2, 1);
  28. TextDrawColor(spectextdraw2, 0);
  29. TextDrawUseBox(spectextdraw2, true);
  30. TextDrawBoxColor(spectextdraw2, -1);
  31. TextDrawSetShadow(spectextdraw2, 0);
  32. TextDrawSetOutline(spectextdraw2, 0);
  33. TextDrawFont(spectextdraw2, 0);
  34. return 1;
  35. }
  36. Hook:spec_OnPlayerConnect(playerid)
  37. {
  38. specnametxd[playerid] = CreatePlayerTextDraw(playerid, 242.667083, 380.800109, "name");
  39. PlayerTextDrawLetterSize(playerid, specnametxd[playerid], 0.160329, 0.840888);
  40. PlayerTextDrawAlignment(playerid, specnametxd[playerid], 1);
  41. PlayerTextDrawColor(playerid, specnametxd[playerid], -1);
  42. PlayerTextDrawSetShadow(playerid, specnametxd[playerid], 0);
  43. PlayerTextDrawSetOutline(playerid, specnametxd[playerid], 1);
  44. PlayerTextDrawBackgroundColor(playerid, specnametxd[playerid], 51);
  45. PlayerTextDrawFont(playerid, specnametxd[playerid], 2);
  46. PlayerTextDrawSetProportional(playerid, specnametxd[playerid], 1);
  47. spechptxd[playerid] = CreatePlayerTextDraw(playerid, 242.333343, 399.881378, "Health: 100");
  48. PlayerTextDrawLetterSize(playerid, spechptxd[playerid], 0.189333, 1.039999);
  49. PlayerTextDrawAlignment(playerid, spechptxd[playerid], 1);
  50. PlayerTextDrawColor(playerid, spechptxd[playerid], -1);
  51. PlayerTextDrawSetShadow(playerid, spechptxd[playerid], 0);
  52. PlayerTextDrawSetOutline(playerid, spechptxd[playerid], 1);
  53. PlayerTextDrawBackgroundColor(playerid, spechptxd[playerid], 51);
  54. PlayerTextDrawFont(playerid, spechptxd[playerid], 2);
  55. PlayerTextDrawSetProportional(playerid, spechptxd[playerid], 1);
  56. specarmortxd[playerid] = CreatePlayerTextDraw(playerid, 241.666625, 419.377716, "Armor: 101");
  57. PlayerTextDrawLetterSize(playerid, specarmortxd[playerid], 0.202996, 1.127109);
  58. PlayerTextDrawAlignment(playerid, specarmortxd[playerid], 1);
  59. PlayerTextDrawColor(playerid, specarmortxd[playerid], -1);
  60. PlayerTextDrawSetShadow(playerid, specarmortxd[playerid], 0);
  61. PlayerTextDrawSetOutline(playerid, specarmortxd[playerid], 1);
  62. PlayerTextDrawBackgroundColor(playerid, specarmortxd[playerid], 51);
  63. PlayerTextDrawFont(playerid, specarmortxd[playerid], 2);
  64. PlayerTextDrawSetProportional(playerid, specarmortxd[playerid], 1);
  65. specleveltxd[playerid] = CreatePlayerTextDraw(playerid, 326.999725, 399.466583, "Level: 50");
  66. PlayerTextDrawLetterSize(playerid, specleveltxd[playerid], 0.192332, 0.998517);
  67. PlayerTextDrawAlignment(playerid, specleveltxd[playerid], 1);
  68. PlayerTextDrawColor(playerid, specleveltxd[playerid], -1);
  69. PlayerTextDrawSetShadow(playerid, specleveltxd[playerid], 0);
  70. PlayerTextDrawSetOutline(playerid, specleveltxd[playerid], 1);
  71. PlayerTextDrawBackgroundColor(playerid, specleveltxd[playerid], 51);
  72. PlayerTextDrawFont(playerid, specleveltxd[playerid], 2);
  73. PlayerTextDrawSetProportional(playerid, specleveltxd[playerid], 1);
  74. specpingtxd[playerid] = CreatePlayerTextDraw(playerid, 326.999725, 419.377716, "Ping: 69");
  75. PlayerTextDrawLetterSize(playerid, specpingtxd[playerid], 0.202996, 1.127109);
  76. PlayerTextDrawAlignment(playerid, specpingtxd[playerid], 1);
  77. PlayerTextDrawColor(playerid, specpingtxd[playerid], -1);
  78. PlayerTextDrawSetShadow(playerid, specpingtxd[playerid], 0);
  79. PlayerTextDrawSetOutline(playerid, specpingtxd[playerid], 1);
  80. PlayerTextDrawBackgroundColor(playerid, specpingtxd[playerid], 51);
  81. PlayerTextDrawFont(playerid, specpingtxd[playerid], 2);
  82. PlayerTextDrawSetProportional(playerid, specpingtxd[playerid], 1);
  83. return 1;
  84. }
  85. Hook:spec_OnPlayerDisconnect(playerid, reason)
  86. {
  87. PlayerTextDrawDestroy(playerid, specnametxd[playerid]);
  88. PlayerTextDrawDestroy(playerid, specleveltxd[playerid]);
  89. PlayerTextDrawDestroy(playerid, spechptxd[playerid]);
  90. PlayerTextDrawDestroy(playerid, specarmortxd[playerid]);
  91. PlayerTextDrawDestroy(playerid, specpingtxd[playerid]);
  92. return 1;
  93. }
  94. Hook:spec_OnGameModeExit()
  95. {
  96. TextDrawDestroy(spectextdraw1);
  97. TextDrawDestroy(spectextdraw2);
  98. return 1;
  99. }
  100. Hook:spec_OnPlayerUpdate(playerid)
  101. {
  102. new txdstr[50];
  103. new Float:health, spectator = beingSpectatedID[playerid], Float:armor;
  104. if(IsPlayerConnected(spectator) && IsPlayerConnected(playerid))
  105. {
  106. if(Spectated[playerid])
  107. {
  108. GetPlayerArmour(playerid, armor);
  109. GetPlayerHealth(playerid, health);
  110. format(txdstr, sizeof(txdstr), "Health: %.1f", health);
  111. PlayerTextDrawSetString(spectator, spechptxd[spectator], txdstr);
  112. format(txdstr, sizeof(txdstr), "Armor: %.1f", armor);
  113. PlayerTextDrawSetString(spectator, specarmortxd[spectator], txdstr);
  114. format(txdstr, sizeof(txdstr), "Ping: %d", GetPlayerPing(playerid));
  115. PlayerTextDrawSetString(spectator, specpingtxd[spectator], txdstr);
  116. }
  117. }
  118. return 1;
  119. }
  120. public ShowSpectateTextDraws(playerid, giveplayerid)
  121. {
  122. new txdstr[50];
  123. GetPlayerArmour(giveplayerid, PlayerInfo[giveplayerid][pArmor]);
  124. GetPlayerHealth(giveplayerid, PlayerInfo[giveplayerid][pHealth]);
  125. format(txdstr, sizeof(txdstr), "%s (ID %d)", PlayerName(giveplayerid), giveplayerid);
  126. PlayerTextDrawSetString(playerid, specnametxd[playerid], txdstr);
  127. format(txdstr, sizeof(txdstr), "Level: %d", PlayerInfo[giveplayerid][pLevel]);
  128. PlayerTextDrawSetString(playerid, specleveltxd[playerid], txdstr);
  129. format(txdstr, sizeof(txdstr), "Armor: %.1f", PlayerInfo[giveplayerid][pArmor]);
  130. PlayerTextDrawSetString(playerid, specarmortxd[playerid], txdstr);
  131. format(txdstr, sizeof(txdstr), "Health: %.1f", PlayerInfo[giveplayerid][pHealth]);
  132. PlayerTextDrawSetString(playerid, spechptxd[playerid], txdstr);
  133. format(txdstr, sizeof(txdstr), "Ping: %d", GetPlayerPing(giveplayerid));
  134. PlayerTextDrawSetString(playerid, specpingtxd[playerid], txdstr);
  135. TextDrawShowForPlayer(playerid, spectextdraw1);
  136. TextDrawShowForPlayer(playerid, spectextdraw2);
  137. PlayerTextDrawShow(playerid, specnametxd[playerid]);
  138. PlayerTextDrawShow(playerid, specleveltxd[playerid]);
  139. PlayerTextDrawShow(playerid, specarmortxd[playerid]);
  140. PlayerTextDrawShow(playerid, spechptxd[playerid]);
  141. PlayerTextDrawShow(playerid, specpingtxd[playerid]);
  142. return 1;
  143. }
  144. public HideSpectateTextDraws(playerid)
  145. {
  146. TextDrawHideForPlayer(playerid, spectextdraw1);
  147. TextDrawHideForPlayer(playerid, spectextdraw2);
  148. PlayerTextDrawHide(playerid, specnametxd[playerid]);
  149. PlayerTextDrawHide(playerid, specleveltxd[playerid]);
  150. PlayerTextDrawHide(playerid, specarmortxd[playerid]);
  151. PlayerTextDrawHide(playerid, spechptxd[playerid]);
  152. PlayerTextDrawHide(playerid, specpingtxd[playerid]);
  153. return 1;
  154. }