Ränge auslesen

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
  • Habe Fraktionen so erstellt mit einenm enum:

    enum FraktionenDaten{
    fName[128], //1
    fRang0[128], //2
    fRang1[128], //3
    fRang2[128], //4
    fRang3[128], //5
    fRang4[128], //6
    fRang5[128], //7
    fRang6[128], //8
    fRang7[128], //9
    fRang8[128], //10
    fRang9[128], //11
    fRang10[128], //12
    Float:fX, //13
    Float:fY, //14
    Float:fZ, //15
    Float:fR, //16
    fInterior, //17
    fVirtualWorld //18
    }


    Und dann halt so weiter mit einem New:


    new FraktionInfo[][FraktionenDaten] = {
    {"Zivilist","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger","Bürger",-1421.0992,-287.2903,14.1484,140.1797,0,0},
    {"Regierung","Praktikant","Büroarbeiter","Schichtleiter","Bürgermeister (LV)","Bürgermeister (SF)","Bürgermeister (LS)","Finanzminister","Richter","Ober-Richter","Gouverneur","Präsident",384.808624,173.804992,1008.382812,181.1428,3,0}


    };


    So nun möchte ich das bei /stats der Rang als Name wiedergegeben wird habe es so versucht:



    ocmd:stats(playerid,params[])
    {
    new string[285],string1[65];
    format(string1,sizeof(string1),"fRang%i",SpielerInfo[playerid][pRang]);
    format(string,sizeof(string),"Fraktion:%s Rang:%s",FraktionInfo[SpielerInfo[playerid][pFraktion][fName],FraktionInfo[SpielerInfo[playerid][pFraktion][string1]);
    SendClientMessage(playerid,WEIß,string);
    return 1;
    }


    Aber er gibt mir diesen Fehler wieder.


    C:\Users\Timo\Desktop\GTA Server Projekt\gamemodes\SARP.pwn(218) : error 001: expected token: "]", but found "["
    C:\Users\Timo\Desktop\GTA Server Projekt\gamemodes\SARP.pwn(218) : error 029: invalid expression, assumed zero
    C:\Users\Timo\Desktop\GTA Server Projekt\gamemodes\SARP.pwn(218) : error 029: invalid expression, assumed zero
    C:\Users\Timo\Desktop\GTA Server Projekt\gamemodes\SARP.pwn(218) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

  • format(string1,sizeof(string1),"fRang%i",SpielerInfo[playerid][pRang]);
    Das kannst du so nicht machen, nutze einen switch, um abzufragen welchen enum Wert zu verwenden musst.


    In dem anderen format fehlt beides mal direkt nach
    SpielerInfo[playerid][pFraktion]
    Noch eine ].


  • Kannst du mir bitte ein Beispiel in meinem Fall für einen switch schreiben ?

  • War kurz weg, deshalb hat es etwas gedauert.


    So kannst du es machen:
    ocmd:stats(playerid,params[])
    {
    new string[145];
    format(string,sizeof(string),"Fraktion:%s Rang:%s",FraktionInfo[SpielerInfo[playerid][pFraktion]][fName],FrakRangName(playerid));
    SendClientMessage(playerid,WEIß,string);
    return 1;
    }


    stock FrakRangName(playerid)
    {
    new name[32];
    switch(SpielerInfo[playerid][pRang])
    {
    case 0: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang0]);
    case 1: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang1]);
    case 2: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang2]);
    case 3: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang3]);
    case 4: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang4]);
    case 5: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang5]);
    case 6: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang6]);
    case 7: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang7]);
    case 8: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang8]);
    case 9: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang9]);
    case 10: format(name, sizeof(name), FraktionInfo[SpielerInfo[playerid][pFraktion]][fRang10]);
    default: format(name, sizeof(name), "-None-");
    }
    return name;
    }