Multi-Dimensionales Array für alle Skins

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 SA-MP Forum.


    Ich würde gerne in meinem Script ein Multi-Dimensionales Array anlegen wo alle Skins für die Fraktionen bspw. reinkommen, damit ich nicht für jede Fraktion + Geschlecht ein neues Array anlegen muss.


    Wenn man jetzt in die Skin-Auswahl kommt, die ich mit TextDraws etc. scripten werde, sollen halt nach der Reihe die Skins von einer bestimmten Fraktion kommen. Das heißt wenn von Grove Street Skin 1 ganz oben ist, GS Skin 2 in der Mitte und GS Skin 3 am Ende, soll trotzdem Skin 1, Skin 2, Skin 3 kommen. Nach der Reihe.


    Kann da jemand helfen? :)


    €dit:
    Ich habe mich nun mal dran versucht, scheitere aber leider trotzdem.
    Ich habe es mit einer Schleife versucht.



    enum data_skins
    {
    sFraktion,
    sSex,
    sSkinID
    }


    new serverSkins[MAX_SERVER_SKINS][data_skins] = {
    {0, 1, 20},
    {0, 2, 90},
    {0, 2, 91},
    {0, 1, 21},
    {0, 1, 22}
    };


    if(strcmp(inputtext, "Maennlich", true) == 0)
    {
    new rand;
    for(new i=0;i<MAX_SERVER_SKINS;i++)
    {
    rand = random(sizeof(serverSkins));
    //if(!(serverSkins[i][sFraktion] == 0 && serverSkins[i][sSex] == 1))continue;
    if(serverSkins[i][sFraktion] == 0 && serverSkins[i][sSex] == 1)break;
    }
    SetPlayerSkinEx(playerid, serverSkins[rand][sSkinID]);
    Spieler[playerid][pTutorial] = 0;
    SpawnPlayerEx(playerid);
    }


    Auch wenn ich das mit "continue" mache, kriege ich manchmal auch einen Frauen Skin.


    Kann mir jemand helfen? :o

    Einmal editiert, zuletzt von PecToRaL ()

  • Das liegt daran das er die schleife durchgeht


    sollte so gehen ist jedoch jetzt keine wirklich schöne lösung es würde erstmal sinn machen die einträge raus zu filtern mit den entsprechenden ids und davon einen zufälligen wert zu ermitteln

    if(strcmp(inputtext, "Maennlich", true) == 0)
    {
    new rand;
    for(;;)
    {
    rand = random(sizeof(serverSkins));
    if(serverSkins[rand ][sFraktion] == 0 && serverSkins[rand ][sSex] == 1)break;
    }
    SetPlayerSkinEx(playerid, serverSkins[rand][sSkinID]);
    Spieler[playerid][pTutorial] = 0;
    SpawnPlayerEx(playerid);
    }