Advertisement
JawsCraft

ParkingSlot!

May 19th, 2016
863
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.76 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <zcmd>
  4. #include <streamer>
  5. #include <sscanf>
  6.  
  7. #define FILEPATH "/Parking/slot/%d.ini"
  8. #define FILEPATH1 "/Parking/slot/"
  9. #define MAX_PARKING 500
  10. #define Loop(%0,%1,%2) for(new %0 = %2; %0 < %1; %0++)
  11.  
  12. enum parkingInfo
  13. {
  14. ParkingCP,
  15. ParkingLabel,
  16. }
  17. new PInfo[MAX_PARKING][parkingInfo];
  18.  
  19. new Parkingslot[MAX_PARKING][parkingInfo] =
  20. {
  21. };
  22.  
  23. new LastParkingCP[MAX_PLAYERS];
  24. public OnFilterScriptInit()
  25. {
  26. print("\n--------------------------------------");
  27. print(" Parking System by JawsCraft ");
  28. print("--------------------------------------\n");
  29. for(new i, j = sizeof(Parkingslot); i < j; i++)
  30. {
  31. ReloadParking(i);
  32. }
  33. return 1;
  34. }
  35.  
  36.  
  37. public OnPlayerEnterDynamicCP(playerid, checkpointid)
  38. {
  39. for(new i, j = sizeof(Parkingslot); i < j; i++)
  40. {
  41. if(checkpointid == PInfo[i][ParkingCP])
  42. {
  43. new file[100],name[MAX_PLAYER_NAME];
  44. GetPlayerName(playerid, name, sizeof(name));
  45. format(file,sizeof file,"%s%d.ini",FILEPATH1,i);
  46. new price = dini_Int(file,"price");
  47. new owner[250];
  48. format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
  49. new ds[250];
  50. format(ds,sizeof ds,"{ffffff}Are you sure you want to buy {c0c0c0}Parking Slow ID %d {ffffff}with {ffff00}$%d",i,price);
  51. if(!strcmp(owner, "No Owner"))
  52. {
  53. ShowPlayerDialog(playerid,4578,DIALOG_STYLE_MSGBOX,"Parknig Slot",ds,"Yes","Cancel");
  54. }
  55. LastParkingCP[playerid] = i;
  56. }
  57. }
  58. return 1;
  59. }
  60.  
  61. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  62. {
  63. if(dialogid == 4578)
  64. {
  65. if(!response)return 1;
  66. if(response)
  67. {
  68. new file[100],name[MAX_PLAYER_NAME];
  69. GetPlayerName(playerid, name, sizeof(name));
  70. format(file,sizeof file,"%s%d.ini",FILEPATH1,LastParkingCP[playerid]);
  71. new price = dini_Int(file,"price");
  72. dini_Set(file,"Owner",name);
  73. GivePlayerMoney(playerid,-price);
  74. ReloadParking(LastParkingCP[playerid]);
  75. }
  76. }
  77. if(dialogid == 4579)
  78. {
  79. if(!response)return 1;
  80. if(response)
  81. {
  82. new file[100],name[MAX_PLAYER_NAME];
  83. GetPlayerName(playerid, name, sizeof(name));
  84. format(file,sizeof file,"%s%d.ini",FILEPATH1,LastParkingCP[playerid]);
  85. new price = dini_Int(file,"price");
  86. dini_Set(file,"Owner","No Owner");
  87. GivePlayerMoney(playerid,price/2);
  88. ReloadParking(LastParkingCP[playerid]);
  89. }
  90. }
  91. return 0;
  92. }
  93.  
  94. COMMAND:parkingsell(playerid,params[])
  95. {
  96. for(new i, j = sizeof(Parkingslot); i < j; i++)
  97. {
  98. if(IsPlayerInDynamicCP(playerid, PInfo[i][ParkingCP]))
  99. {
  100. new file[100],name[MAX_PLAYER_NAME];
  101. GetPlayerName(playerid, name, sizeof(name));
  102. format(file,sizeof file,"%s%d.ini",FILEPATH1,i);
  103. new owner[250];
  104. format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
  105. new price = dini_Int(file,"price");
  106. if(!strcmp(owner, "No Owner"))return SendClientMessage(playerid,0xFF0000,"{ff0000}[ERROR] {FFFFFF}This is not your parking slot.");
  107. new sellps[250];
  108. format(sellps,sizeof sellps,"{ffffff}Are you sure you want to sell your parking slot and get {ffff00}$%d {ffffff}back?",price/2);
  109. ShowPlayerDialog(playerid,4579,DIALOG_STYLE_MSGBOX,"Parknig Slot",sellps,"Yes","Cancel");
  110. }
  111. }
  112. return 1;
  113. }
  114.  
  115. COMMAND:createparking(playerid, params[])
  116. {
  117. new price;
  118. new h = GetFreeParkingID();
  119. if(!IsPlayerAdmin(playerid)) return 0;
  120. if(sscanf(params, "d", price))return SendClientMessage(playerid,0xFF0000,"{ff0000}[USAGE] {FFFFFF}/createpark [price]");
  121. if(h > MAX_PARKING)return SendClientMessage(playerid,0xFF0000,"{ff0000}[ERROR] {FFFFFF}Reached max parking slot!");
  122. new Float:X,Float:Y,Float:Z , worldid, interiorid;
  123. GetPlayerPos(playerid,X,Y,Z);
  124. interiorid = GetPlayerInterior(playerid);
  125. worldid = GetPlayerVirtualWorld(playerid);
  126. new file[100];
  127. format(file,sizeof file,"%s%d.ini",FILEPATH1,h);
  128. SendClientMessage(playerid,0xFF0000,file);
  129. dini_Create(file);
  130. dini_FloatSet(file,"posX",X);
  131. dini_FloatSet(file,"posY",Y);
  132. dini_FloatSet(file,"posZ",Z);
  133. dini_IntSet(file,"world",worldid);
  134. dini_IntSet(file,"interior",interiorid);
  135. dini_IntSet(file,"price",price);
  136. dini_Set(file,"Owner","No Owner");
  137. LoadParking(h);
  138. return 1;
  139. }
  140.  
  141. COMMAND:loadparking(playerid,params[])
  142. {
  143. new file;
  144. if(sscanf(params, "d", file))return SendClientMessage(playerid,0xFF0000,"{ff0000}[USAGE] {FFFFFF}/loadparking [ID]");
  145. ReloadParking(file);
  146. return 1;
  147. }
  148.  
  149.  
  150. stock GetFreeParkingID()
  151. {
  152. Loop(parkid, MAX_PARKING, 0)
  153. {
  154. if(!fexist(ParkFile(parkid)))
  155. {
  156. return parkid;
  157. }
  158. }
  159. return -1;
  160. }
  161.  
  162. stock ParkFile(parkid)
  163. {
  164. new filename[250];
  165. format(filename, sizeof(filename), FILEPATH, parkid);
  166. return filename;
  167. }
  168.  
  169. stock LoadParking(parkid)
  170. {
  171. new file[100];
  172. format(file,sizeof file,"%s%d.ini",FILEPATH1,parkid);
  173. new Float:X = dini_Float(file,"posX");
  174. new Float:Y = dini_Float(file,"posY");
  175. new Float:Z = dini_Float(file,"posZ");
  176. new worldid = dini_Int(file,"world");
  177. new interiorid = dini_Int(file,"interior");
  178. new price = dini_Int(file,"price");
  179. new owner[250];
  180. format(owner,sizeof owner,"%s",dini_Get(file,"Owner"));
  181. PInfo[parkid][ParkingCP] = CreateDynamicCP(X, Y, Z,4, worldid, interiorid, -1, 10);
  182. new parkinglabel[250];
  183. format(parkinglabel,sizeof parkinglabel,"[PARKING]\n{FFFFFF}Owner : %s\nPrice : %d",owner,price);
  184. PInfo[parkid][ParkingLabel] = CreateDynamic3DTextLabel(parkinglabel, 0xFF0000, X, Y, Z, 10, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, worldid, interiorid, -1, 10);
  185. }
  186.  
  187. stock UnloadParking(parkid)
  188. {
  189. DestroyDynamicCP(PInfo[parkid][ParkingCP]);
  190. DestroyDynamic3DTextLabel(PInfo[parkid][ParkingLabel]);
  191. }
  192.  
  193. stock ReloadParking(parkid)
  194. {
  195. UnloadParking(parkid);
  196. LoadParking(parkid);
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement