Name ist zu lang zum reinschreiben ?!

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
  • Hey Leute,


    ich habe ein kleines Problem. Und zwar gehts um folgendes:


    Wenn ich jemanden mit /makeleader ID zum Leader mache, wird sein Name in eine Datei geschrieben.


    Aufbau:

    enum gInfo
    {
    leader1[MAX_PLAYER_NAME],
    leader2[MAX_PLAYER_NAME],
    ...
    }
    new FraktionInfo[gInfo];


    /makeleader Command

    ....
    if(level == 1)
    {
    new giveplayer[MAX_PLAYER_NAME];
    GetPlayerName(para1, giveplayer, sizeof(giveplayer));
    strmid(FraktionInfo[leader1], giveplayer, 0, strlen(giveplayer), 255);
    SaveLeader();
    }
    ...



    public SaveLeader()
    {
    new var[256];
    new File: hFile = fopen("Leaderlist.cfg", io_write);
    if( hFile )
    {
    format(var, 256, "FRAKTION_1 = %s\r\n", FraktionInfo[leader1]); fwrite(hFile, var);
    format(var, 256, "FRAKTION_2 = %s\r\n", FraktionInfo[leader2]); fwrite(hFile, var);
    fclose( hFile );
    }
    return 1;
    }


    Nun zeigt er mir das in der Datei an:



    FRAKTION_1 = [XXX]YYYYYYFRAKTION_2 =


    Also der vermischt die zusammen. Wenn ich einen kürzeren Namen verwende, geht es:



    FRAKTION_1 = [XXX]YYYYYYY
    FRAKTION_2 =


    Warum ist das so? bei " leader1 " ist doch [MAX_PLAYER_NAME], oder muss ich was anderes verwenden ???


    Bitte dringend um Hilfe ?(

  • Ich empfehle dir Dini, da es leichter ist.
    stock GetName(target)
    {
    new unkown[24];
    GetPlayerName(target, unkown, sizeof(unkown));
    return unkown;


    }
    public SaveLeader(playerid, targetid)
    {
    new enemy[24] = GetName(targetid);new playa[24] = GetName(playerid);
    new pfad[64];
    format(pfad, sizeof(pfad), "Leaderlist.cfg");
    if(fexists(pfad))
    {
    dini_Set(pfad, "FRAKTION_1", enemy);
    dini_Set(pfad, "FRAKTION_2", playa);
    }
    else
    {


    dini_Create(pfad);


    dini_Set(pfad, "FRAKTION_1", enemy);
    dini_Set(pfad, "FRAKTION_2", playa);
    }


    }
    return 1;
    }

  • Hey, danke für deine Antwort !


    Ich habe schon gelesen, dass dini leichter ist.


    Ich bevorzuge aber meine Variante, weil ich sie übersichtlicher finde.


    Ich würde gerne die Lösung für mein Problem finden und nicht eher das Problem umgehen.


    Wenn mir jemand sagen könnte, was an meinem Befehl falsch ist, würde mir das vieles Erklären.