RolePlay Namen System

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
  • Guten Tag ihr lieben Brotfische xD
    ich hätte gerade mal eine Frage , wieso mein System es nicht erkennt wenn sich schon ein roleplay name auf dem Ordner befindet.


    Code:


    if(dialogid == RPNAME)
    {
    new sPfad[128];
    format(sPfad, sizeof(sPfad), "/Acc/RolePlay/%s.ini",sStats[playerid][sRolePlay]);
    if(response == 0)
    {
    ShowPlayerDialog(playerid, ALTER, DIALOG_STYLE_INPUT, "Alter","Wie alt bist du ?","Weiter","Zurück");
    }
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid, Rot, "Du hast nichts eingegeben!");
    ShowPlayerDialog(playerid, RPNAME, DIALOG_STYLE_INPUT, "Roleplay Name","Bitte gebe deinen Roleplay Namen ein.[Format: Vorname_Nachname]","Weiter","Zurück");
    return 1;
    }
    if(strfind(inputtext,"_",true) == -1)
    {
    SendClientMessage(playerid, Rot, "Dies ist kein Roleplay Name");
    ShowPlayerDialog(playerid, RPNAME, DIALOG_STYLE_INPUT, "Roleplay Name","Bitte gebe deinen Roleplay Namen ein.[Format: Vorname_Nachname]","Weiter","Zurück");
    return 1;
    }
    if(dini_Exists(sPfad) && strlen(sStats[playerid][sRolePlay])>0)
    {
    SendClientMessage(playerid, Rot, "Dieser Roleplay Name existiert schon.");
    ShowPlayerDialog(playerid, RPNAME, DIALOG_STYLE_INPUT, "Roleplay Name","Bitte gebe deinen Roleplay Namen ein.[Format: Vorname_Nachname]","Weiter","Zurück");
    return 1;
    }
    if(strlen(inputtext) > 25)
    {
    SendClientMessage(playerid, Rot, "Dieser Roleplay Name ist zu lang!");
    ShowPlayerDialog(playerid, RPNAME, DIALOG_STYLE_INPUT, "Roleplay Name","Bitte gebe deinen Roleplay Namen ein.[Format: Vorname_Nachname]","Weiter","Zurück");
    return 1;
    }
    format(sStats[playerid][sRolePlay],128,"%s",inputtext);
    format(sPfad, sizeof(sPfad), "/Acc/RolePlay/%s.ini",sStats[playerid][sRolePlay]);
    dini_Create(sPfad);
    ShowPlayerDialog(playerid, Geschlecht, DIALOG_STYLE_MSGBOX, "Geschlecht", "{FFFFFF}Bist du {00FF3C}Männlich{FFFFFF} oder {FF00FF}Weiblich{FFFFFF}.\n\n{FF9600}INFO:Wähle unten aus{FFFFFF}!","Männlich","Weiblich");
    }
    }


    Screen:

  • Du prüfst die falsche Datei ( behaupte ich mal).


    Zitat

    new sPfad[128];
    format(sPfad, sizeof(sPfad), "/Acc/RolePlay/%s.ini",sStats[playerid][sRolePlay]);


    Im Quellcode belegst du sStats[playerid][sRolePlay] erst in Zeile 35.
    Ich glaube du müsstest inputtext nehmen, denn dort prüfst du nämlich auch auf den Unterstrich ( _ ).


    Falls nicht, solltest du mal sRolePlay und inputtext genauer für uns definieren oder welche konkrete Fehlermeldung es bei dir ( ClientMessage ).


  • Den Satz verstehe ich nicht so Ganz, ich formatiere das ganze ja eig schon oben


    und Frage ab


    if(dini_Exists(sPfad) && strlen(sStats[playerid][sRolePlay])>0)


    Das Soll Fragen ob mit seinem Roleplay namen +ini hintendran schon vorhanden ist und eine zeichenlänge von mindesten 1 hat ?

  • Das du es formatierst sehe ich ( habe ich immerhin auch zitiert ). Die Frage ist aber, mit welchen Parametern es formatiert wird.


    Ausgehende von deinem Quellcode aus dem 1. Post:


    In Zeile 4 benutzt du format mit sStats[playerid][sRolePlay]
    In Zeile 36 formatiert du erst sStats[playerid][sRolePlay] und legst dort den Spielernamen ab.
    Heißt also, du benutzt erst sStats[playerid][sRolePlay], formatierst aber dessen Inhalt erst viel später ( Wenn überhaupt der Code bis dahin kommt ).


    In Zeile(n) 11,17,23 und 29 behandelst du inputtext so als wäre es der Name. Daher denke ich,dass du in Zeile 4 hättest inputtext nutzen müssen. Das kann ich aber nicht wissen,da du meinem Tipp mit der Erklärung von inputtext und sStats[playerid][sRolePlay] nicht nachgekommen bist. Genau so wenig wie auf die Frage, bei welcher Abfrage es scheitert.


    Du kannst aber auch einfach das Gegenteil belegen, in dem du zwischen Zeile 4 und 5 mal per print sPfad ausgeben lässt.