Könnt ihr das in meinem Script bitte so umschreiben, dass wenn man sich zum ersten Mal registriert, ein Tutorial kommt. Wenn man sich dann einloggt soll es nicht kommen! Ich habe schon öfters gefragt aber keiner Antwortet! Man muss in die Spielerdatei (dini) speichern das man das Tutorial gemacht hat, ich weiß aber nicht wie, trotz Erklärungen. Bitte macht euch nicht die Mühe es mir zu erklären, ich habs schon tausend Kombinationen versucht, aber es klappt nicht. Außerdem verstehe ich viele Begriffe nicht gut. Bitte einfach nur richtig einfügen!
#include <a_samp>
#include <dini>
#define BLAU 0x0087FFFF
#define msg 0xE10000FF
#define blau 0x005BFFFF
#define ROT 0xFF0000FF
#define COLOR_GREEN 0x00BB00FF
#define COLOR_WHITE 0xFFFFFFFF
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
new bool:pFirstLog[MAX_PLAYERS],TutTimer[MAX_PLAYERS],TutTime[MAX_PLAYERS];
forward Tutorial(playerid);
main()
{
print("---------------------------------");
print("---------------------------------");
print("---------------------------------");
}
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid))return 1;
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(dini_Exists(Spielerdatei))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
SpielerSpeichern(playerid);
}
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",1000,1,"i",playerid);
}
return 1;
}
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] == 1)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
SetPlayerPos(playerid,1199.326293, -1282.091918, 17.865108);
InterpolateCameraPos(playerid, 1199.326293, -1282.091918, 17.865108, 1206.524902, -1341.727172, 18.961126, 30000);
InterpolateCameraLookAt(playerid, 1195.871337, -1285.705810, 17.915891, 1202.001220, -1339.600463, 18.847854, 30000);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Herzlich Willkommen auf BLalaada Roleplay!");
SendClientMessage(playerid,COLOR_WHITE,"Als Erstes wollen wir uns bedanken, das du ausgerechnet zu uns gekommen bist.");
SendClientMessage(playerid,COLOR_WHITE,"Als Dankeschön dafür, erhälst du von uns ein Startkapital von 50.000$, sowie Level 3.");
SendClientMessage(playerid,COLOR_WHITE,"Wir hoffen du hast hier einen schönen Aufenthalt!");
}
else if(TutTime[playerid] == 15)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
SetPlayerCameraLookAt(playerid, 148.9403,-90.2412,1.3052);
SetPlayerPos(playerid, 148.9403,-90.2412,1.3052);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Allgemeine Regeln auf dem Server");
SendClientMessage(playerid,COLOR_WHITE,"Wie auf jeden anderen Server ist das Cheaten und Bugusen natürlich verboten,");
SendClientMessage(playerid,COLOR_WHITE,"sowie andere Dinge die dir zum Vorteil sind, wie zum Beispiel ein Parkour Mod.");
SendClientMessage(playerid,COLOR_WHITE,"Selbstverständlich ist auch ein guter Ton erwünscht. Jegliches Beleidigen kann zum");
SendClientMessage(playerid,COLOR_WHITE,"Prison, Kick, Mute oder sogar zu einem Bann führen. Mehr Regeln findet man unter /rules.");
}
else if(TutTime[playerid] == 28)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3052);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Weitere Informationen zum Cheaten/Bugusen");
SendClientMessage(playerid,COLOR_WHITE,"Wie bereits erwähnt, ist das Cheaten sowie Bugusen auf dem Server nicht gestattet.");
SendClientMessage(playerid,COLOR_WHITE,"Falls du jemanden sehen solltest, der Cheatet oder Bugs ausnutzt, melde es einem Admin mit dem");
SendClientMessage(playerid,COLOR_WHITE,"Befehl /report. Wenn der Spieler gebannt wird, erhälst du von uns eine Belohnung.");
}
else if(TutTime[playerid] == 41)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
SetPlayerCameraLookAt(playerid, 139.9003,-96.2412,1.3052);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Fahrzeuge und Unterhalte");
SendClientMessage(playerid,COLOR_WHITE,"Auf unserem Reallife Server haben wir 3 Autohäuser. Ein Motorrad Autohaus, ein Sportwagen Autohaus");
SendClientMessage(playerid,COLOR_WHITE,"und ein Gebrauchtwagen Autohaus. Zurzeit sind die Preise super günstig, also greift zu!");
SendClientMessage(playerid,COLOR_WHITE,"Häuser und Wohnungen gibt es in Fulda Roleplay genug. Du kannst dir jedes Haus kaufen das du willst! ");
SendClientMessage(playerid,COLOR_WHITE,"Natürlich hat das seinen Preis, schreib einfach einen Admin an und dein Haus wird dir sofort gebaut.");
SendClientMessage(playerid,COLOR_WHITE,"Mehr Informationen findest du unter /carhelp und /househelp.");
}
else if(TutTime[playerid] == 54)// hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3052);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Berufe und Fraktionen");
SendClientMessage(playerid,COLOR_WHITE,"Natürlich brauchst du einen Beruf um Geld zu verdienen. Du kannst dich für einen einfachen Beruf im");
SendClientMessage(playerid,COLOR_WHITE,"Arbeitsamt in Los Santos bewerben. Derzeit sind auch Member in Fraktionen überall gesucht! ");
SendClientMessage(playerid,COLOR_WHITE,"Um in eine Fraktion zu kommen, musst du dich im Forum unter www.blablabRP.de bewerben!");
}
else if(TutTime[playerid] == 67)
{
SetPlayerCameraLookAt(playerid, 139.9303,-96.2412,1.3852);
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN," ");
SendClientMessage(playerid,COLOR_GREEN,"Ende des Tutorials");
SendClientMessage(playerid,COLOR_WHITE,"Danke für deine Aufmerksamkeit, wir wollen dich nicht aufzulang aufhalten!");
SendClientMessage(playerid,COLOR_WHITE,"Falls weitere Fragen bestehen, frag einfach einen Spieler oder einen Admin!");
}
else if(TutTime[playerid] == 72) // hier wird abgefragt wieviel Sekunden seit dem Start des Tutorials verstrichen sind
{
KillTimer(TutTimer[playerid]); // der Tutorial Timer wird beendigt
TutTime[playerid] = 0; // 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
}
TutTime[playerid]++; // hier wird die Zeit jede Sekunde erhöht
}
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_LOGIN)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
else
{
Login(playerid,inputtext);
return 1;
}
}
}
if(dialogid==DIALOG_REGISTER)
{
if(response==0)
{
SendClientMessage(playerid,BLAU,"Du hast den Vorgang abgebrochen.");
Kick(playerid);
return 1;
}
if(response==1)
{
if(!strlen(inputtext))
{
SendClientMessage(playerid,BLAU,"Das Passwort war nicht lang genug.");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren","Gib bitte das gewünschte Passwort ein:","Register","Abbrechen");
return 1;
}
else
{
Register(playerid,inputtext);
return 1;
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
SendClientMessage(playerid,BLAU,"Erfolgreich registriert.");
SetPlayerScore(playerid,0);
SetPVarInt(playerid,"loggedin",1);
return 1;
}
stock Login(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
{
LoadAccount(playerid);
SendClientMessage(playerid,BLAU,"Erfolgreich eingeloggt.");
return 1;
}
else
{
SendClientMessage(playerid,BLAU,"Falsches Passwort.");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Dein Account wurde gefunden. Gib bitte das Passwort ein.","Login","Abbrechen");
return 1;
}
}
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
if(GetPVarInt(playerid,"Baned")==1)
{
SendClientMessage(playerid,msg,"Du bist vom Server gebannt.");
Kick(playerid);
}
SetPVarInt(playerid,"loggedin",1);
return 1;
}
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
}
return 1;
}
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}