Advertisement
Guest User

criadorradar

a guest
Oct 4th, 2014
2,144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.89 KB | None | 0 0
  1. #include <a_samp>
  2. #include zcmd
  3. #include sscanf
  4. #include dof2
  5. #define MAX_RADAR 100
  6.  
  7. #define PastaRadares "Radares/Radar%d.ini"
  8.  
  9. static
  10. lString[256],
  11. radarid[MAX_PLAYERS],
  12. vel,
  13. Text3D:TRadar[MAX_RADAR],
  14. Variavel[MAX_PLAYERS],
  15. ObjetoRadar[2][MAX_RADAR],
  16. CriandoRadar,
  17. Float:PosX,
  18. Float:PosY,
  19. Float:PosZ,
  20. Float:Angulo;
  21. enum radar {
  22. Float:lPosX,
  23. Float:lPosY,
  24. Float:lPosZ,
  25. Float:lAngulo,
  26. lVelocidade,
  27. };
  28. new InfoRadar[MAX_RADAR][radar];
  29.  
  30.  
  31. public OnFilterScriptInit()
  32. {
  33. CarregarRadares();
  34. return 1;
  35. }
  36.  
  37. public OnFilterScriptExit()
  38. {
  39. SalvarRadares();
  40. DOF2_Exit();
  41. return 1;
  42. }
  43.  
  44. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  45. {
  46. if(dialogid == 3030)
  47. {
  48. if(response)
  49. {
  50. static
  51. strradar[100];
  52. GetPlayerPos(playerid, PosX,PosY,PosZ);
  53. GetPlayerFacingAngle(playerid, Angulo);
  54. IdRadarLivre(playerid);
  55. InfoRadar[radarid[playerid]][lPosX] = PosX;
  56. InfoRadar[radarid[playerid]][lPosY] = PosY;
  57. InfoRadar[radarid[playerid]][lPosZ] = PosZ-1.5;
  58. InfoRadar[radarid[playerid]][lAngulo] = Angulo;
  59. InfoRadar[radarid[playerid]][lVelocidade] = vel;
  60. ObjetoRadar[0][radarid[playerid]] = CreateObject(18880, InfoRadar[radarid[playerid]][lPosX], InfoRadar[radarid[playerid]][lPosY], InfoRadar[radarid[playerid]][lPosZ], 0.0, 0.0, InfoRadar[radarid[playerid]][lAngulo]);
  61. ObjetoRadar[1][radarid[playerid]] = CreateObject(18880, InfoRadar[radarid[playerid]][lPosX], InfoRadar[radarid[playerid]][lPosY], InfoRadar[radarid[playerid]][lPosZ], 0.0, 0.0, InfoRadar[radarid[playerid]][lAngulo] + 180.0);
  62. format(strradar, sizeof(strradar),"{FF0000}Radar\nLimite de velocidade: %d KM/H",InfoRadar[radarid[playerid]][lVelocidade]);
  63. TRadar[radarid[playerid]] = Text3D:Create3DTextLabel(strradar, -1, InfoRadar[radarid[playerid]][lPosX], InfoRadar[radarid[playerid]][lPosY], InfoRadar[radarid[playerid]][lPosZ]+1, 50.0, 0);
  64. format(lString, sizeof(lString),"Radar ID: %d criado.",radarid[playerid]);
  65. SendClientMessage(playerid, 0x004C00FF, lString);
  66. SetPlayerPos(playerid, PosX+1,PosY+1,PosZ+1);
  67. CriandoRadar = 0;
  68. SalvarRadares();
  69. }
  70. else
  71. {
  72. CriandoRadar = 0;
  73. SendClientMessage(playerid, 0xFFFFFFFF,"Você fechou o dialog de criar radar!");
  74. }
  75. }
  76. return 1;
  77. }
  78.  
  79. public OnPlayerUpdate(playerid)
  80. {
  81. CheckRadar(playerid);
  82. return 1;
  83. }
  84.  
  85. CMD:v(playerid)
  86. {
  87. new Float:x,Float:y,Float:z;
  88. GetPlayerPos(playerid, x,y,z);
  89. CreateVehicle(522,x,y,z,0,-1,-1,-1);
  90. return 1;
  91. }
  92.  
  93. CMD:comandos(playerid)
  94. {
  95. SendClientMessage(playerid, -1,"/criarradar | /deletarradar - Comandos apenas para admin rcon!");
  96. SendClientMessage(playerid, -1, "Sistema de criar radar por Living(Living_22) qualquer erro entre em contato com o mesmo!");
  97. return true;
  98. }
  99.  
  100. CMD:deletarradar(playerid, params[])
  101. {
  102. new id, strpasta[200];
  103. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xB40000FF,"Você não é um administrador!");
  104. if(sscanf(params, "d", id)) return SendClientMessage(playerid, -1, "Digite: /deletarradar [Id do radar]");
  105. format(strpasta, sizeof(strpasta), PastaRadares, id);
  106. if(DOF2_FileExists(strpasta))
  107. {
  108. DOF2_RemoveFile(strpasta);
  109. format(lString, sizeof(lString), "Você deletou o radar de ID: %d.", id);
  110. SendClientMessage(playerid, 0xFF0000FF,lString);
  111. DestroyObject(ObjetoRadar[0][id]);
  112. DestroyObject(ObjetoRadar[1][id]);
  113. Delete3DTextLabel(TRadar[id]);
  114. InfoRadar[id][lPosX] = 0;
  115. InfoRadar[id][lPosY] = 0;
  116. InfoRadar[id][lPosZ] = 0;
  117. InfoRadar[id][lAngulo] = 0;
  118. InfoRadar[id][lVelocidade] = 999;
  119. return 1;
  120. }
  121. else
  122. {
  123. format(lString, sizeof(lString), "O radar de ID: %d não existe.", id);
  124. SendClientMessage(playerid, 0xFF0000FF, lString);
  125. }
  126. return 1;
  127. }
  128.  
  129. CMD:criarradar(playerid, params[])
  130. {
  131. new velocidade;
  132. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xB40000FF,"Você não é um administrador!");
  133. if(CriandoRadar == 1) return SendClientMessage(playerid,0xB40000FF, "Já tem alguém criando um radar, aguarde por favor!");
  134. if(sscanf(params,"d",velocidade)) return SendClientMessage(playerid, 0x999C9BFF,"Digite: /criarradar [velocidade]");
  135. vel = velocidade;
  136. GetPlayerPos(playerid, PosX,PosY,PosZ);
  137. GetPlayerFacingAngle(playerid, Angulo);
  138. TogglePlayerControllable(playerid, true);
  139. SetPlayerPos(playerid, PosX,PosY,PosZ);
  140. format(lString, sizeof(lString),"{FFFFFF}Você deseja mesmo criar um radar neste local?\n\n");
  141. format(lString, sizeof(lString),"%s{00B4FF}Posição X: {FFFFFF}%0.4f\n{00B4FF}Posição Y: {FFFFFF} %0.4f\n{00B4FF}Posição Z: {FFFFFF} %0.4f\n{00B4FF}Angulo: {FFFFFF}%0.4f\n{00B4FF}Velocidade: {FFFFFF}%d",lString,PosX,PosY,PosZ,Angulo,velocidade);
  142. CriandoRadar = 1;
  143. ShowPlayerDialog(playerid, 3030, DIALOG_STYLE_MSGBOX, "Criador de radar",lString, "Criar","Cancelar");
  144. return 1;
  145. }
  146.  
  147. forward CarregarRadares();
  148. public CarregarRadares()
  149. {
  150. new
  151. strradar[100],
  152. strpasta[200];
  153.  
  154. for(new rad=0;rad<MAX_RADAR; rad++)
  155. {
  156. format(strpasta,sizeof(strpasta),PastaRadares,rad);
  157. if(DOF2_FileExists(strpasta))
  158. {
  159. InfoRadar[rad][lVelocidade] = DOF2_GetInt(strpasta,"Velocidade");
  160. InfoRadar[rad][lPosX] = DOF2_GetFloat(strpasta,"PosX");
  161. InfoRadar[rad][lPosY] = DOF2_GetFloat(strpasta,"PosY");
  162. InfoRadar[rad][lPosZ] = DOF2_GetFloat(strpasta,"PosZ");
  163. InfoRadar[rad][lAngulo] = DOF2_GetFloat(strpasta,"Angulo");
  164. ObjetoRadar[0][rad] = CreateObject(18880, InfoRadar[rad][lPosX], InfoRadar[rad][lPosY], InfoRadar[rad][lPosZ], 0.0, 0.0, InfoRadar[rad][lAngulo]);
  165. ObjetoRadar[1][rad] = CreateObject(18880, InfoRadar[rad][lPosX], InfoRadar[rad][lPosY], InfoRadar[rad][lPosZ], 0.0, 0.0, InfoRadar[rad][lAngulo] + 180.0);
  166. format(strradar, sizeof(strradar),"{FF0000}Radar\nLimite de velocidade: %d KM/H",InfoRadar[rad][lVelocidade]);
  167. TRadar[rad] = Text3D:Create3DTextLabel(strradar, -1, InfoRadar[rad][lPosX], InfoRadar[rad][lPosY], InfoRadar[rad][lPosZ]+1, 50.0, 0);
  168. }
  169. }
  170. return 1;
  171. }
  172.  
  173. forward SalvarRadares();
  174. public SalvarRadares()
  175. {
  176. new
  177. strpasta[200];
  178.  
  179. for(new rad=0;rad<MAX_RADAR; rad++)
  180. {
  181. format(strpasta,sizeof(strpasta),PastaRadares,rad);
  182. if(DOF2_FileExists(strpasta))
  183. {
  184. DOF2_SetInt(strpasta,"Velocidade",InfoRadar[rad][lVelocidade]);
  185. DOF2_SetFloat(strpasta,"PosX",InfoRadar[rad][lPosX]);
  186. DOF2_SetFloat(strpasta,"PosY",InfoRadar[rad][lPosY]);
  187. DOF2_SetFloat(strpasta,"PosZ",InfoRadar[rad][lPosZ]);
  188. DOF2_SetFloat(strpasta,"Angulo",InfoRadar[rad][lAngulo]);
  189. }
  190. }
  191. return 1;
  192. }
  193.  
  194. forward CheckRadar(playerid);
  195. public CheckRadar(playerid)
  196. {
  197. new
  198. Float:PlayerSpeedDistance,
  199. VelocidadeDoPlayer[MAX_PLAYERS];
  200.  
  201. GetVehicleVelocity(GetPlayerVehicleID(playerid), PosX, PosY, PosZ);
  202. PlayerSpeedDistance = floatmul(floatsqroot(floatadd(floatadd(floatpower(PosX, 2), floatpower(PosY, 2)), floatpower(PosZ, 2))), 170.0);
  203. new spe = floatround(PlayerSpeedDistance * 1);
  204. VelocidadeDoPlayer[playerid] = spe;
  205. for(new rad = 0; rad < MAX_RADAR; rad++)
  206. {
  207. if(IsPlayerInRangeOfPoint(playerid, 8.0, InfoRadar[rad][lPosX],InfoRadar[rad][lPosY],InfoRadar[rad][lPosZ]))
  208. {
  209. if(VelocidadeDoPlayer[playerid] > InfoRadar[rad][lVelocidade])
  210. {
  211. if(gettime() > Variavel[playerid])
  212. {
  213. Variavel[playerid] = (gettime() + 1);
  214. format(lString, sizeof(lString),"(Radar) Você ultrapassou o limite de velocidade, o limite é {FFFFFF}%d KM/H{FD0600} e você passou a {FFFFFF}%d KM/H!",InfoRadar[rad][lVelocidade],VelocidadeDoPlayer[playerid]);
  215. SendClientMessage(playerid, 0xFD0600FF,lString);
  216. SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+1);
  217. }
  218. }
  219. }
  220. }
  221. return 1;
  222. }
  223.  
  224. stock IdRadarLivre(playerid)
  225. {
  226. static
  227. rstring[74];
  228. for(new i; i< MAX_RADAR; i++)
  229. {
  230. format(rstring, sizeof rstring, PastaRadares, i);
  231. if(!DOF2_FileExists(rstring))
  232. {
  233. radarid[playerid] = i;
  234. DOF2_CreateFile(rstring);
  235. return 1;
  236. }
  237. }
  238. return 0;
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement