kann meine skins nicht durchschalten

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
  • ich habe folgendes problem:


    ich habe mir eine eigenes skinauswahl gebaut


    nur wechselt er den skin nicht wenn ich ich die taste dazu drücke:



    public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
    {
    new Account[128];
    format(Account,sizeof(Account),"/Accounts/%s.ini",SpielerName(playerid));
    INI_Open(Account);
    if (newkeys == KEY_RIGHT)
    {
    if (INI_ReadInt("Gang") == 1)
    {
    if (GetPlayerSkin(playerid) == 105)
    {
    SetPlayerSkin(playerid,106);
    }
    if (GetPlayerSkin(playerid) == 106)
    {
    SetPlayerSkin(playerid,107);
    }
    if (GetPlayerSkin(playerid) == 107)
    {
    SetPlayerSkin(playerid,105);
    }
    }
    }
    if (newkeys == KEY_JUMP)
    {
    if (GetPVarInt(playerid,"Skinauswahl") == 1)
    {
    TogglePlayerControllable(playerid,1);
    SetCameraBehindPlayer(playerid);
    }
    }
    INI_Close();
    return 1;
    }

  • nö der skin bleibt immer gleich


    EDIT: so sieht jetzt mein script aus aber der skin wechselt nicht weiter: (ich habe ja den skin davor auf 105 gesetzt damit das auch geht:

    public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
    {
    new Account[128];
    format(Account,sizeof(Account),"/Accounts/%s.ini",SpielerName(playerid));
    INI_Open(Account);
    if (newkeys == KEY_FIRE)
    {
    if (GetPVarInt(playerid,"Skinauswahl") == 1)
    {
    if (INI_ReadInt("Gang") == 1)
    {
    if (GetPlayerSkin(playerid) == 105)
    {
    SetPlayerSkin(playerid,106);
    }
    if (GetPlayerSkin(playerid) == 106)
    {
    SetPlayerSkin(playerid,107);
    }
    if (GetPlayerSkin(playerid) == 107)
    {
    SetPlayerSkin(playerid,105);
    }
    }
    }
    }
    if (newkeys == KEY_YES)
    {
    if (GetPVarInt(playerid,"Skinauswahl") == 1)
    {
    TogglePlayerControllable(playerid,1);
    SetCameraBehindPlayer(playerid);
    SetPVarInt(playerid,"Skinauswahl",0);
    }
    }
    INI_Close();
    return 1;
    }

    Einmal editiert, zuletzt von rocco95 ()

  • ich habe es auch mal mit der linken maustaste probiert der spieler dreht zwar dann den kopf in richtung camera aber der skin wechselt nicht.


    also ich hab ma ne test message mit dort eingegeben wenn es den skin ändern soll. die message wird ausgegeben aber der skin bleibt..

    Einmal editiert, zuletzt von rocco95 ()

  • Deine Skin-Abfragen stehen sich hierbei selbst im Weg.


    Angenommen der Spieler hat den Skin 105, dann trifft die erste Abfrage zu und der Spieler bekommt Skin 106.
    Dann wird geprüft, ob er Skin 106 hat. Stimmt wieder und er bekommt deshalb Skin 107.
    Dann wird erneut geprüft und zwar, ob er Skin 107 hat. Auch das stimmt und er ist wieder am Anfang bei Skin 105.


    Daher sollte man hier Gebrauch von 'else' machen. Alternativ könnte man die Funktion auch einfach
    vorzeitig mit 'return' verlassen, wenn danach nichts mehr ausgeführt werden soll.


    if (GetPlayerSkin(playerid) == 105) // "erste Bedingung"
    {
    SetPlayerSkin(playerid,106);
    }
    else if (GetPlayerSkin(playerid) == 106) // wird nur geprüft, wenn die erste Bedingung nicht zutrifft
    {
    SetPlayerSkin(playerid,107);
    }
    else if (GetPlayerSkin(playerid) == 107) // wird nur geprüft, wenn die beiden vorherigen Bedingungen nicht zutreffen.
    {
    SetPlayerSkin(playerid,105);
    }

  • Bitte, bitte schreibt diese Skins in ein Array.
    Das wird sonst ein schier endloser Code-Salat.
    Denn ich nehme an, dass du nicht nur eine einzige Gang einfügen möchtest.
    Du hättest so nur einmal ein kleines Stück Code.
    Auch das ändern von Skins, solltest du das mal im Nachhinein vorhaben, würde sich mit ein paar Clicks bewerkstelligen lassen ;)



    Hinweis: Keinen Kontakt über TeamViewer oder Skype !
    Grüßt den Fehlerklärbär von mir.
    Coming soon: Pawn-Café ( Concept-Sharing | Scripting-First-Aid )