А я сделал так.
PHP код:
if(vehicleid >= taxicar[0] && vehicleid <= taxicar[1])
{
if(DogovorTaxi{playerid} == true)
{
new mesto = GetPlayerVehicleSeat(playerid);
if(mesto == 1 || mesto == 2 || mesto == 3)
{
taxitimer = SetTimer("TaxiTime", 30000, true);
}
}
}
При посадке пассажира в такси, запускается таймер, на повтор каждые 30 сек.
PHP код:
public TaxiTime(playerid)
{
new giveplayerid;
new vehicleid = GetPlayerVehicleID(playerid);
if(vehicleid >= taxicar[0] && vehicleid <= taxicar[1])
{
if(DogovorTaxi{playerid} == true)
{
new mesto = GetPlayerVehicleSeat(playerid);
if(mesto == 1 || mesto == 2 || mesto == 3)
{
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
PlayerInfo[giveplayerid][MONEY] -= moneys;
PlayerInfo[playerid][ZP] += moneys;
}
}
}
return 1;
}
Отнимаю деньги у игрока который в Такси, а водителю в ЗП добавляю эту сумму.
А в OnPlayerExitVehicle
PHP код:
if(DogovorTaxi{playerid} == true)
{
new mesto = GetPlayerVehicleSeat(playerid);
if(mesto == 1 || mesto == 2 || mesto == 3)
{
new string[50];
new giveplayerid;
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
DogovorTaxi{playerid} = false;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "Вы покинули такси и заплатили $%s", moneys);
SendClientMessage(giveplayerid, COLOR_GREEN, string);
PlayerInfo[giveplayerid][MONEY] += moneys;
format(string, sizeof(string), "Клиент покинул такси, вы заработали $%s", moneys);
SendClientMessage(playerid, COLOR_GREEN, string);
PlayerInfo[playerid][ZP] += moneys;
}
}
Так не верно?