Kann nicht tanken

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
  • Moin,


    Hab ein Problem..


    und zwar wenn ich an einer tanke stehe und /tanken machen steht da du bist an keiner tankstelle also müssten doch eigentlich die Kords falsch sein oder?


    hier mal der befehl


    if(strcmp(cmd, "/tanken", true) == 0)
    // ShowPlayerDialog(playerid, DIALOG_BEZAHLEN, DIALOG_STYLE_LIST, "Womit möchtest du bezahlen", "Bargeld\nEc Karte", "Auswälen", "");
    {
    if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du musst in einem Fahrzeug sitzen!");
    if(GetPlayerVehicleSeat(playerid) != 0) return SendClientMessage(playerid, COLOR_WHITE, "Nur der Fahrer kann das Fahrzeug auftanken!");
    new notanke = 0;
    for(new b = 0; b < sizeof(TankeInfo); b++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, TankeInfo[b][tEntranceX], TankeInfo[b][tEntranceY], TankeInfo[b][tEntranceZ]))
    {


    /*
    if (IsPlayerInRangeOfPoint(playerid,3.0,-91.6928,-1170.3101,2.4106) ||IsPlayerInRangeOfPoint(playerid,3.0,-2024.4131,156.3826,28.8359)
    || IsPlayerInRangeOfPoint(playerid,3.0,2411.5710,976.1568,45.4609) || IsPlayerInRangeOfPoint(playerid,3.0, -1674.7457,413.9423,7.1797)
    || IsPlayerInRangeOfPoint(playerid,3.0, 1939.7811,-1772.3312,13.3906)|| IsPlayerInRangeOfPoint(playerid,3.0, 1004.9082,-940.9944,41.7214)
    || IsPlayerInRangeOfPoint(playerid,3.0, 1939.2225,-1772.7452,12.9431)
    || PlayerInfo[playerid][pLocal] != 255)
    {
    */
    if(IsPlayerConnected(playerid))
    {
    //if(IsAtGasStation(playerid))
    //{
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    return SendClientMessage(playerid,COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    notanke = 0;
    //}
    return 1;
    }
    }
    else notanke = 1;
    }
    if(notanke == 1) {
    return SendClientMessage(playerid, COLOR_WHITE, "Du bist an keiner Tankstelle.");
    }


    }

  • Vielleicht liegts ja auch an der Schleife?


    Zitat

    for(new b = 0; b < sizeof(TankeInfo); b++)


    Wenn ich mich nicht irre, dann hast du ja nicht definiert wie viele Tanken es gibt, oder?
    Da TankeInfo ja ein enum ist und du nicht angibst wieoft er es durchlaufen soll

  • Moin,


    Habe es jetzt anders jetzt funkt es zwar doch allerdings bin ich dann gefreezt


    /edit


    Soweit alles gefixxt doch er tankt nicht...
    was kann das sein?


    hier der befehl


    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,1002.6870,-939.5302,41.8851))
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    return 1;
    }
    }
    }

    Einmal editiert, zuletzt von Freshmatics ()

  • Als Tipp wenn was nicht aufgerufen wird.
    Benutz doch die Funktion print().
    Einfach nach jeder Abfrage printen.
    Bsp.:
    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,1002.6870,-939.5302,41.8851))
    {
    print("1");
    if(IsPlayerConnected(playerid))
    {
    print("2");
    if(IsAtGasStation(playerid))
    {
    print("3");
    usw...
    und wenn es irgendwo nicht printet, weist du wo der Fehler liegt.

  • Ich frage mich nur:
    Warum fragst du bei dem Befehl /tanken erst ab, ob er in der Position 1002.6870,-939.5302,41.8851
    steht.
    Darunter etwas weiter fragst du ab:
    if(IsAtGasStation(playerid))
    {


    Kann mir das jemand erklären, warum 2 mal die Abfrage?

  • Moin,


    Also ich habe es jetzt soweit hin bekommen...


    Nun will ich allerdings noch nachdem es aufgefüllt wurde einen text haben den zeigt er mir nicht an...



    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 0)
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    else
    {
    SetTimer("AFillup",RefuelWait,0);
    Refueling[playerid] = 1;
    SendClientMessage(playerid, COLOR_WHITE," Dein Fahrzeug wird Betankt!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED," Dein Fahrzeug wurde Betankt!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED, "Du bist in keinem Fahrzeug!");
    }
    }


    letze frage danke euch :)

  • er tankt ja alles...ich möchte jetzt einfach nur nach dem er getankt hat eine Nachricht im Chat haben wo steht "Erfolgreich getankt"


    else
    {
    SetTimer("AFillup",RefuelWait,0);
    Refueling[playerid] = 1;
    SendClientMessage(playerid, COLOR_WHITE," Dein Fahrzeug wird Betankt!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED," Fahrzeug erfolgreich Betankt!");

  • Gesagt getan doch dann komm Ingame Server Unknow Command


    {
    SetTimerEx("AFillup",RefuelWait,0);
    Refueling[playerid] = 1;
    SendClientMessage(playerid, COLOR_WHITE," Dein Fahrzeug wird Betankt!");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED," Fahrzeug erfolgreich Betankt!");
    }
    }