RangeOfPoint

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, ich will das man einen Dialog nur aufrufen kann wenn man IM oder VORM Haus steht, allerdings weiß ich nur wie man es mit einem Code macht, aber wie mach ich es mit 2 ? also das man den Befehl nur ausführen kann wenn man an den Zwei Positionen ist:


    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) || if(inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");


    Aber dabei bekomme ich dieses Errors, geht das so überhaupt ^^?


    C:\Users\Beny\Desktop\FUN.pwn(6198) : error 017: undefined symbol "haus"
    C:\Users\Beny\Desktop\FUN.pwn(6198) : error 029: invalid expression, assumed zero
    C:\Users\Beny\Desktop\FUN.pwn(6198) : warning 215: expression has no effect
    C:\Users\Beny\Desktop\FUN.pwn(6198) : error 001: expected token: ";", but found "if"
    C:\Users\Beny\Desktop\FUN.pwn(6198) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.


    //push

  • Naja, viel mehr ist da nicht, das ist der ganze Befehl:


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) || if(inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }

  • wie währs mit ner schleife die durch den enum Haus geht?
    du musst ja das [haus] auch definieren und mit ner schleife is es am einfahsten

  • Sollte ungefähr so aussehen, ausserdem habe ich einen Fehler korrigiert, "||" steht für oder, "|| if" währe falsch:


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    for(new haus = 0; haus < HAUS_ANZAHL; haus++) //HAUS_ANZAHL durch die Anzahl deiner Häuser ersetzen
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }
    }

  • Brauch ich ganicht weil das irgendwo im Script schon alles benutzt wird, es geht nur darum den Befehl IM Haus und Drausen zu verwenden:


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    if(inHaus[playerid] == -1)return SendClientMessage(playerid,0x00FF00,"Du bist nicht in deinem Haus!!"); //Entweder
    //if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) || if(inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!"); //Oder aber wie geht beides gleichzeitig ?!
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }


    //Edit


    Ah, Danke BlackLegend schonmal keine Errors mehr :D

  • Außerdem ist das überhaupt eine fail Abfrage


    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) || if(inHaus[playerid] == -1)


    Das gehört so


    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || (inHaus[playerid] == -1))


    Du hast 2 if hinterienander mit einem ODER verbunden. Das ist falsch.

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • versuch mal
    if(strcmp(cmdtext,"/haus",true)==0)
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) || inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }

    Das gehört so


    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || (inHaus[playerid] == -1))


    wen den so
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1)

  • Ich hab das jetzt so wie Blacklegend das gemacht hat, allerdings kommt immer die Meldung AUCH WENN ICH AN MEINEM HAUS BIN das ich nicht AN oder IM Haus wäre.. woran liegt das?!


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    for(new haus = 0; haus < 100; haus++) //HAUS_ANZAHL durch die Anzahl deiner Häuser ersetzen
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }
    }


  • if(strcmp(cmdtext,"/haus",true)==0)
    {
    for(new haus = 0; haus<MAX_HAUS; haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1)
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }
    }

    Bitte schön.


    lg :thumbup:

    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Geht immer noch nicht wenn ich es so hab:


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    for(new haus = 0; haus<MAX_HAUS; haus++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du bist nicht An oder In deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }
    }


    Wenn ich /Haus eingebe kommt das Menü überral egal wo ich bin, wenn ich ein ! vor das RangeofPoint mache kann ich es wieder nirgendwo machen, dann kommt wieder die Meldung "Du bist nicht an oder in deinem Haus!" auch wenn ich am Haus bin..