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.