Guest User

Garažas English version

a guest
Feb 1st, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.49 KB | None | 0 0
  1. #include <a_samp>
  2. #if !defined IsValidVehicle
  3. native IsValidVehicle(vehicleid);
  4. #endif
  5. #include <dini>
  6. #define COLOR_ERROR 0xA40000FF
  7. #define COLOR_GREEN 0x00D500FF
  8. #define COLOR_WHITE 0xFFFFFFFF
  9. #define COLOR_RED 0xFF0000FF
  10. #define MAX_GARAGES 50
  11. enum gInfo
  12. {
  13. Float:ExtX,
  14. Float:ExtY,
  15. Float:ExtZ,
  16. Float:ExtA,
  17. Float:IntX,
  18. Float:IntY,
  19. Float:IntZ,
  20. Float:IntA,
  21. Price,
  22. IntID,
  23. vWorld,
  24. Status,
  25. ForSale,
  26. Pickup,
  27. Text3D:Label
  28. }
  29. new GarageInfo[MAX_GARAGES][gInfo];
  30. new IsGarageVehicle[MAX_GARAGES][MAX_VEHICLES];
  31. public OnFilterScriptInit()
  32. {
  33. CreateObject(8378, 608.30280, -75.59090, 996.99127, 0.00000, 0.00000, 90.00000);
  34. CreateObject(8378, 608.34052, -137.51871, 996.99127, 0.00000, 0.00000, 90.00000);
  35. CreateObject(8378, 603.00000, -0.42970, 1003.21918, 0.00000, 0.00000, 90.00000);
  36. for(new g = 0; g <= MAX_GARAGES; g++)
  37. {
  38. new string[256], LoadString[256], GarageInterior[128], GarageLocked[128], GarageOwner[MAX_PLAYER_NAME];
  39. format(LoadString, sizeof(LoadString), "/Garages/%d.dini.save", g);
  40. if(dini_Exists(LoadString))
  41. {
  42. LoadGarages(g);
  43. IsGarageVehicle[g][5] = 0;
  44. format(GarageOwner, MAX_PLAYER_NAME, dini_Get(LoadString, "Owner"));
  45. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  46. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  47. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  48. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  49. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  50. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  51. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", GarageOwner, GarageLocked, GarageInterior);
  52. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", GarageOwner, GarageInfo[g][Price], GarageLocked, GarageInterior);
  53. GarageInfo[g][Label] = Create3DTextLabel(string, COLOR_WHITE, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]+0.8, 10.0, 0, 0);
  54. GarageInfo[g][Pickup] = CreatePickup(1318, 1, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]);
  55. }
  56. }
  57. return 1;
  58. }
  59. public OnFilterScriptExit()
  60. {
  61. for(new g = 0; g <= MAX_GARAGES; g++)
  62. {
  63. new UnloadString[256];
  64. format(UnloadString, sizeof(UnloadString), "/Garages/%d.dini.save", g);
  65. if(dini_Exists(UnloadString))
  66. {
  67. Delete3DTextLabel(GarageInfo[g][Label]);
  68. DestroyPickup(GarageInfo[g][Pickup]);
  69. }
  70. }
  71. return 1;
  72. }
  73. public OnPlayerDisconnect(playerid, reason)
  74. {
  75. new SaveString[256];
  76. format(SaveString,sizeof(SaveString),"/MoneySave/%d.dini.save",PlayerName(playerid));
  77. if(!dini_Exists(SaveString))
  78. {
  79. dini_Create(SaveString);
  80. dini_IntSet(SaveString, "Money", GetPlayerMoney(playerid));
  81. }
  82. else
  83. {
  84. dini_IntSet(SaveString, "Money", GetPlayerMoney(playerid));
  85. }
  86. return 1;
  87. }
  88. public OnPlayerCommandText(playerid, cmdtext[])
  89. {
  90. new string[256], SaveString[256];
  91. if(strfind(cmdtext, "/g create", true) == 0)
  92. {
  93. if(IsPlayerAdmin(playerid))
  94. {
  95. new gID = ReturnNextUnusedGarageID();
  96. format(SaveString,sizeof(SaveString),"/Garages/%d.dini.save",gID);
  97. if(!dini_Exists(SaveString))
  98. {
  99. new where = -1;
  100. if(strlen(cmdtext) > 10 && (where = strfind(cmdtext, " ", true, 10)) != -1)
  101. {
  102. new Garage[32];
  103. strmid(Garage, cmdtext, 10, where);
  104. if(strcmp(Garage, "Small", true) == 0)
  105. {
  106. new GarageOwner[MAX_PLAYER_NAME];
  107. format(GarageOwner, MAX_PLAYER_NAME, "No");
  108. new StringPrice[24];
  109. strmid(StringPrice, cmdtext, where, strlen(cmdtext));
  110. GarageInfo[gID][Price] = strval(StringPrice);
  111. GetPlayerPos(playerid, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  112. GetPlayerFacingAngle(playerid,GarageInfo[gID][ExtA]);
  113. GarageInfo[gID][vWorld] = ReturnNextUnusedVirtualWorld();
  114. GarageInfo[gID][IntID] = 0;
  115. GarageInfo[gID][Status] = 0;
  116. GarageInfo[gID][ForSale] = 1;
  117. GarageInfo[gID][IntX] = 1643.6659;
  118. GarageInfo[gID][IntY] = -1517.0594;
  119. GarageInfo[gID][IntZ] = 13.5688;
  120. GarageInfo[gID][IntA] = 0.0000;
  121. GarageInfo[gID][Pickup] = CreatePickup(1318, 1, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  122. if(GarageInfo[gID][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {FFFF00}Small");
  123. else format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {FFFF00}Small", GarageInfo[gID][Price]);
  124. GarageInfo[gID][Label] = Create3DTextLabel(string, COLOR_WHITE, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]+0.8, 10.0, 0, 0);
  125. //Saving garage
  126. dini_Create(SaveString);
  127. dini_Set(SaveString, "\nOwner", GarageOwner);
  128. dini_FloatSet(SaveString,"Ext:X", GarageInfo[gID][ExtX]);
  129. dini_FloatSet(SaveString,"Ext:Y", GarageInfo[gID][ExtY]);
  130. dini_FloatSet(SaveString,"Ext:Z", GarageInfo[gID][ExtZ]);
  131. dini_FloatSet(SaveString,"Ext:A", GarageInfo[gID][ExtA]);
  132. dini_FloatSet(SaveString,"Int:X", GarageInfo[gID][IntX]);
  133. dini_FloatSet(SaveString,"Int:Y", GarageInfo[gID][IntY]);
  134. dini_FloatSet(SaveString,"Int:Z", GarageInfo[gID][IntZ]);
  135. dini_FloatSet(SaveString,"Int:A", GarageInfo[gID][IntA]);
  136. dini_IntSet(SaveString, "VirtualWorld", GarageInfo[gID][vWorld]);
  137. dini_IntSet(SaveString, "Interior", GarageInfo[gID][IntID]);
  138. dini_IntSet(SaveString, "Status", GarageInfo[gID][Status]);
  139. dini_IntSet(SaveString, "ForSale", GarageInfo[gID][ForSale]);
  140. dini_IntSet(SaveString, "Price", GarageInfo[gID][Price]);
  141. for(new v = 0; v <= MAX_VEHICLES; v++)
  142. {
  143. if(IsValidVehicle(v))
  144. {
  145. IsGarageVehicle[gID][v] = 0;
  146. }
  147. }
  148. //Message
  149. SendClientMessage(playerid,COLOR_GREEN,"Garage was successfully created!");
  150. return 1;
  151. }
  152. else if(strcmp(Garage, "Medium1", true) == 0)
  153. {
  154. new GarageOwner[MAX_PLAYER_NAME];
  155. format(GarageOwner, MAX_PLAYER_NAME, "No");
  156. new StringPrice[24];
  157. strmid(StringPrice, cmdtext, where, strlen(cmdtext));
  158. GarageInfo[gID][Price] = strval(StringPrice);
  159. GetPlayerPos(playerid, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  160. GetPlayerFacingAngle(playerid,GarageInfo[gID][ExtA]);
  161. GarageInfo[gID][vWorld] = ReturnNextUnusedVirtualWorld();
  162. GarageInfo[gID][IntID] = 2;
  163. GarageInfo[gID][Status] = 0;
  164. GarageInfo[gID][ForSale] = 1;
  165. GarageInfo[gID][IntX] = 612.4073;
  166. GarageInfo[gID][IntY] = -76.4425;
  167. GarageInfo[gID][IntZ] = 997.9922;
  168. GarageInfo[gID][IntA] = 270.0000;
  169. GarageInfo[gID][Pickup] = CreatePickup(1318, 1, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  170. if(GarageInfo[gID][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {00FF00}Medium");
  171. else format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {00FF00}Medium", GarageInfo[gID][Price]);
  172. GarageInfo[gID][Label] = Create3DTextLabel(string, COLOR_WHITE, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]+0.8, 10.0, 0, 0);
  173. //Saving garage
  174. dini_Create(SaveString);
  175. dini_Set(SaveString, "\nOwner", GarageOwner);
  176. dini_FloatSet(SaveString,"Ext:X", GarageInfo[gID][ExtX]);
  177. dini_FloatSet(SaveString,"Ext:Y", GarageInfo[gID][ExtY]);
  178. dini_FloatSet(SaveString,"Ext:Z", GarageInfo[gID][ExtZ]);
  179. dini_FloatSet(SaveString,"Ext:A", GarageInfo[gID][ExtA]);
  180. dini_FloatSet(SaveString,"Int:X", GarageInfo[gID][IntX]);
  181. dini_FloatSet(SaveString,"Int:Y", GarageInfo[gID][IntY]);
  182. dini_FloatSet(SaveString,"Int:Z", GarageInfo[gID][IntZ]);
  183. dini_FloatSet(SaveString,"Int:A", GarageInfo[gID][IntA]);
  184. dini_IntSet(SaveString, "VirtualWorld", GarageInfo[gID][vWorld]);
  185. dini_IntSet(SaveString, "Interior", GarageInfo[gID][IntID]);
  186. dini_IntSet(SaveString, "Status", GarageInfo[gID][Status]);
  187. dini_IntSet(SaveString, "ForSale", GarageInfo[gID][ForSale]);
  188. dini_IntSet(SaveString, "Price", GarageInfo[gID][Price]);
  189. for(new v = 0; v <= MAX_VEHICLES; v++)
  190. {
  191. if(IsValidVehicle(v))
  192. {
  193. IsGarageVehicle[gID][v] = 0;
  194. }
  195. }
  196. //Message
  197. SendClientMessage(playerid,COLOR_GREEN,"Garage was successfully created!");
  198. return 1;
  199. }
  200. else if(strcmp(Garage, "Medium2", true) == 0)
  201. {
  202. new GarageOwner[MAX_PLAYER_NAME];
  203. format(GarageOwner, MAX_PLAYER_NAME, "No");
  204. new StringPrice[24];
  205. strmid(StringPrice, cmdtext, where, strlen(cmdtext));
  206. GarageInfo[gID][Price] = strval(StringPrice);
  207. GetPlayerPos(playerid, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  208. GetPlayerFacingAngle(playerid,GarageInfo[gID][ExtA]);
  209. GarageInfo[gID][vWorld] = ReturnNextUnusedVirtualWorld();
  210. GarageInfo[gID][IntID] = 3;
  211. GarageInfo[gID][Status] = 0;
  212. GarageInfo[gID][ForSale] = 1;
  213. GarageInfo[gID][IntX] = 613.3256;
  214. GarageInfo[gID][IntY] = -125.1266;
  215. GarageInfo[gID][IntZ] = 997.9922;
  216. GarageInfo[gID][IntA] = 270.0000;
  217. GarageInfo[gID][Pickup] = CreatePickup(1318, 1, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  218. if(GarageInfo[gID][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {00FF00}Medium");
  219. else format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {00FF00}Medium", GarageInfo[gID][Price]);
  220. GarageInfo[gID][Label] = Create3DTextLabel(string, COLOR_WHITE, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]+0.8, 10.0, 0, 0);
  221. //Saving garage
  222. dini_Create(SaveString);
  223. dini_Set(SaveString, "\nOwner", GarageOwner);
  224. dini_FloatSet(SaveString,"Ext:X", GarageInfo[gID][ExtX]);
  225. dini_FloatSet(SaveString,"Ext:Y", GarageInfo[gID][ExtY]);
  226. dini_FloatSet(SaveString,"Ext:Z", GarageInfo[gID][ExtZ]);
  227. dini_FloatSet(SaveString,"Ext:A", GarageInfo[gID][ExtA]);
  228. dini_FloatSet(SaveString,"Int:X", GarageInfo[gID][IntX]);
  229. dini_FloatSet(SaveString,"Int:Y", GarageInfo[gID][IntY]);
  230. dini_FloatSet(SaveString,"Int:Z", GarageInfo[gID][IntZ]);
  231. dini_FloatSet(SaveString,"Int:A", GarageInfo[gID][IntA]);
  232. dini_IntSet(SaveString, "VirtualWorld", GarageInfo[gID][vWorld]);
  233. dini_IntSet(SaveString, "Interior", GarageInfo[gID][IntID]);
  234. dini_IntSet(SaveString, "Status", GarageInfo[gID][Status]);
  235. dini_IntSet(SaveString, "ForSale", GarageInfo[gID][ForSale]);
  236. dini_IntSet(SaveString, "Price", GarageInfo[gID][Price]);
  237. for(new v = 0; v <= MAX_VEHICLES; v++)
  238. {
  239. if(IsValidVehicle(v))
  240. {
  241. IsGarageVehicle[gID][v] = 0;
  242. }
  243. }
  244. //Message
  245. SendClientMessage(playerid,COLOR_GREEN,"Garage was successfully created!");
  246. return 1;
  247. }
  248. else if(strcmp(Garage, "Big", true) == 0)
  249. {
  250. new GarageOwner[MAX_PLAYER_NAME];
  251. format(GarageOwner, MAX_PLAYER_NAME, "No");
  252. new StringPrice[24];
  253. strmid(StringPrice, cmdtext, where, strlen(cmdtext));
  254. GarageInfo[gID][Price] = strval(StringPrice);
  255. GetPlayerPos(playerid, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  256. GetPlayerFacingAngle(playerid,GarageInfo[gID][ExtA]);
  257. GarageInfo[gID][vWorld] = ReturnNextUnusedVirtualWorld();
  258. GarageInfo[gID][IntID] = 1;
  259. GarageInfo[gID][Status] = 0;
  260. GarageInfo[gID][ForSale] = 1;
  261. GarageInfo[gID][IntX] = 608.6567;
  262. GarageInfo[gID][IntY] = -10.2052;
  263. GarageInfo[gID][IntZ] = 1000.9206;
  264. GarageInfo[gID][IntA] = 270.0000;
  265. GarageInfo[gID][Pickup] = CreatePickup(1318, 1, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]);
  266. if(GarageInfo[gID][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {FFFF00}Big");
  267. else format(string,sizeof(string),"Owner: {FF0000}No\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: {FFFF00}Big", GarageInfo[gID][Price]);
  268. GarageInfo[gID][Label] = Create3DTextLabel(string, COLOR_WHITE, GarageInfo[gID][ExtX], GarageInfo[gID][ExtY], GarageInfo[gID][ExtZ]+0.8, 10.0, 0, 0);
  269. //Saving garage
  270. dini_Create(SaveString);
  271. dini_Set(SaveString, "\nOwner", GarageOwner);
  272. dini_FloatSet(SaveString,"Ext:X", GarageInfo[gID][ExtX]);
  273. dini_FloatSet(SaveString,"Ext:Y", GarageInfo[gID][ExtY]);
  274. dini_FloatSet(SaveString,"Ext:Z", GarageInfo[gID][ExtZ]);
  275. dini_FloatSet(SaveString,"Ext:A", GarageInfo[gID][ExtA]);
  276. dini_FloatSet(SaveString,"Int:X", GarageInfo[gID][IntX]);
  277. dini_FloatSet(SaveString,"Int:Y", GarageInfo[gID][IntY]);
  278. dini_FloatSet(SaveString,"Int:Z", GarageInfo[gID][IntZ]);
  279. dini_FloatSet(SaveString,"Int:A", GarageInfo[gID][IntA]);
  280. dini_IntSet(SaveString, "VirtualWorld", GarageInfo[gID][vWorld]);
  281. dini_IntSet(SaveString, "Interior", GarageInfo[gID][IntID]);
  282. dini_IntSet(SaveString, "Status", GarageInfo[gID][Status]);
  283. dini_IntSet(SaveString, "ForSale", GarageInfo[gID][ForSale]);
  284. dini_IntSet(SaveString, "Price", GarageInfo[gID][Price]);
  285. for(new v = 0; v <= MAX_VEHICLES; v++)
  286. {
  287. if(IsValidVehicle(v))
  288. {
  289. IsGarageVehicle[gID][v] = 0;
  290. }
  291. }
  292. //Message
  293. SendClientMessage(playerid,COLOR_GREEN,"Garage was successfully created!");
  294. return 1;
  295. }
  296. else SendClientMessage(playerid, COLOR_ERROR, "Wrong garage interior.");
  297. } else SendClientMessage(playerid, COLOR_WHITE, "Usage: /g create [InteriorType] [Price]");
  298. }
  299. } else SendClientMessage(playerid, COLOR_ERROR, "You are not a RCON Administrator.");
  300. return 1;
  301. }
  302. if(strcmp(cmdtext, "/g delete", true) == 0)
  303. {
  304. if(IsPlayerAdmin(playerid))
  305. {
  306. for(new g = 0; g <= MAX_GARAGES; g++)
  307. {
  308. new Garage[64];
  309. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  310. if(dini_Exists(Garage))
  311. {
  312. LoadGarages(g);
  313. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  314. {
  315. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  316. if(dini_Exists(Garage))
  317. {
  318. Delete3DTextLabel(GarageInfo[g][Label]);
  319. DestroyPickup(GarageInfo[g][Pickup]);
  320. DestroyPickup(GarageInfo[g][Pickup]);
  321. DestroyPickup(GarageInfo[g][Pickup]);
  322. dini_Remove(Garage);
  323. SendClientMessage(playerid,COLOR_GREEN,"Garage was successfully deleted!");
  324. }
  325. }
  326. }
  327. }
  328. } else SendClientMessage(playerid, COLOR_ERROR, "You are not a RCON Administrator.");
  329. return 1;
  330. }
  331. if(strcmp(cmdtext, "/g enter", true) == 0)
  332. {
  333. for(new g = 0; g <= MAX_GARAGES; g++)
  334. {
  335. new Garage[64];
  336. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  337. if(dini_Exists(Garage))
  338. {
  339. LoadGarages(g);
  340. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  341. {
  342. if(dini_Exists(Garage))
  343. {
  344. if(GarageInfo[g][Status] == 0)
  345. {
  346. if(!IsPlayerInAnyVehicle(playerid))
  347. {
  348. SetPlayerPos(playerid,GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  349. SetPlayerInterior(playerid,GarageInfo[g][IntID]);
  350. SetPlayerVirtualWorld(playerid,GarageInfo[g][vWorld]);
  351. SetPlayerFacingAngle(playerid,GarageInfo[g][IntA]);
  352. SetCameraBehindPlayer(playerid);
  353. }
  354. if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  355. {
  356. new vehicleid = GetPlayerVehicleID(playerid);
  357. SetPlayerPos(playerid,GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  358. SetPlayerInterior(playerid,GarageInfo[g][IntID]);
  359. SetPlayerVirtualWorld(playerid,GarageInfo[g][vWorld]);
  360. SetPlayerFacingAngle(playerid,GarageInfo[g][IntA]);
  361. SetVehiclePos(vehicleid, GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  362. SetVehicleVirtualWorld(vehicleid,GarageInfo[g][vWorld]);
  363. LinkVehicleToInterior(vehicleid,GarageInfo[g][IntID]);
  364. SetVehicleZAngle(vehicleid,GarageInfo[g][IntA]);
  365. PutPlayerInVehicle(playerid,vehicleid,0);
  366. IsGarageVehicle[g][vehicleid] = 1;
  367. SetCameraBehindPlayer(playerid);
  368. for(new i = 0; i < MAX_PLAYERS; i++)
  369. {
  370. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 1)
  371. {
  372. SetPlayerPos(i,GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  373. SetPlayerInterior(i,GarageInfo[g][IntID]);
  374. SetPlayerVirtualWorld(i,GarageInfo[g][vWorld]);
  375. SetPlayerFacingAngle(i,GarageInfo[g][IntA]);
  376. PutPlayerInVehicle(i,vehicleid,1);
  377. SetCameraBehindPlayer(i);
  378. }
  379. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 2)
  380. {
  381. SetPlayerPos(i,GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  382. SetPlayerInterior(i,GarageInfo[g][IntID]);
  383. SetPlayerVirtualWorld(i,GarageInfo[g][vWorld]);
  384. SetPlayerFacingAngle(i,GarageInfo[g][IntA]);
  385. PutPlayerInVehicle(i,vehicleid,2);
  386. SetCameraBehindPlayer(i);
  387. }
  388. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 3)
  389. {
  390. SetPlayerPos(i,GarageInfo[g][IntX],GarageInfo[g][IntY],GarageInfo[g][IntZ]);
  391. SetPlayerInterior(i,GarageInfo[g][IntID]);
  392. SetPlayerVirtualWorld(i,GarageInfo[g][vWorld]);
  393. SetPlayerFacingAngle(i,GarageInfo[g][IntA]);
  394. PutPlayerInVehicle(i,vehicleid,3);
  395. SetCameraBehindPlayer(i);
  396. }
  397. }
  398. }
  399. } else GameTextForPlayer(playerid, "~r~LOCKED", 600, 1);
  400. }
  401. }
  402. }
  403. }
  404. return 1;
  405. }
  406. if(strcmp(cmdtext, "/g exit", true) == 0)
  407. {
  408. for(new g = 0; g <= MAX_GARAGES; g++)
  409. {
  410. new Garage[64];
  411. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  412. if(dini_Exists(Garage))
  413. {
  414. LoadGarages(g);
  415. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][IntX], GarageInfo[g][IntY], GarageInfo[g][IntZ]) && GetPlayerVirtualWorld(playerid) == GarageInfo[g][vWorld])
  416. {
  417. if(GarageInfo[g][Status] == 0)
  418. {
  419. if(!IsPlayerInAnyVehicle(playerid))
  420. {
  421. SetPlayerPos(playerid,GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  422. SetPlayerInterior(playerid,0);
  423. SetPlayerVirtualWorld(playerid,0);
  424. SetPlayerFacingAngle(playerid,GarageInfo[g][ExtA]);
  425. SetCameraBehindPlayer(playerid);
  426. return 1;
  427. }
  428. if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
  429. {
  430. new vehicleid = GetPlayerVehicleID(playerid);
  431. SetPlayerPos(playerid,GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  432. SetPlayerInterior(playerid,0);
  433. SetPlayerVirtualWorld(playerid,0);
  434. SetPlayerFacingAngle(playerid,GarageInfo[g][ExtA]);
  435. SetVehiclePos(vehicleid, GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  436. SetVehicleVirtualWorld(vehicleid,0);
  437. LinkVehicleToInterior(vehicleid,0);
  438. SetVehicleZAngle(vehicleid,GarageInfo[g][ExtA]);
  439. PutPlayerInVehicle(playerid,vehicleid,0);
  440. IsGarageVehicle[g][vehicleid] = 0;
  441. SetCameraBehindPlayer(playerid);
  442. for(new i = 0; i < MAX_PLAYERS; i++)
  443. {
  444. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 1)
  445. {
  446. SetPlayerPos(playerid,GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  447. SetPlayerInterior(playerid,0);
  448. SetPlayerVirtualWorld(playerid,0);
  449. SetPlayerFacingAngle(playerid,GarageInfo[g][ExtA]);
  450. PutPlayerInVehicle(i,vehicleid,1);
  451. SetCameraBehindPlayer(i);
  452. }
  453. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 2)
  454. {
  455. SetPlayerPos(playerid,GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  456. SetPlayerInterior(playerid,0);
  457. SetPlayerVirtualWorld(playerid,0);
  458. SetPlayerFacingAngle(playerid,GarageInfo[g][ExtA]);
  459. PutPlayerInVehicle(i,vehicleid,2);
  460. SetCameraBehindPlayer(i);
  461. }
  462. if(IsPlayerInVehicle(i, vehicleid) && GetPlayerVehicleSeat(i) == 3)
  463. {
  464. SetPlayerPos(playerid,GarageInfo[g][ExtX],GarageInfo[g][ExtY],GarageInfo[g][ExtZ]);
  465. SetPlayerInterior(playerid,0);
  466. SetPlayerVirtualWorld(playerid,0);
  467. SetPlayerFacingAngle(playerid,GarageInfo[g][ExtA]);
  468. PutPlayerInVehicle(i,vehicleid,3);
  469. SetCameraBehindPlayer(i);
  470. }
  471. }
  472. return 1;
  473. }
  474. } else GameTextForPlayer(playerid, "~r~LOCKED", 600, 1);
  475. }
  476. }
  477. }
  478. return 1;
  479. }
  480. if(strcmp(cmdtext, "/g", true) == 0)
  481. {
  482. if(IsPlayerAdmin(playerid))
  483. {
  484. SendClientMessage(playerid,0xFFFF00FF,"All Garage Commands:");
  485. SendClientMessage(playerid,COLOR_WHITE," Only for RCON ADMINS: /g create | /g delete | /g changeowner | /g changeinterior");
  486. SendClientMessage(playerid,COLOR_WHITE," Only for garages owners: /g sell | /g lock");
  487. SendClientMessage(playerid,COLOR_WHITE," For all players: /g enter | /g exit | /g buy");
  488. }
  489. else
  490. {
  491. SendClientMessage(playerid,0xFFFF00FF,"Commands for garages:");
  492. SendClientMessage(playerid,COLOR_WHITE," Only for garages owners: /g sell | /g lock");
  493. SendClientMessage(playerid,COLOR_WHITE," For all players: /g enter | /g exit | /g buy");
  494. }
  495. return 1;
  496. }
  497. if(strfind(cmdtext, "/g changeowner", true) == 0)
  498. {
  499. if(IsPlayerAdmin(playerid))
  500. {
  501. for(new g = 0; g <= MAX_GARAGES; g++)
  502. {
  503. new Garage[64];
  504. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  505. if(dini_Exists(Garage))
  506. {
  507. LoadGarages(g);
  508. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  509. {
  510. new GarageOwner[MAX_PLAYER_NAME], GarageLocked[128], GarageInterior[128], Garage2[64];
  511. format(Garage2, sizeof(Garage2), "/Garages/%d.dini.save", g);
  512. if(dini_Exists(Garage2))
  513. {
  514. if(strlen(cmdtext) > 15)
  515. {
  516. strmid(GarageOwner, cmdtext, 15, strlen(cmdtext));
  517. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  518. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  519. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  520. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  521. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  522. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  523. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", GarageOwner, GarageLocked, GarageInterior);
  524. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", GarageOwner, GarageInfo[g][Price], GarageLocked, GarageInterior);
  525. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  526. dini_Set(Garage2,"Owner", GarageOwner);
  527. dini_IntSet(Garage2, "ForSale", 0);
  528. SendClientMessage(playerid,COLOR_GREEN,"You successfully changed the owner!");
  529. } else SendClientMessage(playerid, COLOR_WHITE, "Usage: /g changeowner [Owner]");
  530. }
  531. }
  532. }
  533. }
  534.  
  535. } else SendClientMessage(playerid, COLOR_ERROR, "You are not a RCON Administrator.");
  536. return 1;
  537. }
  538. if(strfind(cmdtext, "/g changeinterior", true) == 0)
  539. {
  540. if(IsPlayerAdmin(playerid))
  541. {
  542. for(new g = 0; g <= MAX_GARAGES; g++)
  543. {
  544. new Garage[64], GarageLocked[64];
  545. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  546. if(dini_Exists(Garage))
  547. {
  548. LoadGarages(g);
  549. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  550. {
  551. if(strlen(cmdtext) > 18)
  552. {
  553. new Garages[32];
  554. strmid(Garages, cmdtext, 18, strlen(cmdtext));
  555. if(strcmp(Garages, "Small", true) == 0)
  556. {
  557. if(GarageInfo[g][IntID] != 0)
  558. {
  559. GarageInfo[g][IntID] = 0;
  560. GarageInfo[g][IntX] = 1643.6659;
  561. GarageInfo[g][IntY] = -1517.0594;
  562. GarageInfo[g][IntZ] = 13.5688;
  563. GarageInfo[g][IntA] = 0.0000;
  564. dini_IntSet(Garage, "Interior", GarageInfo[g][IntID]);
  565. dini_FloatSet(Garage,"Int:X", GarageInfo[g][IntX]);
  566. dini_FloatSet(Garage,"Int:Y", GarageInfo[g][IntY]);
  567. dini_FloatSet(Garage,"Int:Z", GarageInfo[g][IntZ]);
  568. dini_FloatSet(Garage,"Int:A", GarageInfo[g][IntA]);
  569. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  570. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  571. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {FFFF00}Small", dini_Get(Garage, "Owner"), GarageLocked);
  572. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {FFFF00}Small", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageLocked);
  573. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  574. SendClientMessage(playerid,COLOR_GREEN,"You successfully changed the garage's interior to Small!");
  575. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is already with this interior.");
  576. }
  577. else if(strcmp(Garages, "Medium1", true) == 0)
  578. {
  579. if(GarageInfo[g][IntID] != 2)
  580. {
  581. GarageInfo[g][IntID] = 2;
  582. GarageInfo[g][IntX] = 612.4073;
  583. GarageInfo[g][IntY] = -76.4425;
  584. GarageInfo[g][IntZ] = 997.9922;
  585. GarageInfo[g][IntA] = 270.0000;
  586. dini_IntSet(Garage, "Interior", GarageInfo[g][IntID]);
  587. dini_FloatSet(Garage,"Int:X", GarageInfo[g][IntX]);
  588. dini_FloatSet(Garage,"Int:Y", GarageInfo[g][IntY]);
  589. dini_FloatSet(Garage,"Int:Z", GarageInfo[g][IntZ]);
  590. dini_FloatSet(Garage,"Int:A", GarageInfo[g][IntA]);
  591. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  592. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  593. if(GarageInfo[g][Price] == 0)format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {00FF00}Medium", dini_Get(Garage, "Owner"), GarageLocked);
  594. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {00FF00}Medium", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageLocked);
  595. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  596. SendClientMessage(playerid,COLOR_GREEN,"You successfully changed the garage's interior to Medium(Type:1)!");
  597. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is already with this interior.");
  598. }
  599. else if(strcmp(Garages, "Medium2", true) == 0)
  600. {
  601. if(GarageInfo[g][IntID] != 3)
  602. {
  603. GarageInfo[g][IntID] = 3;
  604. GarageInfo[g][IntX] = 613.3256;
  605. GarageInfo[g][IntY] = -125.1266;
  606. GarageInfo[g][IntZ] = 997.9922;
  607. GarageInfo[g][IntA] = 270.0000;
  608. dini_IntSet(Garage, "Interior", GarageInfo[g][IntID]);
  609. dini_FloatSet(Garage,"Int:X", GarageInfo[g][IntX]);
  610. dini_FloatSet(Garage,"Int:Y", GarageInfo[g][IntY]);
  611. dini_FloatSet(Garage,"Int:Z", GarageInfo[g][IntZ]);
  612. dini_FloatSet(Garage,"Int:A", GarageInfo[g][IntA]);
  613. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  614. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  615. if(GarageInfo[g][Price] == 0)format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {00FF00}Medium", dini_Get(Garage, "Owner"), GarageLocked);
  616. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {00FF00}Medium", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageLocked);
  617. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  618. SendClientMessage(playerid,COLOR_GREEN,"You successfully changed the garage's interior to Medium(Type:2)!");
  619. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is already with this interior.");
  620. }
  621. else if(strcmp(Garages, "Big", true) == 0)
  622. {
  623. if(GarageInfo[g][IntID] != 1)
  624. {
  625. GarageInfo[g][IntID] = 1;
  626. GarageInfo[g][IntX] = 608.6567;
  627. GarageInfo[g][IntY] = -10.2052;
  628. GarageInfo[g][IntZ] = 1000.9206;
  629. GarageInfo[g][IntA] = 270.0000;
  630. dini_IntSet(Garage, "Interior", GarageInfo[g][IntID]);
  631. dini_FloatSet(Garage,"Int:X", GarageInfo[g][IntX]);
  632. dini_FloatSet(Garage,"Int:Y", GarageInfo[g][IntY]);
  633. dini_FloatSet(Garage,"Int:Z", GarageInfo[g][IntZ]);
  634. dini_FloatSet(Garage,"Int:A", GarageInfo[g][IntA]);
  635. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  636. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  637. if(GarageInfo[g][Price] == 0)format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {FF0000}Big", dini_Get(Garage, "Owner"), GarageLocked);
  638. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: {FF0000}Big", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageLocked);
  639. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  640. SendClientMessage(playerid,COLOR_GREEN,"You successfully changed the garage's interior to Big!");
  641. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is already with this interior.");
  642. }
  643. else SendClientMessage(playerid, COLOR_ERROR, "Wrong garage interior.");
  644. } else SendClientMessage(playerid, COLOR_WHITE, "Usage: /g changeinterior [InteriorType]");
  645. }
  646. }
  647. }
  648. } else SendClientMessage(playerid, COLOR_ERROR, "You are not a RCON Administrator.");
  649. return 1;
  650. }
  651. if(strcmp(cmdtext, "/g buy", true) == 0)
  652. {
  653. new Garage2[64], GarageOwner[MAX_PLAYER_NAME], GarageInterior[128], GarageLocked[128];
  654. for(new g = 0; g <= MAX_GARAGES; g++)
  655. {
  656. format(Garage2, sizeof(Garage2), "/Garages/%d.dini.save", g);
  657. if(dini_Exists(Garage2))
  658. {
  659. LoadGarages(g);
  660. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  661. {
  662. if(strcmp(dini_Get(Garage2, "Owner"),PlayerName(playerid), false) == 1)
  663. {
  664. if(GarageInfo[g][ForSale] == 1)
  665. {
  666. if(GetPlayerMoney(playerid) >= GarageInfo[g][Price])
  667. {
  668. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  669. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  670. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  671. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  672. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  673. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  674. GarageInfo[g][ForSale] = 0;
  675. format(GarageOwner, MAX_PLAYER_NAME, "%s", PlayerName(playerid));
  676. dini_Set(Garage2,"Owner", GarageOwner);
  677. GivePlayerMoney(playerid,-GarageInfo[g][Price]);
  678. dini_IntSet(Garage2, "ForSale", GarageInfo[g][ForSale]);
  679. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", dini_Get(Garage2, "Owner"), GarageLocked, GarageInterior);
  680. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", dini_Get(Garage2, "Owner"), GarageInfo[g][Price], GarageLocked, GarageInterior);
  681. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  682. SendClientMessage(playerid, COLOR_GREEN, "Congratulations, You have bought a new garage!");
  683. } else SendClientMessage(playerid, COLOR_ERROR, "You don't have enough money to buy this garage!");
  684. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is not For Sale!");
  685. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is already Yours!");
  686. }
  687. }
  688. }
  689. return 1;
  690. }
  691. if(strcmp(cmdtext, "/g sell", true) == 0)
  692. {
  693. new Garage[64], Garage2[64], GarageOwner[MAX_PLAYER_NAME], GarageInterior[128], GarageLocked[128];
  694. for(new g = 0; g <= MAX_GARAGES; g++)
  695. {
  696. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  697. if(dini_Exists(Garage))
  698. {
  699. LoadGarages(g);
  700. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]))
  701. {
  702. format(Garage2, sizeof(Garage2), "/Garages/%d.dini.save", g);
  703. if(dini_Exists(Garage2))
  704. {
  705. if(strcmp(dini_Get(Garage2, "Owner"),PlayerName(playerid), false) == 0)
  706. {
  707. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  708. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  709. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  710. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  711. if(GarageInfo[g][Status] == 0) GarageLocked = "{00FF00}Unlocked";
  712. if(GarageInfo[g][Status] == 1) GarageLocked = "{FF0000}Locked";
  713. GarageInfo[g][ForSale] = 1;
  714. format(GarageOwner, MAX_PLAYER_NAME, "No");
  715. dini_Set(Garage2,"Owner", GarageOwner);
  716. GivePlayerMoney(playerid,GarageInfo[g][Price]);
  717. dini_IntSet(Garage2, "ForSale", GarageInfo[g][ForSale]);
  718. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", dini_Get(Garage2, "Owner"), GarageLocked, GarageInterior);
  719. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FF0000}%d\n{FFFFFF}Status: %s\n{FFFFFF}Interior: %s", dini_Get(Garage2, "Owner"), GarageInfo[g][Price], GarageLocked, GarageInterior);
  720. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  721. SendClientMessage(playerid, COLOR_GREEN, "You have successfully selled Your garage!");
  722. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is not Yours!");
  723. }
  724. }
  725. }
  726. }
  727. return 1;
  728. }
  729. if(strcmp(cmdtext, "/g lock", true) == 0)
  730. {
  731. new GarageOwner[MAX_PLAYER_NAME], GarageInterior[64], Garage2[64];
  732. for(new g = 0; g <= MAX_GARAGES; g++)
  733. {
  734. new Garage[64];
  735. format(Garage, sizeof(Garage), "/Garages/%d.dini.save", g);
  736. if(dini_Exists(Garage))
  737. {
  738. LoadGarages(g);
  739. if(IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][ExtX], GarageInfo[g][ExtY], GarageInfo[g][ExtZ]) || IsPlayerInRangeOfPoint(playerid, 3.0, GarageInfo[g][IntX], GarageInfo[g][IntY], GarageInfo[g][IntZ]) && GetPlayerVirtualWorld(playerid) == GarageInfo[g][vWorld])
  740. {
  741. format(Garage2, sizeof(Garage2), "/Garages/%d.dini.save", g);
  742. if(dini_Exists(Garage2))
  743. {
  744. format(GarageOwner, MAX_PLAYER_NAME, dini_Get(Garage2, "Owner"));
  745. if(strcmp(GarageOwner,PlayerName(playerid), false) == 0 && GarageInfo[g][ForSale] != 1)
  746. {
  747. if(GarageInfo[g][Status] == 0)
  748. {
  749. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  750. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  751. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  752. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  753. GarageInfo[g][Status] = 1;
  754. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {FF0000}Locked\n{FFFFFF}Interior: %s", dini_Get(Garage, "Owner"), GarageInterior);
  755. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FFFF00}%d\n{FFFFFF}Status: {FF0000}Locked\n{FFFFFF}Interior: %s", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageInterior);
  756. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  757. GameTextForPlayer(playerid, "~w~Garaþas ~r~UÞRAKINTAS", 1500, 4);
  758. dini_IntSet(Garage2, "Status", GarageInfo[g][Status]);
  759. }
  760. else if(GarageInfo[g][Status] == 1)
  761. {
  762. if(GarageInfo[g][IntID] == 0) GarageInterior = "{FFFF00}Small";
  763. if(GarageInfo[g][IntID] == 2) GarageInterior = "{00FF00}Medium";
  764. if(GarageInfo[g][IntID] == 3) GarageInterior = "{00FF00}Medium";
  765. if(GarageInfo[g][IntID] == 1) GarageInterior = "{FF0000}Big";
  766. GarageInfo[g][Status] = 0;
  767. if(GarageInfo[g][Price] == 0) format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {00FF00}Free\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: %s", dini_Get(Garage, "Owner"), GarageInterior);
  768. else format(string,sizeof(string),"Owner: {FF0000}%s\n{FFFFFF}Price: {FFFF00}%d\n{FFFFFF}Status: {00FF00}Unlocked\n{FFFFFF}Interior: %s", dini_Get(Garage, "Owner"), GarageInfo[g][Price], GarageInterior);
  769. Update3DTextLabelText(GarageInfo[g][Label], COLOR_WHITE, string);
  770. GameTextForPlayer(playerid, "~w~Garaþas ~g~ATRAKINTAS", 1500, 4);
  771. dini_IntSet(Garage2, "Status", GarageInfo[g][Status]);
  772. }
  773.  
  774. } else SendClientMessage(playerid, COLOR_ERROR, "This garage is not Yours.");
  775. }
  776. }
  777. }
  778. }
  779. return 1;
  780. }
  781. return 0;
  782. }
  783. forward LoadGarages(gID);
  784. public LoadGarages(gID)
  785. {
  786. new LoadString[256];
  787. format(LoadString, sizeof(LoadString), "/Garages/%d.dini.save", gID);
  788. if(dini_Exists(LoadString))
  789. {
  790. GarageInfo[gID][ExtX] = dini_Float(LoadString,"Ext:X");
  791. GarageInfo[gID][ExtY] = dini_Float(LoadString,"Ext:Y");
  792. GarageInfo[gID][ExtZ] = dini_Float(LoadString,"Ext:Z");
  793. GarageInfo[gID][ExtA] = dini_Float(LoadString,"Ext:A");
  794. GarageInfo[gID][IntX] = dini_Float(LoadString,"Int:X");
  795. GarageInfo[gID][IntY] = dini_Float(LoadString,"Int:Y");
  796. GarageInfo[gID][IntZ] = dini_Float(LoadString,"Int:Z");
  797. GarageInfo[gID][IntA] = dini_Float(LoadString,"Int:A");
  798. GarageInfo[gID][vWorld] = dini_Int(LoadString, "VirtualWorld");
  799. GarageInfo[gID][IntID] = dini_Int(LoadString, "Interior");
  800. GarageInfo[gID][Status] = dini_Int(LoadString, "Status");
  801. GarageInfo[gID][ForSale] = dini_Int(LoadString, "ForSale");
  802. GarageInfo[gID][Price] = dini_Int(LoadString, "Price");
  803. }
  804. return 1;
  805. }
  806.  
  807. //Stocks
  808. stock ReturnNextUnusedGarageID()
  809. {
  810. new Garages[64];
  811. for(new g = 0; g <= MAX_GARAGES; g++)
  812. {
  813. format(Garages, sizeof(Garages), "/Garages/%d.dini.save", g);
  814. if(!dini_Exists(Garages)) return g;
  815. }
  816. return 1;
  817. }
  818. stock ReturnNextUnusedVirtualWorld()
  819. {
  820. new Garages[64];
  821. format(Garages, sizeof(Garages), "/Garages/%d.dini.save", ReturnNextUnusedGarageID()-1);
  822. return dini_Int(Garages, "VirtualWorld")+1;
  823. }
  824. stock PlayerName(playerid)
  825. {
  826. new name[MAX_PLAYER_NAME];
  827. GetPlayerName(playerid, name, sizeof(name));
  828. return name;
  829. }
Advertisement
Add Comment
Please, Sign In to add comment