Advertisement
Guest User

Untitled

a guest
Jul 29th, 2017
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. #include <a_samp>
  2. #include <sscanf2>
  3. #include <zcmd>
  4.  
  5. new Text:Map[4], Text:PlayerDraw[MAX_PLAYERS], Text:StatsDraw[MAX_PLAYERS];
  6. new bool:ShowMap[MAX_PLAYERS];
  7.  
  8.  
  9. public OnFilterScriptInit()
  10. {
  11. Map[0] = TextDrawCreate(330.000030, 263.681488, "samaps:map");
  12. TextDrawLetterSize(Map[0], 0.000000, 0.000000);
  13. TextDrawTextSize(Map[0], 149.000000, 98.000000);
  14. TextDrawAlignment(Map[0], 1);
  15. TextDrawColor(Map[0], -1);
  16. TextDrawSetShadow(Map[0], 0);
  17. TextDrawSetOutline(Map[0], 0);
  18. TextDrawBackgroundColor(Map[0], 255);
  19. TextDrawFont(Map[0], 4);
  20. TextDrawSetProportional(Map[0], 0);
  21. TextDrawSetShadow(Map[0], 0);
  22.  
  23. return 1;
  24. }
  25.  
  26. public OnPlayerUpdate(playerid)
  27. {
  28. if(ShowMap[playerid]) UpdateMap(playerid);
  29. return 1;
  30. }
  31.  
  32. stock CheckMapCords(Float:x, Float:y, &Float:X, &Float:Y)
  33. {
  34. // velikost mapy td = 151.000000, 138.000000
  35. // pozice levého horního td = 324.500000, 249.937500
  36.  
  37. X = clamp(x, -3000, 3000) * (149 / 6000) + 330.0 + 149/2; // x velikost mapy, x souřadnice levého td
  38. Y = -clamp(y, 0, 3000) * (98 / 6000) + 263.681488 + 98/2; // y velikost mapy, y souřadnice levého td
  39. }
  40.  
  41. stock CreatePlayerMapDraws(playerid,giveplayerid)
  42. {
  43. if(!ShowMap[playerid]) return 1;
  44. new string[50], Float:x, Float:y, Float:z, Float:Pos_X, Float:Pos_Y;
  45. GetPlayerPos(giveplayerid, x, y, z);
  46. CheckMapCords(x, y, Pos_X, Pos_Y);
  47. PlayerDraw[playerid] = TextDrawCreate(Pos_X, Pos_Y, ".");
  48. TextDrawFont(PlayerDraw[playerid], 1);
  49. TextDrawLetterSize(PlayerDraw[playerid], 0.49, 2.9);
  50. TextDrawColor(PlayerDraw[playerid], 0xFAAA3CFF);
  51. TextDrawSetOutline(PlayerDraw[playerid], 1);
  52. new Name[24];
  53. GetPlayerName(giveplayerid,Name,24);
  54. format(string, sizeof(string), "Marker", giveplayerid, Name);
  55. StatsDraw[playerid] = TextDrawCreate(Pos_X-10, Pos_Y+10, string);
  56. TextDrawFont(StatsDraw[playerid], 1);
  57. TextDrawLetterSize(StatsDraw[playerid], 0.16, 0.6);
  58. TextDrawColor(StatsDraw[playerid], 0xFFFFFFFF);
  59. TextDrawSetOutline(StatsDraw[playerid], 1);
  60. TextDrawShowForPlayer(playerid, PlayerDraw[playerid]);
  61. TextDrawShowForPlayer(playerid, StatsDraw[playerid]);
  62. return true;
  63. }
  64.  
  65. stock DestroyPlayerMapDraws(playerid)
  66. {
  67. TextDrawHideForAll(PlayerDraw[playerid]);
  68. TextDrawDestroy(PlayerDraw[playerid]);
  69. TextDrawHideForAll(StatsDraw[playerid]);
  70. TextDrawDestroy(StatsDraw[playerid]);
  71. return true;
  72. }
  73.  
  74. stock UpdateMap(playerid)
  75. {
  76. if(GetPlayerState(playerid) != PLAYER_STATE_SPECTATING)
  77. {
  78. DestroyPlayerMapDraws(playerid);
  79. if(IsPlayerConnected(playerid))
  80. {
  81. CreatePlayerMapDraws(playerid,playerid);
  82. }
  83. }
  84. return true;
  85. }
  86. stock TogglePlayerMap(playerid, toggle)
  87. {
  88. if(toggle == 1)
  89. {
  90. if(!ShowMap[playerid])
  91. {
  92. new Float:X, Float:Y, Float:Z;
  93. GetPlayerCameraPos(playerid, X, Y, Z);
  94. if(X == -1795 && Y == 1735 && Z == -99) return SendClientMessage(playerid, -1, "");
  95. TextDrawShowForPlayer(playerid, Map[0]);
  96. TextDrawShowForPlayer(playerid, Map[1]);
  97. TextDrawShowForPlayer(playerid, Map[2]);
  98. TextDrawShowForPlayer(playerid, Map[3]);
  99. ShowMap[playerid] = true;
  100. TextDrawShowForPlayer(playerid, PlayerDraw[playerid]);
  101. TextDrawShowForPlayer(playerid, StatsDraw[playerid]);
  102. }
  103. }
  104. else
  105. {
  106. TextDrawHideForPlayer(playerid, PlayerDraw[playerid]);
  107. TextDrawHideForPlayer(playerid, StatsDraw[playerid]);
  108. TextDrawHideForPlayer(playerid, Map[0]);
  109. TextDrawHideForPlayer(playerid, Map[1]);
  110. TextDrawHideForPlayer(playerid, Map[2]);
  111. TextDrawHideForPlayer(playerid, Map[3]);
  112. ShowMap[playerid] = false;
  113. }
  114. return true;
  115. }
  116.  
  117. CMD:su(playerid, params[])
  118. {
  119. if(!ShowMap[playerid])
  120. {
  121. if(sscanf(params,"d",params[0])) return SendClientMessage(playerid, -1, ": /su [ID]");
  122. if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid,-1,"");
  123. SetPVarInt(playerid,"give_id",params[0]);
  124. TogglePlayerMap(playerid, 1);
  125. }
  126. else
  127. {
  128. DeletePVar(playerid,"give_id");
  129. TogglePlayerMap(playerid, 0);
  130. SendClientMessage(playerid,-1,"");
  131. }
  132. return 1;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement