/tanken Problem

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
  • Guten Morgen,
    Wenn Ich z.B. am LSPD /tanken eingebe, dann steht da: Du bist an keiner Tankstelle! (Was auch so soll)


    Wenn Ich dann aber an einer Tankstelle stehe, und /tanken mache, steht da: Du bist an keiner Tankstelle.


    Hier mal mein Command:
    ocmd:tanken(playerid,params[])
    {
    if(!IsPlayerInRangeOfPoint(playerid,7.0,1004.0039,-937.5410,42.3281) || !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133) || !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133))return SendClientMessage(playerid,DUNKELGRAU," Du bist an keiner Tankstelle!");
    if(!IsPlayerInRangeOfPoint(playerid,7.0,1942.3727,-1772.7830,13.6406) || !IsPlayerInRangeOfPoint(playerid,7.0,-2026.4757,156.8328,29.0391) || !IsPlayerInRangeOfPoint(playerid,7.0,-1675.4935,412.9412,7.1797))return SendClientMessage(playerid,DUNKELGRAU," Du bist an keiner Tankstelle!");
    if(!IsPlayerInRangeOfPoint(playerid,7.0,-2411.6951,976.7352,45.4609) || !IsPlayerInRangeOfPoint(playerid,7.0,69.6496,1218.2826,18.8098) || !IsPlayerInRangeOfPoint(playerid,7.0,1595.1492,2199.4944,10.8203))return SendClientMessage(playerid,DUNKELGRAU," Du bist an keiner Tankstelle!");
    {
    if (GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid,DUNKELGRAU," Du befindest dich nicht als Fahrer in einem Fahrzeug!");
    new car = GetPlayerVehicleID(playerid);
    if (TanktGerade[car]) return SendClientMessage(playerid,DUNKELGRAU," Du bist bereits am tanken!");
    else if (Motor[car] == true) return SendClientMessage(playerid,DUNKELGRAU," Du musst vor dem Tanken den Motor ausschalten.");
    new ZuTanken = 100-Tank[car];
    new Oreis = ZuTanken * BENZINPREIS;
    if (GetPlayerMoney(playerid)-Oreis < 0) return SendClientMessage(playerid,DUNKELGRAU," Du hast nicht genug Geld!");
    GivePlayerMoney(playerid, -Oreis);
    SendClientMessage(playerid, DUNKELGRAU," Du tankst das Fahrzeug nun voll!");
    SetCameraBehindPlayer(playerid);
    TogglePlayerControllable(playerid,0);
    TanktGerade[car] = true;
    tanktimer[playerid] = SetTimerEx("Auftanken",500,true,"i",playerid);
    return 1;
    }
    }
    Kann mir einer helfen?

  • Du führst die Abfrage 3 mal aus ... Wenn er beim ersten mal durchkommt ist es logisch, dass er beim 2. mal keine Tanke finden wird.


    if(!IsPlayerInRangeOfPoint(playerid,7.0,1004.0039,-937.5410,42.3281) && !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133) && !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133) &&
    !IsPlayerInRangeOfPoint(playerid,7.0,1942.3727,-1772.7830,13.6406) && !IsPlayerInRangeOfPoint(playerid,7.0,-2026.4757,156.8328,29.0391) && !IsPlayerInRangeOfPoint(playerid,7.0,-1675.4935,412.9412,7.1797) &&
    !IsPlayerInRangeOfPoint(playerid,7.0,-2411.6951,976.7352,45.4609) && !IsPlayerInRangeOfPoint(playerid,7.0,69.6496,1218.2826,18.8098) && !IsPlayerInRangeOfPoint(playerid,7.0,1595.1492,2199.4944,10.8203))return SendClientMessage(playerid,DUNKELGRAU," Du bist an keiner Tankstelle!");


    /Edit: Außerdem muss die Abfrage && lauten und nicht oder ....

  • Du musst nicht || sondern && verwenden.
    Sonst heißt es ja:
    Wenn er nicht da ist ODER nicht da ODER nicht da
    Es muss aber
    Wenn er nicht da ist UND nicht da UND nicht da


    if(!IsPlayerInRangeOfPoint(playerid,7.0,1004.0039,-937.5410,42.3281) && !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133)
    && !IsPlayerInRangeOfPoint(playerid,7.0,-91.1244,-1170.1310,2.4133) && !IsPlayerInRangeOfPoint(playerid,7.0,1942.3727,-1772.7830,13.6406)
    && !IsPlayerInRangeOfPoint(playerid,7.0,-2026.4757,156.8328,29.0391) && !IsPlayerInRangeOfPoint(playerid,7.0,-1675.4935,412.9412,7.1797)
    && !IsPlayerInRangeOfPoint(playerid,7.0,-2411.6951,976.7352,45.4609) && !IsPlayerInRangeOfPoint(playerid,7.0,69.6496,1218.2826,18.8098)
    && !IsPlayerInRangeOfPoint(playerid,7.0,1595.1492,2199.4944,10.8203)) return SendClientMessage(playerid,DUNKELGRAU," Du bist an keiner Tankstelle!");


    Und du solltest die 3 Zeilen zusammenfassen.