Hallo Lieber User ich wollte nachfragen wie ich ein Tutorial erstellen kann
im msgbox format?
Danke im voraus
Wie erstelle ich ein Tutorial?
- [PeL]Smiley
- Geschlossen
- Erledigt
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
-
-
Nach deinem Geschmack. Du kannst MSG-Boxen nehmen oder auch Texte, ich bevorzuge msgboxen, da ich diese in ruhe durchlesen kann
-
Nach deinem Geschmack. Du kannst MSG-Boxen nehmen oder auch Texte, ich bevorzuge msgboxen, da ich diese in ruhe durchlesen kann
Die Frage ist ja nicht wie es aussehen soll,sondern wie ich es scripte
-
Es gibt hier im Forum so einen Bereich, der nennt sich "Tutorials" ... schau mal rein und dann hast du dort das ein oder andere Tutorial für ein Tutorial^^ (*lach* tolles Wortspiel ) das passt du dann ganz einfach an deinen Verhältnissen an
-
Die Frage ist ja nicht wie es aussehen soll,sondern wie ich es scripte
Habe es so interpretiert, als ob du gefragt hättest, msgbox oder Text
Hier ist ein Link => http://gta-mp.org/board5-sa-mp…rstellen-mit-checkpoints/
Vielleicht nicht deine Art mit den Checkpoints, allerdings ein Denkanstoß. -
Wenn du es mit Boxen machen möchtest, machst du es wie folgt:
Ganz oben im Script solltest du einen Userbezogene Variable erstellen. Gleichzeitig musst du auch noch ein Dialog definieren.
Dies geht wie folgt:
#define DIALOG_TUTORIAL 55; (Die 55 ist die Dialog ID, du müsstest dann schauen welche bei dir die nächst höchste ID wäre)
new User-Tutorial[MAX_PLAYERS];Anschließend müsstest du diese Variable mit einem Wert füllen. Sprich, wenn ein User beispielsweise /tutorial eingibt, oder wenn ein User die Registration abgeschlossen hat, fügst du dies in dein Script ein (Wo das ist, müsstest du selber wissen):
User-Tutorial[playerid] = 1;
Die 1 kannst du als "Step-1 des Tutorials" interpretieren.Jetzt direkt nach der gesetzten Variable müsstest du dem User ein Dialog (Von dir gewünscht: msgbox) anzeigen lassen. Dies geht wie folgt:
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Tutorial Text", "Weiter", "");Nun müsste die Zeile wie folgt aussehen:
User-Tutorial[playerid] = 1;
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Tutorial Text", "Weiter", "");Nun, um abzufragen wann bzw. ob der User "Weiter" drückt, müssen wir das ganze in OnDialogResponse Abfragen, dies geht wie folgt:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_TUTORIAL)
{
if(response)
{
if(User-Tutorial[playerid] == 1)
{
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Text2", "Weiter", "");
User-Tutorial[playerid] = 2;
}
else if(User-Tutorial[playerid] == 2)
{
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Text3", "Weiter", "");
User-Tutorial[playerid] = 3;
}
else if(User-Tutorial[playerid] == 3)
{
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Text4", "Weiter", "");
User-Tutorial[playerid] = 4;
}
else if(User-Tutorial[playerid] == 4)
{
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Text5", "Weiter", "");
User-Tutorial[playerid] = 5;
}
else if(User-Tutorial[playerid] == 5)
{
SendClientMessage(playerid, COLOR, "Herzlichen Glückwunsch, das Tutorial ist beendet!");
}
else
{
SendClientMessage(playerid, COLOR, "Es ist anscheinend ein Fehler aufgetreten...");
}}
else
{}
return 1;
}return 0;
}So in etwa, kannst du ein einfaches Tutorial System gestalten. Hast du noch Fragen, oder verstehst du etwas an dem Code nicht?
-
C:\Users\kev\Desktop\test\gamemodes\test.pwn(128) : error 001: expected token: ";", but found "-"
C:\Users\kev\Desktop\test\gamemodes\test.pwn(403) : warning 217: loose indentation
C:\Users\kev\Desktop\test\gamemodes\test.pwn(403) : error 001: expected token: ")", but found ";"
C:\Users\kev\Desktop\test\gamemodes\test.pwn(403) : error 036: empty statement
C:\Users\kev\Desktop\test\gamemodes\test.pwn(403) : error 029: invalid expression, assumed zero
C:\Users\kev\Desktop\test\gamemodes\test.pwn(403) : fatal error 107: too many error messages on one lineCompilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
if(dialogid == DIALOG_TUTORIAL) //403
new User-Tutorial[MAX_PLAYERS]; //128
-
Also in den Zeilen die du angegeben hast, gibts keine Fehler. Die Zeile drüber und drunter wäre noch ganz praktisch. Und poste auch noch deinen #define DIALOG_TUTORIAL bitte.
-
Also in den Zeilen die du angegeben hast, gibts keine Fehler. Die Zeile drüber und drunter wäre noch ganz praktisch. Und poste auch noch deinen #define DIALOG_TUTORIAL bitte.
Ich habe es jetzt hinbekommen,allerdings wird das Tutorial vor dem Regestrieren abgespielt nicht nach dem.
case DG_REGISTER:
{
new string[230];
format(string, sizeof(string), ""COLW"Herzlich Willkommen auf [pR]Planet Reallife\n"COLW"Der Account "COLO"%s"COLW" ist nicht registriert!\nWenn du diesen Account registrieren willst,\ngib unten dein gewünschtes Passwort ein!", GetName(playerid));
ShowPlayerDialog(playerid, DG_REGISTER, DG_PASSWORD, ServerName, string, "Erstellen", "Abbrechen");
Tutorial[playerid] = 1;
ShowPlayerDialog(playerid, DIALOG_TUTORIAL, DIALOG_STYLE_MSGBOX, "Dies ist das Tutorial", "Tutorial Text", "Weiter", ""); -
Du musst das Tutorial auch bei public OnPlayerSpawn(playerid) abspielen lassen. Dort erstellst du eine Variable und fragst ab oder das Tutorial schon gemacht hat. Wenn nein, lässt du es laufen. Wenn ja, lässt du ihn normal spawnen.
-
-
Du kannst übrigens nicht zwei Dialoge hintereinander bzw. aufeinmal anzeigen lassen... (Wie in dem Code den du gepostet hast, das geht nicht)
-
Du musst das Tutorial auch bei public OnPlayerSpawn(playerid) abspielen lassen. Dort erstellst du eine Variable und fragst ab oder das Tutorial schon gemacht hat. Wenn nein, lässt du es laufen. Wenn ja, lässt du ihn normal spawnen.
also so:
if(pFirstLog[playerid] == true)
{
//Tutorial anzeigen
}Und wenn das tutorial fertig ist
pFirstLog[playerid] == false;?
//edit Montero wie soll ich das denn sonst machen?
-
Naja, du musst halt irgendwir pFirstLog[playerid] auf true setzen, damit es überhaupt geht. Aber ja, an der Stelle würde es passen, wenn es keine Komplikationen mit nachfolgenden Anweisungen unter FirstLog kommt.
-
pFirstLog[playerid] == false;
C:\Users\kev\Desktop\test\gamemodes\test.pwn(435) : warning 215: expression has no effect
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Warning.
-
Setz es einfach auf 0 und dann auf 1, wenn der Wert true sein soll.
-
breadfish.de
Hat das Thema geschlossen.