Advertisement
Guest User

Radar By NDrake

a guest
Feb 23rd, 2015
692
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.58 KB | None | 0 0
  1. //Credits to Y_Less, Dracoblue and Kush.
  2.  
  3. #include <a_samp>
  4. #include <YSI\y_ini>
  5. #include <YSI\y_commands>
  6. #include <streamer>
  7. #include <sscanf2>
  8. #include <foreach>
  9.  
  10. #define DIALOG_REGISTER 1
  11. #define DIALOG_LOGIN 2
  12. #define DIALOG_SUCCESS_1 3
  13. #define DIALOG_SUCCESS_2 4
  14. #define RADAR_EDIT 268
  15. #define RADAR_SPEED 269
  16. #define RADAR_DELETE 270
  17. #define RADAR_RANGE 271
  18. #define RADAR_PRICE 272
  19. #define DIALOG_ORADAR 273
  20. #define CREATE_RADAR 274
  21. #define PATH "/Users/%s.ini"
  22. #define RPATH "Radars/(( Radar ~ %d )).ini"
  23.  
  24. #define COL_WHITE "{FFFFFF}"
  25. #define COL_RED "{F81414}"
  26. #define COL_GREEN "{00FF22}"
  27. #define COL_LIGHTBLUE "{00CED1}"
  28. #define green "{66D16A}"
  29. #define silver "{FFFFFF}"
  30.  
  31. #define SCM SendClientMessage
  32. #define SPD ShowPlayerDialog
  33. #define SPC SetPlayerCheckpoint
  34. #define DPC DisablePlayerCheckpoint
  35. #define SCMA SendClientMessageToAll
  36. #define POS IsPlayerInRangeOfPoint
  37. #define DSL DIALOG_STYLE_LIST
  38. #define DSB DIALOG_STYLE_MSGBOX
  39. #define DSI DIALOG_STYLE_INPUT
  40. #define IPI INVALID_PLAYER_ID
  41.  
  42. enum pInfo
  43. {
  44. pPass,
  45. pCash,
  46. pAdmin,
  47. pKills,
  48. pDeaths
  49. }
  50. new PlayerInfo[MAX_PLAYERS][pInfo];
  51.  
  52. forward LoadUser_data(playerid,name[],value[]);
  53. public LoadUser_data(playerid,name[],value[])
  54. {
  55. INI_Int("Password",PlayerInfo[playerid][pPass]);
  56. INI_Int("Cash",PlayerInfo[playerid][pCash]);
  57. INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  58. INI_Int("Kills",PlayerInfo[playerid][pKills]);
  59. INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  60. return 1;
  61. }
  62.  
  63. #define MAX_RADARS 50
  64. new PlayerText:UERadarTD0[MAX_PLAYERS];
  65. enum rInfo
  66. {
  67. rID,
  68. rPrice,
  69. rSpeed,
  70. rRange,
  71. Float:rPosX,
  72. Float:rPosY,
  73. Float:rPosZ,
  74. Float:rPosrX,
  75. Float:rPosrY,
  76. Float:rPosrZ,
  77. }
  78. new RadarInfo[MAX_RADARS][rInfo];
  79. new Editing[MAX_PLAYERS];
  80. new RadarCaughted[MAX_PLAYERS];
  81.  
  82. forward LoadRadars(radarid,name[],value[]);
  83. public LoadRadars(radarid,name[],value[])
  84. {
  85. INI_Int("ID",RadarInfo[radarid][rID]);
  86. INI_Int("Price",RadarInfo[radarid][rPrice]);
  87. INI_Int("Speed",RadarInfo[radarid][rSpeed]);
  88. INI_Int("Range",RadarInfo[radarid][rRange]);
  89. INI_Float("rPosX",RadarInfo[radarid][rPosX]);
  90. INI_Float("rPosY",RadarInfo[radarid][rPosY]);
  91. INI_Float("rPosZ",RadarInfo[radarid][rPosZ]);
  92. INI_Float("rPosrX",RadarInfo[radarid][rPosrX]);
  93. INI_Float("rPosrY",RadarInfo[radarid][rPosrY]);
  94. INI_Float("rPosrZ",RadarInfo[radarid][rPosrZ]);
  95. return 1;
  96. }
  97. forward SaveRadars(radarid);
  98. public SaveRadars(radarid)
  99. {
  100. new rFile[128];
  101. format(rFile, sizeof(rFile), RPATH, radarid);
  102. new INI:File = INI_Open(rFile);
  103. INI_WriteInt(File,"ID",RadarInfo[radarid][rID]);
  104. INI_WriteInt(File,"Price",RadarInfo[radarid][rPrice]);
  105. INI_WriteInt(File,"Speed",RadarInfo[radarid][rSpeed]);
  106. INI_WriteInt(File,"Range",RadarInfo[radarid][rRange]);
  107. INI_WriteFloat(File,"rPosX",RadarInfo[radarid][rPosX]);
  108. INI_WriteFloat(File,"rPosY",RadarInfo[radarid][rPosY]);
  109. INI_WriteFloat(File,"rPosZ",RadarInfo[radarid][rPosZ]);
  110. INI_WriteFloat(File,"rPosrX",RadarInfo[radarid][rPosrX]);
  111. INI_WriteFloat(File,"rPosrY",RadarInfo[radarid][rPosrY]);
  112. INI_WriteFloat(File,"rPosrZ",RadarInfo[radarid][rPosrZ]);
  113. INI_Close(File);
  114. return 1;
  115. }
  116. stock UserPath(playerid)
  117. {
  118. new string[128],playername[MAX_PLAYER_NAME];
  119. GetPlayerName(playerid,playername,sizeof(playername));
  120. format(string,sizeof(string),PATH,playername);
  121. return string;
  122. }
  123.  
  124. /*Credits to Dracoblue*/
  125. stock udb_hash(buf[]) {
  126. new length=strlen(buf);
  127. new s1 = 1;
  128. new s2 = 0;
  129. new n;
  130. for (n=0; n<length; n++)
  131. {
  132. s1 = (s1 + buf[n]) % 65521;
  133. s2 = (s2 + s1) % 65521;
  134. }
  135. return (s2 << 16) + s1;
  136. }
  137.  
  138. main()
  139. {
  140. print("\n----------------------------------");
  141. print(" Blank Gamemode by your name here");
  142. print("----------------------------------\n");
  143. }
  144.  
  145. public OnGameModeInit()
  146. {
  147. SetGameModeText("Blank Script");
  148. ////////////////////////////////////////////////////////////////////////////
  149. for(new r = 0; r < MAX_RADARS; r++)
  150. {
  151. new rFile[80];
  152. format(rFile, sizeof(rFile), RPATH, r);
  153. if(fexist(rFile))
  154. {
  155. INI_ParseFile(rFile, "LoadRadars", .bExtra = true, .extra = r);
  156. RadarInfo[r][rID] = CreateObject(18880,RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ],RadarInfo[r][rPosrX],RadarInfo[r][rPosrY],RadarInfo[r][rPosrZ],300.0);
  157. }
  158. }
  159. SetTimer("RadarTimer",200,true);
  160. return 1;
  161. }
  162.  
  163. public OnGameModeExit()
  164. {
  165. for(new r = 0; r < MAX_RADARS; r++)
  166. {
  167. new rFile[80];
  168. format(rFile, sizeof(rFile), RPATH, r);
  169. if(fexist(rFile))
  170. {
  171. SaveRadars(r);
  172. return 1;
  173. }
  174. }
  175. return 1;
  176. }
  177.  
  178. public OnPlayerRequestClass(playerid, classid)
  179. {
  180. return 1;
  181. }
  182.  
  183. public OnPlayerConnect(playerid)
  184. {
  185. Editing[playerid] = MAX_RADARS;
  186. RadarCaughted[playerid] = 0;
  187. ////////////////////////////////
  188. UERadarTD0[playerid] = CreatePlayerTextDraw(playerid, 0.000000, 0.000000, "LD_SPAC:white");
  189. PlayerTextDrawLetterSize(playerid, UERadarTD0[playerid], 0.000000, 0.000000);
  190. PlayerTextDrawTextSize(playerid, UERadarTD0[playerid], 640.000000, 448.000000);
  191. PlayerTextDrawAlignment(playerid, UERadarTD0[playerid], 1);
  192. PlayerTextDrawColor(playerid, UERadarTD0[playerid], -1);
  193. PlayerTextDrawSetShadow(playerid, UERadarTD0[playerid], 0);
  194. PlayerTextDrawSetOutline(playerid, UERadarTD0[playerid], 0);
  195. PlayerTextDrawFont(playerid, UERadarTD0[playerid], 4);
  196. ////////////////////////////////
  197. if(fexist(UserPath(playerid)))
  198. {
  199. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  200. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Type your password below to login.","Login","Quit");
  201. }
  202. else
  203. {
  204. ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registering...",""COL_WHITE"Type your password below to register a new account.","Register","Quit");
  205. }
  206. return 1;
  207. }
  208.  
  209. public OnPlayerDisconnect(playerid, reason)
  210. {
  211. new INI:File = INI_Open(UserPath(playerid));
  212. INI_SetTag(File,"data");
  213. INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  214. INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  215. INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  216. INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  217. INI_Close(File);
  218. return 1;
  219. }
  220.  
  221. public OnPlayerSpawn(playerid)
  222. {
  223. return 1;
  224. }
  225.  
  226. public OnPlayerDeath(playerid, killerid, reason)
  227. {
  228. PlayerInfo[killerid][pKills]++;
  229. PlayerInfo[playerid][pDeaths]++;
  230. return 1;
  231. }
  232.  
  233. public OnVehicleSpawn(vehicleid)
  234. {
  235. return 1;
  236. }
  237.  
  238. public OnVehicleDeath(vehicleid, killerid)
  239. {
  240. return 1;
  241. }
  242.  
  243. public OnPlayerText(playerid, text[])
  244. {
  245. return 1;
  246. }
  247.  
  248. public OnPlayerCommandText(playerid, cmdtext[])
  249. {
  250. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
  251. {
  252. // Do something here
  253. return 1;
  254. }
  255. return 0;
  256. }
  257.  
  258. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  259. {
  260. return 1;
  261. }
  262.  
  263. public OnPlayerExitVehicle(playerid, vehicleid)
  264. {
  265. return 1;
  266. }
  267.  
  268. public OnPlayerStateChange(playerid, newstate, oldstate)
  269. {
  270. return 1;
  271. }
  272.  
  273. public OnPlayerEnterCheckpoint(playerid)
  274. {
  275. return 1;
  276. }
  277.  
  278. public OnPlayerLeaveCheckpoint(playerid)
  279. {
  280. return 1;
  281. }
  282.  
  283. public OnPlayerEnterRaceCheckpoint(playerid)
  284. {
  285. return 1;
  286. }
  287.  
  288. public OnPlayerLeaveRaceCheckpoint(playerid)
  289. {
  290. return 1;
  291. }
  292.  
  293. public OnRconCommand(cmd[])
  294. {
  295. return 1;
  296. }
  297.  
  298. public OnPlayerRequestSpawn(playerid)
  299. {
  300. return 1;
  301. }
  302.  
  303. public OnObjectMoved(objectid)
  304. {
  305. return 1;
  306. }
  307.  
  308. public OnPlayerObjectMoved(playerid, objectid)
  309. {
  310. return 1;
  311. }
  312.  
  313. public OnPlayerPickUpPickup(playerid, pickupid)
  314. {
  315. return 1;
  316. }
  317.  
  318. public OnVehicleMod(playerid, vehicleid, componentid)
  319. {
  320. return 1;
  321. }
  322.  
  323. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  324. {
  325. return 1;
  326. }
  327.  
  328. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  329. {
  330. return 1;
  331. }
  332.  
  333. public OnPlayerSelectedMenuRow(playerid, row)
  334. {
  335. return 1;
  336. }
  337.  
  338. public OnPlayerExitedMenu(playerid)
  339. {
  340. return 1;
  341. }
  342.  
  343. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  344. {
  345. return 1;
  346. }
  347.  
  348. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  349. {
  350. return 1;
  351. }
  352.  
  353. public OnRconLoginAttempt(ip[], password[], success)
  354. {
  355. return 1;
  356. }
  357.  
  358. public OnPlayerUpdate(playerid)
  359. {
  360. return 1;
  361. }
  362.  
  363. public OnPlayerStreamIn(playerid, forplayerid)
  364. {
  365. return 1;
  366. }
  367.  
  368. public OnPlayerStreamOut(playerid, forplayerid)
  369. {
  370. return 1;
  371. }
  372.  
  373. public OnVehicleStreamIn(vehicleid, forplayerid)
  374. {
  375. return 1;
  376. }
  377.  
  378. public OnVehicleStreamOut(vehicleid, forplayerid)
  379. {
  380. return 1;
  381. }
  382.  
  383. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  384. {
  385. if(dialogid == DIALOG_ORADAR)
  386. {
  387. if(!response) return 1;
  388. if(response)
  389. {
  390. switch(listitem)
  391. {
  392. case 0:
  393. {
  394. SPD(playerid,CREATE_RADAR,DSI,""green"» "silver"NathanD Script ~ "green"Creating radar",""green"» "silver"To create radar u must enter next:\n"green"» "silver"Speed\n"green"» "silver"Range\n"green"» "silver"Ticket price","Okay","Exit");
  395. }
  396. case 1:
  397. {
  398. SPD(playerid,RADAR_EDIT,DSL,""green"» "silver"NathanD Script ~ "green"Editing radar",""green"» "silver"Position\n"green"» "silver"Speed\n"green"» "silver"Range\n"green"» "silver"Ticket price","Okay","Exit");
  399. }
  400. case 2:
  401. {
  402. SPD(playerid,RADAR_DELETE,DSI,""green"» "silver"NathanD Script ~ "green"Deleting a radar",""green"» "silver"Enter a ID of the radar to delete him","Okay","Exit");
  403. }
  404. }
  405. }
  406. }
  407. if(dialogid == RADAR_DELETE)
  408. {
  409. if(!response) return 1;
  410. if(response)
  411. {
  412. new targetid;
  413. new rFile[64];
  414. if(sscanf(inputtext,"i",targetid)) return SPD(playerid,RADAR_DELETE,DSI,""green"» "silver"NathanD Script ~ "green"Deleting a radar",""green"» "silver"Enter a ID of the radar to delete him","Okay","Exit");
  415. format(rFile, sizeof(rFile), RPATH, targetid);
  416. if(fexist(rFile))
  417. {
  418. RadarInfo[targetid][rRange] = 0;
  419. fremove(rFile);
  420. DestroyObject(RadarInfo[targetid][rID]);
  421. SCM(playerid,-1,"U have deleted a radar");
  422. return 1;
  423. }
  424. else
  425. {
  426. SCM(playerid,-1,"Wrong ID!");
  427. }
  428. }
  429. }
  430. if(dialogid == RADAR_EDIT)
  431. {
  432. if(!response) return 1;
  433. if(response)
  434. {
  435. switch(listitem)
  436. {
  437. case 0:
  438. {
  439. new string[100];
  440. for(new r; r < MAX_RADARS; r++)
  441. {
  442. new rFajl[64];
  443. format(rFajl, sizeof(rFajl), RPATH, r);
  444. if(IsPlayerInRangeOfPoint(playerid, 5.0, RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ]))
  445. {
  446. EditObject(playerid, RadarInfo[r][rID]);
  447. format(string,sizeof(string),"U are now editing positiion of radar ID %d",r);
  448. SCM(playerid,-1,string);
  449. Editing[playerid] = r;
  450. return 1;
  451. }
  452. }
  453. }
  454. case 1:
  455. {
  456. SPD(playerid,RADAR_SPEED,DSI,""green"» "silver"NathanD Script ~ "green"Editing speed",""green"» "silver"Enter a speed noumber","Dobro","Izlaz");
  457.  
  458. }
  459. case 2:
  460. {
  461. SPD(playerid,RADAR_RANGE,DSI,""green"» "silver"NathanD Script ~ "green"Editing range",""green"» "silver"Enter a range(( Recomended 10 ))","Dobro","Izlaz");
  462. }
  463. case 3:
  464. {
  465. SPD(playerid,RADAR_PRICE,DSI,""green"» "silver"NathanD Script ~ "green"Editing ticket price",""green"» "silver"Enter a ticket price","Dobro","Izlaz");
  466. }
  467. }
  468. }
  469. }
  470. if(dialogid == RADAR_PRICE)
  471. {
  472. if(!response) return 1;
  473. if(response)
  474. {
  475. new price;
  476. if(sscanf(inputtext,"i",price)) return SPD(playerid,RADAR_PRICE,DSI,""green"» "silver"NathanD Script ~ "green"Editing ticket price",""green"» "silver"Enter a ticket price","Dobro","Izlaz");
  477. for(new r; r < MAX_RADARS; r++)
  478. {
  479. new rFajl[64];
  480. format(rFajl, sizeof(rFajl), RPATH, r);
  481. if(IsPlayerInRangeOfPoint(playerid, 5.0, RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ]))
  482. {
  483. RadarInfo[r][rPrice] = price;
  484. SaveRadars(r);
  485. break;
  486. }
  487. }
  488. }
  489. }
  490. if(dialogid == RADAR_RANGE)
  491. {
  492. if(!response) return 1;
  493. if(response)
  494. {
  495. new radius;
  496. if(sscanf(inputtext,"i",radius)) return SPD(playerid,RADAR_RANGE,DSI,""green"» "silver"NathanD Script ~ "green"Editing range",""green"» "silver"Enter a range(( Recomended 10 ))","Dobro","Izlaz");
  497. for(new r; r < MAX_RADARS; r++)
  498. {
  499. new rFajl[64];
  500. format(rFajl, sizeof(rFajl), RPATH, r);
  501. if(IsPlayerInRangeOfPoint(playerid, 5.0, RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ]))
  502. {
  503. RadarInfo[r][rRange] = radius;
  504. SaveRadars(r);
  505. break;
  506. }
  507. }
  508. }
  509. }
  510. if(dialogid == RADAR_SPEED)
  511. {
  512. if(!response) return 1;
  513. if(response)
  514. {
  515. new speed;
  516. if(sscanf(inputtext,"i",speed)) return SPD(playerid,RADAR_SPEED,DSI,""green"» "silver"NathanD Script ~ "green"Editing speed",""green"» "silver"Enter a speed noumber","Dobro","Izlaz");
  517. for(new r; r < MAX_RADARS; r++)
  518. {
  519. new rFajl[64];
  520. format(rFajl, sizeof(rFajl), RPATH, r);
  521. if(IsPlayerInRangeOfPoint(playerid, 5.0, RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ]))
  522. {
  523. RadarInfo[r][rSpeed] = speed;
  524. SaveRadars(r);
  525. break;
  526. }
  527. }
  528. }
  529. }
  530. if(dialogid == CREATE_RADAR)
  531. {
  532. if(!response) return 1;
  533. if(response)
  534. {
  535. new speed,radius,price;
  536. if(sscanf(inputtext,"iii",speed,radius,price)) return SPD(playerid,CREATE_RADAR,DSI,""green"» "silver"NathanD Script ~ "green"Creating radar",""green"» "silver"To create radar u must enter next:\n"green"» "silver"Speed\n"green"» "silver"Range\n"green"» "silver"Ticket price","Okay","Exit");
  537. for(new r; r < MAX_RADARS; r++)
  538. {
  539. new rFajl[64];
  540. format(rFajl, sizeof(rFajl), RPATH, r);
  541. if(!fexist(rFajl))
  542. {
  543. new Float:Poz[4];
  544. GetPlayerPos(playerid,Poz[0],Poz[1],Poz[2]);
  545. GetPlayerFacingAngle(playerid,Poz[3]);
  546. RadarInfo[r][rSpeed] = speed;
  547. RadarInfo[r][rRange] = radius;
  548. RadarInfo[r][rPrice] = price;
  549. RadarInfo[r][rPosX] = Poz[0];
  550. RadarInfo[r][rPosY] = Poz[1]+2;
  551. RadarInfo[r][rPosZ] = Poz[2]-1;
  552. SaveRadars(r);
  553. RadarInfo[r][rID] = CreateObject(18880,RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ],RadarInfo[r][rPosrX],RadarInfo[r][rPosrY],RadarInfo[r][rPosrZ],3000.0);
  554. return 1;
  555. }
  556. }
  557. }
  558. }
  559. switch( dialogid )
  560. {
  561. case DIALOG_REGISTER:
  562. {
  563. if (!response) return Kick(playerid);
  564. if(response)
  565. {
  566. if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registering...",""COL_RED"You have entered an invalid password.\n"COL_WHITE"Type your password below to register a new account.","Register","Quit");
  567. new INI:File = INI_Open(UserPath(playerid));
  568. INI_SetTag(File,"data");
  569. INI_WriteInt(File,"Password",udb_hash(inputtext));
  570. INI_WriteInt(File,"Cash",0);
  571. INI_WriteInt(File,"Admin",0);
  572. INI_WriteInt(File,"Kills",0);
  573. INI_WriteInt(File,"Deaths",0);
  574. INI_Close(File);
  575.  
  576. SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  577. SpawnPlayer(playerid);
  578. ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"Great! Your Y_INI system works perfectly. Relog to save your stats!","Ok","");
  579. }
  580. }
  581.  
  582. case DIALOG_LOGIN:
  583. {
  584. if ( !response ) return Kick ( playerid );
  585. if( response )
  586. {
  587. if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  588. {
  589. INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  590. GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  591. ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Success!",""COL_GREEN"You have successfully logged in!","Ok","");
  592. }
  593. else
  594. {
  595. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"You have entered an incorrect password.\n"COL_WHITE"Type your password below to login.","Login","Quit");
  596. }
  597. return 1;
  598. }
  599. }
  600. }
  601. return 1;
  602. }
  603.  
  604. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  605. {
  606. return 1;
  607. }
  608. forward OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ);
  609. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  610. {
  611. if(response == EDIT_RESPONSE_FINAL)
  612. {
  613. if(!playerobject && Editing[playerid] != 0)
  614. {
  615. new i = Editing[playerid];
  616. new string[128];
  617. RadarInfo[i][rPosX] = fX;
  618. RadarInfo[i][rPosY] = fY;
  619. RadarInfo[i][rPosZ] = fZ;
  620. RadarInfo[i][rPosrX] = fRotX;
  621. RadarInfo[i][rPosrY] = fRotY;
  622. RadarInfo[i][rPosrZ] = fRotZ;
  623. Editing[playerid] = 0;
  624. DestroyObject(RadarInfo[i][rID]);
  625. RadarInfo[i][rID] = CreateObject(18880,RadarInfo[i][rPosX],RadarInfo[i][rPosY],RadarInfo[i][rPosZ],RadarInfo[i][rPosrX],RadarInfo[i][rPosrY],RadarInfo[i][rPosrZ],300);
  626. format(string,sizeof(string),"U have finished editirng radar %d",i);
  627. SCM(playerid,-1,string);
  628. SaveRadars(i);
  629. }
  630. }
  631. return 1;
  632. }
  633. YCMD:radaroptions(playerid,params[],help)
  634. {
  635. #pragma unused help
  636. SPD(playerid,DIALOG_ORADAR,DSL,""green"» "silver"NathanD Script ~ "green"Radar",""green"» "silver"Create Radar\n"green"» "silver"Edit Radar\n"green"» "silver"Delete Radar","Okay","Exit");
  637. return 1;
  638. }
  639. forward HideRadarVar(playerid);
  640. public HideRadarVar(playerid)
  641. {
  642. RadarCaughted[playerid] = 0;
  643. PlayerTextDrawHide(playerid,UERadarTD0[playerid]);
  644. return 1;
  645. }
  646. forward ShowRadarTD(playerid);
  647. public ShowRadarTD(playerid)
  648. {
  649. PlayerTextDrawShow(playerid,UERadarTD0[playerid]);
  650. return 1;
  651. }
  652. forward HideRadarTD(playerid);
  653. public HideRadarTD(playerid)
  654. {
  655. PlayerTextDrawHide(playerid,UERadarTD0[playerid]);
  656. return 1;
  657. }
  658. forward RadarTimer();
  659. public RadarTimer()
  660. {
  661. foreach(Player, i)
  662. {
  663. if(IsPlayerConnected(i))
  664. {
  665. if(GetPlayerState(i) == 2)
  666. {
  667. for(new r = 0; r < MAX_RADARS; r++)
  668. {
  669. if(IsPlayerInRangeOfPoint(i,RadarInfo[r][rRange],RadarInfo[r][rPosX],RadarInfo[r][rPosY],RadarInfo[r][rPosZ]))
  670. {
  671. new speed = GetSpeed(i);
  672. if(speed > RadarInfo[r][rSpeed] && RadarCaughted[i] == 0)
  673. {
  674. RadarCaughted[i] = 1;
  675. SetTimerEx("ShowRadarTD",100, false, "i", i);
  676. SetTimerEx("HideRadarTD",300, false, "i", i);
  677. SetTimerEx("HideRadarVar",10000, false, "i", i);
  678. GivePlayerMoney(i, -RadarInfo[r][rPrice]);
  679. new string[128];
  680. format(string,sizeof(string),"Radar coughted you | Your speed %d/%d | %d Have ben taken forum your account",GetSpeed(i),RadarInfo[r][rSpeed],RadarInfo[r][rPrice]);
  681. SCM(i,-1,string);
  682. HideRadarTD(i);
  683. }
  684. }
  685. }
  686. }
  687. }
  688. }
  689. }
  690. stock GetSpeed(playerid)
  691. {
  692. new Float:ST[4];
  693. if(IsPlayerInAnyVehicle(playerid))
  694. GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
  695. else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
  696. ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 178.8617875;
  697. return floatround(ST[3]);
  698. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement