Tankstellen - 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
  • /Fill Code :
    if(strcmp(cmd, "/fill", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsAtGasStation(playerid))
    {
    if(IsANoTachoVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid,COLOR_YELLOW," Du kannst kein Fahrrad betanken!");
    }
    else
    {
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    FreezePlayer(playerid);
    SendClientMessage(playerid,COLOR_WHITE," Dein Fahrzeug wird betankt, Bitte warten....");
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist an keiner Tankstelle!");
    }
    }
    return 1;
    }



    IsAtGastation :



    public IsAtGasStation(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid,6.0,1004.0070,-939.3102,42.1797) || IsPlayerInRangeOfPoint(playerid,6.0,1944.3260,-1772.9254,13.3906))
    {//LS
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-90.5515,-1169.4578,2.4079) || IsPlayerInRangeOfPoint(playerid,6.0,-1609.7958,-2718.2048,48.5391))
    {//LS
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-2029.4968,156.4366,28.9498) || IsPlayerInRangeOfPoint(playerid,6.0,-2408.7590,976.0934,45.4175))
    {//SF
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-2243.9629,-2560.6477,31.8841) || IsPlayerInRangeOfPoint(playerid,6.0,-1676.6323,414.0262,6.9484))
    {//Between LS and SF
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,2202.2349,2474.3494,10.5258) || IsPlayerInRangeOfPoint(playerid,6.0,614.9333,1689.7418,6.6968))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,-1328.8250,2677.2173,49.7665) || IsPlayerInRangeOfPoint(playerid,6.0,70.3882,1218.6783,18.5165))
    {//LV
    return 1;
    }
    else if(IsPlayerInRangeOfPoint(playerid,6.0,2113.7390,920.1079,10.5255) || IsPlayerInRangeOfPoint(playerid,6.0,-1327.7218,2678.8723,50.0625))
    {//LV
    return 1;
    }
    }
    return 0;
    }


    Wenn ich an der Tankstelle bin , steht dort zwar dein Fahrzeug wird betankt blabla, es passiert aber nichts..

  • 1. Wie hast du "RefuelWait" definiert?
    2. Zeig mal den Timer "FillUp"
    Mit freundlichen Grüßen
    Kevin

  • #define RefuelWait 300



    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);
    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;
    }

  • LOL :D
    Also ...
    1. "if(Refueling[i] == 1)" würde ich vor "SetTimer" schreiben ;P
    2. Warum so viele ifPlayerConnected? Sinnlos?! Ab wann kann man Befehle ausführen wenn man nicht connectet ist :D
    3. Die for-Schleife mit MAX_Players ist unnöttig! Benutze SetTimerEx mit Parametern!
    4. Räum das Script erstmal auf ^^ Danke
    Mit freundlichen Grüßen
    Kevin

  • 2. Warum so viele ifPlayerConnected? Sinnlos?! Ab wann kann man Befehle ausführen wenn man nicht connectet ist :D


    Kann man vielleicht nicht, aber warum den Code 500 mal durchlaufenlassen wenn nur 10 Spieler Online sind?
    Ist doch viel sinnvoller den Code zu überspringen

    3. Die for-Schleife mit MAX_Players ist unnöttig! Benutze SetTimerEx mit Parametern!


    Wozu?
    10 Timer verbrauchen mehr Resourcen als 1 Timer mit 5 Schleifen drin, auch wenn hier nur eine geraucht wird.


    Und mit MAX_PLAYERS jst das vielleicht nicht so günstig aber dafür gibts ja GetMaxPlayers();
    for(new i,j=GetMaxPlayers();i!=j;i++)

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • mmmh, 10 Leute die gleichzeitig tanken? :D
    Sehe ich als sehr unwahrscheinlich ^^