Advertisement
Hirsw0w

Pickup text

Jul 15th, 2014
296
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.60 KB | None | 0 0
  1. /*
  2. -------------------------------------------------------------
  3. Pickup Text By Hirsw0w
  4. -------------------------------------------------------------
  5.  
  6. Made By Hirsw0w,
  7. Version: 1.0.
  8.  
  9. Bugs: No have.
  10.  
  11. Descrption: Pickup text, that replace the normal pickup you know.
  12.  
  13. Functions:
  14. HPText_CreatePickup(playerid, Type, Text[],color,Float:x,Float:y,Float:z,Float:DrawDistance,virtualworld,Float:r) // create a pickup text.
  15. HPText_DeletePickup(ptextid) // Delete a pickup text.
  16.  
  17. Enjoy!
  18. */
  19. #if defined _hptext_included
  20. #endinput
  21. #endif
  22. #define _hptext_included
  23.  
  24. #define MAX_PText 255
  25.  
  26. #define PTEXT_PER 0
  27. #define PTEXT_ONE 1
  28.  
  29. forward OnPlayerPickupPickupText(playerid,ptextid);
  30.  
  31. new HTimer[MAX_PLAYERS],bool:HTouch[MAX_PLAYERS][MAX_PText];
  32.  
  33. enum TextPickup {
  34. HPID,
  35. HType,
  36. HText[256],
  37. Float:Hx,
  38. Float:Hy,
  39. Float:Hz,
  40. Float:Hdd,
  41. Hvw,
  42. Float:Hr,
  43. Text3D:HTextAll,
  44. PlayerText3D:HTextPlayer
  45. }
  46.  
  47. new HPText[MAX_PText][TextPickup];
  48.  
  49. public OnPlayerConnect(playerid) {
  50. HTimer[playerid] = SetTimerEx("HPText_CheckPlayer",500,true,"d",playerid);
  51. for(new i;i < MAX_PText;i++) HTouch[playerid][i] = false;
  52. return 1;
  53. }
  54.  
  55. #if defined _ALS_OnPlayerConnect
  56. #undef OnPlayerConnect
  57. #else
  58. #define _ALS_OnPlayerConnect
  59. #endif
  60. #define OnPlayerConnect H3DPickup_OnPlayerConnect
  61.  
  62. public OnPlayerDisconnect(playerid) KillTimer(HTimer[playerid]);
  63.  
  64. #if defined _ALS_OnPlayerDisconnect
  65. #undef OnPlayerDisconnect
  66. #else
  67. #define _ALS_OnPlayerDisconnect
  68. #endif
  69. #define OnPlayerConnect H3DPickup_OnPlayerDisconnect
  70.  
  71. forward HPText_CheckPlayer(playerid);
  72. public HPText_CheckPlayer(playerid) {
  73. for(new i;i < MAX_PText;i++) {
  74. if(!strlen(HPText[i][HText])) continue;
  75. else if(HPText[i][HPID] != -1 && HPText[i][HPID] != playerid) continue;
  76. else if(GetPlayerVirtualWorld(playerid != HPText[i][Hvw])) continue;
  77. else if(!IsPlayerInRangeOfPoint(playerid,HPText[i][Hr],HPText[i][Hx],HPText[i][Hy],HPText[i][Hz])) {
  78. HTouch[playerid][i] = false;
  79. continue;
  80. }
  81. if(HTouch[playerid][i]) continue;
  82. CallLocalFunction("OnPlayerPickupPickupText","dd",playerid,i);
  83. HTouch[playerid][i] = HPText[i][HType] == PTEXT_ONE ? false:true;
  84.  
  85. if(HPText[i][HType] == PTEXT_ONE) HPText_DeletePickup(i);
  86. }
  87. return 1;
  88. }
  89.  
  90. stock HPText_CreatePickup(playerid, Type, Text[],color,Float:x,Float:y,Float:z,Float:DrawDistance,virtualworld,Float:r) {
  91. if(!strlen(Text) || r <= 0.0) return -1;
  92.  
  93. new i = HPText_GetVaildPlace();
  94. HPText[i][HPID] = playerid;
  95. HPText[i][HType] = Type;
  96. format(HPText[i][HText],256,Text);
  97. HPText[i][Hx] = x,HPText[i][Hy] = y,HPText[i][Hz] = z,HPText[i][Hdd] = DrawDistance;
  98. HPText[i][Hvw] = virtualworld,HPText[i][Hr] = r;
  99.  
  100. if(playerid == -1) HPText[i][HTextAll] = Create3DTextLabel(Text,color,x,y,z,DrawDistance,virtualworld);
  101. else HPText[i][HTextPlayer] = CreatePlayer3DTextLabel(playerid,Text,color,x,y,z,DrawDistance);
  102. return i;
  103. }
  104.  
  105. stock HPText_DeletePickup(ptextid) {
  106. if(!strlen(HPText[ptextid][HText])) return false;
  107.  
  108.  
  109. if(HPText[ptextid][HPID] == -1) Delete3DTextLabel(HPText[ptextid][HTextAll]);
  110. else DeletePlayer3DTextLabel(HPText[ptextid][HPID],HPText[ptextid][HTextPlayer]);
  111.  
  112. HPText[ptextid][HPID] = -1,HPText[ptextid][HType] = -1;
  113. format(HPText[ptextid][HText],256,"");
  114. HPText[ptextid][Hx] = 0.0,HPText[ptextid][Hy] = 0.0,HPText[ptextid][Hz] = 0.0,HPText[ptextid][Hdd] = 0.0,HPText[ptextid][Hvw] = -1,HPText[ptextid][Hr] = 0.0;
  115. return true;
  116. }
  117.  
  118. stock HPText_GetVaildPlace() {
  119. for(new i;i < MAX_PText;i++) if(!strlen(HPText[i][HText])) return i;
  120.  
  121. return -1;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement