[HILFE] User name problem

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
  • Nabend..


    kurzes schmerzloses beispiel:


    PlayerA joint, registriert sich als PlayerA.
    PlAyErA joint, registriert sich als PlAyErA.


    nun habe ich PlayerA und PlAyErA.
    ist aber beides halt der selbe name..


    wie kann ich machen das wenn der name einmal registriert ist, auch so bleibt?
    (nicht durch andere schreibweise umgehbar)


    ich hoffe ihr wisst was ich meine ^^

  • Ich gehe einfach mal von MySQL aus.
    Du müsstest eine Abfrage mit "SELECT name FROM users WHERE `name` = `$name`" (vorher natürlich mit format() formatieren. Da WHERE nicht case sensitive (achtet nicht auf Groß- und Kleinschreibung) ist, findet es den Namen sowohl wenn es Player als auch player oder eben PlAyEr ist.
    Dann solltest du mit mysql_nun_rows gucken, ob eine oder mehr Zeilen gefunden wurden und dementsprechend die Registrierung abbrechen.
    Bei SQLite sollte das im Grunde fast genauso laufen.
    Bei Dini hab ich jedoch gerade keine Ahnung.

    Ich bin Dittis Signatur.

  • doch ^^..


    nur ich meine es so:


    Wenn du den name "abcde" nimmst, wird der name erstellt (ist ja auch richtig so)
    Wenn du den name "ABCDE" nimmst, wird der auch erstellt.. ( Soll er aber nicht!! gibt schon einen abcde)


    also die rechtschreibung soll egal sein.. wenn es diesen spieler schon gibt, gibt es ihn und ende ^^
    dann muss man einen anderen name nehmen

  • strcmp(stringfromvariable, stringfromtextfile, true/false, strlen(stringfromvariable))


    Genau diese Funktion vergleicht Textinhalte (Strings) miteinander.
    Dabei liegt es bei dir, ob du Groß- und Kleinschreibung ignorierst oder nicht.

    Wenn sich ein Spieler verbindet und er nach dessen Namen, als Datei suchst,
    musst du nur diese Funktion verwenden, um die Groß- und Kleinschreibung nicht beachten zu müssen.

    Ganz einfach!


    Hier noch der Wiki-Link dazu: strcmp

  • In dem Bereich, in dem deiner Nutzerdatei geladen wird.

    Wenn der Spieler sich verbindet, wird irgendwo im Script abgefragt
    wie sein Name lautet und ob bereits eine Datei von ihm existiert.

    An dieser Stelle greifst du an und lässt bei der Namensüberprüfung
    die Funktion strcmp mit einfließen, die dann die Groß- oder Kleinschreibung ignoriert.

    Simpler kann ich es leider nicht erklären :D

  • habe bei OnPlayerConnect:


    new Spielerdatei[64],text[200];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.txt",name);
    if(dini_Exists(Spielerdatei))
    {


    wo muss jetzt was hin? ^^