Advertisement
Guest User

Untitled

a guest
Sep 30th, 2014
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.46 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <a_mysql>
  4. #include <sscanf2>
  5.  
  6. #define SCRIPT_CARS 100
  7. #define DEFAULT_VEHICLE_OWNER "Dealership"
  8. #define DEFAULT_SELL_PRICE 50000
  9. #define DEFAULT_VEHICLE_PRICE 500000
  10.  
  11. #define DIALOG_CS 7171
  12. #define DIALOG_CSL 7172
  13.  
  14.  
  15. new vehtimer;
  16. public OnFilterScriptInit()
  17. {
  18. vehtimer = SetTimer("vload",10000,0);
  19. print("\n------------------------------------------------");
  20. print("Cameltoe's car saving system Edited by Legena loaded!");
  21. print("-------------------------------------------------\n");
  22. return 1;
  23. }
  24.  
  25. public OnFilterScriptExit()
  26. {
  27. return 1;
  28. }
  29.  
  30. public OnPlayerConnect(playerid)
  31. {
  32. SendClientMessage(playerid,0x00FF00FF,"This Server Use Cameltoe's car saving system which is edited to Car Ownership!");
  33. return 1;
  34. }
  35.  
  36. enum posInfo
  37. {
  38. Float: X,
  39. Float: Y,
  40. Float: Z,
  41. Float: R,
  42. }
  43.  
  44. forward vload();
  45. public vload()
  46. {
  47. LoadVehicles();
  48. KillTimer(vehtimer);
  49. }
  50.  
  51. enum vInfo // You could really name this anything.. Foo, pop, vehicle, vehicles whatever you like.
  52. {
  53. Id, // This is needed as SScanf loads the car variables through this Enum, i'll get back to that later.
  54. Owner[25],
  55. Model,
  56. Price,
  57. Float:Pos[posInfo],
  58. col1,
  59. col2, // Arrays ftw.
  60. }
  61. new VehicleInfo[SCRIPT_CARS][vInfo];
  62. new SaleCars[100];
  63.  
  64.  
  65. stock LoadVehicles() // You might want to make this an public so you could call it on an timer.
  66. {
  67. new Query[255];
  68. for(new i; i < SCRIPT_CARS; i++)
  69. {
  70. format(Query, sizeof(Query), "SELECT * FROM vehicles WHERE id = '%d'",i); // Formats the query for "mysql_query"
  71. mysql_query(Query); // Querys the "Query" Variable.
  72. mysql_store_result(); // Stores the result from Query
  73. while(mysql_fetch_row_format(Query,"|")) // Splits the row
  74. {
  75. sscanf(Query, "p<|>e<is[25]iiffff>", VehicleInfo[i]); // Pretty neat ehh? [ ID, OWNER, MODEL, PRICE, POS X, POS Y, POS Z, POS A ]
  76. SaleCars[i] = CreateVehicle(VehicleInfo[i][Model],VehicleInfo[i][Pos][X],VehicleInfo[i][Pos][Y],VehicleInfo[i][Pos][Z],VehicleInfo[i][Pos][R],VehicleInfo[i][col1],VehicleInfo[i][col2], 60*10000);
  77. }
  78. }
  79. }
  80.  
  81. command(createveh, playerid, params[]) // Create vehicle command, not Tested.
  82. {
  83. new vID, Query[200];
  84. if(sscanf(params, "i", vID)) return SendClientMessage(playerid, -1, "Usage: /createveh [ ModelID ]");
  85. new Float:pPOS[4];
  86. GetPlayerPos(playerid, pPOS[0], pPOS[1], pPOS[2]);
  87. GetPlayerFacingAngle(playerid , pPOS[3]);
  88. new Color1 = random(126); new Color2 = random(126);
  89. format(Query, sizeof(Query), "INSERT INTO vehicles (id, owner, model, price, x, y, z, a,col1,col2) VALUES (NULL, '%s', %d, %d, %f, %f, %f, %f,%d,%d);",DEFAULT_VEHICLE_OWNER,vID, DEFAULT_VEHICLE_PRICE, pPOS[0], pPOS[1], pPOS[2], pPOS[3],Color1,Color2);
  90. mysql_query(Query);
  91. format(Query, sizeof(Query), "Created an %d at x: %f y: %f z: %f a: %f);",vID,pPOS[0], pPOS[1], pPOS[2], pPOS[3]);
  92. SendClientMessage(playerid, -1, Query);
  93. return 1;
  94. }
  95.  
  96. command(reloadvehicles, playerid, params[]) // Reload's Vehicles
  97. {
  98. for(new i; i < SCRIPT_CARS; i++)
  99. {
  100. if(IsVehicleConnected(i)) DestroyVehicle(i);
  101. }
  102. LoadVehicles();
  103. SendClientMessage(playerid, -1, "Vehicle's reloaded");
  104. }
  105.  
  106. command(vehctrl, playerid, params[]) // Reload's Vehicles
  107. {
  108. new vehicleid = GetPlayerVehicleID(playerid);
  109. if(IsPlayerInVehicle(playerid,vehicleid))
  110. {
  111. ShowPlayerDialog(playerid, DIALOG_CS, DIALOG_STYLE_LIST, "Vehicle Control Panel", "Park Car\nLeave Car", "Select", "Close");
  112. }
  113. else
  114. {
  115. SendClientMessage(playerid,-1,"You can't use this command in car which is not yours!");
  116. }
  117. }
  118.  
  119.  
  120.  
  121.  
  122. new owncar[SCRIPT_CARS];
  123. public OnPlayerStateChange(playerid,newstate,oldstate)
  124. {
  125. new vehicleid = GetPlayerVehicleID(playerid);
  126. if(newstate == PLAYER_STATE_DRIVER)
  127. {
  128. for(new i; i < SCRIPT_CARS; i++)
  129. if(vehicleid == SaleCars[i])
  130. {
  131. new playername[MAX_PLAYER_NAME];
  132. GetPlayerName(playerid,playername,sizeof(playername));
  133. if(VehicleInfo[vehicleid][Owner] == playername[playerid])
  134. {
  135. SendClientMessage(playerid, -1, "Welcome back to your car");
  136. }
  137. else
  138. {
  139. if(owncar[vehicleid] == 0)
  140. {
  141. ShowPlayerDialog(playerid, 5818, DIALOG_STYLE_MSGBOX, "DealerShip Services", "Welcome to dealership service!\nDo you want to buy this car? If you do than you need to have drive licence and 500,000$\nSo do you want to buy this car?", "Yes", "No");
  142. }
  143. else
  144. {
  145. SendClientMessage(playerid, -1, "Welcome back to your car");
  146. }
  147. }
  148. }
  149. }
  150. return 1;
  151. }
  152.  
  153.  
  154. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  155. {
  156. if(dialogid == 5818)
  157. {
  158. if(response)
  159. {
  160. new vehicleid = GetPlayerVehicleID(playerid);
  161. new playername[MAX_PLAYER_NAME];
  162. GetPlayerName(playerid,playername,sizeof(playername));
  163.  
  164. new query[200];
  165. format(query, sizeof(query), "UPDATE vehicles SET owner='%s' WHERE id=%d",playername,VehicleInfo[vehicleid][Id]);
  166. mysql_query(query);
  167.  
  168. SendClientMessage(playerid, -1, "Thank you for buying this car. Enjoy in driving!");
  169. GivePlayerMoney(playerid,-500000);
  170. owncar[vehicleid] = 1;
  171. }
  172. else
  173. {
  174. SendClientMessage(playerid, -1, "Thank you for visiting! See ya soon!");
  175. RemovePlayerFromVehicle(playerid);
  176. }
  177. return 1;
  178. }
  179.  
  180.  
  181. if(dialogid == DIALOG_CS)
  182. {
  183. if(response)
  184. {
  185. switch(listitem)
  186. {
  187. case 0:
  188. {
  189. new Float:pPOS[4], query[200], vehicleid = GetPlayerVehicleID(playerid);
  190. GetPlayerPos(playerid, pPOS[0], pPOS[1], pPOS[2]);
  191. GetPlayerFacingAngle(playerid , pPOS[3]);
  192. format(query, sizeof(query), "UPDATE vehicles SET x='%f', y='%f',z='%f',a='%f' WHERE id=%d",pPOS[0],pPOS[1],pPOS[2],pPOS[3],VehicleInfo[vehicleid][Id]);
  193. mysql_query(query);
  194. SendClientMessage(playerid, -1, "Your car is parked on new location!");
  195. }
  196. case 1:
  197. {
  198. SendClientMessage(playerid, -1, "You are removed from your car!");
  199. RemovePlayerFromVehicle(playerid);
  200. }
  201. }
  202. }
  203. return 1;
  204. }
  205.  
  206. return 0;
  207.  
  208. }
  209.  
  210.  
  211. stock IsVehicleConnected(vehicleid)
  212. {
  213. new Float:x1,Float:y1,Float:z1;
  214. GetVehiclePos(vehicleid,x1,y1,z1);
  215. if(x1==0.0 && y1==0.0 && z1==0.0)
  216. {
  217. return 0;
  218. }
  219. return 1;
  220. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement