/fill buggt

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
  • Hey,
    Wenn man an einer Tanke /fill macht sollte das Auto voll getankt werden
    Statt dessen wir man gefreezt und nichts passiert


    if(strcmp(cmd, "/fill", true) == 0 || strcmp(cmd, "/fillcar", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new b = 0; b < sizeof(TankeInfo); b++)
    {
    if (IsPlayerInRangeOfPoint(playerid,10.0,1004.1221,-940.8615,41.9956))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Du kannst dein Fahrrad nicht Auftanken!");
    }
    else
    {
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid,COLOR_WHITE,"Dein Fahrzeug wird betankt, bitte warten...");
    format(string, sizeof(string), "UserCMD: %s Tankt an einer Tankstelle auf (/fill).", PlayerName(playerid));
    ABroadCast(COLOR_LIGHTRED,string, 5);
    }
    }
    else
    {
    // SendClientMessage(playerid,COLOR_GREY,"Du bist an keiner Tankstelle!");
    // return 1;
    }
    }
    }


    Der Timer


    public Fillup()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    new VID;
    new FillUp;
    //new FillUpRandom = random(250)+1;
    new string[256];
    VID = GetPlayerVehicleID(i);
    FillUp = GasMax - Gas[VID];
    for(new b = 0; b < sizeof(TankeInfo); b++)
    {
    if(IsPlayerInRangeOfPoint(i,5.0, TankeInfo[b][tEntranceX], TankeInfo[b][tEntranceY], TankeInfo[b][tEntranceZ]))
    {
    if(Refueling[i] == 1)
    {
    if(GetPlayerMoney(i) >= FillUp+4)
    {
    Gas[VID] += FillUp;
    FillUp = FillUp * TankeInfo[b][tEntranceCost];
    format(string,sizeof(string),"* Du hast dein Fahrzeug für $%d aufgetankt.",FillUp);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    TogglePlayerControllable(i, 1);
    TogglePlayerControllable(i, 1);
    GivePlayerMoney(i, - FillUp);
    TankeInfo[b][tTill] += FillUp;
    /// TankeInfo[b][tTill] += FillUpRandom;
    TankeInfo[b][tExtortion] += FillUp;
    // TankeInfo[b][tExtortion] += FillUpRandom;
    Refueling[i] = 0;
    // SBizzInfo[3][sbTill] += FillUp; //inhaber
    // SBizzInfo[3][sbExtortion] += FillUpRandom; //mitinhaber
    }
    else
    {
    TogglePlayerControllable(i, 1);
    new cost = TankeInfo[b][tEntranceCost];
    format(string,sizeof(string),"* Nicht genug Geld zum Auffüllen, du benötigst $%d zum Auffüllen deines Autos.",cost);
    SendClientMessage(i,COLOR_LIGHTBLUE,string);
    }
    }
    }
    }
    }
    }
    return 1;
    }


    Wäre nett wenn ihr mir helfen könntet


    Mit freundlichen grüßen

  • Das liegt daran, dass du irgendwie mit den Koordinaten Fehler gemacht hast:


    In deinem Befehl heißt es:


    if (IsPlayerInRangeOfPoint(playerid,10.0,1004.1221,-940.8615,41.9956))

    und im public heißt es:


    if(IsPlayerInRangeOfPoint(i,5.0, TankeInfo[b][tEntranceX], TankeInfo[b][tEntranceY], TankeInfo[b][tEntranceZ]))


    und anscheinend befindet er sich nicht in der Nähe der unten genannten Koordinaten und deshalb passiert nichts :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Geht das so mit den schleifen??


    if(strcmp(cmd, "/fill", true) == 0 || strcmp(cmd, "/fillcar", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new i=0; i<MAX_PLAYERS; i++) // Hier??
    {
    for(new b = 0; b < sizeof(TankeInfo); b++) // und Hier
    {

    if(IsPlayerInRangeOfPoint(i,5.0, TankeInfo[b][tEntranceX], TankeInfo[b][tEntranceY], TankeInfo[b][tEntranceZ]))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_GRAD1,"Du kannst dein Fahrrad nicht Auftanken!");
    }
    else
    {
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid,COLOR_WHITE,"Dein Fahrzeug wird betankt, bitte warten...");
    format(string, sizeof(string), "UserCMD: %s Tankt an einer Tankstelle auf (/fill).", PlayerName(playerid));
    ABroadCast(COLOR_LIGHTRED,string, 5);
    }
    }
    else
    {
    //SendClientMessage(playerid,COLOR_GREY,"Du bist an keiner Tankstelle!");
    //return 1;
    }
    }
    }
    }
    return 1;
    }

  • Aber jetz tankt er nicht


    Ja...das habe ich dir doch versucht zu erklären :D


    Er befindet sich nicht in der Nähe dieser Koordinaten :D


    Es gibt wahrscheinlich eine Tank-Datei schau doch mal und füge da deine Koordinaten hinzu :)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S