Erstellen eines Tutorials ^^

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
  • Schönen guten Abend ;)
    Ich werde hier nochmal ein verbessertes Tutorial schreiben ;)
    Erstmal müsst ihr diesee Variablen deklarieren und ein forward für das Tutorial:
    new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    forward Tutorial(playerid);
    Nun macht ihr am Besten in euren Register Command:
    pFirstLog[playerid] = true;
    Nun kann er sich einloggen und Spawnen, wenn er spawnt fragt ihr ab ob das 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;
    }
    Und setzt die 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
    }
    }


    Das wars schon ;)
    Viel Spaß, falss ich etwas vergessen oder falsch gemacht habe, berichtigt mich bitte :D

    Einmal editiert, zuletzt von Monte ()

  • Sieht schon mal ganz gut aus.Funktioniert wenigstens im gegensatz zu dem anderen Tutorial.

    Zitat

    TutTime[playerid] = 0; // die Tutorial Zeit wird wieder auf 0 gesetzt


    Würde es eher auf -1 damit klar wird das es INVALID,dass ist aber eher geschmackssache.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • WIe kann ich das machen, dass nene TUT kommt nach /invite^^?

  • Bump


    sry für Bump aber ich habe ein Problem mit dem Tutorial^^ Wenn ich es einfüge und das spiel starte und mich registriere, dann wird das gesamte Tutorial in 3 Sekunden abgespielt -.-


    Was das problem is weis ich nicht


    MfG

    Zitat

    Nimm die Dinge wie sie sind: schlag, wenn du schlagen musst, tritt, wenn du Treten musst
    -Bruce Lee

  • TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid); // die 1000 einfach erhöhen

  • Ich krieg dabei 6 errors :(


    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(916) : warning 213: tag mismatch
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(1826) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(2401) : warning 204: symbol is assigned a value that is never used: "cash"
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(2988) : error 055: start of function body without function header
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(2989) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(2991) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(2997) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3005) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3012) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3021) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3030) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3036) : error 010: invalid function or declaration
    C:\Dokumente und Einstellungen\Nunzio Tuccio\Desktop\Server\samp03asvr_R4_win32\gamemodes\Spirit-Script!_1.67.pwn(3300) : warning 203: symbol is never used: "dcmd_heal"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    9 Errors.




    EDIT/// Code:



    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,COLOR_YELLOW,"|__(Tutorial: Willkommen!)__|");
    SendClientMessage(playerid,COLOR_YELLOW,"Es folgt nun ein kleines Tutorial, passe bitte gut auf.");
    SendClientMessage(playerid,COLOR_YELLOW,"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,COLOR_YELLOW,"|__(Tutorial: Respekt und Umgangston!)__|");
    SendClientMessage(playerid,COLOR_YELLOW,"Bitte behandle jeden so wie du gern behandelt werden möchtest.");
    SendClientMessage(playerid,COLOR_YELLOW,"Falls du in einem falschen Umgangston redest wirst du verwarnt.");
    SendClientMessage(playerid,COLOR_YELLOW,"Bitte respektiere die Admins auch, denn auch sie werden dich..");
    SendClientMessage(playerid,COLOR_YELLOW,"..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,COLOR_YELLOW,"|__(Tutorial: Bugusing oder Ähnliches!)__|");
    SendClientMessage(playerid,COLOR_YELLOW,"Falls du jemanden siehst, der einen Bug used.");
    SendClientMessage(playerid,COLOR_YELLOW,"Oder auch wenn er cheatet oder andere 'illegale' Sachen tut..");
    SendClientMessage(playerid,COLOR_YELLOW,"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,COLOR_YELLOW,"|__(Tutorial: Häuser und Autos!)__|");
    SendClientMessage(playerid,COLOR_YELLOW,"Wie auf jedem Reallife Server, so auch hier gibt es Autohäuser und Häuser zum Verkauf.");
    SendClientMessage(playerid,COLOR_YELLOW,"Wenn du ein Haus haben willst, brauchst du einen Makler. Du spawnst immer wieder vor deinem Haus.");
    SendClientMessage(playerid,COLOR_YELLOW,"Wenn du ein Auto haben willt, fahr zum nächsten Autohaus.");
    SendClientMessage(playerid,COLOR_YELLOW,"Es gibt mehrere von Ihnen und verschiedene Preisklassen.Dein Auto kannst du dann irgendwo parken..");
    SendClientMessage(playerid,COLOR_YELLOW,"..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,COLOR_YELLOW,"*~'__(Tutorial: Berufe und Firmen!)__'~*");
    SendClientMessage(playerid,COLOR_YELLOW,"Jeder Bürger von San Fierro kann eine eigene Firma gründen.");
    SendClientMessage(playerid,COLOR_YELLOW,"Du brauchst jedoch genug Geld und ein Konzept.");
    SendClientMessage(playerid,COLOR_YELLOW,"Wenn du dies beides besitzt, schreib es ins Forum und wir werden es uns anschauen.");
    SendClientMessage(playerid,COLOR_YELLOW,"Doch auch andere Berufe kannst du ausüben, bewerben tut man sich im Forum..");
    SendClientMessage(playerid,COLOR_YELLOW,"..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
    }

    Einmal editiert, zuletzt von milanboy38 ()

  • pFirstLog[playerid] = true;
    Brauche hilfe. KApiere nicht wo das hinkommen soll. ?(
    Weil ich das noch nicht eingefügt habe kommen bestimmt auch die errors hier oder?
    C:\GTa an lol (Lasse)\Server\GTARP\gamemodes\tutorial.pwn(270) : error 029: invalid expression, assumed zero
    C:\GTa an lol (Lasse)\Server\GTARP\gamemodes\tutorial.pwn(270) : warning 215: expression has no effect
    C:\GTa an lol (Lasse)\Server\GTARP\gamemodes\tutorial.pwn(270) : error 001: expected token: ";", but found ")"
    C:\GTa an lol (Lasse)\Server\GTARP\gamemodes\tutorial.pwn(270) : error 029: invalid expression, assumed zero
    C:\GTa an lol (Lasse)\Server\GTARP\gamemodes\tutorial.pwn(270) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    Einmal editiert, zuletzt von Mambo ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen