Tutorial bei jedem Login

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
  • Habn Problem bei meinem Tutorial in meinem Script und zwar jedes Mal wenn ich mich einlogge folgt das Tutorial.Möchte dass das nur beim ersten Mal ist.Hier mal Ausschnitt vom Script:
    Login/Register: public OnPlayerConnect(playerid)
    {
    SetTimerEx("Score",60000,1,"d",playerid);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    pFirstLog[playerid] = true;
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    return 1;
    }


    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, COLOR_BLUE,"*~'__(Tutorial: Willkommen!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Es folgt nun ein kleines Tutorial, passe bitte gut auf.");
    SendClientMessage(playerid, COLOR_BLUE,"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_BLUE,"*~'__(Tutorial: Respekt und Umgangston!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Bitte behandle jeden so wie du gern behandelt werden möchtest.");
    SendClientMessage(playerid, COLOR_BLUE,"Falls du in einem falschen Umgangston redest wirst du verwarnt.");
    SendClientMessage(playerid, COLOR_BLUE,"Bitte respektiere die Admins auch, denn auch sie werden dich..");
    SendClientMessage(playerid, COLOR_BLUE,"..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_BLUE,"*~'__(Tutorial: Bugusing oder Ähnliches!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Falls du jemanden siehst, der einen Bug used.");
    SendClientMessage(playerid, COLOR_BLUE,"Oder auch wenn er cheatet oder andere 'illegale' Sachen tut..");
    SendClientMessage(playerid, COLOR_BLUE,"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_BLUE,"*~'__(Tutorial: Häuser und Autos!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Wie auf jedem Reallife Server, so auch hier gibt es Autohäuser und Häuser zum Verkauf.");
    SendClientMessage(playerid, COLOR_BLUE,"Wenn du ein Haus haben willst, brauchst du einen Makler. Du spawnst immer wieder vor deinem Haus.");
    SendClientMessage(playerid, COLOR_BLUE,"Wenn du ein Auto haben willt, fahr zum nächsten Autohaus.");
    SendClientMessage(playerid, COLOR_BLUE,"Es gibt mehrere von Ihnen und verschiedene Preisklassen.Dein Auto kannst du dann irgendwo parken..");
    SendClientMessage(playerid, COLOR_BLUE,"..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_BLUE,"*~'__(Tutorial: Berufe und Firmen!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Jeder Bürger von San Fierro kann eine eigene Firma gründen.");
    SendClientMessage(playerid, COLOR_BLUE,"Du brauchst jedoch genug Geld und ein Konzept.");
    SendClientMessage(playerid, COLOR_BLUE,"Wenn du dies beides besitzt, schreib es ins Forum und wir werden es uns anschauen.");
    SendClientMessage(playerid, COLOR_BLUE,"Doch auch andere Berufe kannst du ausüben, bewerben tut man sich im Forum..");
    SendClientMessage(playerid, COLOR_BLUE,"..dort kannst du auch dich für ein Chef Posten bewerben, falls einer frei ist.");
    }
    else if(TutTime[playerid] == 42)
    {
    SendClientMessage(playerid, COLOR_BLUE,"*~'__(Tutorial: Das Ende!)__'~*");
    SendClientMessage(playerid, COLOR_BLUE,"Vielen Dank, dass du dir Zeit fürs Tutorial genommen hast.");
    SendClientMessage(playerid, COLOR_BLUE,"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,-2172.0840,254.1895,35.3386,272.5215); // 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
    }
    }
    Hoffe ihr könnt mir helfen.Danke im Vorraus.
    MFG
    Behindofyou

  • mach einfach eine neue Variable in die .ini die du dann zb: "reg" nennst.
    dann tust du das einfach so einsetzen:


    public OnPlayerConnect(playerid)
    {
    SetTimerEx("Score",60000,1,"d",playerid);
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    pFirstLog[playerid] = true;
    if(PlayerInfo[playerid][reg]==1)//oder wie du es in deiner Ini auch immer auslesen tust
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
    }
    return 1;
    }


    und dann fügst du noch am ENDE des Tutorials das ein:
    PlayerInfo[playerid][reg]=1; //wie oben je nachdem wie du es auslesen tust


    Ich hoffe ich konnte helfen

    mit freundlichen Grüßen,
    Rici



  • Wie meinste die Variable erstellen ? Mach mal bitte ein Beispiel
    //edit
    Ich hab anders und zwar so:
    if(pFirstLog[playerid] == true)
    {
    SetPlayerPos(playerid,-2172.0840,254.1895,35.3386,272.5215); // Tutorial Position
    TogglePlayerControllable(playerid,false);
    TutTime[playerid] = 1;
    TutTimer[playerid] = SetTimerEx("Tutorial",1000,1,"i",playerid);
    }


    Bei OnPlayerSpawn.Aber es geht nicht.

    Einmal editiert, zuletzt von Behindofyou ()

  • Ok wann und wo wird bei dir das gFirstLog definiert als True?


    //Edit: nochwas... dein ShowPlayerDialog ist auch bissl komisch... das ist eigentlich:
    ShowPlayerDialog( ID, DIALOGID, DIALOG_STYLE, Überschrift, Inhalt, Button1, Button2);
    //also zb:
    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Login", "Bitte logge dich ein!", "Weiter", "Abbrechen");

    mit freundlichen Grüßen,
    Rici