Advertisement
Guest User

Untitled

a guest
Dec 16th, 2014
4,164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.45 KB | None | 0 0
  1. #include <a_samp>
  2. #include <streamer>
  3. #include <YSI\y_iterate>
  4. #include <YSI\y_commands>
  5.  
  6. // Map scale is 2000:1
  7. #define MAP_RESCALE 2000.0
  8.  
  9. #define RADAR_MAP_ZOFFSET -0.6
  10.  
  11. static RadarBlipShown[MAX_PLAYERS];
  12. static RadarBlip[MAX_PLAYERS];
  13. static Text3D:Radar3DText[MAX_PLAYERS];
  14.  
  15. static Float:MAP_OFF_X = 0.0;
  16. static Float:MAP_OFF_Y = 0.0;
  17. static Float:MAP_OFF_Z = 0.0;
  18.  
  19. enum RADAROBJECTOFFSETS
  20. {
  21. RadarMapObject,
  22. Float:RadarOffX,
  23. Float:RadarOffY,
  24. Float:RadarOffZ,
  25. }
  26.  
  27. static MapPieces[8][RADAROBJECTOFFSETS];
  28.  
  29. public OnFilterScriptInit()
  30. {
  31. new index;
  32. MapPieces[index++][RadarMapObject] = CreateDynamicObject(19168,-0.750,0.750,0.000,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  33. MapPieces[index++][RadarMapObject] = CreateDynamicObject(19169,0.750,0.750,0.000,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  34. MapPieces[index++][RadarMapObject] = CreateDynamicObject(19170,-0.750,-0.750,0.000,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  35. MapPieces[index++][RadarMapObject] = CreateDynamicObject(19171,0.750,-0.750,0.000,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  36. MapPieces[index][RadarMapObject] = CreateDynamicObject(19362,1.495,-0.014,-1.750,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  37. SetDynamicObjectMaterial(MapPieces[index++][RadarMapObject], 0, 6056, "venice_law", "law_blue4", -10079488);
  38. MapPieces[index][RadarMapObject] = CreateDynamicObject(19362,-1.534,-0.014,-1.750,0.000,0.000,0.000,-1,-1,-1,300.000,300.000);
  39. SetDynamicObjectMaterial(MapPieces[index++][RadarMapObject], 0, 6056, "venice_law", "law_blue4", -10079488);
  40. MapPieces[index][RadarMapObject] = CreateDynamicObject(19362,-0.019,1.500,-1.749,0.000,0.000,89.999,-1,-1,-1,300.000,300.000);
  41. SetDynamicObjectMaterial(MapPieces[index++][RadarMapObject], 0, 6056, "venice_law", "law_blue4", -10079488);
  42. MapPieces[index][RadarMapObject] = CreateDynamicObject(19362,-0.019,-1.529,-1.749,0.000,0.000,89.999,-1,-1,-1,300.000,300.000);
  43. SetDynamicObjectMaterial(MapPieces[index++][RadarMapObject], 0, 6056, "venice_law", "law_blue4", -10079488);
  44.  
  45.  
  46. for(new i = 0; i < 8; i++) GetDynamicObjectPos(MapPieces[i][RadarMapObject], MapPieces[i][RadarOffX], MapPieces[i][RadarOffY], MapPieces[i][RadarOffZ]);
  47.  
  48. SetTimer("UpdateRadar", 1000, true);
  49. for(new i = 0; i < MAX_PLAYERS; i++)
  50. {
  51. RadarBlip[i] = CreateDynamicObject(338,0.0,0.0,-1000.0,-4.799,0.000,0.000,-1,-1,-1,300.000,300.000);
  52. SetDynamicObjectMaterial(RadarBlip[i], 0, 10765, "airportgnd_sfse", "white", -6750208);
  53. Radar3DText[i] = CreateDynamic3DTextLabel("_", 0xFF0000FF, 0.0, 0.0, 0.0, 10.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 10.0);
  54. if(IsPlayerConnected(i))
  55. {
  56. new name[MAX_PLAYER_NAME+1];
  57. GetPlayerName(i, name, MAX_PLAYER_NAME+1);
  58. UpdateDynamic3DTextLabelText(Radar3DText[i], 0xFF0000FF, name);
  59. }
  60. }
  61.  
  62. // SetRadarMap(0.0, 0.0, 3.0);
  63.  
  64. return 1;
  65. }
  66.  
  67. stock SetRadarMap(Float:x, Float:y, Float:z)
  68. {
  69. MAP_OFF_X = x;
  70. MAP_OFF_Y = y;
  71. MAP_OFF_Z = z;
  72.  
  73. for(new i = 0; i < 8; i++) SetDynamicObjectPos(MapPieces[i][RadarMapObject], MapPieces[i][RadarOffX]+x, MapPieces[i][RadarOffY]+y, MapPieces[i][RadarOffZ]+z);
  74. return 1;
  75. }
  76.  
  77.  
  78. forward UpdateRadar();
  79. public UpdateRadar()
  80. {
  81. new Float:x, Float:y, Float:z;
  82. foreach(new i : Player)
  83. {
  84. GetPlayerPos(i, x, y, z);
  85. if( (x < 3000.0 && x > -3000.0) &&
  86. (y < 3000.0 && y > -3000.0) &&
  87. (z < 3000.0 && z > -3000.0) )
  88. {
  89. x = (x / MAP_RESCALE) + MAP_OFF_X;
  90. y = (y / MAP_RESCALE) + MAP_OFF_Y;
  91. SetDynamicObjectPos(RadarBlip[i], x, y, RADAR_MAP_ZOFFSET+MAP_OFF_Z);
  92. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_X, x);
  93. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_Y, y);
  94. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_Z, RADAR_MAP_ZOFFSET+MAP_OFF_Z+1.3);
  95. RadarBlipShown[i] = true;
  96. }
  97. else
  98. {
  99. if(RadarBlipShown[i])
  100. {
  101. SetDynamicObjectPos(RadarBlip[i], 0.0, 0.0, -1000.0);
  102. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_X, 0.0);
  103. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_Y, 0.0);
  104. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[i], E_STREAMER_Z, -1000.0);
  105. RadarBlipShown[i] = false;
  106. }
  107. }
  108. if(IsPlayerInRangeOfPoint(i, 15.0, MAP_OFF_X, MAP_OFF_Y, MAP_OFF_Z)) Streamer_Update(i);
  109. }
  110. return 1;
  111. }
  112.  
  113. public OnPlayerConnect(playerid)
  114. {
  115. new name[MAX_PLAYER_NAME+1];
  116. GetPlayerName(playerid, name, MAX_PLAYER_NAME+1);
  117. UpdateDynamic3DTextLabelText(Radar3DText[playerid], 0xFF0000FF, name);
  118. return 1;
  119. }
  120.  
  121.  
  122. public OnPlayerDisconnect(playerid, reason)
  123. {
  124. SetDynamicObjectPos(RadarBlip[playerid], 0.0, 0.0, -1000.0);
  125. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[playerid], E_STREAMER_X, 0.0);
  126. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[playerid], E_STREAMER_Y, 0.0);
  127. Streamer_SetFloatData(STREAMER_TYPE_3D_TEXT_LABEL, Radar3DText[playerid], E_STREAMER_Z, -1000.0);
  128. RadarBlipShown[playerid] = false;
  129. return 1;
  130. }
  131.  
  132. /* Test Command
  133. CMD:setradar(playerid, arg[])
  134. {
  135. new Float:x, Float:y, Float:z, Float:fa;
  136. GetPlayerPos(playerid, x, y, z);
  137. GetPlayerFacingAngle(playerid, fa);
  138.  
  139. x = (x + 3.0 * floatsin(-fa,degrees));
  140. y = (y + 3.0 * floatcos(-fa,degrees));
  141.  
  142. SetRadarMap(x, y, z);
  143. return 1;
  144. }
  145. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement