Wie überprüfen ob der Spieler sich Registriert hat?

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • 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

  • 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))
    ??

    Die besten Zitate aus dem sa-mp.de Forum

    Zitat

    -Wenn hier die sache nicht drine ist aber sie brachen es vlt kann ich es und dann mache ich es für sie!)

    Zitat

    Die Prüfungen(Fahrprüfungen), welche sehr realitätsnah entworfen sind, kann jeder Spieler allein absolvieren ohne auf andere angewiesen zu sein.

    Zitat

    Features: Ausgeprägte und leicht verständliche Serverregeln!

    Zitat

    aber wer dumme Antworten gibt bekommt eine Dumme zurück ... und chill mal dein Leben!

    Zitat

    Ich bin für Luca, wieso weiß ich nicht, aber der andere hat so hässlige Haare..

    Zitat

    Ich habe mir eig. immer nur die Castings angesehen, weil die da immer Runtergemacht wurden.

    Zitat

    Unknown processor
    übersetzt (by google translator)
    unbekannten Prozessor

    Zitat

    Verkaufe Minecraft Keys
    Nur für 20,-€ PaySafeCard.
    Unfassbar in mindestens 5 Minuten hast du dein Key!

  • 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


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)

  • 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


    Bitte keine Script/Supportanfragen via PN!!!
    (Ausnahme: Scripten gegen Bezahlung!)