Advertisement
ShomyScript

Sa brisanjem

Feb 2nd, 2019
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.68 KB | None | 0 0
  1. #include < a_samp >
  2. #include < YSI\y_ini >
  3. #include < YSI\y_commands >
  4. #include < sscanf2 >
  5.  
  6. #define MAX_RENTS 30
  7. #define RENT_FILE "/Rent/%d.ini"
  8.  
  9. #define DIALOG_RENT 1000
  10. #define DIALOG_RENTVREME 1001
  11.  
  12. enum RENT_INFO {
  13.  
  14. Float:rentX,
  15. Float:rentY,
  16. Float:rentZ,
  17. Text3D:RentLabel,
  18. rentID
  19. }
  20.  
  21. new RentInfo[ MAX_RENTS ][ RENT_INFO ], IznajmioVozilo[ MAX_PLAYERS ], RentVeh[ MAX_PLAYERS ], RentOdabir[ MAX_PLAYERS ],
  22. RentVreme[ MAX_PLAYERS ], RentTimer[ MAX_PLAYERS ], Text3D:RentVehLabel[ MAX_VEHICLES ], TipVozila[ MAX_VEHICLES ];
  23.  
  24. public OnGameModeInit() {
  25.  
  26. for(new i; i < MAX_RENTS; i++) {
  27. new jFile[ 50 ];
  28. format(jFile, sizeof(jFile), RENT_FILE, i);
  29. if(fexist(jFile)) {
  30. INI_ParseFile(jFile, "LoadRent", .bExtra = true, .extra = i);
  31. RentInfo[ i ][ rentID ] = CreatePickup(19132, 1, RentInfo[ i ][ rentX ], RentInfo[ i ][ rentY ], RentInfo[ i ][ rentZ ], 0);
  32. RentInfo[ i ][ RentLabel ] = Create3DTextLabel("[ RENT ]\n{FFFFFF}Da iznajmite vozilo, kucajte\n{0077C7}/rent", 0x0077C7FF, RentInfo[ i ][ rentX ], RentInfo[ i ][ rentY ], RentInfo[ i ][ rentZ ], 10.0, 0, 0);
  33. }
  34. }
  35. return 1;
  36. }
  37. forward LoadRent(id, name[], value[]);
  38. public LoadRent(id, name[], value[]) {
  39.  
  40. INI_Float("Lokacija_X", RentInfo[ id ][ rentX ]);
  41. INI_Float("Lokacija_Y", RentInfo[ id ][ rentY ]);
  42. INI_Float("Lokacija_Z", RentInfo[ id ][ rentZ ]);
  43. return 1;
  44. }
  45. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
  46.  
  47. if(dialogid == DIALOG_RENT) {
  48. if(!response) return 1;
  49. switch(listitem) {
  50. case 0: {
  51. RentOdabir[ playerid ] = 1;
  52. ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 100$","U redu","Izlaz");
  53. }
  54. case 1: {
  55. RentOdabir[ playerid ] = 2;
  56. ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 70$","U redu","Izlaz");
  57. }
  58. }
  59. }
  60. else if(dialogid == DIALOG_RENTVREME) {
  61. if(!response) return 1;
  62. new i = GetNearestRent(playerid);
  63. if(RentOdabir[ playerid ] == 1) {
  64. new vreme;
  65. if(GetPlayerMoney(playerid) < RentVreme[ playerid ]*100) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Nemate dovoljno novca.");
  66. if(sscanf(inputtext, "d", vreme)) return ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 100$","U redu","Izlaz");
  67. if(vreme < 1 || vreme > 30) return ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 100$","U redu","Izlaz");
  68. RentVreme[ playerid ] = vreme;
  69. RentVeh[ playerid ] = CreateVehicle(405, RentInfo[ i ][ rentX ]+2, RentInfo[ i ][ rentY ]+2, RentInfo[ i ][ rentZ ], 0.0, 1, 1, -1);
  70. PutPlayerInVehicle(playerid, RentVeh[ playerid ], 0);
  71. IznajmioVozilo[ playerid ] = GetPlayerVehicleID(playerid);
  72. GivePlayerMoney(playerid, -RentVreme[ playerid ]*100);
  73. RentTimer[ playerid ] = SetTimerEx("TimerRent", 60000, true, "i", playerid);
  74. SendClientMessage(playerid, 0x0077C7FF, "[RENT] {FFFFFF}Uspesno ste iznajmili vozilo.");
  75. RentVehLabel[ RentVeh[ playerid ] ] = Create3DTextLabel("[RENTANO VOZILO]", 0x0077C7FF, RentInfo[ i ][ rentX ]+2, RentInfo[ i ][ rentY ]+2, RentInfo[ i ][ rentZ ], 10.0, 0, 0);
  76. Attach3DTextLabelToVehicle(RentVehLabel[ RentVeh[ playerid ] ], RentVeh[ playerid ], 0.0, 0.0, 0.0);
  77. TipVozila[ RentVeh[ playerid ] ] = 1; // 1 - Rent Vozilo
  78. }
  79. else if(RentOdabir[ playerid ] == 2) {
  80. new vreme;
  81. if(GetPlayerMoney(playerid) < RentVreme[ playerid ]*70) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Nemate dovoljno novca.");
  82. if(sscanf(inputtext, "d", vreme)) return ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 70$","U redu","Izlaz");
  83. if(vreme < 1 || vreme > 30) return ShowPlayerDialog(playerid, DIALOG_RENTVREME, DIALOG_STYLE_INPUT, "{0077C7}Iznamljivanje {FFFFFF}vozila","{FFFFFF}Unesite vreme na koliko ce te iznajmiti vozilo.\nMinimalno vreme - 1 minut.\nMaksimalno vreme - 30 minuta.\nCena - 1 minut = 70$","U redu","Izlaz");
  84. RentVreme[ playerid ] = vreme;
  85. RentVeh[ playerid ] = CreateVehicle(462, RentInfo[ i ][ rentX ]+2, RentInfo[ i ][ rentY ]+2, RentInfo[ i ][ rentZ ], 0.0, 1, 1, -1);
  86. PutPlayerInVehicle(playerid, RentVeh[ playerid ], 0);
  87. IznajmioVozilo[ playerid ] = GetPlayerVehicleID(playerid);
  88. GivePlayerMoney(playerid, -RentVreme[ playerid ]*70);
  89. RentTimer[ playerid ] = SetTimerEx("TimerRent", 60000, true, "i", playerid);
  90. SendClientMessage(playerid, 0x0077C7FF, "[RENT] {FFFFFF}Uspesno ste iznajmili vozilo.");
  91. RentVehLabel[ RentVeh[ playerid ] ] = Create3DTextLabel("[RENTANO VOZILO]", 0x0077C7FF, RentInfo[ i ][ rentX ]+2, RentInfo[ i ][ rentY ]+2, RentInfo[ i ][ rentZ ], 10.0, 0, 0);
  92. Attach3DTextLabelToVehicle(RentVehLabel[ RentVeh[ playerid ] ], RentVeh[ playerid ], 0.0, 0.0, 0.0);
  93. TipVozila[ RentVeh[ playerid ] ] = 1; // 1 - Rent Vozilo
  94. }
  95. }
  96. return 1;
  97. }
  98. public OnPlayerStateChange(playerid, newstate, oldstate) {
  99.  
  100. if(newstate == PLAYER_STATE_DRIVER) {
  101. if(TipVozila[ playerid ] == 1 && RentVeh[ playerid ] != GetPlayerVehicleID(playerid)) {
  102. RemovePlayerFromVehicle(playerid);
  103. SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Rentano vozilo.");
  104. }
  105. }
  106. return 1;
  107. }
  108. forward TimerRent(playerid);
  109. public TimerRent(playerid) {
  110.  
  111. RentVreme[ playerid ]--;
  112. if(RentVreme[ playerid ] == 0) {
  113. KillTimer(RentTimer[ playerid ]);
  114. DestroyVehicle(RentVeh[ playerid ]);
  115. Delete3DTextLabel(RentVehLabel[ RentVeh[ playerid ] ]);
  116. IznajmioVozilo[ playerid ] = 0;
  117. RentOdabir[ playerid ] = 0;
  118. RentVreme[ playerid ] = 0;
  119. RentVeh[ playerid ] = 0;
  120. SendClientMessage(playerid, 0x0077C7FF, "[RENT] {FFFFFF}Isteklo vam je vreme iznamljivanja vozila.");
  121. }
  122. return 1;
  123. }
  124. public OnPlayerDisconnect(playerid, reason) {
  125.  
  126. if(IznajmioVozilo[ playerid ] != 0) {
  127. KillTimer(RentTimer[ playerid ]);
  128. DestroyVehicle(RentVeh[ playerid ]);
  129. Delete3DTextLabel(RentVehLabel[ RentVeh[ playerid ] ]);
  130. IznajmioVozilo[ playerid ] = 0;
  131. RentOdabir[ playerid ] = 0;
  132. RentVreme[ playerid ] = 0;
  133. RentVeh[ playerid ] = 0;
  134. }
  135. return 1;
  136. }
  137.  
  138. YCMD:kreirajrent(playerid, params[], help) {
  139.  
  140. #pragma unused params
  141. #pragma unused help
  142.  
  143. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Niste RCON admin.");
  144. new Float:X, Float:Y, Float:Z, i = NextRentID(MAX_RENTS);
  145. GetPlayerPos(playerid, X,Y,Z);
  146. RentInfo[ i ][ rentID ] = CreatePickup(19132, 1, X,Y,Z, 0);
  147. RentInfo[ i ][ RentLabel ] = Create3DTextLabel("[ RENT ]\n{FFFFFF}Da iznajmite vozilo, kucajte\n{0077C7}/rent", 0x0077C7FF, X, Y, Z, 10.0, 0, 0);
  148. RentInfo[ i ][ rentX ] = X;
  149. RentInfo[ i ][ rentY ] = Y;
  150. RentInfo[ i ][ rentZ ] = Z;
  151. SaveRent(i);
  152. return 1;
  153. }
  154. YCMD:izbrisirent(playerid, params[], help) {
  155.  
  156. #pragma unused params
  157. #pragma unused help
  158.  
  159. if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Niste RCON admin.");
  160. new i = GetNearestRent(playerid), rentFile[ 60 ];
  161. if(i == -1) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Niste blizu rent pickup-a.");
  162. DestroyPickup(RentInfo[ i ][ rentID ]);
  163. Delete3DTextLabel(RentInfo[ i ][ RentLabel ]);
  164. RentInfo[ i ][ rentX ] = 0.0;
  165. RentInfo[ i ][ rentY ] = 0.0;
  166. RentInfo[ i ][ rentZ ] = 0.0;
  167. format(rentFile, sizeof(rentFile), RENT_FILE, i);
  168. if(fexist(rentFile)) { fremove(rentFile); }
  169. return 1;
  170. }
  171. // Sentinel 405 Faggio 462
  172. YCMD:rent(playerid, params[], help) {
  173.  
  174. #pragma unused params
  175. #pragma unused help
  176.  
  177. if(GetNearestRent(playerid) == -1) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Niste blizu rent pickup-a.");
  178. if(IznajmioVozilo[ playerid ] != 0) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Vec ste iznajmili vozilo.");
  179. ShowPlayerDialog(playerid, DIALOG_RENT, DIALOG_STYLE_LIST, "{0077C7}Iznamljivanje {FFFFFF}vozila", "Sentinel\nFaggio", "Izaberi","Izlaz");
  180. return 1;
  181. }
  182. YCMD:unrent(playerid, params[], help) {
  183.  
  184. #pragma unused params
  185. #pragma unused help
  186.  
  187. if(IznajmioVozilo[ playerid ] == 0) return SendClientMessage(playerid, 0x0077C7FF, "[ERROR] {FFFFFF}Niste iznajmili vozilo.");
  188. KillTimer(RentTimer[ playerid ]);
  189. DestroyVehicle(RentVeh[ playerid ]);
  190. Delete3DTextLabel(RentVehLabel[ RentVeh[ playerid ] ]);
  191. IznajmioVozilo[ playerid ] = 0;
  192. if(RentOdabir[ playerid ] == 1) {
  193. GivePlayerMoney(playerid, RentVreme[ playerid ]*100);
  194. new str[ 120 ];
  195. format(str, sizeof(str), "[UNRENT] {FFFFFF}Uspesno ste vratili iznamljeno vozilo te vam je vraceno %d$", RentVreme[ playerid ]*100);
  196. SendClientMessage(playerid, 0x0077C7FF, str);
  197. RentOdabir[ playerid ] = 0;
  198. RentVreme[ playerid ] = 0;
  199. RentVeh[ playerid ] = 0;
  200. }
  201. else if(RentOdabir[ playerid ] == 2) {
  202. GivePlayerMoney(playerid, RentVreme[ playerid ]*70);
  203. new str[ 120 ];
  204. format(str, sizeof(str), "[UNRENT] {FFFFFF}Uspesno ste vratili iznamljeno vozilo te vam je vraceno %d$", RentVreme[ playerid ]*70);
  205. SendClientMessage(playerid, 0x0077C7FF, str);
  206. RentOdabir[ playerid ] = 0;
  207. RentVreme[ playerid ] = 0;
  208. RentVeh[ playerid ] = 0;
  209. }
  210. return 1;
  211. }
  212.  
  213. GetNearestRent( playerid ) {
  214.  
  215. for( new i = 1; i < MAX_RENTS; i++) {
  216.  
  217. if( IsPlayerInRangeOfPoint( playerid, 3.0, RentInfo[ i ][ rentX ], RentInfo[ i ][ rentY ], RentInfo[ i ][ rentZ ] ) ) { return i; }
  218. }
  219. return -1;
  220. }
  221. stock NextRentID(const len) {
  222. new id = (-1);
  223. for( new loop = ( 0 ), provjera = ( -1 ), Data_[ 64 ] = "\0"; loop != len; ++ loop ) {
  224. provjera = ( loop+1 );
  225. format( Data_, ( sizeof Data_ ), RENT_FILE, provjera );
  226. if(!fexist(Data_)) {
  227. id = ( provjera );
  228. break; } }
  229. return ( id );
  230. }
  231. stock SaveRent(id) {
  232.  
  233. new rentFile[ 60 ];
  234. format(rentFile, sizeof(rentFile), RENT_FILE, id);
  235. new INI:File = INI_Open(rentFile);
  236. INI_WriteFloat(File, "Lokacija_X", RentInfo[ id ][ rentX ]);
  237. INI_WriteFloat(File, "Lokacija_Y", RentInfo[ id ][ rentY ]);
  238. INI_WriteFloat(File, "Lokacija_Z", RentInfo[ id ][ rentZ ]);
  239. INI_Close(File);
  240. return 1;
  241. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement