Hallo Breadfish!
Ja ich habe mal so ein bisschen rum geguckt und habe ein Navi Tut gesehn
was ich aber ziemlich unübersichtlich finde.
Ich werde das in meinen Worten erklären (Speziell für Anfänger)
=======================================================================================
Was ich euch erklären werde:
• Dialog für den Navi erstellen
• Dialog Style List richitg benützen
• Checkpoints beim erreichen löschen
Was ihr braucht:
• Zeit
• Lesen können
Was ihr solltet:
•Kein C&P damit ihr versteht um was es hier geht
Also gut fangen wir an
=======================================================================================
So als erstes definieren wir Oben im Script ein Dialog, ich werde ihn
"DIALOG_NAVI" nennen.
z. B:
#define DIALOG_NAVI 1 //Die Zahl müsst ihr selber einstellen falls die 1 schon einem anderen Dialog zugewiesen wird
So Schritt 1 wäre erledigt es folgt
-Schritt 2
So wir haben nun ein Dialog definiert und ihm die id 1 zugewiesen. Jetzt erstellen wir ein
Command, ich werde es mit OCMD tun, falls ihr noch nicht Ocmd habt ladet euch das
Include runter.
Ihr könnt natürlich auch strcmp benutzen das bleibt euch überlassen. Also erstellen wir mal den Command.
ocmd:navi(playerid,params[])
{
return 1;
}
Unser Command wäre erstellt nun fügen wir noch ein was passieren soll
wenn jemand /navi eingibt. Das machen wir so:
ocmd:navi(playerid,params[])
{
ShowPlayerDialog(playerid,DIALOG_NAVI,DIALOG_STYLE_LIST,"Navigation","Stadthalle\nSAPD\nBank","Go","Abbrechen");
//nun wird dem Spieler dialog navi gezeigt
return 1;
}
So das hätten wir es folgt
-Schritt 3
Nun will er ja wissen was passieren soll wenn man z. B Stadthalle auswählt.
Dafür gehen wir zu OnDialogResponse, und Scripten was passieren soll
wenn man Stadthalle auswählt. Ich werde mit switch und case arbeiten
ihr könnt natürlich auch listitem==0 benutzen wenn ihr möchet.
Warum ich case nutze ? Ganz einfach ich finde es einfacher und schneller. Also gut los gehts.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid==DIALOG_NAVI) //Welchen dialog
{
case 1:
{
if(!response) //Wenn auf Abbrechen gedrückt wird
{
SendClientMessage(playerid,farbe,"Du hast den Vorgang abgebrochen");
return 1;
}
switch(listitem)
{
case 0:
{
SetPlayerCheckpoint(playerid,x,y,z,4.0); //Bei X,Y,Z eure Koordinaten einsetzen
}
case 1:
{
SetPlayerCheckpoint(playerid,x,y,z,4.0);
}
case 2:
{
SetPlayerCheckpoint(playerid,x,y,z,4.0);
}
return 1;
}
Warum fange ich bei case 0: an? Ganz eifnach in pwn wird angefangen ab 0 zuzählen.
So nun werden die CheckPoints gesetzt alles gut. Wenn ihr es jetzt testet würdet ihr merken
das die Checkpoints nicht verschwinden. Wie stellen wir ein dass wenn ein Spieler sein
Checkpoint erreicht das dieser Checkpoint nicht mehr auf der Minimap angezeigt wird ?
Das ist ganz einfach und zwar mit der Funktion: DisablePlayerCheckpoint. diesen befehl
fügt ihr einfach bei OnPlayerEnterCheckpoint ein. Wenn ihr das getan habt sieht es so aus.
public OnPlayerEnterCheckpoint(playerid)
{
DisablePlayerCheckpoint(playerid);
return 1;
}
Nun wird der Checkpoint gelöscht wenn man ihn erreicht.
So das wars mit diesem Tutorial. Ich werde auch noch in einem 2Part einfügen wie
die Checkpoints nach einer bestimmten zeit einfach gelöscht werden.
Mit diesem Tutorial wollte ich nicht das bereits vorhandene Tutorial für den
Navi system verbessern , ich wollte es nur nochmal in meinen Worten erklären, und
alles genau erklären wie es alles abläuft. Dieses Tutorial ist Anfänger freundlich.
Bewertet es, damit ich weiß ob ich noch weitere Tut's für anfänger machen soll.
Hier nochmal ein Tutorial wie man Tore mit Timer Scriptet
[ SCRIPTING ] Tore mit Befehl & Timer Scripten/erstellen
=======================================================================================
MFG: |John| ~ Bei errors bitte einfach posten