Advertisement
Guest User

DINAMICNO KREIRANJE M. GARAZA BY FRANK

a guest
Mar 7th, 2017
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.72 KB | None | 0 0
  1. //------------------------------------------------------------------------------
  2. //
  3. //
  4. // //////////////////////Dinamicno kreiranje mehanicarske garaze////////////////
  5. // ///////////////////////////////////by FranK//////////////////////////////////
  6. // //////////////////////Potreban RCON LOGIN////////////////////////////////////
  7. // //////////////////////BALKAN-SAMP.COM///////////////////////////////////////
  8. //
  9. //
  10. //------------------------------------------------------------------------------
  11.  
  12. #include <a_samp>
  13. #include <Dini>
  14. #define FILTERSCRIPT
  15.  
  16. //------------------------------------------------------------------------------
  17.  
  18. #define CREATEGARAGE 500
  19. #define LABELCOLOR 501
  20. #define FIXPRICE 502
  21. #define COLORPRICE 503
  22. #define FIX 504
  23. #define COLORCHANGE 505
  24. #define MAX_GARAGES 50
  25. #define OBJECTM 12929
  26.  
  27. //------------------------------------------------------------------------------
  28.  
  29. enum gr
  30. {
  31. Float:xgarage,
  32. Float:ygarage,
  33. Float:zgarage,
  34. Float:xrgarage,
  35. Float:yrgarage,
  36. Float:zrgarage,
  37. fixprice,
  38. colorprice,
  39. garag,
  40. Text3D:label,
  41. labelcolor,
  42. };
  43.  
  44. new Garage[MAX_GARAGES][gr];
  45. new editing[MAX_PLAYERS];
  46. new repair[MAX_PLAYERS];
  47.  
  48. //------------------------------------------------------------------------------
  49. #if defined FILTERSCRIPT
  50.  
  51. public OnFilterScriptInit()
  52. {
  53. print("Dinamicno kreiranje mehanicarske garaze by FranK ucitano");
  54. LoadG();
  55. return 1;
  56. }
  57.  
  58. public OnFilterScriptExit()
  59. {
  60. return 1;
  61. }
  62.  
  63. #else
  64.  
  65. main()
  66. {
  67. print("\n----------------------------------");
  68. print(" Test by Frank");
  69. print("----------------------------------\n");
  70. }
  71.  
  72. #endif
  73.  
  74. public OnGameModeInit()
  75. {
  76. return 1;
  77. }
  78.  
  79. public OnGameModeExit()
  80. {
  81. return 1;
  82. }
  83.  
  84. public OnPlayerRequestClass(playerid, classid)
  85. {
  86. return 1;
  87. }
  88.  
  89. public OnPlayerConnect(playerid)
  90. {
  91. return 1;
  92. }
  93.  
  94. public OnPlayerDisconnect(playerid, reason)
  95. {
  96. return 1;
  97. }
  98.  
  99. public OnPlayerSpawn(playerid)
  100. {
  101. return 1;
  102. }
  103.  
  104. public OnPlayerDeath(playerid, killerid, reason)
  105. {
  106. return 1;
  107. }
  108.  
  109. public OnVehicleSpawn(vehicleid)
  110. {
  111. return 1;
  112. }
  113.  
  114. public OnVehicleDeath(vehicleid, killerid)
  115. {
  116. return 1;
  117. }
  118.  
  119. public OnPlayerText(playerid, text[])
  120. {
  121. return 1;
  122. }
  123.  
  124. public OnPlayerCommandText(playerid, cmdtext[])
  125. {
  126. if(strcmp("/napravigarazu", cmdtext, true, 9) == 0)
  127. {
  128. if(IsPlayerAdmin(playerid))
  129. {
  130. ShowPlayerDialog(playerid, CREATEGARAGE, DIALOG_STYLE_LIST, "Mehanicarska garaza", "Napravi garazu\nEdituj garazu\nIzbrisi garazu\nPromeni boju labela\nPostavi cenu popravke\nPostavi cenu promene boje vozila", "Ok", "Zatvori");
  131. }
  132. return 1;
  133. }
  134. if(strcmp("/garaza", cmdtext, true, 4) == 0)
  135. {
  136. for(new i = 0; i < MAX_GARAGES; i++)
  137. {
  138. if(IsPlayerInRangeOfPoint(playerid, 3.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  139. {
  140. new s[60];
  141. format(s, 60, "Popravi vozilo | %d$\nPromeni boju | %d$", Garage[i][fixprice], Garage[i][colorprice]);
  142. ShowPlayerDialog(playerid, FIX, DIALOG_STYLE_LIST, "Mehanicarska garaza", s, "Ok", "Zatvori");
  143. repair[playerid] = i;
  144. }
  145. }
  146. return 1;
  147. }
  148. return 0;
  149. }
  150.  
  151. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  152. {
  153. return 1;
  154. }
  155.  
  156. public OnPlayerExitVehicle(playerid, vehicleid)
  157. {
  158. return 1;
  159. }
  160.  
  161. public OnPlayerStateChange(playerid, newstate, oldstate)
  162. {
  163. return 1;
  164. }
  165.  
  166. public OnPlayerEnterCheckpoint(playerid)
  167. {
  168. return 1;
  169. }
  170.  
  171. public OnPlayerLeaveCheckpoint(playerid)
  172. {
  173. return 1;
  174. }
  175.  
  176. public OnPlayerEnterRaceCheckpoint(playerid)
  177. {
  178. return 1;
  179. }
  180.  
  181. public OnPlayerLeaveRaceCheckpoint(playerid)
  182. {
  183. return 1;
  184. }
  185.  
  186. public OnRconCommand(cmd[])
  187. {
  188. return 1;
  189. }
  190.  
  191. public OnPlayerRequestSpawn(playerid)
  192. {
  193. return 1;
  194. }
  195.  
  196. public OnObjectMoved(objectid)
  197. {
  198. return 1;
  199. }
  200.  
  201. public OnPlayerObjectMoved(playerid, objectid)
  202. {
  203. return 1;
  204. }
  205.  
  206. public OnPlayerPickUpPickup(playerid, pickupid)
  207. {
  208. return 1;
  209. }
  210.  
  211. public OnVehicleMod(playerid, vehicleid, componentid)
  212. {
  213. return 1;
  214. }
  215.  
  216. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  217. {
  218. return 1;
  219. }
  220.  
  221. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  222. {
  223. return 1;
  224. }
  225.  
  226. public OnPlayerSelectedMenuRow(playerid, row)
  227. {
  228. return 1;
  229. }
  230.  
  231. public OnPlayerExitedMenu(playerid)
  232. {
  233. return 1;
  234. }
  235.  
  236. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  237. {
  238. return 1;
  239. }
  240.  
  241. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  242. {
  243. return 1;
  244. }
  245.  
  246. public OnRconLoginAttempt(ip[], password[], success)
  247. {
  248. return 1;
  249. }
  250.  
  251. public OnPlayerUpdate(playerid)
  252. {
  253. return 1;
  254. }
  255.  
  256. public OnPlayerStreamIn(playerid, forplayerid)
  257. {
  258. return 1;
  259. }
  260.  
  261. public OnPlayerStreamOut(playerid, forplayerid)
  262. {
  263. return 1;
  264. }
  265.  
  266. public OnVehicleStreamIn(vehicleid, forplayerid)
  267. {
  268. return 1;
  269. }
  270.  
  271. public OnVehicleStreamOut(vehicleid, forplayerid)
  272. {
  273. return 1;
  274. }
  275.  
  276. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  277. {
  278. if(dialogid == CREATEGARAGE)
  279. {
  280. if(response)
  281. {
  282. if(listitem == 0)
  283. {
  284. new id = GarageID(), s[20];
  285. format(s, 20, "Garages/%d.ini", id);
  286. if(!fexist(s))
  287. {
  288. dini_Create(s);
  289. GetPlayerPos(playerid, Garage[id][xgarage], Garage[id][ygarage], Garage[id][zgarage]);
  290. Garage[id][garag] = CreateObject(OBJECTM, Garage[id][xgarage], Garage[id][ygarage], Garage[id][zgarage], 0, 0 , 0, 96.0);
  291. Garage[id][label] = Create3DTextLabel("{00BFFF}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[id][xgarage], Garage[id][ygarage], Garage[id][zgarage], 40.0, 0, 0);
  292. EditObject(playerid, Garage[id][garag]);
  293. editing[playerid] = id;
  294. SGarage(id);
  295. }
  296. }
  297. else if(listitem == 1)
  298. {
  299. for(new i = 0; i < MAX_GARAGES; i++)
  300. {
  301. if(IsPlayerInRangeOfPoint(playerid, 10.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  302. {
  303. editing[playerid] = i;
  304. EditObject(playerid,Garage[i][garag]);
  305. }
  306. }
  307. SendClientMessage(playerid, -1, "Trenutno editujes m. garazu.");
  308. }
  309. else if(listitem == 2)
  310. {
  311. for(new i = 0; i < MAX_GARAGES; i++)
  312. {
  313. if(IsPlayerInRangeOfPoint(playerid, 10.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  314. {
  315. new s[30];
  316. format(s, 30,"Garages/%d.ini", i);
  317. if(fexist(s))
  318. {
  319. dini_Remove(s);
  320. Delete3DTextLabel(Garage[i][label]);
  321. DestroyObject(Garage[i][garag]);
  322. format(s, 30,"Mehanicarska garaza %d izbrisana.", i);
  323. SendClientMessage(playerid, -1, s);
  324. }
  325. }
  326. }
  327. }
  328. else if(listitem == 3)
  329. {
  330. for(new i = 0; i < MAX_GARAGES; i++)
  331. {
  332. if(IsPlayerInRangeOfPoint(playerid, 10.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  333. {
  334. editing[playerid] = i;
  335. ShowPlayerDialog(playerid, LABELCOLOR, DIALOG_STYLE_LIST, "Label boja", "Plava\nZelena\nCrvena\nZuta", "Ok", "Zatvori");
  336. }
  337. }
  338. }
  339. else if(listitem == 4)
  340. {
  341. for(new i = 0; i < MAX_GARAGES; i++)
  342. {
  343. if(IsPlayerInRangeOfPoint(playerid, 10.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  344. {
  345. editing[playerid] = i;
  346. ShowPlayerDialog(playerid, FIXPRICE, DIALOG_STYLE_INPUT, "Cena popravke", "Postavi cenu popravke:", "Ok", "Zatvori");
  347. }
  348. }
  349. }
  350. else if(listitem == 5)
  351. {
  352. for(new i = 0; i < MAX_GARAGES; i++)
  353. {
  354. if(IsPlayerInRangeOfPoint(playerid, 10.0, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage]))
  355. {
  356. editing[playerid] = i;
  357. ShowPlayerDialog(playerid, COLORPRICE, DIALOG_STYLE_INPUT, "Promena boje", "Postavi cenu promene boje:", "Ok", "Zatvori");
  358. }
  359. }
  360. }
  361. }
  362. }
  363. if(dialogid == LABELCOLOR)
  364. {
  365. if(response)
  366. {
  367. if(listitem == 0)
  368. {
  369. Garage[editing[playerid]][labelcolor] = 0;
  370. Delete3DTextLabel(Garage[editing[playerid]][label]);
  371. Create3DTextLabel("{00BFFF}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  372. SGarage(editing[playerid]);
  373. SendClientMessage(playerid, -1, "Label boja promenjena.");
  374. }
  375. else if(listitem == 1)
  376. {
  377. Garage[editing[playerid]][labelcolor] = 1;
  378. Delete3DTextLabel(Garage[editing[playerid]][label]);
  379. Create3DTextLabel("{00FF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  380. SGarage(editing[playerid]);
  381. SendClientMessage(playerid,-1,"Label boja promenjena.");
  382. }
  383. else if(listitem == 2)
  384. {
  385. Garage[editing[playerid]][labelcolor] = 2;
  386. Delete3DTextLabel(Garage[editing[playerid]][label]);
  387. Create3DTextLabel("{FF0000}Mehanicarska garaza\n/garaza", 0xFFFFFFFF,Garage[editing[playerid]][xgarage],Garage[editing[playerid]][ygarage],Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  388. SGarage(editing[playerid]);
  389. SendClientMessage(playerid, -1, "Label boja promenjena.");
  390. }
  391. else if(listitem == 3)
  392. {
  393. Garage[editing[playerid]][labelcolor] = 3;
  394. Delete3DTextLabel(Garage[editing[playerid]][label]);
  395. Create3DTextLabel("{FFFF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  396. SGarage(editing[playerid]);
  397. SendClientMessage(playerid, -1, "Label boja promenjena.");
  398. }
  399. }
  400. }
  401. if(dialogid == FIXPRICE)
  402. {
  403. if(response)
  404. {
  405. new s[35];
  406. Garage[editing[playerid]][fixprice] = strval(inputtext);
  407. format(s, 35, "Postavili ste cenu popravke na %d$.", strval(inputtext));
  408. SendClientMessage(playerid, -1, s);
  409. }
  410. }
  411. if(dialogid == COLORPRICE)
  412. {
  413. if(response)
  414. {
  415. new s[42];
  416. Garage[editing[playerid]][colorprice] = strval(inputtext);
  417. format(s, 42, "Postavili ste cenu promene boje na %d$.", strval(inputtext));
  418. SendClientMessage(playerid, -1, s);
  419. }
  420. }
  421. if(dialogid == FIX)
  422. {
  423. if(response)
  424. {
  425. if(listitem == 0)
  426. {
  427. if(GetPlayerMoney(playerid) >= Garage[repair[playerid]][fixprice])
  428. {
  429. SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
  430. RepairVehicle(GetPlayerVehicleID(playerid));
  431. GivePlayerMoney(playerid, -Garage[repair[playerid]][fixprice]);
  432. SendClientMessage(playerid, -1, "Auto popravljeno.");
  433. }
  434. else return SendClientMessage(playerid, -1, "Nemas para burazeru.");
  435. }
  436. else if(listitem == 1)
  437. {
  438. ShowPlayerDialog(playerid, COLORCHANGE, DIALOG_STYLE_INPUT, "Mehanicarska garaza", "Boja vozila:", "Ok", "Zatvori");
  439. }
  440. }
  441. }
  442. if(dialogid == COLORCHANGE)
  443. {
  444. if(response)
  445. {
  446. if(GetPlayerMoney(playerid) >= Garage[repair[playerid]][colorprice])
  447. {
  448. ChangeVehicleColor(GetPlayerVehicleID(playerid), strval(inputtext), strval(inputtext));
  449. SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
  450. RepairVehicle(GetPlayerVehicleID(playerid));
  451. GivePlayerMoney(playerid,-Garage[repair[playerid]][colorprice]);
  452. SendClientMessage(playerid,-1,"Boja vozila promenjena.");
  453. }
  454. else return SendClientMessage(playerid, -1, "Nemas para burazeru.");
  455. }
  456. }
  457. return 1;
  458. }
  459.  
  460. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  461. {
  462. return 1;
  463. }
  464.  
  465. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  466. {
  467. if(response == EDIT_RESPONSE_FINAL)
  468. {
  469. if(objectid == Garage[editing[playerid]][garag])
  470. {
  471. SetObjectPos(objectid, fX, fY, fZ);
  472. SetObjectRot(objectid, fRotX, fRotY, fRotZ);
  473. Garage[editing[playerid]][xgarage] = fX;
  474. Garage[editing[playerid]][ygarage] = fY;
  475. Garage[editing[playerid]][zgarage] = fZ;
  476. Garage[editing[playerid]][xrgarage] = fRotX;
  477. Garage[editing[playerid]][yrgarage] = fRotY;
  478. Garage[editing[playerid]][zrgarage] = fRotZ;
  479. SGarage(editing[playerid]);
  480. Delete3DTextLabel(Garage[editing[playerid]][label]);
  481. if(Garage[editing[playerid]][labelcolor] == 0)
  482. {
  483. Garage[editing[playerid]][label] = Create3DTextLabel("{00BFFF}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  484. }
  485. else if(Garage[editing[playerid]][labelcolor] == 1)
  486. {
  487. Garage[editing[playerid]][label] = Create3DTextLabel("{00FF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  488. }
  489. else if(Garage[editing[playerid]][labelcolor] == 2)
  490. {
  491. Garage[editing[playerid]][label] = Create3DTextLabel("{FF0000}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  492. }
  493. else if(Garage[editing[playerid]][labelcolor] == 3)
  494. {
  495. Garage[editing[playerid]][label] = Create3DTextLabel("{FFFF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[editing[playerid]][xgarage], Garage[editing[playerid]][ygarage], Garage[editing[playerid]][zgarage], 30.0, 0, 0);
  496. }
  497. SendClientMessage(playerid, -1, "Garaza editovana.");
  498. }
  499. }
  500. }
  501.  
  502. stock GarageID()
  503. {
  504. new s[20];
  505. for(new i= 0; i < MAX_GARAGES; i++)
  506. {
  507. format(s, 20, "Garages/%d.ini", i);
  508. if(!fexist(s)) return i;
  509. }
  510. return true;
  511. }
  512.  
  513. stock SGarage(id)
  514. {
  515. new s[20];
  516. format(s, 20, "Garages/%d.ini", id);
  517. if(fexist(s))
  518. {
  519. dini_FloatSet(s, "GX", Garage[id][xgarage]);
  520. dini_FloatSet(s, "GY", Garage[id][ygarage]);
  521. dini_FloatSet(s, "GZ", Garage[id][zgarage]);
  522. dini_FloatSet(s, "GXR",Garage[id][xrgarage]);
  523. dini_FloatSet(s, "GYR",Garage[id][yrgarage]);
  524. dini_FloatSet(s, "GZR",Garage[id][zrgarage]);
  525. dini_IntSet(s, "Gprice",Garage[id][fixprice]);
  526. dini_IntSet(s, "Cprice",Garage[id][colorprice]);
  527. dini_IntSet(s, "Labelcolor",Garage[id][labelcolor]);
  528. }
  529. return 1;
  530. }
  531.  
  532. stock LoadG()
  533. {
  534. new s[20];
  535. for(new i = 0; i < MAX_GARAGES; i++)
  536. {
  537. format(s, 20, "Garages/%d.ini", i);
  538. if(fexist(s))
  539. {
  540. Garage[i][xgarage] = dini_Float(s, "GX");
  541. Garage[i][ygarage] = dini_Float(s, "GY");
  542. Garage[i][zgarage] = dini_Float(s, "GZ");
  543. Garage[i][xrgarage] = dini_Float(s, "GXR");
  544. Garage[i][yrgarage] = dini_Float(s, "GYR");
  545. Garage[i][zrgarage] = dini_Float(s, "GZR");
  546. Garage[i][fixprice] = dini_Int(s, "Gprice");
  547. Garage[i][colorprice] = dini_Int(s, "Cprice");
  548. Garage[i][labelcolor] = dini_Int(s, "Labelcolor");
  549. Garage[i][garag] = CreateObject(OBJECTM, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage], Garage[i][xrgarage], Garage[i][yrgarage], Garage[i][zrgarage], 96.0);
  550. if(Garage[i][labelcolor] == 0)
  551. {
  552. Garage[i][label] = Create3DTextLabel("{00BFFF}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage], 30.0, 0, 0);
  553. }
  554. if(Garage[i][labelcolor] == 1)
  555. {
  556. Garage[i][label] = Create3DTextLabel("{00FF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage], 30.0, 0, 0);
  557. }
  558. if(Garage[i][labelcolor] == 2)
  559. {
  560. Garage[i][label] = Create3DTextLabel("{FF0000}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage], 30.0, 0, 0);
  561. }
  562. if(Garage[i][labelcolor] == 3)
  563. {
  564. Garage[i][label] = Create3DTextLabel("{FFFF00}Mehanicarska garaza\n/garaza", 0xFFFFFFFF, Garage[i][xgarage], Garage[i][ygarage], Garage[i][zgarage], 30.0, 0, 0);
  565. }
  566. }
  567. }
  568. return 1;
  569. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement