Text wird mir for Schleife 16 Mal gesendet statt 1 Mal

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
  • Hallo Breadfisher,


    ich habe ein kleines Problem mit meinem Tanken System.
    Ich habe das TankenBizzInfo mit 16 definiert, daher bekomme ich das "Du bist an keiner Tankstelle!" 16 Mal wenn ich an keiner Tankstelle bin und wahrscheinlich 15 Mal wenn ich an einer bin.
    Mein /fill Befehl:
    if(strcmp(cmd, "/fill", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    for(new i = 0; i < sizeof(TankenBizzInfo); i++)
    {
    if(PlayerToPoint(5, playerid,TankenBizzInfo[i][TBPosX], TankenBizzInfo[i][TBPosY], TankenBizzInfo[i][TBPosZ]))
    {
    TogglePlayerControllable(playerid, 0);
    GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Tankt auf. Bitte Warten...",2000,3);
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist an keiner Tankstelle!");
    }
    }
    }
    return 1;
    }


    Wäre fein wenn mir jemand helfen könnte.


    mfg
    humen

  • Ist doch logisch, SendClientMessage befindet sich immer noch in der For Schleife, dh. wenn du nicht an der Position bist wird dir SCm so oft geschickt, wie TankenBizzInfo groß ist ;)


    einfach umändern in:



    else return SendClientMessage(blabla);

  • @Portgas: Dann würde die Schleife aber schon abbrechen, wenn er bei der ersten nicht ist...
    Das würde das Problem lösen:

    if(strcmp(cmd, "/fill", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new var = 0;
    for(new i = 0; i < sizeof(TankenBizzInfo); i++)
    {
    if(PlayerToPoint(5, playerid,TankenBizzInfo[i][TBPosX], TankenBizzInfo[i][TBPosY], TankenBizzInfo[i][TBPosZ]))
    {
    TogglePlayerControllable(playerid, 0);
    GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Tankt auf. Bitte Warten...",2000,3);
    SetTimer("Fillup",RefuelWait,0);
    Refueling[playerid] = 1;
    var = 1;
    }
    }
    if(var == 0)
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist an keiner Tankstelle!");
    }
    }
    return 1;
    }


    Ich scripte NICHT mehr, ich möchte mit NIEMANDEM einen Server aufmachen habe auch NICHTS mehr mit LoH zu tun, also lasst es mit den PNs!

  • Hmm auch wahr.
    Na dann ist deine Methode besser auch wenn ichs irgendwie unschön finde :D