Anfänger Tutorial für den Server

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
  • Hallo Community,

    Ich wollte für meinen TestServer ein Tutorial einbauen was bei dem Connecten eines spielers abläuft also
    Bild von der Stadthalle dann soll die Kamera weiter fliegen zum LSPD usw also immer einen Ort und ein Text dazu.´jedoch soll der server auch merken wen jemand das Tutorial schon angeschaut hat.


    Da ich ein neueinsteiger in Pawno Scripting bin weis ich leider nicht wie ich das machen soll. Kann mir da von euch vielleicht irgendjemand helfen ? .



    Mit freundlichen Grüßen:
    Matthias -> TropicalMonster

  • Neben dem Anfang von Andrzejxy solltest du mit SendPlayerMessage. Dann solltest du auch noch mit SetPlayerCamera usw. arbeiten.
    Denk dran den Spieler auch in die nähe zu Porten.
    Sonst sieht dieser nur die Entfernungsdetails. Und als kleiner Tipp, bau n Befehl zum Tutorialabbruch ein.
    Grüsse

  • Nein so meine ich das nicht.


    Ich will dass man sobald man auf den Server Joint und sich einen Account in der Datenbank angelegt hat, dass man ein Tutorial anschauen muss bevor man spawnt.


    Das Tutorial soll so sein... Bild von der Stadthalle + ein kleiner Beschreibungstext, dann soll die Camera weiter laufen (Dynamik Camera oder so) und beim LSPD stoppen und da soll dann auch so ein Text erscheinen.



    Ich kann eure Vorschläge und Tipps leider nicht umsetzen da ich wirklich eine Beschreibung brauche wie ich dass alles machen muss damit es funktioniert.... Ich Scripte maximal 1 Woche mehr noch nicht. Bin ein totaler Neueinsteiger und kenne mich in diesem Bereich leider noch nicht so gut aus.


    Ich hoffe trotz meiner vielleicht etwas undeutlichen Beschreibung weis jemand auf was ich hinaus will und vielleicht kann mir ja auch jemand dabei helfen so etwas zu machen bitte auch ein bisschen was zum Copy & Paste. Natürlich nicht alles aber so schwerere Sachen bitte schon aber leichte Anfangs Sachen will ich selber versuchen. Wäre wirklich super wen mir da der ein oder andere helfen könnte.


    Natürlich könnt ihr euch auch mit einer Privaten Nachricht bei mir melden um mir zu helfen. Wäre vielleicht noch besser.



    Mit freundlichen Grüßen;
    Matthias -> TropicalMonster


  • Kopier das tut doch aus m gf raus. Ist doch eh immer das selbe.

  • Ja genau ich würde gerne lernen wie man so ein Start Tutorial selber erstellen kann
    Ich brauch kein so billiges und bekanntes Tutorial wie das von Godfather, Ich möchte ein Tutorial das einzigartig und unbekannt ist. Also komplett Selfmade damit ich später einfach weis wie sowas funktioniert.


    @[LnD]Awesome -> Ich habe dir eine Private Nachricht geschrieben.


    Gibt es da jemanden der mir das wirklich ausführlich und vor allem Schritt für Schritt erklären kann ?.

  • @TropicalMonster:


    Zuerst erstellst du einen neuen Public, dazu wird ein forward erstellt:


    forward Tutorial(playerid)


    noch dazu erstellen wir zwei neue Variablen, eine dient später für die Abfrage der gradigen höhe des Wertes, und die andere dient dafür, um einen Timer zu erstellen. Denn um ein Tutorial mit Zeitbedingung zu erstellen, benötigt man einen Timer. Wozu die Variable für den Timer? Da ich bei meiner Methode den Timer immer und immer wiederholen lasse, muss er ja, nach dem Tutorial, irgendwie abgebrochen werden. Deswegen für den Timer eine extra Variable.


    new TutorialTimer[MAX_PLAYERS],TutorialTime[MAX_PLAYERS];


    Nun können wir auch damit beginnen, den Spieler, sofern dieser das Tutorial nicht abgeschlossen hat, in das Tutorial zu schicken. Das machen wir direkt dort, wo die Spielerdatei erstellt wird, bzw bei MySQL in die Datenbank der Spieler geschrieben wird.
    Dazu erstellen wir jetzt einen Timer unter den Public (sofern vorhanden) wo die Datei erstellt wird, dazu verwendet man jetzt die Variable "TutorialTimer".
    Dazu stellen wir TogglePlayerControllable auf false, damit der Spieler sich während dem Tutorial nicht bewegen kann.
    Und drittens stellen wir die Variable "TutorialTime" auf 1.


    TutorialTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
    TogglePlayerControllable(playerid,false);
    TutorialTime[playerid] = 1;


    Haben wir das gemacht, können wir nun den Public wozu wir ein neues Forward erstellt haben anlegen.


    public Tutorial(playerid)
    {


    }


    In diesen Public können wir nun folgendes eintragen:


    TutorialTime[playerid] ++;


    Was passiert jetzt eigentlich? Wir rufen mit dem Timer diesen Public jede Sekunde auf. Und immer wenn diese Public aufgerufen wird, wird die Variable TutorialTime um 1 erhöht. Das ist wichtig für die nächsten Schritte, die wir jetzt machen.
    Denn jetzt wird die Variable "TutorialTime" in einer if Abfrage genutzt:


    if(TutorialTime[playerid] >= 1)
    {


    }


    Hier sagen wir, wenn die Zeit auf 1 gesetzt wird, soll das Tutorial beginnen. Das machen wir nun auch mit weitern if Abfragen. Hierbei kann man die Sekunden anzahl bzw. die Zahl in der if Abfrage anpassen:


    if(TutorialTime[playerid] >= 1)
    {
    if(TutorialTime[playerid] == 2)
    {
    //Position SendClientMessage usw.
    }
    if(TutorialTime[playerid] == 10)
    {
    //Position SendClientMessage usw.
    }
    if(Tutorial... usw.
    }


    In diesen einfachen Zeilen, bestimmen wir wann der nächste Ort immer angezeigt werden soll.
    Haben wir jetzt aber das Tutorial fertig geschaut, können wir in der letzten if Abfrage folgendes machen:


    if(TutorialTime[playerid] == ZAHL)
    {
    KillTimer(TutorialTimer[playerid]);
    TutorialTime[playerid] = -1;
    SetPlayerPos(playerid,X,Y,Z);
    }


    Was geschieht darin jetzt? Zu aller erst "Killen" wir den Timer, damit er nicht sinnlos Ressourcen frisst. Zweitens geben wir der Variable "TutorialTime" den Wert -1. Somit wird diese Variable auf INVALID gesetzt.
    Und drittens geben wir die Koordinaten an, wo der Spieler dann zum Schluss des Tutorials sein soll.


    Und fertig ist das eigene Tutorial.