Skinauswahl ändern

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 :).


    Ich habe eine Frage, und zwar möchte ich gerne das wenn ein Spieler z.B. in eine Gang eingeladen wird in der Skinauswahl landet, dann aber nurnoch die zur Gang zugehörigen Skins auswählen kann. Könnte mir jemand sagen wie man das macht? :huh:

  • wenn du mit dini arbeitest



    enum spieler_daten//oder wie du das halt definiert hast
    {
    skin,
    }
    public OnPlayerSpawn(playerid)
    {


    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    SetPlayerSkin(playerid, //skinid));
    {


    }
    if(Spieler[playerid][team] == 1) //team polizei
    {
    SetPlayerPos(playerid, 199.4538,168.0576,1003.0234 );
    SetPlayerInterior(playerid, 3);
    }


    sollte funken
    du kannst dir gerne mal mein tut "fraktion scripten non gf" anschauen
    [ SCRIPTING ] Fraktionen Scripten NoN-Gf

  • Ich glaub du hast mich nicht ganz verstanden :D.


    Was ich möchte ist, das wenn der Spieler die Einladung in eine Gang akzeptiert, in der Skinauswahl landet und sich einen Skin raussuchen kann der ihm gefällt.

  • Also nochmal :D.
    Der springende Punkt ist, das in der Skinauswahl nur die Skins sein sollen die ich der Gang zuordne, in die der Spieler eingeladen worden ist ;). (Gang: Ballas = SKIN1, SKIN2 usw...; Gang: Grove = SKIN3, SKIN4 usw...)
    Wie mache ich das?

  • Mal paar Tipps :
    SetPlayerPos
    SetPlayerCameraPos
    SetPlayerCameraLookAt
    Eine Variable in der du speicherst bei welchem Skin er in der Auswahl ist
    OnPlayerKeyStateChange
    if(newkeys == Taste)
    http://wiki.sa-mp.com/wiki/GetPlayerKeys
    if(Variable == 1)
    SetPlayerSkin(Skin1...)
    Variable++;
    else if(Variable == 2)
    SetPlayerSkin(Skin2...)
    Variable++;
    else if(Variable == 3)
    SetPlayerSkin(Skin3...)
    Variable = 1;

  • Hallo,


    hast du Godfather. (Die Frage war ernst gemeint da die meisten es immer falch posten)
    wenn ja unter OnPlayerText ist nen Abschnitt mit der Skinwahl.
    Da einfach bei der jeweiligen Fraktion SetPlayerSkin(playerid, Skinid); drunter schreiben.
    ansonsten sollte so gehen.


    RottenApple seine Idee benutzen obwohl das auch viel zu viel Code ist das geht einfacher.
    Variabel setzen.
    Wenn er bei der Skin Wahl nach Links blättert -1 rechnen und bei -1 ist die Variable auf (Die Zahl wieviele Fraktion Skins es gibt) setzen. Und bei Rechts +1 setzen sollte er hier 1 mehr als wieviele Skins es gibt setzen die Variable wieder auf 0 setzen. Am besten mit

    if(Variable > sizeof(Die SKins die in einer Variable definiert sind))Variable = 0;


    MFG RFT

    RFT

  • Ok danke für die Ideenansätze, ich probier mal ein bisschen rum :).
    Und nein ich habe kein Godfather ;).


    PS:


    Zitat

    if(Variable == 1)
    SetPlayerSkin(Skin1...)
    Variable++;
    else if(Variable == 2)

    Geht das ganze nicht auch ohne zichtrilliarden if-Bedingungen?


    //Edit


    Danke RFT, ich probiers gleich mal

    2 Mal editiert, zuletzt von Kisuke ()

  • Wo ichs gerade so probieren wollte merke ich das mir das fast überhaupt nichts geholfen hat :D.
    Kann mir das jemand etwas besser erkären?


    Und nochmal zum verständnis, wird ein Spieler ins LSPD eingeladen soll er in eine Skinauswahl kommen in er NUR zwischen verschiedenen LSPD-Skins wechseln kann.


    Bis jetzt bin ich hier:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(Skinauswahl[playerid]==1) // Definition das der Spieler in der Auswahl landet
    {
    if(newkeys==KEY_LEFT)
    {
    if(AusgewaehlterSkin[playerid]<0) // << Ist die Variabel, die ich erstellen sollte
    {
    AusgewaehlterSkin[playerid]=2;
    }
    else
    {
    AusgewaehlterSkin[playerid]--;
    }
    }
    else if(newkeys==KEY_RIGHT)
    {
    if(AusgewaehlterSkin[playerid]>sizeof(AusgewaehlterSkin))AusgewaehlterSkin[playerid]=0;
    else
    {
    AusgewaehlterSkin[playerid]++;
    }
    }
    }
    return 1;
    }


    Wie mache ich nun weiter? ;(

    Einmal editiert, zuletzt von Kisuke ()