Kleine Frage für einen Kleidungsladen

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
  • Hi ihr Pro-Scripter der Breadfish Community,
    ich arbeite gerade an einer neuen Art von einem Kleidungsladen. Dabei benutze ich Sachen wie diese:

    if(Kleidungsslot1[playerid] == 0)

    Da es aber mehrere Kleidungsstücke gibt, wollte ich fragen ob zum Beispiel so etwas geht:

    if(Kleidungsslot1[playerid] == 148)

    Also 148 ist jetzt eine zufällig gewählte Skin-ID. Geht so etwas mit den oben genannten Klauseln? Oder muss ich das anders machen.
    z.B. so:

    if(Kleidungsslot1[playerid] == 1 && Skin1[playerid] == 1 && Skin2[playerid] == 0)

    Zum letzten, ich hab am Ende in etwa 36 Skins. Dann wären die Zeilen schon extrem lang.
    Wäre nett, wenn ihr mir helfen könnt.
    MfG
    Raphii

    Scripter aus Leidenschaft!
    Tod dem Godfather, lasst Selfmade-Scripts freie Möglichkeiten!

  • Der Spieler kann 2 Kleidungsstücke mit zur Umkleide nehmen.
    Wenn er ein Kleidungsstück nimmt wird Kleidungsslot1 auf true gesetzt und er kann nur noch auf Kleidungsslot2 was setzen.
    Wenn beide voll sind, kann er kein Kleidungsstück mehr aufnehmen.
    Also so ist es immoment.


    //EDIT: Ich sollte meine Tippgeschwindigkeit drosseln und vor dem Absenden noch mal durchlesen...

    Scripter aus Leidenschaft!
    Tod dem Godfather, lasst Selfmade-Scripts freie Möglichkeiten!

    Einmal editiert, zuletzt von Raphii_Warren ()

  • Klar geht das.Bisschen umständlich dann aber versuchs mal so:


    if(Kleidungsslot1[playerid] > -1)
    {


    //bla
    }
    else return SendClientMessage(playerid, FARBE_WEISS, "Du hast bereits ein Kleidungsstück, bitte nutze deine andere Hand für das andere Kleidungsstück"); // mir fiel nix anderes ein xD


    und eben wenn er ein Kleidungsstück ausgewählt hat, kleidungsslot1 auf -1 setzen.


    Falls du noch mehr "Anreize" brauchst sag es einfach^^

  • Danke für die Hilfe, aber das hab ich doch schon definiert :D
    Ich wollte wissen ob ich nach Kleidungsslot1[playerid] außer true oder false auch andere Werte einsetzen kann. In meinem Fall zum Beispiel die Skin-Id oder ob ich eine ewige if-Klammer machen muss mit if(Kleidungsslot1[playerid] == 1 && Skin1[playerid] == 1 && Skin2[playerid] == 0 && ...)
    Weißt du dazu was?

    Scripter aus Leidenschaft!
    Tod dem Godfather, lasst Selfmade-Scripts freie Möglichkeiten!

  • Da ich es so(new KleidungsSlot1[MAX_PLAYERS]) ; definiert habe, kann ich es machen. Hab es gerade getestet. Im Script ohne Errors aber ob es geht, dass muss ich jetzt mal schauen.


    P.S.:Ich mach mal auf "Erledigt". Wenn ich hier noch mal was brauche mach ich es halt wieder auf ;)


    //EDIT: Ok im Script geht es zum Teil :D
    Das

    if(response == 0)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du hast das Kleidungsstück zurückgelegt!");
    }
    if(response == 1)
    {
    if(KleidungsSlot1[playerid] == 0)
    {
    KleidungsSlot1[playerid] = 147;
    SendClientMessage(playerid,0xFF44FF44,"Du hast das Kleidungsstück mitgenommen!");
    }
    else if(KleidungsSlot1[playerid] > -1 && KleidungsSlot2[playerid] == 0)
    {
    KleidungsSlot2[playerid] = 147;
    SendClientMessage(playerid,0xFF44FF44,"Du hast das Kleidungsstück mitgenommen!");
    }
    else if(KleidungsSlot1[playerid] > -1 && KleidungsSlot2[playerid] > -1)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du hast bereits zwei Kleidungsstück mitgenommen!");
    }

    geht. Und ab hier

    else if(KleidungsSlot1[playerid] == 147)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du hast dieses Kleidungsstück doch schon mitgenommen!");
    SendClientMessage(playerid,0xFF44FF44,"Zwei mal das gleiche nehmen ist doch doof!");
    }
    else if(KleidungsSlot2[playerid] == 147)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du hast dieses Kleidungsstück doch schon mitgenommen!");
    SendClientMessage(playerid,0xFF44FF44,"Zwei mal das gleiche nehmen ist doch doof!");
    }
    else
    {
    }
    }

    geht es nicht mehr.
    Also es wird noch angezeigt, dass man schon 2 Kleidungsstücke dabei hat, aber das mit dem 2 mal nehmen funktioniert nicht mehr.
    Jemand ne Idee?
    Ich schau morgen früh mal ob einer ne Idee hatte.


    //EDIT²:
    Und das

    if(dialogid == KleidungAnprobe)
    {
    if(response == 0)
    {
    return 1;
    }
    if(response == 1)
    {
    return 1;
    }
    if(listitem == 0)
    {
    if(KleidungsSlot1[playerid] == 0)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du hast im ersten Slot kein Outfit dabei.");

    }
    else if(KleidungsSlot1[playerid] == 147)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du probierst nun das erste mitgenommenes Outfit");
    SetPlayerSkin(playerid, 147);
    }
    else if(KleidungsSlot1[playerid] == 113)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du probierst nun das erste mitgenommenes Outfit");
    SetPlayerSkin(playerid, 113);
    }
    else if(KleidungsSlot1[playerid] == 59)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du probierst nun das erste mitgenommenes Outfit");
    SetPlayerSkin(playerid, 59);
    }
    return 1;
    }
    if(listitem == 1)
    {
    SendClientMessage(playerid,0xFF44FF44,"Du probierst nun dein zweites mitgenommenes Outfit");
    return 1;
    }
    }

    geht gar nicht :(
    Ich blick es net :P

    Scripter aus Leidenschaft!
    Tod dem Godfather, lasst Selfmade-Scripts freie Möglichkeiten!

    Einmal editiert, zuletzt von Raphii_Warren ()