Problem mit Variablen (Integer)

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
  • Hallo Community,
    habe ein kleines Problem.
    Zum Testen habe ich folgendes in meinem Filterscript erstellt, was aber komischerweise nicht funktioniert:
    Die zwei Enums:
    enum SBLimits1
    {
    Mats,Drogen,Deagle,M4,MP5,Shotgun,Rifle,
    }
    new SBLimits[25][11][SBLimits1];
    enum SBErreicht1
    {
    Mats,Drogen,Deagle,M4,MP5,Shotgun,Rifle,
    }
    new SBErreicht[MAX_PLAYERS][SBErreicht1];
    public OnPlayerConnect(playerid)
    {
    PlayerInfo[playerid][pLeader] = 24;
    GangID[playerid] = 24;
    PlayerInfo[playerid][pRank] = 11;
    SBErreicht[playerid][Mats] = 3;
    SBLimits[GangID[playerid]][PlayerInfo[playerid][pRank]][Mats] = 10;
    return 1;
    }
    if(strcmp(cmdtext, "/limit") == 0)
    {
    new sblimit[50];
    format(sblimit,sizeof(sblimit),"Mats: %i von %i",SBErreicht[playerid][Mats],SBLimits[GangID[playerid]][PlayerInfo[playerid][pRank]][Mats]);
    SendClientMessage(playerid, 0xDEEE20FF , sblimit);
    return 1;
    }
    Müsste doch eigentlich alles funktionieren...
    Ich hoffe jemand von euch findet den Fehler!

  • enum SBLimits1
    {
    Mats,
    Drogen,
    Deagle,
    M4,
    MP5,
    Shotgun,
    Rifle
    };
    new SBLimits[25][11][SBLimits1];
    enum SBErreicht1
    {
    Mats,
    Drogen,
    Deagle,
    M4,
    MP5,
    Shotgun,
    Rifle
    };
    new SBErreicht[MAX_PLAYERS][SBErreicht1];

  • Geht leider trotzem nicht!
    LimitL[playerid] = strval(inputtext);
    new SBLE[70];
    format(SBLE, sizeof(SBLE), "%s - %s - Rank %i - Limit: %i/24h", Gangname[GangID[playerid]], ItemSBL[playerid], RankL[playerid], LimitL[playerid]);
    SendClientMessage(playerid, 0xDEEE20FF , SBLE);
    SBLimits[GangID[playerid]][RankL[playerid]][ItemSBL[playerid]] = LimitL[playerid];
    DAS Zeigt er richtig an:
    LS.Vagos - Mats - Rank 11 - Limit: 10/24h


    Aber das Problem ist, dass er das nicht setzt -.-
    Hab irgendwie gelesen, dass es Probleme mit Enums gibt, wo man sowas wie "ItemSBL[playerid]" reinpackt!
    Wie soll das sonst gehen?
    Ich will nicht, dass dieser lange Arbeitsaufwand vernichtet wird ...


    Edit:
    Hier nochwas:
    new ItemSBL[MAX_PLAYERS][20];
    Die Zeile:
    SBLimits[GangID[playerid]][RankL[playerid]][ItemSBL[playerid]] = LimitL[playerid];
    Dieser Error:
    error 033: array must be indexed (variable "ItemSBL")
    Ist ein String!


    Langsam reicht es mir mit dem Müll -.-
    LimitL[playerid] = strval(inputtext);
    new SBLE[70];
    format(SBLE, sizeof(SBLE), "%s - %s - Rank %i - Limit: %i/24h", Gangname[GangID[playerid]], ItemSBL[playerid], RankL[playerid], LimitL[playerid]);
    SendClientMessage(playerid, 0xDEEE20FF , SBLE);
    new sbitem[20];
    format(sbitem, sizeof(sbitem), "%s", ItemSBL[playerid]);
    if(!strcmp(sbitem, "Mats", true, 4)){
    SBLimits[GangID[playerid]][RankL[playerid]][Mats] = LimitL[playerid];
    SendClientMessage(playerid, 0xDEEE20FF , "TEST");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, 0xDEEE20FF , "klappt nicht!");
    new SBLUE[70];
    format(SBLUE, sizeof(SBLUE), "Savebox - %s - Optionen - %s", Gangname[GangID[playerid]], ItemSBL[playerid]);
    ShowPlayerDialog(playerid, SBD40, DIALOG_STYLE_INPUT, SBLUE, "Für welchen Rank soll ein Limit gesetzt werden?", "Weiter", "Abbrechen");
    return 1;
    }
    Das letzte was der macht ist das SendClientMessage in der 4. Zeile!
    Das strcmp und das else ist verschwunden, nichts passiert danach -.-

    2 Mal editiert, zuletzt von Kevin1 ()