Hilfe bei /navi-Befehl

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
  • Problem mit /navi
    Hey Leute...
    ich hab ein /navi befehl gemacht soweit funktioniert er auch nur:
    ich weiß nicht wie ich das machen kann das der Marker wieder verschwindet wenn er das Ziel erreicht hat...
    Ich denke mal ich muss oben im Script das hier machen:
    new CPzivispawn = SetPlayerCheckpoint(playerid,1413.7916,-1701.0979,13.5395,3.0);
    new CPrathaus = SetPlayerCheckpoint(playerid,1481.1459,-1771.4877,18.7958,3.0);
    new CPbank = SetPlayerCheckpoint(playerid,1382.1409,-1088.7577,28.2041,3.0);
    new CPkrankenhaus = SetPlayerCheckpoint(playerid,1173.0663,-1323.1243,15.3969,3.0);


    Aber wie kann ich das jetzt hier abrufen?
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == Navi)
    {
    if(response)
    {
    if(listitem == 0) // Noobspawn
    {
    Hier
    }
    if(listitem == 1) // Rathaus
    {
    Hier
    SendClientMessage(playerid,BLAU,"Du hast das Rathaus ausgewählt.");
    }
    if(listitem == 2) // Bank
    {
    Hier
    SendClientMessage(playerid,BLAU,"Du hast die Bank ausgewählt.");
    }
    if(listitem == 3) // Krankenhaus
    {
    Hier
    SendClientMessage(playerid,BLAU,"Du hast das Krankenhaus ausgewählt.");
    }


    }
    return 1;
    }
    }


    Das hab ich unter public OnPlayerEnterCheckpoint(playerid)
    public OnPlayerEnterCheckpoint(playerid)
    {
    if(CPrathaus)
    {
    SendClientMessage(playerid,BLAU,"Du bist am Rathaus angekommen");
    DisablePlayerCheckpoint(playerid);
    }
    if(CPzivispawn)
    {
    SendClientMessage(playerid,BLAU,"Du bist am Zivispawn angekommen");
    DisablePlayerCheckpoint(playerid);
    }
    if(CPbank)
    {
    SendClientMessage(playerid,BLAU,"Du bist an der Bank angekommen");
    DisablePlayerCheckpoint(playerid);
    }
    if(CPkrankenhaus)
    {
    SendClientMessage(playerid,BLAU,"Du bist am Krankehaus angekommen");
    DisablePlayerCheckpoint(playerid);
    }
    return 1;
    }


    Damit die Checkpoints wieder gelöscht werden nur wie kann ich jetzt die Checkpoints überhaupt erstellen?

  • Fast richtig, aber mach nach oben:
    new CP;


    Und dann jeweils im Dialog:

    CP= SetPlayerCheckpoint(playerid,1413.7916,-1701.0979,13.5395,3.0);


    Eine Variable reicht dafür, du musst nur bei jeder Dialog-Auswahl die Koordinaten ändern. ;)


    Eeedit:


    Damit geht natürlich der "Du bist am XXX angekommen" Code nicht, mein Fehler.
    Entweder du lässt es so wie ich geschrieben hab und benutzt bei OnPlayerEnterCheckpoint nicht die Checkpoint ID sondern stattdessen mit IsPlayerInRangeOfPoint die Position, um zu bestimmen bei welchem CP der Spieler ist oder du machst doch alle 4 Checkpoint-Variablen.

  • /Edit habs raus :D


    Also oben ist richtig da muss:
    new CP;
    hin.


    Dann muss unter OnPlayerEnterCheckpoint das hier hin:
    if(CP)
    {
    SendClientMessage(playerid,BLAU,"Du bist am Rathaus angekommen"); //muss nicht sein nur wenn der Player eine Nachricht bekommen soll
    DisablePlayerCheckpoint(playerid); //Löscht den Checkpoint :D
    }


    Und unter public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) muss:
    if(dialogid == Navi)
    {
    if(response)
    {
    if(listitem == 0) // Noobspawn
    {
    CP = SetPlayerCheckpoint(playerid,1413.7916,-1701.0979,13.5395,3.0);
    }
    }
    }
    return 1;


    Dann funktioniert das auch :D
    Der Befehl geht übrigens so:


    if (strcmp("/navi", cmdtext, true) == 0)
    {
    ShowPlayerDialog(playerid, Navi, DIALOG_STYLE_LIST, "Navi", "Noobspawn\nRathaus\nBank\nKrankenhaus", "Auswählen", "Abbrechen");
    SendClientMessage(playerid,BLAU,"Wähle nun den Ort aus zu dem du möchtest!Dir wird dann ein Marker auf der Karte angezeigt.");
    return 1;
    }

    Einmal editiert, zuletzt von Flashrex ()