Unterschiedliches Inventar

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Unterschiedliches Inventar

    Hallo,

    Weil ich von Arrays keine Ahnung hab und mir gedacht habe, dass muss auch anders gehen, habe ich mit für mein Inventar folgendes ausgedacht, das Inventar besteht aus 9 Slots.

    Da das ganze Rundenbasierend ist, lautet mein Script wie folgt:

    Im Step-Event des ersten Slots:

    if (global.player_play=1)

    global.Schwert=false;
    global.Axt=false;
    global.Bogen=false;
    global.Zauber=true;

    if (global.player_play=2)

    global.Schwert=false;
    global.Axt=true;
    global.Bogen=false;
    global.Zauber=false;

    if (global.player_play=3)

    global.Schwert=false;
    global.Axt=false;
    global.Bogen=true;
    global.Zauber=false;

    if (global.player_play=4)

    global.Schwert=true;
    global.Axt=false;
    global.Bogen=false;
    global.Zauber=false;

    if (global.Schwert=true)

    instance_create(x,y,Schwert_Tornister);

    if (global.Axt=true)

    instance_create(x,y,Axt_Tornister);
    ...
    ...
    ...

    Dazu habe ich in das jeweilige Objekt, das erstellt wird noch eine selbstzerstörung eingebaut für den Fall, dass jemand das Objekt nicht in seinem Inventar hat:

    if (global.Schwert=false)

    instance_destroy();

    Das ganze funktioniert mit dem ersten Versuch genau so wie es soll, aber beim zweiten funktioniert es nicht mehr,,, obwohl das erste weiterhin funktioniert... sprich bei diesem Beispiel zeigt er den Zauber an aber die Axt nicht...

    Hat einer von euch eine einfachere, bessere und schnellere Lösung oder kann mir einer sagen, wie ich das hier perfektioniere?

    Für Antworten schon mal danke im Voraus
  • Wenn du das so gemacht hast, wie du es hier geschrieben hast, kann es nicht funktionieren. Der GM führt nur eine Aktion nach einer if-Abfrage aus. Für mehrere Aktionen muss das ganze in geschweifte Klammern gesetzt werden:

    GML-Quellcode

    1. if (global.player_play=1)
    2. {
    3. global.Schwert=false;
    4. global.Axt=false;
    5. global.Bogen=false;
    6. global.Zauber=true;
    7. }
    8. if (global.player_play=2)
    9. {
    10. global.Schwert=false;
    11. global.Axt=true;
    12. global.Bogen=false;
    13. global.Zauber=false;
    14. }
    15. //usw...
    Alles anzeigen
    kostenlose Android-Spiele:
    hexavirScribble Triple

    Mr. Peperonico auf Facebook
  • Mächtig inneffizient.
    Versuch das mal mit Arrays und Schleifen.

    Create event:

    GML-Quellcode

    1. var i;
    2. for(i=0;i<9;i+=1)
    3. {
    4. global.inventar[i]=0;
    5. }
    6. sprite[0]=sprite0;//leeres Inventarfeld sprite
    7. sprite[1]=sprite1;//schwertsprite
    8. sprite[2]=sprite2;//axtsprite
    9. //...


    draw event:

    GML-Quellcode

    1. var i,inventar_x,inventar_y;
    2. inventar_x=0;
    3. inventar_y=0;
    4. for(i=0;i<9;i+=1)
    5. {
    6. draw_sprite(sprite[global.inventar[i]],0,inventar_x+(i mod 3)*32,inventar_y+floor(i/3)*32,);
    7. }


    Wenn du dann zum Beispiel ein Schwert in Inventarslot Nr. 4 stopfen willst, musst du einfach global.inventar[3]=1; setzen.
    3, weil der array von 0 aus anfängt und =1, weil der Schwertsprite der Nummer 1 zugewiesen wurde.
    Bei einer axt wäre das dann =2, bei einem leeren Slot =0 usw.
  • Ich -> :( <- Noob!

    :D Danke nun klappts... och menno, dass ich auch immer an`ner Klammer oder nem "=" scheitern muss ;)

    Fällt dir auch ne gute Lösung dafür ein, dass wenn Slot 1 voll ist er das Objekt in Slot 2 hauen soll?

    So in etwa: if object_exists (in Slot 1) / hau das in Slot 2 ?
    ______________________________________________
    Zu Verwurster... ich weiß das es mit den Arrays zu einfacher ginge... bin nur zu doof das hinzubekommen...

    Könnt da jemand ne Beispiel_Exe zu erstellen? (wenn er Lust hätte und nix besseres zu tun :happy: )

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Jokohono ()

  • Hehe... bin immer noch Noop konnte Problem aber lösen, bzw. verstehen durch das Inventory_Example(V.1.3 Tahnok100).gm6 für ein Inventar mit mehreren Spielern sehe auch "Inventar für 2 oder mehr Spieler".