Geld + Textspam

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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;
    }
    }
    }
    }
    }
    }

  • Die äußere for(new i=0; i<sizeof(TaxiVehs); i++) schleife scheint auf den ersten Blick sinnlos zu sein, da das "i" auch nirgends verwendet wird. Dies verursacht auch den Spam ;) Mit dem break; brichst du nur die innere schleife aber nicht die äußere


    also die äußere for(new i=0; i<sizeof(TaxiVehs); i++) schleife entfernen in beiden code teilen (insgesamt 3 mal)