Navigationshilfe

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
  • Heyjo Community,
    Ich bin schon fließig am Scripten habe schon vieles gelernt, ein Dankeschön an euch das ihr mir so oft geholfen habt. :)


    Jetzt zu meiner Frage, ich bin grad dabei ein Navigationssystem zu machen, und dazu hätte ich eine Frage und zwar, wie kann man es machen das man im Navigationssystem Untergliedern kann also so,
    dass z.B. Untergliedert wird Stadthallen, wenn man dann doppel klick macht das dann die ganzen Stadthallen aufgelistet werden.


    wie macht man das? Vielen Dank schon mal :)




    MfG,
    James.

  • Ich denke du möchtest das "Navigationssystem" mit Dialogen machen oder?
    Du musst einfach bei dem Dialog wo du drauf klickst einen weiteren öffnen.

    Ich weiß leider nicht wie das geht, hier ist die Zeile aus dem Navigationssystem:



    if (strcmp("/navi", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Stadthallen","Bestätigen","Abbrechen");
    return 1;
    }



    Trotzdem Danke für deine Hilfe :)

  • Du musst einfach bei OnDialogResponse den nächsten Dialog anzeigen lassen.


    Beispiel:

    Spoiler anzeigen
    if(dialogid==DIALOG_NAVI)
    {
    if(response==1)
    {
    if(listitem==0)// Spieler hat Stadthalle ausgewählt
    {
    ShowPlayerDialog(......) // Auswahl der Stadthallen (z.B. LS Stadthalle, SF Stadthalle, ...)
    }
    }
    }



    Mit freundlichen Grüßen,
    Lιση

  • Vielen Dank für die Hilfe reiche Antwort, hätte noch eine Frage, wenn ich jetzt den Checkpoint mache wo soll ich den hinmachen.

    Das hängt einzig und allein von dir, und deinem Wunsch ab, wo du diesen Checkpoint hinmachst.
    Der Beste Platz für einen Checkpoint ist, ihn dort hinzusetzen, wo das Gebäude auch steht, bzw.
    vor ihm. Und hier auch mal ein Beispiel von mir ;)

    2 Mal editiert, zuletzt von Kristik47 ()

  • Das hängt einzig und allein von dir, und deinem Wunsch ab, wo du diesen Checkpoint hinmachst.
    Der Beste Platz für einen Checkpoint ist, ihn dort hinzusetzen, wo das Gebäude auch steht, bzw.
    vor ihm.


    Oh, tut mir leid, habe etwas falsch formuliert. Ich wollte fragen wo und wie ich den im Script einfüge


    Hier die Zeilen,



    if(dialogid == NAVIGATION)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response==1)
    {
    if(listitem==0)
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Las Venturas Stadthalle\nSan Fierro Stadthalle\nLos Santos Stadthalle","Bestätigen","Abbrechen");
    }

    }

  • Das musst du dann unter dem listitem einfügen, wenn er etwas ausgewählt halt, also so:


    if(listitem == 0){ SetPlayerCheckpoint(playerid,X,Y,Z);}


    Ich hoffe, ich konnte helfen.

  • Wenn du mit switch arbeitest, wird das ganze dann auch für dich etwas übersichtlicher (meine Meinung),
    siehe Beispiel:


    if (strcmp("/navi", cmdtext, true, 10) == 0) //Befehl /navi ausgeführt
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Stadthallen","Bestätigen","Abbrechen");
    return 1;
    }
    if(dialogid == NAVIGATION)
    {
    if(response == 0) return 1;
    if(response ==1 )
    {
    ShowPlayerDialog(playerid,NAVIGATION2,DIALOG_STYLE_LIST,"Navi","Stadthalle LS \n Stadthalle SF","Bestätigen","Zurück");
    }
    return 1;
    }
    if(dialogid == NAVIGATION2)
    {
    if(response == 0) //wenn er bei der Auswahl der Stadthallen auf Zurück klickt, braucht er nicht extra den Befehl /navi wieder ausführen, wenn er sich verklickt hat, sondern der Dialog, indem bei deinem Beispiel nur Stadthalle steht, erscheint dann wieder
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Stadthallen","Bestätigen","Abbrechen");
    }
    if(response == 1)
    {
    switch(listitem)
    {
    case 0://Stadthalle LS ausgewählt
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,RADIUS);
    }
    case 1: //stadthalle SF ausgewählt
    {
    SetPlayerCheckpoint(playerid,X,Y,Z,RADIUS);
    }
    }
    }
    return 1;
    }

  • Hey,
    Ich bekomme eine Warnung aber wodran liegt das? Die Zeilen+Warn:



    if(dialogid == NAVIGATION2)
    {
    if(response == 0) //wenn er bei der Auswahl der Stadthallen auf Zurück klickt, braucht er nicht extra den Befehl /navi wieder ausführen, wenn er sich verklickt hat, sondern der Dialog, indem bei deinem Beispiel nur Stadthalle steht, erscheint dann wieder
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Stadthallen","Bestätigen","Abbrechen");
    }
    if(response == 1)
    {
    switch(listitem)
    {
    case 0:// Stadthalle LV
    {
    SetPlayerCheckpoint(playerid,2361.1211,2377.4841,10.8203,6.0);
    }
    case 1: // Stadthalle SF
    {
    SetPlayerCheckpoint(playerid,-2752.3096,376.3766,4.1328,6.0);
    }
    }
    }
    return 1; //Warn
    }


    Der Warn:



    C:\LoR-Server\gamemodes\LoR-v1.pwn(2097) : warning 208: function with tag result used before definition, forcing reparse
    C:\LoR-Server\gamemodes\LoR-v1.pwn(1812) : warning 217: loose indentation
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.


    die warnung: loose indentation

  • Die Einrückung stimmt nicht.


    if(dialogid == NAVIGATION2)
    {
    if(response == 0) //wenn er bei der Auswahl der Stadthallen auf Zurück klickt, braucht er nicht extra den Befehl /navi wieder ausführen, wenn er sich verklickt hat, sondern der Dialog, indem bei deinem Beispiel nur Stadthalle steht, erscheint dann wieder
    {
    ShowPlayerDialog(playerid,NAVIGATION,DIALOG_STYLE_LIST,"Navigationsgerät","Stadthallen","Bestätigen","Abbrechen");
    }
    if(response == 1)
    {
    switch(listitem)
    {
    case 0:// Stadthalle LV
    {
    SetPlayerCheckpoint(playerid,2361.1211,2377.4841,10.8203,6.0);
    }
    case 1: // Stadthalle SF
    {
    SetPlayerCheckpoint(playerid,-2752.3096,376.3766,4.1328,6.0);
    }
    }
    }
    return 1; //Warn
    }