array must be indexed

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
  • Hi,
    hab gerade einen aussetzer, will einfach nicht klick machen. :D
    Folgendes:
    stock GetPlayerFactionRank(playerid)
    {
    new FraktionVonUser = Spieler[playerid][Fraktion],
    RankVonUser = Spieler[playerid][FraktionRank],
    String[100];
    format(String, sizeof(String), "Rank%d", RankVonUser);
    return FFeatures[FraktionVonUser][String];//Zeile
    }


    Woran liegts? :x

  • Aha, ich verstehe,versuch mal diesen Code.Gibt er den richtigen Rangnamen in der Log aus?

    stock GetPlayerFactionRank(playerid)
    {
    new FraktionVonUser = Spieler[playerid][Fraktion],
    RankVonUser = Spieler[playerid][FraktionRank],
    String[15];
    format(String, sizeof(String), "Rank%d", RankVonUser);
    printf("DEBUG: %s",FFeatures[FraktionVonUser][String]);
    return 1;
    }

  • enum Faction {
    Rank1,
    Rank2,
    Rank3,
    Rank4,
    Rank5,
    Rank6,
    Rank7,
    Rank8
    };
    new FFeatures[MAX_FACTIONS][Faction];
    //Und dann ongamemodeinit


    format(FFeatures[spawns][Rank1], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank1", "FraktionsID", str4));
    format(FFeatures[spawns][Rank2], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank2", "FraktionsID", str4));
    format(FFeatures[spawns][Rank3], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank3", "FraktionsID", str4));
    format(FFeatures[spawns][Rank4], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank4", "FraktionsID", str4));
    format(FFeatures[spawns][Rank5], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank5", "FraktionsID", str4));
    format(FFeatures[spawns][Rank6], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank6", "FraktionsID", str4));
    format(FFeatures[spawns][Rank7], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank7", "FraktionsID", str4));
    format(FFeatures[spawns][Rank8], MAX_RANK_LENGH, mysql_GetString("Fraktionsraenge", "Rank8", "FraktionsID", str4));

    Das zum schluss ginge mit einer schleife einfacher, weiß ich, wills aber so. :PÜ

  • Ah ok, das mit dem enum stimmt, Fehler von mir.
    Das mit dem Format & Array geht, schon mal getestet gehabt.
    Error bleibt bestehen. :X


    Code oben mal aktualisiert, Error bleibt dennoch ...

    Einmal editiert, zuletzt von TutNichts () aus folgendem Grund: Code aktualisiert

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ich hab viel rumprobiert, bin aber auf keine nennenswerte Lösung gestoßen.
    Du könntest vllt ein 3 Dimensionales Array Bilden.
    In der Datenbank müsstest du den Namen der Spalten nicht ändern.

    //Als Beispiel:
    new FF[10][7][30];


    FF[1][0] = "Rang 1";
    FF[1][1] = "Rang 2";
    //etc.

  • Wieso überhaupt sind in dem FFeature enum die Ränge als Integer definiert?
    Laut MySQL sollte es ja auch nicht sein.
    Ich würde es so machen.
    stock ReturnRank(Faction,Rank)
    {
    new _s[128];
    switch(rank)
    {
    case 1:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang1]);
    case 2:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang2]);
    case 3:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang3]);
    case 4:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang4]);
    case 5:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang5]);
    case 6:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang6]);
    case 7:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang7]);
    case 8:format(_s,sizeof(_s),"%s",FFeatures[Faction][Rang8]);
    }
    return _s;
    }

  • stock GetPlayerFactionRank(Fraktioon, Raank)
    {
    new str[128],
    str2[128];
    format(str2, sizeof(str2), "Rank%d", Raank);
    format(str, sizeof(str), "%s", FFeatures[Fraktioon][Raank]);
    return str;
    }


    Das sollte es doch auch tun, oder? :D
    Krieg nur ein Tagmistache in der 6. Zeile ... :x


    #EDIT: Code geht nicht wirklich, nur so halb, aber so gesehen nicht, nein. ^^

    Einmal editiert, zuletzt von TutNichts ()