PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Beschworene Kreaturen im AKS



Darksoel
15.06.2006, 21:10
So, meine Frage ist denke ich leicht zu verstehen, aber schwer zu beantworten^^:
Gibt es einen Weg Beschworene Kreatueren (watweißich, zB. Standart: Skelett)
oder Helfende NPCs klug, bzw. überhaupt irgendwie vernünftig (sodass sie auch eine Hilfe sind) agieren zu lassen?
Ich stehe nämlich vor dem Problem , dass ich super gerne so Zauber wie " Skelett Beschwören, Gholem Beschwören etc. einbauen würde, aber dann bis jetzt nur arg schlechte Ideen zur Steuerung habe.

Habt ihr Ideen wie man dass Proggn könnte, wie man, wenn man hier eine Idee gefunden hat, das möglichst Zeitsparend und allgemein leicht anwendbar zu gestalten?
Auch hier setze ich wie in meinem Tagesablauf-Threat nicht darauf, dass einer schon eine komplette Lösung hat (wenn doch umso besser, soll die anderen aber nicht daran hindern ihre ideen weiter zu posten und zu diskutieren), sondermn dass jeder schreibt, wass er für ideen dafür hat, was er für Möglichkeiten sieht etc, und man sich dann langsam auf ein Ziel zu bewegt.

Leider bin ich übers WE weg, hoffe jedoch dass das hier trotzdem ordentlich ans laufen kommt, da einige Luet denke ich mehr am WE als in der Woche on sind.

Und nun fröhliches Diskutieren^^

EDIT: Es geht mir hier wie im Titel (aber sonst nirgendwo gesagt) um ein AKS.

Daen vom Clan
16.06.2006, 07:45
Hmm...was mir so spontan einfallen würde:
Als Erstes musst du das Skelett und den Golem als Helden anlegen, dabei kannst du dir als Erstes überlegen ob es immer der gleiche Golem sind der beschworen wird und das gleiche Skelett und sie deswegen Erfahrung bekommen sollen oder du machst die Erfahrungslinie (curve of experience) auf 0, dann wird immer nur ein Skelett mit gleichen Werten beschworen.

(Dabei kannst du theoretisch auch den Skill Skelett beschwören I - III einführen und dann jedesmal ein stärkeres Skelett auftauchen lassen, gemessen vielleicht am Level des Helden oder seiner LP zu Beschwörungsbeginn was ich mal im Kampf als sehr taktische Variante ansehen würde)
Du erstellst den Skill "Skelett beschwören" und machst daraus unter Classification einen Switch.
Dann musst du in jeden deiner Kämpfe den Trigger des Switch' in einer Fork einbauen und dann einfach "change party" - mäßig das Skelett als weiterne Helden erscheinen lassen.
Dann musst du noch eine Abfrage einbauen, das neben dem Helden nur maximal drei weitere Kreaturen beschworen werden können und dann hast du das eigentlich :)

Vergiss auch nicht nach Kampfende oder einer bestimmten Rundenzahl die beschworenen kleinen Helfer wieder mit dem changeParty-Befehl abdüsen zu lassen :)

Joa, ivelleicht hilft es dir ja :)

Darksoel
16.06.2006, 07:48
Thema:

Beschworene Kreaturen im AKS

Sorry, scheint wohl net klar gewesen zu sein, ich edite nochmal.

Bei normalem STandart KS oder SKS könnte ichs ja bei VD zB. abgucken, deshalb...
Naja, geht halt um nen AKS

Daen vom Clan
16.06.2006, 08:37
Ach so, du meinst also eine Art simulierter Kampf-KI deiner Helfer bei einem selbstgeschriebenen Kampfsystem?

Darksoel
16.06.2006, 09:35
Ja, ich weiß net wer zB. Oblivion kennt, da is des auch so, da greifen die Helfer eigenständig Charaktere etc. an, und machen andere Sachen.

Obwohl mit die anderen Sachen eig. egal sind, mir wäre halt nur wichtig dass das Skelett, wenn du es Beschwörst net einfach stehen bleibt, sondern zB. den nächsten Gegner angreift oder so.
Irgendwas.

Oder wie Titan Quest die Fernkämpfer....

Daen vom Clan
16.06.2006, 10:10
Okay, ich kenne dein Kampfsystem zwar nicht, aber ich würde es mir gar nicht so schwer machen und jedem Monster - storytechnisch bedingt - gewisse Prioritäten geben, d.h. das Skelett greift meistens an, der Golem heilt meistens und dann würde ich in das AKS eine Abfrage einbauen die nachschaut ob Eines oder Mehrere dieser beschworenen Monster da sind und dann ohne groß Federlesen im Hintergrund einfach einen Randomizer ablaufen lassen der eine der Spezialattacken des beschworenen Monsters auswählt und dementsprechend danach handelt, d.h. alle drei Runden greift dein Golem ein, d.h. alle drei Runden änderst du das Pic oder Charsets deines Golems das man sehen kann das er zaubert/zuhaut und im Hintergrund ziehst du dem Gegner eine random-Menge an LP ab (technisch so als hätte der Held zugehauen) oder gibt der Gruppe ein paar LP, damit es aussieht, als hätte der Golem geheilt.

