Код:
new vehid = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_PASSENGER)
{
new string[45];
new seat = GetPlayerVehicleSeat(playerid);
if(PlayerCar[playerid] != INVALID_VEHICLE_ID) VehicleSeat[PlayerCar[playerid]][PlayerSeat[playerid]] = -1;
VehicleSeat[vehid][seat] = playerid;
PlayerCar[playerid] = vehid;
PlayerSeat[playerid] = seat;
SetCameraBehindPlayer(playerid);
if(IsATaxi(vehid))
{
new id = GetVehicleSeat(vehid, 0);
if(PlayerInfo[id][pJob] == JOB_TAXI)
{
if(TaxiTarif[id] > 0)
{
Taxi_GO[playerid] = 0;
TaxiPrice[playerid] = 0;
TaxiDistance[playerid] = 0;
PlayerTextDrawShow(playerid,TaxiDraw[playerid]);
for(new x; x < 10; x++) TextDrawShowForPlayer(playerid, TaxiTD[x]);
PlayerTextDrawSetString(playerid, TaxiDraw[playerid],"0");
format(string,sizeof(string),">> {FFFFFF}%s сел к вам в такси.",Name(playerid));
SendClientMessage(id,COLOR_WHITE,string);
if(PlayerInfo[playerid][pCash]<=TaxiTarif[id])
{
SendClientMessage(id,COLOR_RED,"[ВНИМАНИЕ]{FFFFFF} У игрока который к вам сел , не хватит денег чтобы оплатить за проезд!");
SendClientMessage(playerid,COLOR_RED,"<< {FFFFFF}У вас не достаточно денег чтобы ездить на такси!");
RemovePlayerFromVehicle(playerid);
}
ShowPlayerDialog(playerid, dtaximesto, 2, "Как ехать?", "1. Выбрать пункт в GPS\n2. Отметить точку на карте\n3. Договориться с таксистом", "Выбор", "Отмена");
}
else
{
SendClientMessage(id,COLOR_RED,"[Информация] {FFFFFF}К вам в такси сел пассажир, но вы не получите с него прибыли, так-как вы не установили тариф!");
SendClientMessage(playerid,COLOR_RED,"[Информация] {FFFFFF}Этот таксист еще не установил тариф за свои услуги!");
}
}
}
}
if(oldstate == 2 || oldstate == PLAYER_STATE_PASSENGER)
{
new string[100];
new vehicleid = PlayerCar[playerid];
//new seat = PlayerSeat[playerid];
if(IsATaxi(vehicleid))
{
if(!PlayerSeat[playerid])
{
if(PlayerInfo[playerid][pJob] == JOB_TAXI)
{
if(TaxiTarif[playerid] > 0)
{
TaxiTarif[playerid] = 0;
SendClientMessage(playerid,COLOR_GREY,"[Информация] {FFFFFF}Вы теперь не на службе");
PlayerTextDrawHide(playerid,TaxiDraw[playerid]);
for(new x; x < 10; x++) TextDrawHideForPlayer(playerid,TaxiTD[x]);
UpdateDynamic3DTextLabelText(TaxiText[vehicleid], COLOR_GOLD, "<< Такси для аренды >>");
for(new i;i < 4;i ++)
{
new player = GetVehicleSeat(vehicleid, i);
if(!IsPlayerConnected(player)) continue;
if(player != INVALID_PLAYER_ID)
{
SendClientMessage(player,COLOR_GREY,"[Информация] {FFFFFF}Таксист, который вез вас теперь не на службе");
PlayerTextDrawHide(player,TaxiDraw[player]);
for(new x; x < 10; x++) TextDrawHideForPlayer(playerid,TaxiTD[x]);
if(PlayerInfo[player][pCash] > TaxiPrice[player]) GiveMoney(playerid,TaxiPrice[player],"Taxi+");
GiveMoney(player,-TaxiPrice[player],"Taxi-");
PlayerTextDrawHide(player,TaxiDraw[player]);
PlayerTextDrawSetString(playerid, TaxiDraw[playerid],"0");
PlayerTextDrawSetString(player, TaxiDraw[player],"0");
TaxiPrice[player] = 0;
TaxiDistance[player] = 0;
}
}
}
}
}
else if(PlayerSeat[playerid] > 0)
{
new id = GetVehicleSeat(vehicleid, 0);
if(id != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pCash] > TaxiPrice[playerid]) GiveMoney(playerid,-TaxiPrice[playerid]);
GiveMoney(id,TaxiPrice[playerid]);
PlayerTextDrawHide(playerid,TaxiDraw[playerid]);
for(new x; x < 10; x++) TextDrawHideForPlayer(playerid,TaxiTD[x]);
PlayerTextDrawSetString(playerid, TaxiDraw[playerid],"0");
format(string,sizeof(string),"[Информация] {FFFFFF}Вы взяли $%d с игрока %s за поездку",TaxiPrice[playerid],Name(playerid));
SendClientMessage(id,COLOR_WHITE,string);
format(string,sizeof(string),"[Информация] {FFFFFF}Вы отдали $%d таксисту %s за поездку",TaxiPrice[playerid],Name(id));
SendClientMessage(playerid,COLOR_GREY,string);
TaxiPrice[playerid]=0;
new money;
for(new i = 1; i < 4; i ++)
{
new pseat = GetVehicleSeat(vehicleid, i);
if(pseat != INVALID_PLAYER_ID) money += TaxiPrice[pseat];
}
format(string,sizeof(string),"%d",money);
PlayerTextDrawSetString(id, TaxiDraw[id],string);
}
}
}
}
VehicleSeatState и GetVehicleSeat