Inventar in eigenem Room ?

  • GM 8

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

  • Inventar in eigenem Room ?

    Joa hallo ich schätze mal aus eigener sucherfahrung das Inventare wohl immernoch eine große sache sind die angefragt werdn
    Nun ich bin auf der suche nach einer Lösung für meines :)

    vorneweg erstmal ich hatte vor nen Inventar für nen kleines abenteuerspiel (kein rpg mit massig items) eher so bissle im "Zelda" Stil wie aufm Snes zu erstellen hatte mir dann gedacht nachdem ich etliche raster inventare durchgesehen hab das kann doch ned alles gewesn sein.
    denn irgendwie hab ich 1. kaum ahnung von reinen scripts zumindest nicht ohne gute erklährung und zum anderen will ich für mein Spiel ein Futuristischeres Inventar haben.

    Ich dachte mir also wenn ich einen Raum baue mit nem guten Aussehen dort dann die Objekte einfüge fürs inventar als buttons mit global variablen die sich durch anklicken verändern inklusive sprites ect ect sollte das funktionieren soweit so gut jetzt hab ich nur ein großes Problem denn sobald ich per Taste in den "Inventar" Raum wechsle hab ich keine ahnung wie ich wieder raus komme an genau den punkt bei dem ich es geöffnet habe ^^ nebenbei wird wohl auch die zeit nich angehalten was evtl auch noch gut währe.

    Ich dachte erst über eine Lösung mit speichern nach dummerweise währe allerdings der raum bei neustart wieder auf anfang bei speichern meiner posi währen die änderungen im Inventar nich gemacht (unzureichende scriptkenntnisse erlauben mir keine speicherung der position ohne speicherung der ganzen variablen die ich dann im inventar ändere ._.) und joa hat einer ne Lösung für mein problem oder gar ne bessere idee als die meine ? ^^

    anbei mal nen kleines Bild vom grundgerüst



    joa dasmit dem speichern im inventar is auch noch son 2. punkt wo ich nich direkt weis wie machn hoffe jemand is hier inventar experte ^^



    So ich leg mal ne kleine Übersicht an zusammengefasst:


    Im Parent Player - Taste zum Menüaufrufen



    global.deinevariable=room
    room_goto(deinmenüraumname)


    Und im Menüraum dann per Taste oder bei mir als Zurück-Knopf Objekt



    room_goto(global.deinevariable)

    soweit und man kommt in den Menüraum und zurück zum raum wo man war allerdings wird er bis jetzt
    noch neugestartet vom letzten eintrittspunkt.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Nevoras ()

  • ok das is doch schonmal was aber wie komm ich nun vom Menüraum wieder in den zurück kann ja schlecht 1 raum zurückspringen da das in der liste nen volkommen anderer währe. gibts nich irgendwas wo man sich vom derzeitigen standpunkt in nen anderen raum (menü) teleportierne kann und dann direkt dort wo man wegkam wieder hinkommt und die einstellungen gespeichert sind. ne art backteleport oder so in den raum wo man das menü aufgerufen hat.

    Aba danke für den tipp

    Damit sind dann auch eingesammelte sachn zb auf dauer weg in der gesamten spielzeit ? ^^
  • Nevoras schrieb:

    ok das is doch schonmal was aber wie komm ich nun vom Menüraum wieder in den zurück kann ja schlecht 1 raum zurückspringen da das in der liste nen volkommen anderer währe. gibts nich irgendwas wo man sich vom derzeitigen standpunkt in nen anderen raum (menü) teleportierne kann und dann direkt dort wo man wegkam wieder hinkommt und die einstellungen gespeichert sind. ne art backteleport oder so in den raum wo man das menü aufgerufen hat.

    Aba danke für den tipp

    Damit sind dann auch eingesammelte sachn zb auf dauer weg in der gesamten spielzeit ? ^^


    Lass einfach den aktuellen Room, bevor du ins Inventar wechselst, in ne globale Variable packen, dann kannsu die ja wieder einfach abrufen wen du zurück willst.
    mfg Dath
  • Lass einfach den aktuellen Room, bevor du ins Inventar wechselst, in ne globale Variable packen, dann kannsu die ja wieder einfach abrufen wen du zurück willst.
    mfg Dath

    öh... wie genau ? o.o

    werdn dann die andern einstellungen gespeichert sprich ich stell ja die globalen variablen für items zb um im inventar zb


    Zu ->

    room_goto(room_last)

    Nein das geht nicht da der letzte raum in der Liste nicht der raum ist in dem ich war. da der menüraum am ende bzw anfang zb steht und ich grade mitten drinne bin komm ich ein raum vor dem menüraum raus dann

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

  • Nevoras schrieb:

    öh... wie genau ? o.o

    werdn dann die andern einstellungen gespeichert sprich ich stell ja die globalen variablen für items zb um im inventar zb

    Nein das geht nicht da der letzte raum in der Liste nicht der raum ist in dem ich war. da der menüraum am ende bzw anfang zb steht und ich grade mitten drinne bin komm ich ein raum vor dem menüraum raus dann

    Globale Variablen bleiben nachdem du sie erstellt hast überall verfügbar

    Machs so wie ichs dir gesagt habe, mit der Variable bevor du ins Inventar wechselst.

    @Chris987:
    Falsch.


    mfg Death
  • Ok was muss ich dann genau machen

    zb Enter ->

    leg diese Variable an (wie scripttechnisch) hab da son D&D ding darum frag ich
    geh ich zum Menüraum

    und dann stell ich zeug um (verändere die variablen)
    klicke zurück und lade die Variable ? (wie scripttechnisch)

    Haben sich die im Menü veränderten Variablen nich auch in der Globalen dann gespeichert und setzen sich zurück oder wie is das genau ?
  • Nevoras schrieb:

    Ok was muss ich dann genau machen

    zb Enter ->

    leg diese Variable an (wie scripttechnisch) hab da son D&D ding darum frag ich
    geh ich zum Menüraum

    und dann stell ich zeug um (verändere die variablen)
    klicke zurück und lade die Variable ? (wie scripttechnisch)

    Haben sich die im Menü veränderten Variablen nich auch in der Globalen dann gespeichert und setzen sich zurück oder wie is das genau ?


    Drück Enter:

    GML-Quellcode

    1. global.letzterraum=raumname
    2. room_goto(room_menu)


    Und im Inventar Room dan grad:

    GML-Quellcode

    1. room_goto(global.letzterraum)



    Ne globale Variable bleibt immer so, bis du sie änderst, egal ob du den Room änderst, oder was meinst du?

    nfg Death

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

  • ahh das is ja mal nice jetzt kapier ich das Das heißt man könnte damit auch alles andere auf den stand von der variable zurücksetzen einzeln ... zb Leben zeit ect

    hab immer gedacht das is eine einzige variable die dann nur für was bestimmtes benutzt werden kann sone globale variable zb nur für nen item oder so und sonst für nix ^^

    ahm joa vielen Dank fürs erklähren und ahm ja sry wenn ich zuviele umstände gemacht hab ^^

    danke danke danke gleich ma testn

    -> Hm irgendwas scheint da ned ganz zu klappen ich bekomm immer nen error bei Enter nun hab schon bissl was ausprobiert aber sagt immer die Variable sei unbekannt o.o

    Wahrscheinlich is das so idiotisch einfach und ich mach mich grad nur lächerlich aber ich habs ma genau so eingegeben ohne zu versuchn was eigenes hinzuschreiben (ausnahme Inventarraum)

    ___________________________________________
    ERROR in
    action number 1
    of Keyboard Event for <Enter> Key
    for object parent_player:

    Error in code at line 1:
    global.letzterraum=raumname
    ^
    at position 20: Unknown variable raumname


    was muss ich tun ? x_X

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Nevoras ()

  • Ja das wars xD !! thx

    ok nächstes problem ^^

    Nun klapts mit Inventar raum und zurückkommen aaaber ich steh nich da wo ich stand sondern raum startet neu (ich will nicht bei jedem raum dieses peresist oder so machn deswegen...) gibs da auch noch ne sache die standort sowie raumzustand oder so gespeichert hat wo ich da per knopf auf zurück auch aufrufen muss dafür ?

    Und wenn ja welche ^^ ? *g* hachja maraton

    Von Deathscythearan

    Musst raumname mit dem Namens deines Rooms austauschen,
    Bist du z.b. in room ..."level2_1" dann wäre die variable "global.letzterraum=level2_1"
    ahm ne das währe ja dumm da ich zum Menüraum per Enter komm und wenn ich da den raum eintragen muss in dem ich bin müsste ich ja immer den raumnamen ändern wenn ich nen raum wechsle ^^

    is ja kein teleport sondern soll nen Menü/Inventar sein das ich jederzeit von überall öffne nicht nur von einem bestimmten raum

    aba mit nur room statt raumname hats ja jetzt zumindest bis zum raum neustart geklappt bzw war das wohl der platzhalter für den derzeit aktiven raum ? ka na ma weiterguckn wegem nächsten prob :)
  • Nevoras schrieb:

    Ja das wars xD !! thx

    ok nächstes problem ^^

    Nun klapts mit Inventar raum und zurückkommen aaaber ich steh nich da wo ich stand sondern raum startet neu (ich will nicht bei jedem raum dieses peresist oder so machn deswegen...) gibs da auch noch ne sache die standort sowie raumzustand oder so gespeichert hat wo ich da per knopf auf zurück auch aufrufen muss dafür ?

    Und wenn ja welche ^^ ? *g* hachja maraton

    Von Deathscythearan

    Musst raumname mit dem Namens deines Rooms austauschen,
    Bist du z.b. in room ..."level2_1" dann wäre die variable "global.letzterraum=level2_1"
    ahm ne das währe ja dumm da ich zum Menüraum per Enter komm und wenn ich da den raum eintragen muss in dem ich bin müsste ich ja immer den raumnamen ändern wenn ich nen raum wechsle ^^

    is ja kein teleport sondern soll nen Menü/Inventar sein das ich jederzeit von überall öffne nicht nur von einem bestimmten raum

    aba mit nur room statt raumname hats ja jetzt zumindest bis zum raum neustart geklappt bzw war das wohl der platzhalter für den derzeit aktiven raum ? ka na ma weiterguckn wegem nächsten prob :)


    Was wär daran dumm? Drückst enter gehste in den Menü raum, und wennu dort enter drückst gehsu wieder zum raum zurück der inner variable gespeichert ist~

    In das Objekt Für den Wechsel zum Menüraum machsu einfach so..:

    GML-Quellcode

    1. If room=level1
    2. {
    3. global.letzterraum=level1
    4. }
    5. If room=level2
    6. {
    7. global.letzterraum=level2
    8. }
  • ja aber ich muss doch in die variable da nich dieses

    global.letzterraum=level2_1 schreiben ? weil dann währe es ja nur auf den raum bezogen oder nicht ? ^^

    ich gehe hofentlich richtig in der annahme das wenn man

    global.letzterraum=room schreibt dieses room dann den derzeitigen raum angiebt zb wenn ich jetzt in level2_1 bin dieses wenn ich dann aber in level2_2 bin dieses usw ...

    oder gehe ich falsch aus wenn nicht war bei mir nur dieses raumname vs room falsch bzw ging nich in diesem sinne währs oki


    If room=level1
    {
    global.letzterraum=level1
    }
    If room=level2
    {
    global.letzterraum=level2
    }

    und da soll ich dann alle Räume so eintragen ??? das wird doch extrem lang o.o
  • Nevoras schrieb:

    ja aber ich muss doch in die variable da nich dieses

    global.letzterraum=level2_1 schreiben ? weil dann währe es ja nur auf den raum bezogen oder nicht ? ^^

    ich gehe hofentlich richtig in der annahme das wenn man

    global.letzterraum=room schreibt dieses room dann den derzeitigen raum angiebt zb wenn ich jetzt in level2_1 bin dieses wenn ich dann aber in level2_2 bin dieses usw ...

    oder gehe ich falsch aus wenn nicht war bei mir nur dieses raumname vs room falsch bzw ging nich in diesem sinne währs oki


    If room=level1
    {
    global.letzterraum=level1
    }
    If room=level2
    {
    global.letzterraum=level2
    }

    und da soll ich dann alle Räume so eintragen ??? das wird doch extrem lang o.o

    Hm.. mit

    GML-Quellcode

    1. global.letzterraum=[color=#ff0000]room[/color]

    Sollte es auch klappen... ka grade, ich habs zum überblick immer gemacht wie ichs geschrieben habe..warum testest du es nich mal aus bevor du frägst? :)
  • weil ich weis wenn ich auf meine derzeitige art weitermache das da locker 1000+ räume rauskommen ^^ und die heißen alle ziemlich uneinfach alla L1_A3_zu_B1 zb ich wollte ne offene welt ansich nur mit dieser Zelda scrolltechnik der map war ich total unzufrieden
    sich bewegende objekte kamen über die grenzen raus und kaich konnte keine größeren areale frei scrollbar machn dadurch ohne aufwand
    nun hab ich jeden raum wie ne Zelle gestaltet und jeh nachdem von wievielen richtungen man kommen kann verändert sich die zelle leicht und auch der startpunkt der figur. Zudem sind Zeitveränderungen mit bei wo zb beim einenmal nen kleines Wäldchen steht im andern mal lauter abgeholzte Bäume und en neues Haus zb das macht das ned grad einfach alles ^^ und alle Maps wieder in ne Liste eintragen *oh graus* xD

    (ich bleib ma bei dem room) fehlt ne kleine einfache lösung für dieses neustarten des raumes das dadurch noch ist. Gibt doch sicher auch was dagegen :)

    If room=level1
    {
    global.letzterraum=level1
    }
    If room=level2
    {
    global.letzterraum=level2
    }
    So hab das auch ma getestet is genau der selbe effekt beim drückn auf zurück sprich zurück zum gespeicherten raum startet dieser neu
    welche möglichkeiten hab ich da nun noch das zu unterbinden und zeitlich positionstechnisch wieder dort zu sein wo ichs Menü aufgerufen habe ? Derzeit kann man voll cheaten ._. alla Item einsammeln -> Menü drückn -> Zurück -> Item wieder einsammeln weils wieder da is ^^ Ich betone nochma das Peresistent für nen raum mag ich nicht machn da die meisten nur teilweise sich verändern sollen.

    SOOOO

    Ich hab dummerweise immernoch das Problem das der Raum neu Startet und hab kp was ich dagegen noch tun kann. Ich währ echt sehr dankbar wenn hier noch jemand drannbleiben könnte :/

    Momentan läd mein Zurückknopf folgendes (was zuvor beim drücken um in den Inventarraum gespeichert wird)

    GML-Quellcode

    1. room_goto(global.letzterraum)


    meine Frage ist was muss ich da noch alles reinmachn das ich wie oben schon gesagt zum zeitpunkt gegnerpositionen ect wo ich Enter drück um das Inventar aufzurufen wieder auftauche per zurück knopf ._. ?

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