So kannst du eigentlich ganz entspannt eine KI simulieren.
Habe ich das nun richtig verstanden? Ich kenne die von dir aufgelisteten Spiele alle nicht ;)

Ares-God of War
16.06.2006, 10:57
Also du meinst wie bei Gothic 2 wenn man einen Dämonen oder so beschwört?

Fleräter
16.06.2006, 11:37
Ist eigentlich nicht so schwer.
Du musst jedem Gegner und jeder beschworenen Einheit x- und y- Werte als Variablen in einem parallelen Prozess zuordnen.

Beispiel:

Das alles in ein Paralleles Event:



Variable 1: beschworenes Skellet x
Variable 2: beschworenes Skellet y
Variable 3: Gegner 1 x
Variable 4: Gegner 1 y


Jetzt musst du die x und y Variablen deiner beschworenen Einheit jeweils mit 1 addieren bzw. subtrahieren (als Angriffsreichweite):



Variable 5 [x+1] : Set Variable 1
Variable 5 [x+1] : +1
Variable 6 [x-1] : Set Variable 1
Variable 6 [x-1] : -1
Variable 7 [y+1] : Set Variable 2
Variable 7 [y+1] : +1
Variable 8 [y-1] : Set Variable 2
Variable 8 [y-1] : -1


Jetzt kannst du mit Fork Conditions die beschworene Einheit dazu bringen auf den Gegner zu rennen:



<>FORK Optn: Var1 smaller Var 3
<>Move Event: beschworenes Skellet right
<>FORK Optn: Var 2 smaller Var 4
<>Move Event beschworenes Skellet down
<> end case
<>FORK Optn: Var 2 bigger Var 4
<>Move Event beschworenes Skellet up
<> end case
<>FORK Optn: Var1 bigger Var 3
<>Move Event: beschworenes Skellet left
<>FORK Optn: Var 2 smaller Var 4
<>Move Event beschworenes Skellet down
<> end case
<>FORK Optn: Var 2 bigger Var 4
<>Move Event beschworenes Skellet up
<> end case



Jetzt ein neues paralleles Event erstellen, das bewrikt, dass das Sklelett angreift, wenn es den Gegner berührt:



<>FORK Optn: Var 2 same Var 5
<>Change variable 9 [zufall] : set random 1-10 ( so schlägt entweder das
Skellet oder der Gegner)
<>FORK Optn Var 9 smaller 5
<> Skellet schlägt auf Gegner (Battle Animation auf Gegner und HP-Variable
von Gegner verändern)
<> end case
<>FORK Optn Var 9 above 5
<> Gegner schlägt auf Skellet (Battle Animation auf Skellet und HP-Variable
von Skellet verändern)
<> end case
<>FORK Optn: Var 2 same Var 6
<>Change variable 9 [zufall] : set random 1-10 ( so schlägt entweder das
Skellet oder der Gegner)
<>FORK Optn Var 9 smaller 5
<> Skellet schlägt auf Gegner (Battle Animation auf Gegner und HP-Variable
von Gegner verändern)
<> end case
<>FORK Optn Var 9 above 5
<> Gegner schlägt auf Skellet (Battle Animation auf Skellet und HP-Variable
von Skellet verändern)
<> end case
<>FORK Optn: Var 3 same Var 6
<>Change variable 9 [zufall] : set random 1-10 ( so schlägt entweder das
Skellet oder der Gegner)
<>FORK Optn Var 9 smaller 5
<> Skellet schlägt auf Gegner (Battle Animation auf Gegner und HP-Variable
von Gegner verändern)
<> end case
<>FORK Optn Var 9 above 5
<> Gegner schlägt auf Skellet (Battle Animation auf Skellet und HP-Variable
von Skellet verändern)
<> end case
<>FORK Optn: Var 3 same Var 7
<>Change variable 9 [zufall] : set random 1-10 ( so schlägt entweder das
Skellet oder der Gegner)
<>FORK Optn Var 9 smaller 5
<> Skellet schlägt auf Gegner (Battle Animation auf Gegner und HP-Variable
von Gegner verändern)
<> end case
<>FORK Optn Var 9 above 5
<> Gegner schlägt auf Skellet (Battle Animation auf Skellet und HP-Variable
von Skellet verändern)
<> end case


So hats jedenfalls bei meinem Spiel funktioniert, was ich mittlerweile aufgegeben hab. ^^

mid.night
16.06.2006, 16:05
Hey:) ich weiß nicht ob der script den du hier geschrieben hast bekannt ist oder nicht aber ich benutz den selben;) und noch bevor ich deine message gesehen hab wollte ich zu 90% das selbe schreiben^^

Darksoel
19.06.2006, 14:28
nochmal @ daen: AKS, also Action KS, also ganz ohne Runden.

@Fleräter: die Theorie hatte ich auch, nur, sobald man gg mehrere Monster kämpft, funzts netmehr...
Dann kann sich nämnlich leiderleider die Beschworene Kreatur nichtmehr entscheiden.

Also sind wir jedenfalls schonmal soweit, jetzt bestünde halt die Frage darin, wie wählt der Spieler den anzugreifende Gegneraus, bzw. wie wählt die Kreatur selbst den anzugreifenden Gegner aus.

Wie würdet ihr dass machen.

mid.night
19.06.2006, 15:40
Also ich hätte da ne Idee - ist vielleicht komplicated aber es funkt.

Du machst Ein Feld aus variablen. du brauchst hier var(Feld-oben links)X & Y und (feld-unten rechts)X & Y. Die setz du am anfang auf die XY werte deines helfers.
Nun rechnest du nach der Reihe und schnell hintereinander (F-o l)X&Y minus eins, die (F-u r) plus eins.
Dadurch erweitert sich das feld um deinen helfer.

jetzt machst du eine Bedingung.
Sollten sich die XY werte eines deiner gegner in diesem Feld befinden (großer als (F-o l)XY und kl. als (F-u r)) dann wird dieser gegner "aktiviert". Seine Koordinaten kommen dann in das weiter oben beschriebene Script.
Dadurch sollte dein helfer zu diesem gehen.

Einfach beschrieben: Dein Helfer sucht und geht zum nahesten gegner.


Dafür schon ein RMaker Script geschrieben - hab das jetzt aber leider nicht da. Könnte es aber möglicherweiße morgen reinstellen...

Macros
19.06.2006, 18:43
Also ich hab ein AKS mit einem NPC-Helfer.
Ich hab die Sache so gelohst, dass der Helfer erstmahl verteidigt, bis der Held einen Gegner angreift, oder ein Gegner den Helfer.
Diesen Gegner merkt der Helfer sich dann und attakiert ihn so lange bis er stirbt, erst dann sucht er ein neues Opfer.

Das ist eine Alternative, die Methode von mid.night sollte aber auch funktionieren.

mid.night
19.06.2006, 18:50
Also ich muss schon sagen... gratuliere! das ist echt genial gelöst!! Das merk ich mir^^

Edit: kann man sich dein AKS irgendwo anschauen?;)

Darksoel
19.06.2006, 21:57
Ja, danke an alle, als ich gerade in der Orchesterproibe saß, und James Bond Theme gespielt hab (is jetzt eher unwichtig^^) ist mir die idee gekommen, das man evtl, um einen schlauen Helfer darzustellen eine kurze Liste von Varis macht, in denen die IDs der Monster gespeichert sind (in meinem AKS baut eigentlich so gut wie alles auf den IDs auf, ich kann schon fast Copy'n Past der Gegner machen, obwohl die net schlecht sind ;-) ) und zwar in der Reihenfolge, wie sie anzugreifen sind, d.h. du machst beim ersten Monster ID des 1. Gegnerischen Fernkämpfers oder Magiers o.ä. rein, beim zweiten den Heiler, etc., halt so wie sich ein Menschlicher Helfer verhalten würde (oder so ähnlich). Wenn jetzt ein Helfer dazukommt, bspl eine Kreatur beschworen wird, Wird eine Variable "Kreatur Ziel ID" auf den Nächsten noch lebenden Gegner in der Liste gesetzt.

Was sagt ihr dazu?

ansonsten finde ich vor allem Macros Version gut, ich glaube die werde ich mir wenn dass hier net so gut klappt oder doch net sonen guten Effekt hat zu Herzen nehmen, ich hoffe du hast nichts dagegen Macros.

Macros
21.06.2006, 18:50
Zitat von Darksoel
ansonsten finde ich vor allem Macros Version gut, ich glaube die werde ich mir wenn dass hier net so gut klappt oder doch net sonen guten Effekt hat zu Herzen nehmen, ich hoffe du hast nichts dagegen Macros.
Kannst du ruhig einbauen wenn du willst, freut mich wenn ich dir helfen konnte.
Falls du Probleme damit haben solltest, kannst du mir auch ruhig ne PN schicken, oder dich per ICQ melden.
Nur wird das diese und naechste woche schlecht, denn ich bin auf Klassenfahrt in Sloveniern und nur unregelmaesig im Internetcafe (deshalb kann ich auch nicht mit Umlauten schreiben).


Zitat von mid.night
Edit: kann man sich dein AKS irgendwo anschauen?
Hm.. ich plane bald eine KS-demo zu machen, wahrscheinlich in den Sommerfehrien.
Wenn es dir wichtig waehre, koennte ich dir vieleicht auch ne abgespeckte Version schicken, da muesstest du dich da auch noch mahl mit mir in Kontakt setzten, da ich ja 1. wie gesagt nich da bin und 2. das KS auf dem Xp ist (es ist aber trotzdem ohne Ruby, nur um Missverstaendnissen vorzubeugen).