Problem mit Tutorial

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
  • Guten Tag


    Ich wollte gerade ein Tutorial scripten. Ich habe dazu unter anderem als Vorlage ein Tutorial dazu benutzt.


    Das Problem: ich werde zwar nach dem registrieren und spawnen an die richtige stelle geportet und gefreezed, aber es geschieht danach nichts weiter.


    hier mein pawno-Ausschnitt:


    new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
    forward Tutorial(playerid);


    public OnPlayerConnect(playerid)
    {
    new Spielerdatei[256];
    new SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    SpielerInfo[playerid][Banned] = dini_Int(Spielerdatei,"Banned");

    if(SpielerInfo[playerid][Banned] == 1)
    {
    new Gesperrt[256], Grund[256];
    format(Gesperrt,sizeof(Gesperrt),"Der Account %s ist hier gesperrt!", SpielerName);
    format(Grund,sizeof(Grund),"Grund: %s!", SpielerInfo[playerid][Reason]);
    SendClientMessageToAll(Rot, Gesperrt);
    SendClientMessageToAll(Rot, Grund);
    Ban(playerid);
    }
    else
    {
    if(slock == 1)
    {
    SendClientMessage(playerid, COLOR_RED, "Der Server ist abgeschlossen, probiere es später nochmal!");
    Kick(playerid);
    }
    else
    {
    if(dini_Exists(Spielerdatei))
    {
    new plrIP[16];
    GetPlayerIp(playerid, plrIP, sizeof(plrIP));
    if(strcmp(dini_Get(Spielerdatei,"IP"),plrIP,false) == 0)
    {
    Anmelden(playerid);
    SendClientMessage(playerid,0xFFFFFFFF, "Deine IP wurde wiedererkannt, du wurdest erfolgreich eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid, login, DIALOG_STYLE_INPUT, "Logge dich mit deinem Passwort ein!", " ", "Login!", "Abbrechen!");
    }
    }
    else if(!dini_Exists(Spielerdatei))
    {
    ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich mit einem Passwort!", " ", "Registrieren!", "Abbrechen!");
    }
    if(join[playerid] == 0)
    {
    }
    else
    {
    new Connect[256];
    format(Connect,sizeof(Connect),"%s (%d) hat sich eingeloggt!",SpielerName,playerid);
    SendClientMessageToAll(0xFFFFFFFF, Connect);
    }
    }
    }
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == regis)
    {
    if(response == 1)
    {
    new Spielerdatei[64];
    new SpielerName[MAX_PLAYER_NAME];
    SpielerInfo[playerid][alvl] = 0;
    GetPlayerName(playerid,SpielerName,sizeof(SpielerName));
    format(Spielerdatei,sizeof(Spielerdatei),"/madAd/Users/%s.ini",SpielerName);
    dini_Create(Spielerdatei);
    if(!strlen(inputtext))return ShowPlayerDialog(playerid, regis, DIALOG_STYLE_INPUT, "Registriere dich!", " ", "Registrieren!", "Abbrechen!");
    dini_Set(Spielerdatei,"Passwort",inputtext);
    dini_IntSet(Spielerdatei,"Wanteds",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"AdminLevel",SpielerInfo[playerid][alvl]);
    dini_IntSet(Spielerdatei,"PayDay",SpielerInfo[playerid][PayDay]);
    new GlueckWunschText[128];
    format(GlueckWunschText,sizeof(GlueckWunschText),"Du hast dich erfolgreich mit den Name : %s und dem Passwort : %s registriert",SpielerName,inputtext);
    SendClientMessage(playerid,Rot,GlueckWunschText);
    SetPlayerWantedLevel(playerid,1);
    Anmelden(playerid);
    pFirstLog[playerid] = true;
    SendClientMessage(playerid,Rot,"Du wurdest automatisch eingloggt!");



    }
    }
    return 1;
    }


    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",17000,1,"i",playerid);
    }
    return 1;
    }


    public Tutorial(playerid)
    {
    #define msg 0x00FF00FF
    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] == 5)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,0x0000FFFF,"*~'__(Tutorial: Willkommen!)__'~*");
    SendClientMessage(playerid,msg,"Es folgt nun ein kleines Tutorial, passe bitte gut auf.");
    SendClientMessage(playerid,msg,"In Arbeit");
    }
    else if(TutTime[playerid] == 10)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
    {
    SendClientMessage(playerid,0x0000FFFF,"*~'__(Tutorial: In Arbeit!)__'~*");
    SendClientMessage(playerid,msg,"Dieses Tutorial befindest sich zur zeit in Arbeit");
    SendClientMessage(playerid,msg,"Die folgenden zeilen dienen zum Test");
    SendClientMessage(playerid,msg,"Test");
    SendClientMessage(playerid,msg,"TEST");
    }
    else if(TutTime[playerid] == 15) // 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
    SpawnPlayer(playerid); // Spieler wird gespawn
    TogglePlayerControllable(playerid,true); // hier wird die Fähigkeit sich zu bewegen wieder auf "wahr" gesetzt


    }
    TutTime[playerid]++; // hier wird die Zeit jede Sekunde erhöht
    }
    return 1;
    }


    //edit: habs nochma überarbeitet, klappt trotzdem nicht.

    Einmal editiert, zuletzt von Simon ()