Frage bezüglich Schleife

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 zusammen,
    und zwar wollte ich Fragen, wie man es schafft, dass wenn man in der Nähe ist kommt. In deiner Nähe ist bereits..


    Bitte ein bespiel Posten, also nur mit der Abfrage und der Nachricht, kein Command.


    MFG

  • Und jetzt nochmal auf Deutsch.

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Nochmal ausführlich:


    Also ich bin dabei ein System zu machen mit enum.
    Er geht bei einem Command mit einer Schleife alle sachen halt durchgeht also die MAX_PUNKTE
    Jetzt ist meine Frage wie ich das mache, wenn er in einem Punkt ist das dann eine Fehlermeldung kommt mit, in deiner Nähe ist bereits ein Punkt.
    Weil ein return Beendet ja die Schleife, deswegen Frage ich.


    MFG

  • for(new i=0; i != MAX_PUNKTE; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 10, PunktX[i], PunktY[i], PunktZ[i]))
    return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");
    }


    PunktX usw durch die Koordinaten deines enums ersetzen

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Also ich mache ein System grad.


    Jetzt habe ich einen Command gemacht, der mit einer for schleife arbeitet, damit man schauen kann ob der Spieler in der Nähe von einem Punkt ist.


    Beispiel:

    for(new ABP = 0; ABP<MAX_POINT; ABP++)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,abInfo[playerid][ABP][Px],abInfo[playerid][ABP][Py],abInfo[playerid][ABP][Pz]))
    {
    //Jetzt soll eine Fehlermeldung kommen, dass er in der Nähe ist bereits
    }
    }
    return 1;


    //Edit: Kann ich jetzt wo die Fehlermeldung kommen soll einfach return reinschreiben? also return SendClientMessage?


    MFG

  • return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");
    Und nein, es beendet die Schleife nicht, nur wenn du in der Nähe eines Punktes bist.

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • Funktioniert nicht.


    Sonst noch jemand eine Idee?


    xD ok hab nur gedacht das du nur nix haben willst an dem punkt wo du willst

    new bool:ja;
    for(new ABP = 0; ABP<MAX_POINT; ABP++){
    if(IsPlayerInRangeOfPoint(playerid,10,abInfo[playerid][ABP][Px],abInfo[playerid][ABP][Py],abInfo[playerid][ABP][Pz])){
    ja = true;
    break;
    }
    else{ //deine Function

    }
    return 1;

    }
    if(ja) return SendClientMessage(playerid, cRed, "In deiner Nähe ist bereits ein Punkt");

  • Klappt noch nicht hier mal mein code:



    if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
    {
    if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
    {
    for(new ABP = 0; ABP<MAX_PFLANZEN; ABP++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez]))
    {
    PflanzeNaehe[playerid] = true;
    break;
    }
    else
    {
    }
    }
    if(PflanzeNaehe[playerid] == true)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
    }
    }
    return 1;

  • if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein."); { if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein."); { for(new ABP = 0; ABP


    hier test es mal so



    new bool:ja, ABP;
    if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
    if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
    for(; ABP<MAX_PFLANZEN; ABP++){
    if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez])){
    SendClientMessage(playerid,ROT,"Da kannst du bauen");
    ja = false;
    break;
    }else{ ja= true;}
    }
    if(ja)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
    return 1;

    //edit code eingerückt
    nee das break stimmt

  • Hab jetzt mal so ausprobiert.



    new bool:PflanzeNaehe, ABP;
    if(GetPlayerVirtualWorld(playerid) >= 1)return SendClientMessage(playerid,ROT,"Du musst draußen sein.");
    if(GetPlayerInterior(playerid) != 0)return SendClientMessage(playerid,ROT,"Du musst draussen sein.");
    for(; ABP<MAX_PFLANZEN; ABP++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5.0,abInfo[playerid][ABP][Pflanzex],abInfo[playerid][ABP][Pflanzey],abInfo[playerid][ABP][Pflanzez]))
    {
    PflanzeNaehe = false;
    break;
    }
    else
    {
    PflanzeNaehe = true;
    }
    return 1;
    }
    if(PflanzeNaehe)return SendClientMessage(playerid,ROT,"In deiner Nähe ist bereits eine Hanfpflanze angebaut.");
    if(PflanzeNaehe == false)
    {
    //Was dann passieren soll
    }
    return 1;
    }


    Bei dem ersten klappt es, aber dort wird keine Meldung angezeigt. Wenn ich dann das zweite erstelle klappt es nemmer.


    MFG


  • poste mal dein array abInfo
    und wieso fügst du dort noch playerid ein