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