Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- WRental Filterscripts by Wayland
- You may not edit or remove the credits
- */
- #include a_samp
- #include zcmd
- #define RENTAL_COST 500 // Change for car rent cost
- new IsRentable[MAX_VEHICLES];
- new IsRented[MAX_VEHICLES];
- new RentedBy[MAX_VEHICLES][24];
- public OnFilterScriptInit()
- {
- /* CreateRental(iModel, Float:fX, Float:fY, Float:fZ, Float:Angle, iCol1, iCol2); */
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- SetPVarInt(playerid, "Renting", 0);
- SetPVarInt(playerid, "CarRentID", 0);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- if (GetPVarInt(playerid, "Renting") == 1)
- IsRented[GetPVarInt(playerid, "CarRentID")] = 0,
- SetVehicleToRespawn(GetPVarInt(playerid, "CarRentID"));
- DeletePVar(playerid, "Renting");
- DeletePVar(playerid, "CarRentID");
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if (newstate == 2)
- {
- if (oldstate == 1)
- {
- new
- vID = GetPlayerVehicleID(playerid);
- if (IsRentableCar(vID))
- {
- if (!IsRentedCar(vID))
- {
- new
- String[128];
- format(String, 128, "Rental Cost: $%d. Type /rentcar to rent this car or /exitrental to exit.", RENTAL_COST);
- GameTextForPlayer(playerid, String, 30000, 4);
- SendClientMessage(playerid, -1, "Type {3399CC}/exitrental{FFFFFF} to exit this rental car.");
- TogglePlayerControllable(playerid, 0);
- }
- else if (IsRentedCar(vID))
- {
- if (GetPVarInt(playerid, "CarRentID") == vID)
- {
- return SendClientMessage(playerid, -1, "Welcome to your {3399CC}rented car.{FFFFFF}");
- }
- else if (GetPVarInt(playerid, "CarRentID") != vID)
- {
- new
- String[128];
- format(String, 128, "This vehicle is rented by: {3399CC}%s{FFFFFF}", RentedBy[vID]);
- SendClientMessage(playerid, -1, String);
- SendClientMessage(playerid, -1, "Use {3399CC}/exitrental{FFFFFF} to exit this vehicle.");
- return 1;
- }
- }
- }
- }
- }
- return 0;
- }
- CMD:rentalhelp(playerid, params[])
- {
- SendClientMessage(playerid, -1, "{3399CC}Rent Commands:{FFFFFF} /rentcar, /unrentcar, /exitrental");
- return 1;
- }
- CMD:addrental(playerid, params[])
- {
- new iVeh, iModel, Float:X, Float:Y, Float:Z, Float:Angle, szString[128];
- if (!IsPlayerAdmin(playerid) && !IsPlayerInAnyVehicle(playerid))
- return SendClientMessage(playerid, -1, "{3399CC}System:{FFFFFF} You are not an admin / not in any car");
- iVeh = GetPlayerVehicleID(playerid);
- iModel = GetVehicleModel(iVeh);
- GetVehiclePos(iVeh, X, Y, Z);
- GetVehicleZAngle(iVeh, Angle);
- format(szString, 128, "CreateRental(%d, %f, %f, %f, %f, %d, %d);", iModel, X, Y, Z, Angle, -1, -1);
- printf(szString);
- SendClientMessage(playerid, -1, szString);
- return 1;
- }
- CMD:exitrental(playerid, params[])
- {
- new
- vID = GetPlayerVehicleID(playerid);
- if (!vID)
- {
- SendClientMessage(playerid, -1, "You are {3399CC}not{FFFFFF} in a rental car!");
- return 1;
- }
- RemovePlayerFromVehicle(playerid);
- TogglePlayerControllable(playerid, 1);
- GameTextForPlayer(playerid, " ", 500, 4);
- return 1;
- }
- CMD:unrentcar(playerid, params[])
- {
- GameTextForPlayer(playerid, " ", 500, 4);
- if (GetPVarInt(playerid, "Renting") == 0)
- {
- SendClientMessage(playerid, -1, "You {3399CC}don't{FFFFFF} even rent a car!");
- return 1;
- }
- new
- vID = GetPVarInt(playerid, "CarRentID");
- IsRented[vID] = 0;
- SetPVarInt(playerid, "CarRentID", 0);
- SetPVarInt(playerid, "Renting", 0);
- new
- Float:X,
- Float:Y,
- Float:Z;
- GetPlayerPos(playerid, X, Y, Z);
- SetPlayerPos(playerid, X, Y, Z+1);
- TogglePlayerControllable(playerid, 1);
- SetVehicleToRespawn(vID);
- RentedBy[vID] = "No-one";
- return 1;
- }
- CMD:rentcar(playerid, params[])
- {
- GameTextForPlayer(playerid, " ", 500, 4);
- new
- vID = GetPlayerVehicleID(playerid);
- if (!vID)
- {
- SendClientMessage(playerid, -1, "You are {3399CC}not{FFFFFF} in any car!");
- return 1;
- }
- if (!IsRentableCar(vID))
- {
- SendClientMessage(playerid, -1, "This car is {3399CC}not{FFFFFF} rentable!");
- return 1;
- }
- if (IsRentedCar(vID))
- {
- SendClientMessage(playerid, -1, "This car is {3399CC}already rented{FFFFFF} by someone else!");
- return 1;
- }
- if (GetPVarInt(playerid, "Renting") == 1)
- {
- SendClientMessage(playerid, -1, "You {3399CC}already rent{FFFFFF} a car!");
- return 1;
- }
- if (!CanAffordRental(playerid))
- {
- new String[128];
- format(String, 128, "You don't have money to rent this! {3399CC}(Cost: %d)", RENTAL_COST);
- SendClientMessage(playerid, -1, String);
- return 1;
- }
- IsRented[vID] = 1;
- TogglePlayerControllable(playerid, 1);
- SetPVarInt(playerid, "CarRentID", vID);
- SetPVarInt(playerid, "Renting", 1);
- new String[128];
- format(String, 128, "~w~you have rented this car~n~it costed you: ~g~%d$", RENTAL_COST);
- GameTextForPlayer(playerid, String, 4000, 4);
- RentedBy[vID] = GetName(playerid);
- GivePlayerMoney(playerid, -RENTAL_COST);
- SendClientMessage(playerid, -1, "{3399CC}Car rented,{FFFFFF} you may now turn on the engine!");
- return 1;
- }
- stock CreateRental(iModel, Float:fX, Float:fY, Float:fZ, Float:fAngle, iCol1, iCol2)
- {
- new
- TMP;
- TMP = AddStaticVehicle(iModel, Float:fX, Float:fY, Float:fZ, Float:fAngle, iCol1, iCol2);
- SetVehicleNumberPlate(TMP, "Rental");
- SetVehicleToRespawn(TMP);
- IsRentable[TMP] = 1;
- IsRented[TMP] = 0;
- RentedBy[TMP] = "No-one";
- return TMP;
- }
- stock GetName(playerid)
- {
- new
- Name[24];
- GetPlayerName(playerid, Name, 24);
- return Name;
- }
- stock IsRentableCar(vehicleid)
- {
- if (IsRentable[vehicleid])
- return 1;
- return 0;
- }
- stock CanAffordRental(playerid)
- {
- new
- Money;
- Money = GetPlayerMoney(playerid);
- if (Money >= RENTAL_COST)
- return 1;
- return 0;
- }
- stock IsRentedCar(vehicleid)
- {
- if (IsRented[vehicleid])
- return 1;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement