Hallo zusammen.
Ich habe mir für ein Spiel 2 Scripte aus dem Netz gezogen, da ich mich selber fast gar nicht mit Ruby auskenne. Für den VX.Ace
Script 1 dient dem Fangen von Monstern: http://www.rpgmakervxace.net/topic/3905-monster-hunter/
Script 2 erstellt eine eigenständige Datenbank, mit eben den gefangenen Monstern. http://www.rpgmakervxace.net/topic/3...stom-database/
Nun weiß ich leider nicht, wie ich auf genau diese Monster zugreifen soll. Ihre ID könnte ich noch erraten am Anfang aber mit der Zeit ist das weder praktisch noch realistisch.
Da das erste Script auch noch einen schönen Fehler hat, dass mein Fangenzauber gerne mal daueraktiv ist, quillt meine Heldengruppe schnell über und ich weiß nicht wie ich die loswerden soll! Ok eine nützliche Idee um die überzähligen Monster zu verwalten habe ich, nur kann ich die nicht umsetzen, wenn ich es nicht schaffe auf sie zuzugreifen.
Also lautet meine Frage, gibt es einen Befehl in Ruby, mit dem ich nach einen Namen eines Gruppenmitgliedes, z.B. "Ratte" suchen kann, ohne dessen ID zu kennen?
Wenn das im Maker möglich ist, bin ich schon einen großen Schritt weiter.
Ich kann ja auch nicht einfach sagen, dass ein Switch angeht, wenn so jemand in meiner Gruppe ist, da ich nicht weiß ob sich so jemand in meiner Gruppe befindet vor dem Start des Spiels.
Danke, danke sehr hilfreich ^^
Gibt es auch eine Möglichkeit zu überprüfen, ob sich der Char an Platz 1 - 4 befindet?
Weil ich will z.B. nicht alle meine Ratten auf einmal aus meiner Gruppe werfen
Müsste ja was mit if....... else.... sein.
Kann man if/ else eigentlich in Ruby verschachteln Oo? Ich denke mal ja und hoffe es inständig XD
Ok... das Ergebnis ist interessant das dabei heraus kommt.
Also folgendes passiert mir bei diesem Code:
1. Nur wenn eine Ratte auf Position 2 in der Gruppe steht (id1) wird jemand aus der Gruppe entfernt und zwar der, der an Position 1 (id0) steht.
2. Wenn jetzt eine Ratte nun id 2 oder 3 hat, bekomme ich den Gegenstand da, aber keiner wird aus der Gruppe geworfen.
Ich finde das sehr interessant und sehr seltsam. Oo
Habe ich einen falschen Befehl genutzt um jemanden aus der Gruppe zu werfen? Weil ich denke nicht, dass der Fehler weiter oben liegt.
Achtun!! Der Befehl remove_actor entfernt nur den Helden mit der ID, nicht nach position. da musste eben wie ich oben geschriebn haben machen, oder aber noch die Actor ID mit weiter geben, denn zurzeit würdest du folgendes machen:
sagen wir mal die ID des Helden mit dem Namen Ratte ist 7. Du überprüfst nun den Namen in der Party und guckst durch. Du stößt auf den Namen und überprüfst auf welcher Position er ist. Gut, er ist in der Gruppe auf Position Nr. 2 zB. jetzt machst du $game_party.remove_actor(position). position hat den Wert 2. Es entfernt im Endeffekt den Helden mit der ID 2. Um das zu machen was du willst, könntest du zB. folgendes machen:
wenn du das so in das Call-Script Feld eingibst, werden einige Sachen so verrutscht, dass der Maker die Zusammenhänge gar nicht kennt.
so dürfte es auf jedenfall klappen. Wenn du mitm Call Script arbeitest und dir Befehle zu lang werden für eine Zeile. Schau dass du diese immer bei ner offenen Klammer oder nem Beistrich umbrechen kannst. Dadurch weiß der Maker, dass da noch was kommen wird und liest die nächste Zeile solange mit, bis die Klammer zu ist.
Habe noch etwas vergessen: Du musst noch prüfen ob der Actor überhaupt in der Party ist. Andernfalls würde find_index nil zurückgeben und der Vergleich nil <= 3 schlägt fehl.
Du kannst den Code auch direkt in die Game_Party Klasse packen. Dann hast du kein so langes Call-Script mehr:
Danke für den Hinweis, ist mir noch gar nicht aufgefallen Oo
Ich bleibe bei der ersten Version, die macht mir den Umgang mit den Gegenständen bei meinen momentanen Wissensstand noch leichter ^^
Klar, ich könnte sicher die id des items mit übergeben aber... ich mag die Lösung so wie sie gerade ist ^^