Problem mit Fehlermeldung

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
  • Abend



    Ich habe mal wieder ein kleines Problem, und zwar hab ich ein Befehl gemacht der einen Dialog aufruft wenn man in der nähe eines Geldautomaten ist.
    Dies Funktioniert auch Perfekt, nur ist das Problem der Dialog wird ja angezeigt, nur bekommt der trotzdem die Fehlermeldung. Warum?


    Hier mal der Code:



    ocmd:atm(playerid,params[])
    {
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    }
    return SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
    }
    return 1;
    }


    Hoffe ihr könnt mir da weiter helfen :)

  • if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    }
    return SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
    Erkennste selber? :D
    return..
    Mach das so:
    else return ...

  • Danke für die Schnelle Antwort, aber nein so habe ich es ja auch schon Probiert. Geht nicht.


    Hier so hab ich es Jetzt:



    ocmd:atm(playerid,params[])
    {
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    }
    else return SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
    }
    return 1;
    }

  • ocmd:atm(playerid,params[])
    {
    new bool:atmfound = false;
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    atmfound = true;
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    }
    }
    if(atmfound == false)SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");
    return 1;
    }
    Weil du eine Schleife verwendest musst du sie auch erstmal ganz durchlaufen lassen und kannst nicht nach dem ersten abbrechen wenn er da nicht ist.

  • Danke dir, habe das total verschleudert ^^




    Grüße

  • Mach das doch so


    ocmd:atm(playerid,params[])
    {
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    }
    }
    return SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");;
    }

  • Würde so wie ich das erkenne ebenfalls nichts bringen.
    Denn das läuft durch, zeigt den Dialog und sendet die Nachricht aus.
    Der Code von Hard_Base war schon richtig.

  • Ich habe es gerade so versucht und es funktioniert selber getestet


    ocmd:atm(playerid,params[])
    {
    for(new atmid=1;atmid<MAX_ATMS;atmid++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,ATMInfo[atmid][atmx],ATMInfo[atmid][atmy],ATMInfo[atmid][atmz]))
    {
    ShowPlayerDialog(playerid, DIALOG_ATMDIALOG, DIALOG_STYLE_LIST,"Geldautomat","Einzahlen\nAuszahlen\nKontostand","Bestätigen","Abbrechen");
    return 1;
    }
    }
    return SendClientMessage(playerid,DUNKELROT," Du befindest dich an keinem Geldautomaten!");;
    }