Detaljan opis problema: Vako neznam uabcit auta daa se rentaju pasam uzeo ovu Fs : http://forum.sa-mp.com/showthread.php?t=252231 i sve sam uradio ali akd udjem u Ig ova se vozila spawnaju 2x konante od mog 1. auta koje sam satvio da se renta budu 2. i to mi sve pokvari od 50. rent auta bude ih 100 sve jedno na drugom kako da se to tjesi a evo i Pawno od te ---->
Dio skripte:
/*
Commands: /rentcar, /unrentcar, /exitrental, /renthelp, /addrental (easy function generator)
Author: admantis
*/
#include a_samp
#include zcmd
#define RENT_COST 300 // Change for car rent cost
new IsRentable;
new IsRented;
new RentedBy;
public OnFilterScriptInit()
{
/* Under this callback you can create the rental cars with this simple function:
CreateRentalVehicle(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;
format(String, 128, "~p~~n~rent cost: ~b~%d~n~~w~type ~b~/rentcar~n~~w~to exit it type~n~~p~/exitrental", RENT_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, "{3399CC}Welcome{FFFFFF} to your rented car.");
}
else if (GetPVarInt(playerid, "CarRentID") != vID)
{
new
String;
format(String, 128, "This vehicle is rented by: {3399CC}%s{FFFFFF}", RentedBy);
SendClientMessage(playerid, -1, String);
SendClientMessage(playerid, -1, "Use {3399CC}/exitrental{FFFFFF} to exit this vehicle.");
return 1;
}
}
}
}
}
return 0;
}
CMD:renthelp(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;
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, "CreateRentalVehicle(%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 = 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 = "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;
format(String, 128, "You don't have money to rent this! {3399CC}(Cost: %d)", RENT_COST);
SendClientMessage(playerid, -1, String);
return 1;
}
IsRented = 1;
TogglePlayerControllable(playerid, 1);
SetPVarInt(playerid, "CarRentID", vID);
SetPVarInt(playerid, "Renting", 1);
new String;
format(String, 128, "~w~you have rented this car~n~it costed you: ~g~%d$", RENT_COST);
GameTextForPlayer(playerid, String, 4000, 4);
RentedBy = GetName(playerid);
GivePlayerMoney(playerid, -RENT_COST);
SendClientMessage(playerid, -1, "{3399CC}Car rented,{FFFFFF} you may now turn on the engine!");
return 1;
}
stock CreateRentalVehicle(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 = 1;
IsRented = 0;
RentedBy = "No-one";
return TMP;
}
stock GetName(playerid)
{
new
Name;
GetPlayerName(playerid, Name, 24);
return Name;
}
stock IsRentableCar(vehicleid)
{
if (IsRentable)
return 1;
return 0;
}
stock CanAffordRental(playerid)
{
new
Money;
Money = GetPlayerMoney(playerid);
if (Money >= RENT_COST)
return 1;
return 0;
}
stock IsRentedCar(vehicleid)
{
if (IsRented)
return 1;
return 0;
}