if(!IsPlayerInRangeOfPoint) return 1 oder return 0;

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,
    will das Thema jetzt ganz kurz halten und wollte fragen, ob ich bei einem if(!IsPlayerInRangeOfPoint) überprüfung eine return 0; oder eine return 1; brauche


    Hier mein bisheriges System:



    ocmd:duty(playerid, params[])
    {
    #pragma unused params
    new string[128];
    if(!IsPlayerCop(playerid))return SendClientMessage(playerid,Rot,"Du bist kein Cop!");
    if(!IsPlayerInRangeOfPoint(playerid,5.0,217.4148,184.4274,1003.0313))return SendClientMessage(playerid,Grau,"Du bist nicht an der Garderobe.");
    SetPVarInt(playerid,"Onduty",1);
    format(string,sizeof(string),"* Officer %s nimmt seine Marke aus dem Schrank und meldet sich zum Dienst.",SpielerName(playerid));
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerInRangeOfPoint(i,5.0,


    }
    return 1;
    }

  • Was hast du denn vor?
    Ich glaube du möchest schauen, welcher Spieler nahe ist oder?
    dann mach das so, weil du in einer Schleife kein return verwenden sollst (wäre sinnlos, denn dann bricht den ganze Befehl ab)
    new nearID = INVALID_PLAYER_ID;
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerInRangeOfPoint(i,5.0,....)nearID =i;
    }
    nun ist der Spieler der näher als 5 Meter ist nearID (wenn es mehrere sind, ist es der mit der größten ID. (Wenn du nach nearID = i; ein "break;" einfügst, ist es der mit der geringesten ID)


    oder habe ich deine Frage falsch verstanden?

  • Ich denke mal return 1;

    Also ich will jetzt überprüfen, ob der Spieler in der Nähe dieses Kegels ist. Wenn der Spieler in der Nähe des Kegels ist, dann soll der Spieler eine Nachricht erhalten (wenn ein Cop /duty eintippt), dass %s sich als Polizist eingeloggt hat. (wie im format zu sehen) Muss ich dazu return 1; oder return 0; machen?


    Ich weiß, du hast zwar return 1; geschrieben, aber ich wollte es mal ausführlicher schreiben, vielleicht verstehst du mich dabei besser und vielleicht war ja return 1; auch nicht richtig.


    Hoffe du verstehst mich richtig

    Ich weiß jetzt nicht, ob du meine Frage falsch verstanden hast, aber ich will jetzt ausführlich in das Detail eingehen:
    Also ich will jetzt überprüfen, ob der Spieler in der Nähe dieses /duty "Kegels" ist. Falls der Spieler in der Nähe ist, dann soll er die Nachricht sehen (wenn ein Cop /duty eintippt), "Officer %s nimmt seine Marke aus dem Schrank und meldet sich zum Dienst" (wie im Format zu sehen.


    Aber dazu will ich nicht viele Schleifen { / } aufmachen, deswegen wollte ich einfach überprüfen, ob der Spieler nicht in der Nähe des Kegels ist und falls er nicht in der Nähe des Kegels ist, dann muss ja ein return kommen.


    Da wusste ich jetzt nicht, ob ich ein return 0; oder ein return 1; nehmen muss oder sollte.