Name Problem (schreibweise)

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
  • Moin


    wollte mal wissen wie ich es so machen kann, dass wenn der name schon vergeben ist, dieser nichtmehr verwendbar ist.
    also so:


    Ich habe einen test durchgeführt
    einmal als name
    Test registriert
    und einmal als name
    TesT registriert


    Der name ist der gleiche geblieben nur der der 2 spieler dateien gespeichert..
    da so natürlich verwächslungen bei spielern auftreten würde ich gerne wissen ob es irgendwie möglich ist zu checken ob diese buchstabenreihe schon vorkommt..


    ich hoffe ihr wisst was ich meine ^^

  • Du könntest beim checken der Datein alle Buchstaben klein machen.
    Sprich Test = test und TesT = test

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • schleife und switch & case


    for(new i,j=strlen(name);i!=j;i++) switch(name[i]) case 65..90: name[i]+=32;

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Code
    ignorecase (optional)	When set to true, the case doesn't matter - HeLLo is the same as Hello. When false, they're not the same.


    Ignorecase auf "FALSE" setzen ?!?



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

  • Lese einfach mal die Userfiles aus und vergleiche halt die Strings.
    setze dazu halt einfach den Ignorecase auf false!


    Was genau bringt das?


    Dann muss man ja erstmal ALLE Userfiles auslesen

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Um zu wissen ob der Name bereits unter "allen" Userfiles vorhanden ist, bleibt doch eigentlich nur, den Namen mit allen Usernamen zu vergleichen, was noch lange nicht bedingt alle Files "auslesen zu müssen", lediglich die Directory muss ausgelesen werden.
    Soweit zur Logik.


    Alternativlösungen wüsste ich da keine anderen.


    Wäre aber gespannt von welchen zu hören, auch wenn mir keine andere Vergleichsmethode einfällt.
    Durch das Verändern von Funktionen und die Auslagerung des Abfrage-Prozesses auf irgendwelche datenbank-internen Funktionen wird das ganze Prozedere letztlich nur anders benannt.


    Vorschlag zur Güte:

    new pname[32];//Änder Variablen-namen und länge auf deine Bedürfnisse; viell. speicherst du ja noch Zusätze wie Counter im Playernamen.
    //GetPlayerName(playerid,pname);//Wenn du es nicht schon vorher drin hast.


    for(new i=0;i!=j && strlen(name[i])!=0 /*Für ende der Schleife*/;i++)
    {
    if (i==playerid) continue;
    if(strcmp(pname, name[i], false)==0) {break};//Break der Schleife!..Längenvergleich könnte man jetzt natürlich auch noch reinbringen.
    }



    Wenn also die Schleife voll durchläuft, dann hast du keine Treffer.
    Wenn die Schleife via Break unterbrochen wird, dann hast du schonmal einen identischen gefunden.
    Da ich natürlich nicht wissen kann, wie du deine Spielerfiles hinterlegt hast, ist es notwendig, die Stellen mit "name" gegebenenfalls abzuändern.



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )

    Einmal editiert, zuletzt von FACE ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen