Berechnung & Die Nacht..

  • Berechnung & Die Nacht..

    Hallo.

    Ich verzweifle derzeit an einer simplen Rechnung.
    Das macht aber wahrscheinlich die Müdigkeit aus, und dass ich 9-10 Wochen nicht mehr in der Schule aufgrund einer Krankheit war.
    Nun denn, hier das Problem.
    Wenn ich jetzt zum Beispiel eine Tankstelle auffülle, diese 5000 Liter braucht, mein Tanker aber nur 2000 maximal hat, wird der Tanker auf -3000/2000 Liter gesetzt und die Tankstelle hat dann 5000.
    Hier mal der Befehl:
    [pwn]
    CMD:unloadbenzin(playerid, params[])
    {
    if(Spieler[playerid][pFraktion] == 9)
    {
    new string[128];
    new t = IsPlayerAtTanke(playerid);
    if(t == 999)return SendClientMessage(playerid, COLOR_GREY, "Du bist an keiner Tankstelle!");
    new vID = GetPlayerVehicleID(playerid);
    new aID = GetVehicleTrailer(vID);
    if(IsPlayerInAnyVehicle(playerid) && (vID == virtualtruck[0] || vID == virtualtruck[2] || vID == virtualtruck[4]))
    {
    if(IsTrailerAttachedToVehicle(vID) && (aID == virtualtruck[1] || aID == virtualtruck[3] || aID == virtualtruck[5]))
    {
    if(Tanke[t][tBenzin] >= Tanke[t][tMaxBenzin])return SendClientMessage(playerid, COLOR_GREY, "Die Tankstelle ist voll!");
    if(strcmp(Tanke[t][tBesitzer], "Niemand", true) == 0)return SendClientMessage(playerid, COLOR_GREY, "Diese Tankstelle hat keinen Besitzer!");
    new Anzahl = Tanke[t][tMaxBenzin] - Tanke[t][tBenzin];
    Benzin[aID] -= Anzahl;
    new FirstGehalt = Anzahl*Tanke[t][tFillCost];
    new FinalGehalt = FirstGehalt/2;
    format(string, sizeof(string), "Du hast %d Liter abgeliefert und $%d verdient.", Anzahl, FinalGehalt);
    SendClientMessage(playerid, COLOR_GREEN, string);
    Spieler[playerid][pPayCheck] += FinalGehalt;
    Tanke[t][tKasse] -= FinalGehalt;
    Tanke[t][tBenzin] += Anzahl;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Anhänger angehängt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Truck.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Virtual Truck GmbH Mitglied.");
    return 1;
    }
    return 1;
    }[/pwn]

    Ich hoffe ihr könnt mir helfen, dass es nicht noch weiter Buggt. :)
    Mit freundlichen Grüßen, Ap0llinaris.

    [Blockierte Grafik: http://img6.imagebanana.com/img/lb4rwabb/newsig111.png]
  • Also, wenn ich jetzt z.B. zu einer Tankstelle fahre und dieser Tankstelle 5000 Liter fehlen, und ich diese 5000 Liter beladen möchte, werden meinem LKW 5000 abgezogen, obwohl der LKW maximal 2000 drinnen hat, und diese auch beladen hat. Wenn ich nun abgeladen habe, habe ich -3000/2000 Liter.

    Also kurz & knapp: Ich möchte einfach, dass dem Truck die ganzen Liter abgezogen werden, die vorhanden sind und diese auf die Tankstelle übertragen werden. Auch wenn z.B. der Truck nur 1000 Liter drin hat, soll der Truck diese dann verlieren, je nach dem wieviel Liter an der Tanke fehlen. ;)
    Mit freundlichen Grüßen, Ap0llinaris.

    [Blockierte Grafik: http://img6.imagebanana.com/img/lb4rwabb/newsig111.png]
  • Da geb ich zu hab auch ich nicht gleich losgeschrieben, aber bitte:
    [pwn]CMD:unloadbenzin(playerid, params[])
    {
    if(Spieler[playerid][pFraktion] == 9)
    {
    new string[128],
    t = IsPlayerAtTanke(playerid);
    if(t == 999)
    return SendClientMessage(playerid, COLOR_GREY, "Du bist an keiner Tankstelle!");
    new vID = GetPlayerVehicleID(playerid),
    aID = GetVehicleTrailer(vID);
    if(IsPlayerInAnyVehicle(playerid) && vID == virtualtruck[0] || vID == virtualtruck[2] || vID == virtualtruck[4])
    {
    if(IsTrailerAttachedToVehicle(vID) && aID == virtualtruck[1] || aID == virtualtruck[3] || aID == virtualtruck[5])
    {
    new FinalGehalt = (Anzahl * Tanke[t][tFillCost]) / 2,
    TankeBraucht = (Tanke[t][tMaxBenzin] - Tanke[t][tBenzin]);
    if(Benzin[aID] <= TankeBraucht) {
    if(Tanke[t][tBenzin] >= Tanke[t][tMaxBenzin])
    return SendClientMessage(playerid, COLOR_GREY, "Die Tankstelle ist voll!");
    if(strcmp(Tanke[t][tBesitzer], "Niemand", true) == 0)
    return SendClientMessage(playerid, COLOR_GREY, "Diese Tankstelle hat keinen Besitzer!");
    format(string, sizeof(string), "Du hast %d Liter abgeliefert und $%d verdient.", TankeBraucht, FinalGehalt);
    SendClientMessage(playerid, COLOR_GREEN, string);
    Spieler[playerid][pPayCheck] += FinalGehalt;
    Tanke[t][tKasse] -= FinalGehalt;
    Tanke[t][tBenzin] += Benzin[aID];
    Benzin[aID] -= TankeBraucht;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Anhänger angehängt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Truck.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Virtual Truck GmbH Mitglied.");
    return 1;
    }
    return 1;
    }[/pwn]
  • Ich habe es jetzt so:
    [pwn]CMD:unloadbenzin(playerid, params[])
    {
    if(Spieler[playerid][pFraktion] == 9)
    {
    new string[128];
    new t = IsPlayerAtTanke(playerid);
    if(t == 999)return SendClientMessage(playerid, COLOR_GREY, "Du bist an keiner Tankstelle!");
    new vID = GetPlayerVehicleID(playerid);
    new aID = GetVehicleTrailer(vID);
    if(IsPlayerInAnyVehicle(playerid) && (vID == virtualtruck[0] || vID == virtualtruck[2] || vID == virtualtruck[4]))
    {
    if(IsTrailerAttachedToVehicle(vID) && (aID == virtualtruck[1] || aID == virtualtruck[3] || aID == virtualtruck[5]))
    {
    new TankeBraucht = (Tanke[t][tMaxBenzin] - Tanke[t][tBenzin]);
    if(Benzin[aID] <= TankeBraucht)
    {
    if(Tanke[t][tBenzin] >= Tanke[t][tMaxBenzin])return SendClientMessage(playerid, COLOR_GREY, "Die Tankstelle ist voll!");
    if(strcmp(Tanke[t][tBesitzer], "Niemand", true) == 0)return SendClientMessage(playerid, COLOR_GREY, "Diese Tankstelle hat keinen Besitzer!");
    new Anzahl = Tanke[t][tMaxBenzin] - Tanke[t][tBenzin];
    new FinalGehalt = (Anzahl * Tanke[t][tFillCost]) /2;
    format(string, sizeof(string), "Du hast %d Liter abgeliefert und $%d verdient.", Anzahl, FinalGehalt);
    SendClientMessage(playerid, COLOR_GREEN, string);
    Spieler[playerid][pPayCheck] += FinalGehalt;
    Tanke[t][tKasse] -= FinalGehalt;
    Tanke[t][tBenzin] += Anzahl;
    Benzin[aID] -= TankeBraucht;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Anhänger angehängt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Truck.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Virtual Truck GmbH Mitglied.");
    return 1;
    }
    return 1;
    }[/pwn]

    Wenn ich jetzt einfach zu einer Tankstelle hinfahre, mit 0 Liter, und dann entlade, werden einfach 1000 Liter der Tankstelle hinzugefügt und dem Truck dann -1000 Liter gegeben.
    Mit freundlichen Grüßen, Ap0llinaris.

    [Blockierte Grafik: http://img6.imagebanana.com/img/lb4rwabb/newsig111.png]
  • [pwn]CMD:unloadbenzin(playerid, params[])
    {
    if(Spieler[playerid][pFraktion] == 9)
    {
    new string[128];
    new t = IsPlayerAtTanke(playerid);
    if(t == 999)return SendClientMessage(playerid, COLOR_GREY, "Du bist an keiner Tankstelle!");
    new vID = GetPlayerVehicleID(playerid);
    new aID = GetVehicleTrailer(vID);
    if(IsPlayerInAnyVehicle(playerid) && (vID == virtualtruck[0] || vID == virtualtruck[2] || vID == virtualtruck[4]))
    {
    if(IsTrailerAttachedToVehicle(vID) && (aID == virtualtruck[1] || aID == virtualtruck[3] || aID == virtualtruck[5]))
    {
    if(Tanke[t][tBenzin] >= Tanke[t][tMaxBenzin])return SendClientMessage(playerid, COLOR_GREY, "Die Tankstelle ist voll!");
    if(strcmp(Tanke[t][tBesitzer], "Niemand", true) == 0)return SendClientMessage(playerid, COLOR_GREY, "Diese Tankstelle hat keinen Besitzer!");
    new TankeBraucht = (Tanke[t][tMaxBenzin] - Tanke[t][tBenzin]);
    if(Benzin[aID] < TankeBraucht)//Der truck hat NICHT genug um die Tanke Komplett zu füllen, also setzen wir "TankeBraucht" auf den Wert den der Truck liefern kann
    {
    TankeBraucht = Benzin[aID];
    }
    new FinalGehalt = FinalGehalt = (TankeBraucht * Tanke[t][tFillCost]) /2;
    format(string, sizeof(string), "Du hast %d Liter abgeliefert und $%d verdient.", TankeBraucht, FinalGehalt);
    SendClientMessage(playerid, COLOR_GREEN, string);
    Spieler[playerid][pPayCheck] += FinalGehalt;
    Tanke[t][tKasse] -= FinalGehalt;
    Tanke[t][tBenzin] += TankeBraucht;
    Benzin[aID] -= TankeBraucht;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keinen Anhänger angehängt.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du befindest dich in keinem Truck.");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Virtual Truck GmbH Mitglied.");
    return 1;
    }
    return 1;
    }[/pwn]