Wie erstellt man ein Tutorialsystem?

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
  • Als erstes deklariert man Variablen und ein forward new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    forward Tutorial(playerid);


    Danach bei dem Register-Teil pFirstLog[playerid] = true;


    Nun frägst du ab ob es sein erster Login ist


    public OnPlayerSpawn(playerid)
    {
    if(pFirstLog[playerid] == true)
    {
    SetPlayerPos(playerid,0.0,0.0,0.0); // Tutorial Position
    TogglePlayerControllable(playerid,false);
    TutTime[playerid] = 1;
    TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
    }
    return 1;
    }


    Als letztes setzt du Zeitvariable auf 1. Mit SetTimerEx wird nun der Timer nur für die gegebene Playerid gestartet.
    Da er auf 1000 ist, wird jede Sekunden die Zeit-Variable erhöht, weshalb ihr nun in der TutTime Variable die Sekundenzahl abfragen könnt.
    Hier ist dann im public Tutorial ein Beispiel Tutorial:


    public Tutorial(playerid)
    {
    if(TutTime[playerid] >= 1) // wenn die Zeit auf 1 gesetzt worden war, gehts los. Wenn während des Tutorials die zeit wieder auf 0 gesetzt wird, passiert in dem Timer garnichts.
    {
    if(TutTime[playerid] == 2)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Willkommen!)__'~*");
    SendClientMessage(playerid,msg,"Es folgt nun ein kleines Tutorial, passe bitte gut auf.");
    SendClientMessage(playerid,msg,"Falls dann doch noch Fragen offen bleiben, fragt im Forum oder die Admins/Spieler.");
    }
    else if(TutTime[playerid] == 10)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Respekt und Umgangston!)__'~*");
    SendClientMessage(playerid,msg,"Bitte behandle jeden so wie du gern behandelt werden möchtest.");
    SendClientMessage(playerid,msg,"Falls du in einem falschen Umgangston redest wirst du verwarnt.");
    SendClientMessage(playerid,msg,"Bitte respektiere die Admins auch, denn auch sie werden dich..");
    SendClientMessage(playerid,msg,"..respektieren. Also: Achte auf deinen Umgangston!");
    }
    else if(TutTime[playerid] == 18)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Bugusing oder Ähnliches!)__'~*");
    SendClientMessage(playerid,msg,"Falls du jemanden siehst, der einen Bug used.");
    SendClientMessage(playerid,msg,"Oder auch wenn er cheatet oder andere 'illegale' Sachen tut..");
    SendClientMessage(playerid,msg,"Bitte reporte ihn oder mach einen Screen und stell ihn ins Forum.");
    }
    else if(TutTime[playerid] == 26)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Häuser und Autos!)__'~*");
    SendClientMessage(playerid,msg,"Wie auf jedem Reallife Server, so auch hier gibt es Autohäuser und Häuser zum Verkauf.");
    SendClientMessage(playerid,msg,"Wenn du ein Haus haben willst, brauchst du einen Makler. Du spawnst immer wieder vor deinem Haus.");
    SendClientMessage(playerid,msg,"Wenn du ein Auto haben willt, fahr zum nächsten Autohaus.");
    SendClientMessage(playerid,msg,"Es gibt mehrere von Ihnen und verschiedene Preisklassen.Dein Auto kannst du dann irgendwo parken..");
    SendClientMessage(playerid,msg,"..oder auch Verkaufen, falls es dir nicht gefällt.");
    }
    else if(TutTime[playerid] == 34)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Berufe und Firmen!)__'~*");
    SendClientMessage(playerid,msg,"Jeder Bürger von San Fierro kann eine eigene Firma gründen.");
    SendClientMessage(playerid,msg,"Du brauchst jedoch genug Geld und ein Konzept.");
    SendClientMessage(playerid,msg,"Wenn du dies beides besitzt, schreib es ins Forum und wir werden es uns anschauen.");
    SendClientMessage(playerid,msg,"Doch auch andere Berufe kannst du ausüben, bewerben tut man sich im Forum..");
    SendClientMessage(playerid,msg,"..dort kannst du auch dich für ein Chef Posten bewerben, falls einer frei ist.");
    }
    else if(TutTime[playerid] == 42)
    {
    SendClientMessage(playerid,msg,"*~'__(Tutorial: Das Ende!)__'~*");
    SendClientMessage(playerid,msg,"Vielen Dank, dass du dir Zeit fürs Tutorial genommen hast.");
    SendClientMessage(playerid,msg,"Falls weitere Fragen bestehen, wende dich an Spieler oder Admins.");
    }
    else if(TutTime[playerid] == 50) // hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    KillTimer(TutTimer[playerid]); // der Tutorial Timer wird beendigt
    TutTime[playerid] = -1; // die Tutorial Zeit auf INVALID gsetzt - nach Goldkiller :)
    SetPlayerPos(playerid,0.0,0.0,0.0); // der Spawn, wo er nach dem Tutorial hinsoll
    TogglePlayerControllable(playerid,true); // hier wird die Fähigkeit sich zu bewegen wieder auf "wahr" gesetzt
    GameTextForPlayer(playerid,"~g~Willkommen, ~r~ in San Fierro.",6000,1); // GameText am Ende des Tutorials
    }
    TutTime[playerid]++; // hier wird die Zeit jede Sekunde erhöht
    }
    }


    Vielen Dank an Monte für das Tutorial

    Mit freundlichen Grüßen


    [dropdown='Wähle dein Ziel']
    [option=#000,#transparent,http://newtown-servers.de]Homepage[/option]
    [/dropdown]