Heyho,
Ich will gleich ein Tutorial für meinen Selfmade Server machen.
Wie überprüfe ioch ob der Spieler schon registriert ist und das Tutorial nicht mehr machen muss?
Viele Grüße
Heyho,
Ich will gleich ein Tutorial für meinen Selfmade Server machen.
Wie überprüfe ioch ob der Spieler schon registriert ist und das Tutorial nicht mehr machen muss?
Viele Grüße
Haste ein Login & Register System?
Sicher, bei 2000 Zeilen hat man sowas schon
Da ist dann doch bestimmt ne abfrage bei, weil man muss ja wissen ob er sich noch ein account machen muss oder nicht
Warte ich gucke,
Die Abfrage muss in OnPlayerConnect sein oder?
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 in der Datenbank gefunden.\n\nBitte gebe nun dein Passwort ein.\nGib dein Passwort niemals an andere User oder Supporter weiter.\n","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Es wurde kein Account unter diesen Namen in der Datenbank gefunden.\n\nBitte wähle ein Passwort aus.\nVergiss dies aber nicht.\n\nGib dein Passwort niemals an andere User oder Supporter weiter.\n","Register","Abbrechen");
}
return 1;
}
if(dini_Exists(Spielerdatei))
??
Okay, das habe ich soweit.
Nun wenn sie Existiert die Spielerdatei mache ich einfach Spawn(playerid);
??
Theoretisch schon.
Musst aber erst SetSpawnInfo machen da es sonst zu Fehlern kommt.
#e:
fehler
Könntest du mir das mit SetSpawnInfo zeigen?
LG
http://wiki.sa-mp.com/wiki/SetSpawnInfo
Dort stehen alle Parameter.
Ich habe das jetzt so
OnPlayerConnect
if(dini_Exists(Spielerdatei))
{
}
else
{
ShowPlayerDialog(playerid,DIALOG_TUT,DIALOG_STYLE_MSGBOX,"Tutorial","Willkommen auf Realistic Reallife\nWir sind ein Reallife Server das bedeutet Deathmatch wird nicht geduldet\nSolltet ihr einen Hacker oder einen Sinnlosen Dm´ler sehen meldet\ndies den Admins per /a\nDrücke auf weiter um den nächsten Tutorial Dialog zu sehen","Weiter","Abbrechen");
}
return 1;
}
Wenn ich mit einem Spieler Connecte dens nicht gibt, spawnt er ganz normal
Bei OnDialogResponse siehts so aus:
if(dialogid==DIALOG_TUT)
{
if(response==0)
{
ShowPlayerDialog(playerid,DIALOG_TUT1,DIALOG_STYLE_MSGBOX,"Tutorial","Wir besitzen auf den Server viele Fraktionen\nMöchtest du nicht mehr als Zivillist rumlaufen?\nDann bewirb dich im Forum bei den jeweiligen Fraktionen\nSolltest du Hilfe brauchen melde dich bei einem Admin mit /sup.","Weiter","Abbrechen");
}
if(response==1)
{
ShowPlayerDialog(playerid,DIALOG_TUT,DIALOG_STYLE_MSGBOX,"Tutorial","Willkommen auf Realistic Reallife\nWir sind ein Reallife Server das bedeutet Deathmatch wird nicht geduldet\nSolltet ihr einen Hacker oder einen Sinnlosen Dm´ler sehen meldet\ndies den Admins per /a\nDrücke auf weiter um den nächsten Tutorial Dialog zu sehen","Weiter","Abbrechen");
}
}
return 1;
}
Wie überprüfe ioch ob der Spieler schon registriert ist und das Tutorial nicht mehr machen muss?
Darum ging es doch eigentlich oder?
Das sah doch eig. schon malganz gut aus:
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 in der Datenbank gefunden.\n\nBitte gebe nun dein Passwort ein.\nGib dein Passwort niemals an andere User oder Supporter weiter.\n","Login","Abbrechen");
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Registrieren","Es wurde kein Account unter diesen Namen in der Datenbank gefunden.\n\nBitte wähle ein Passwort aus.\nVergiss dies aber nicht.\n\nGib dein Passwort niemals an andere User oder Supporter weiter.\n","Register","Abbrechen");
}
return 1;
}
Weiter musste du dann nach dem Login überprüfen ob eine Variable, welche du aus deiner "Spielerdatei" liest, zb. tut, einen bestimmten Wert hat, Also tut=0 => Tut muss noch gemacht werden und bei tut=1 => tut wurde schon gemacht. Das entsprechend Abfragen und dann weitermachen mit oder eben ohne Tutorial.
Mit freundlichen Grüßen
eXchange
Check ich nicht
Was verstehst du denn nicht?
Du überprüfst doch bereits ob die Spieler registriert ist oder nicht. Je nachdem öffnest du dann einen Login- oder Registerdialog. Wenn du diese beide abgeschlossen hast, die Spielervariablen geladen sind etc. kannst du dann z. B. beim spawn abfragen ob eine Variable 0 oder 1 ist, meinetwegen auch false oder true. Und eben auch je nachdem, was diese für einen Wert hat, rufst du dann dein Tutorial auf oder eben nicht.
Da ich nicht weiß wie dein Script aufgebaut ist hier ein kleines allgemeines Beispiel:
public OnPlayerSpawn(playerid)
{
if(GetPVarInt(playerid, "Tutorial") == 0) //Abfrage, wenn die Variable Tutorial 0 ist, wird eine Funktion aufgerufen, welche das Tutorial startet.
{
//tutorial(playerid); //Funktion um das Tutorial zu starten.
}
return 1;
}
Hoffe das ist jetzt etwas verständlicher.
Mit freundlichen Grüßen
eXchange