Skin wechselt nicht

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,


    ich habe Probleme mit meinem SkinChange, denn es wird nur der aller erste Skin gesetzt und dann nur ein anderer, d.h. der Skin wechselt nur beim ersten klick auf weiter oder zurück. Ich bin am verzweifeln, was es sein könnte. Hier sit der Code vom 'Weiter' knopf:
    if(clickedid == S_Weiter){
    SelectedSkin[playerid]++;
    if(PlayerInfo[playerid][pMember] == 0){
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    }
    } else if(PlayerInfo[playerid][pMember] == 1){
    if(SelectedSkin[playerid] > 4){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = SAPDSkins[SelectedSkin[playerid]];
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    }
    } else {
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    }
    }
    }


    Die Skins sind einfach oben gespeichert:
    new SAPDSkins[] = {280, 281, 282, 283, 284};


    Was mache ich falsch? Ich bitte um eure Hilfe.


    Mit freundlichen Grüßen
    Adrian Rodriguez

    Einmal editiert, zuletzt von ChaoZz__ ()

  • Du änderst den Skin pet SetPlayerSkin an der falschen Stelle.


    if(PlayerInfo[playerid][pMember] == 0){
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    }

    Die Abfrage mit > 6 ist bestimmt dazu gut, um wieder bei 0 mit dem Zählen anzufangen sobald man am Ende der Skins angekommen ist. Du änderst aber den Skin innerhalb dieser Abfrage, würde also heißen, erst wenn man 6 7x den "nächsten/weiter" Skin genommen hat, wird wieder der Skin mit Index 0 von ZiviSkins_mann gewählt.
    Du solltest die Änderung des Skins mit SetPlayerSkin nicht in der if( > 6 ) Bedingung machen, sondern danach.
    if(PlayerInfo[playerid][pMember] == 0){
    if(SelectedSkin[playerid] > 6){
    SelectedSkin[playerid] = 0;
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    }
    SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]); // <--
    }
    Denn du willst ja bei jedem "Weiter" den Skin wechseln und nicht nur, wenn du am Ende bis am Anfang angekommen bist.


    //Edit:
    PlayerInfo[playerid][pSkin] = ZiviSkins_mann[SelectedSkin[playerid]];
    Das kannst du wahrscheinlich auch aus der if( > 6 ) Bedingung raus ziehen und vor SetPlayerSkin einfügen.