Habe es hingekriegt.
Nun ein anderer Fehler, wenn ich als Passenger ins Auto steige spamt der sofort "Du zahlst dem Taxifahrer ..$"
Habe es mit einem break; versucht geht aber nicht.
Hier nochmal mein Code:
if(newstate == PLAYER_STATE_PASSENGER)
{
for(new i=0; i<sizeof(TaxiVehs); i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new ii = 0; ii < MAX_PLAYERS; ii++)
{
if(IsPlayerConnected(ii))
{
if(IsPlayerInVehicle(ii, vehicleid) && GetPlayerState(ii)== PLAYER_STATE_DRIVER && ImDienst[ii] == 1 && GetPVarInt(ii,"Job")==4)
{
if(GetMoney(playerid) >= GetPVarInt(ii,"Fahrpreis"))
{
new string [128];
format(string, sizeof(string), "Du zahlst %d$ dem Taxifahrer.", GetPVarInt(ii,"Fahrpreis"));
SendClientMessage(playerid,WEISS,string);
GiveMoney(playerid, - GetPVarInt(ii,"Fahrpreis"));
GiveMoney(ii, GetPVarInt(ii,"Fahrpreis"));
TaxiMeter = SetTimerEx("Taximeter",15000,true,"d",playerid);
break;
}
else
{
SendClientMessage(playerid,ROT,"Du hast nicht genügend Geld um das Taxi zu bezahlen!");
RemovePlayerFromVehicle(playerid);
return 1;
}
}
}
}
}
}
if(oldstate == PLAYER_STATE_PASSENGER)
{
for(new i=0; i<sizeof(TaxiVehs); i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new ii = 0; ii < MAX_PLAYERS; ii++)
{
if(IsPlayerConnected(ii))
{
if(IsPlayerInVehicle(ii, vehicleid) && GetPlayerState(ii)== PLAYER_STATE_DRIVER && ImDienst[ii] == 1 && GetPVarInt(ii,"Job")==4)
{
KillTimer(TaxiMeter);
}
}
}
}
}
Der passende Timer:
public Taximeter(playerid)
{
for(new i=0; i<sizeof(TaxiVehs); i++)
{
new vehicleid = GetPlayerVehicleID(playerid);
for(new ii = 0; ii < MAX_PLAYERS; ii++)
{
if(IsPlayerConnected(ii))
{
if(IsPlayerInVehicle(ii, vehicleid) && GetPlayerState(ii)== PLAYER_STATE_DRIVER && ImDienst[ii] == 1 && GetPVarInt(ii,"Job")==4)
{
if(GetMoney(playerid) >= GetPVarInt(ii,"Fahrpreis"))
{
new string [128];
format(string, sizeof(string), "Du zahlst %d$ dem Taxifahrer.", GetPVarInt(ii,"Fahrpreis"));
SendClientMessage(playerid,WEISS,string);
GiveMoney(playerid, - GetPVarInt(ii,"Fahrpreis"));
GiveMoney(ii, GetPVarInt(ii,"Fahrpreis"));
break;
}
}
}
}
}
}