Advertisement
Guest User

Wrental by Wayland

a guest
Nov 23rd, 2013
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.83 KB | None | 0 0
  1. /*
  2. WRental Filterscripts by Wayland
  3. You may not edit or remove the credits
  4. */
  5.  
  6. #include a_samp
  7. #include zcmd
  8.  
  9. #define RENTAL_COST 500 // Change for car rent cost
  10.  
  11. new IsRentable[MAX_VEHICLES];
  12. new IsRented[MAX_VEHICLES];
  13. new RentedBy[MAX_VEHICLES][24];
  14.  
  15. public OnFilterScriptInit()
  16. {
  17. /* CreateRental(iModel, Float:fX, Float:fY, Float:fZ, Float:Angle, iCol1, iCol2); */
  18. return 1;
  19. }
  20.  
  21. public OnPlayerConnect(playerid)
  22. {
  23. SetPVarInt(playerid, "Renting", 0);
  24. SetPVarInt(playerid, "CarRentID", 0);
  25. return 1;
  26. }
  27.  
  28. public OnPlayerDisconnect(playerid, reason)
  29. {
  30. if (GetPVarInt(playerid, "Renting") == 1)
  31. IsRented[GetPVarInt(playerid, "CarRentID")] = 0,
  32. SetVehicleToRespawn(GetPVarInt(playerid, "CarRentID"));
  33. DeletePVar(playerid, "Renting");
  34. DeletePVar(playerid, "CarRentID");
  35. return 1;
  36. }
  37.  
  38. public OnPlayerStateChange(playerid, newstate, oldstate)
  39. {
  40. if (newstate == 2)
  41. {
  42. if (oldstate == 1)
  43. {
  44. new
  45. vID = GetPlayerVehicleID(playerid);
  46. if (IsRentableCar(vID))
  47. {
  48. if (!IsRentedCar(vID))
  49. {
  50. new
  51. String[128];
  52. format(String, 128, "Rental Cost: $%d. Type /rentcar to rent this car or /exitrental to exit.", RENTAL_COST);
  53. GameTextForPlayer(playerid, String, 30000, 4);
  54. SendClientMessage(playerid, -1, "Type {3399CC}/exitrental{FFFFFF} to exit this rental car.");
  55. TogglePlayerControllable(playerid, 0);
  56. }
  57. else if (IsRentedCar(vID))
  58. {
  59. if (GetPVarInt(playerid, "CarRentID") == vID)
  60. {
  61. return SendClientMessage(playerid, -1, "Welcome to your {3399CC}rented car.{FFFFFF}");
  62. }
  63. else if (GetPVarInt(playerid, "CarRentID") != vID)
  64. {
  65. new
  66. String[128];
  67. format(String, 128, "This vehicle is rented by: {3399CC}%s{FFFFFF}", RentedBy[vID]);
  68. SendClientMessage(playerid, -1, String);
  69. SendClientMessage(playerid, -1, "Use {3399CC}/exitrental{FFFFFF} to exit this vehicle.");
  70. return 1;
  71. }
  72. }
  73. }
  74. }
  75. }
  76. return 0;
  77. }
  78.  
  79.  
  80. CMD:rentalhelp(playerid, params[])
  81. {
  82. SendClientMessage(playerid, -1, "{3399CC}Rent Commands:{FFFFFF} /rentcar, /unrentcar, /exitrental");
  83. return 1;
  84. }
  85.  
  86. CMD:addrental(playerid, params[])
  87. {
  88. new iVeh, iModel, Float:X, Float:Y, Float:Z, Float:Angle, szString[128];
  89. if (!IsPlayerAdmin(playerid) && !IsPlayerInAnyVehicle(playerid))
  90. return SendClientMessage(playerid, -1, "{3399CC}System:{FFFFFF} You are not an admin / not in any car");
  91.  
  92. iVeh = GetPlayerVehicleID(playerid);
  93. iModel = GetVehicleModel(iVeh);
  94. GetVehiclePos(iVeh, X, Y, Z);
  95. GetVehicleZAngle(iVeh, Angle);
  96.  
  97. format(szString, 128, "CreateRental(%d, %f, %f, %f, %f, %d, %d);", iModel, X, Y, Z, Angle, -1, -1);
  98. printf(szString);
  99. SendClientMessage(playerid, -1, szString);
  100. return 1;
  101. }
  102.  
  103. CMD:exitrental(playerid, params[])
  104. {
  105. new
  106. vID = GetPlayerVehicleID(playerid);
  107. if (!vID)
  108. {
  109. SendClientMessage(playerid, -1, "You are {3399CC}not{FFFFFF} in a rental car!");
  110. return 1;
  111. }
  112. RemovePlayerFromVehicle(playerid);
  113. TogglePlayerControllable(playerid, 1);
  114. GameTextForPlayer(playerid, " ", 500, 4);
  115. return 1;
  116. }
  117.  
  118. CMD:unrentcar(playerid, params[])
  119. {
  120. GameTextForPlayer(playerid, " ", 500, 4);
  121. if (GetPVarInt(playerid, "Renting") == 0)
  122. {
  123. SendClientMessage(playerid, -1, "You {3399CC}don't{FFFFFF} even rent a car!");
  124. return 1;
  125. }
  126. new
  127. vID = GetPVarInt(playerid, "CarRentID");
  128. IsRented[vID] = 0;
  129. SetPVarInt(playerid, "CarRentID", 0);
  130. SetPVarInt(playerid, "Renting", 0);
  131. new
  132. Float:X,
  133. Float:Y,
  134. Float:Z;
  135. GetPlayerPos(playerid, X, Y, Z);
  136. SetPlayerPos(playerid, X, Y, Z+1);
  137. TogglePlayerControllable(playerid, 1);
  138. SetVehicleToRespawn(vID);
  139. RentedBy[vID] = "No-one";
  140. return 1;
  141. }
  142.  
  143. CMD:rentcar(playerid, params[])
  144. {
  145. GameTextForPlayer(playerid, " ", 500, 4);
  146. new
  147. vID = GetPlayerVehicleID(playerid);
  148. if (!vID)
  149. {
  150. SendClientMessage(playerid, -1, "You are {3399CC}not{FFFFFF} in any car!");
  151. return 1;
  152. }
  153. if (!IsRentableCar(vID))
  154. {
  155. SendClientMessage(playerid, -1, "This car is {3399CC}not{FFFFFF} rentable!");
  156. return 1;
  157. }
  158. if (IsRentedCar(vID))
  159. {
  160. SendClientMessage(playerid, -1, "This car is {3399CC}already rented{FFFFFF} by someone else!");
  161. return 1;
  162. }
  163. if (GetPVarInt(playerid, "Renting") == 1)
  164. {
  165. SendClientMessage(playerid, -1, "You {3399CC}already rent{FFFFFF} a car!");
  166. return 1;
  167. }
  168. if (!CanAffordRental(playerid))
  169. {
  170. new String[128];
  171. format(String, 128, "You don't have money to rent this! {3399CC}(Cost: %d)", RENTAL_COST);
  172. SendClientMessage(playerid, -1, String);
  173. return 1;
  174. }
  175. IsRented[vID] = 1;
  176. TogglePlayerControllable(playerid, 1);
  177. SetPVarInt(playerid, "CarRentID", vID);
  178. SetPVarInt(playerid, "Renting", 1);
  179. new String[128];
  180. format(String, 128, "~w~you have rented this car~n~it costed you: ~g~%d$", RENTAL_COST);
  181. GameTextForPlayer(playerid, String, 4000, 4);
  182. RentedBy[vID] = GetName(playerid);
  183. GivePlayerMoney(playerid, -RENTAL_COST);
  184. SendClientMessage(playerid, -1, "{3399CC}Car rented,{FFFFFF} you may now turn on the engine!");
  185. return 1;
  186. }
  187.  
  188. stock CreateRental(iModel, Float:fX, Float:fY, Float:fZ, Float:fAngle, iCol1, iCol2)
  189. {
  190. new
  191. TMP;
  192.  
  193. TMP = AddStaticVehicle(iModel, Float:fX, Float:fY, Float:fZ, Float:fAngle, iCol1, iCol2);
  194.  
  195. SetVehicleNumberPlate(TMP, "Rental");
  196. SetVehicleToRespawn(TMP);
  197.  
  198. IsRentable[TMP] = 1;
  199. IsRented[TMP] = 0;
  200. RentedBy[TMP] = "No-one";
  201. return TMP;
  202. }
  203.  
  204. stock GetName(playerid)
  205. {
  206. new
  207. Name[24];
  208. GetPlayerName(playerid, Name, 24);
  209. return Name;
  210. }
  211.  
  212. stock IsRentableCar(vehicleid)
  213. {
  214. if (IsRentable[vehicleid])
  215. return 1;
  216. return 0;
  217. }
  218.  
  219. stock CanAffordRental(playerid)
  220. {
  221. new
  222. Money;
  223. Money = GetPlayerMoney(playerid);
  224. if (Money >= RENTAL_COST)
  225. return 1;
  226. return 0;
  227. }
  228.  
  229. stock IsRentedCar(vehicleid)
  230. {
  231. if (IsRented[vehicleid])
  232. return 1;
  233. return 0;
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement