PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Helden-Bewegung blocken ohne Autostart?



Beril
23.10.2007, 12:19
Hi zusammen,

ich brauche für mein AKS die Möglichkeit ohne ein Autostart-Event das Bewegen des Helden einzuschränken.
Während nämlich der Held schlägt (was über Move Event befehlt mit Change GFX animiert wird) soll er sich logischerweise nicht bewegen können und quasi während er noch schlägt weiterrennen.
Wie kann ich es verhindern, dass also während des Schlages die Pfeiltasten blockiert werden? Benutze ich nämlich Autostart sind während des Schlags auch die Gegner eingefroren und das will ich nicht.

Ich benutze den Keypatch von crash-override (ja, nicht Inelukis), der mir auch die Mäglichkeit "blockkeys" nicht gibt.

hat jemand eine Idee?

Beril

Caine Luveno
23.10.2007, 13:18
Du nimmst dir 4 Events und teleportierst sie per "Set Event Place" um den Helden drum herum. Die Events selber stehen auf "Same Level as Hero" wodurch der Held an ihnen nicht mehr vorbei laufen kann.

Ist soweit ich weiss abseits von AutoStart, und blockieren der Pfeiltasten bzw. basteln einer eigenen Steuerung für den Helden die einzige Möglichkeit.

Aber es ist mir ehrlich gesagt neu das wenn ein MoveEvent Befehl auf den Helden angewendet wird man diesen noch bewegen kann. So ein Problem hab ich jedenfalls bei der Entwicklung meines AKS noch nicht gehabt....

übelster Held
23.10.2007, 13:27
du könntest aber auch per move befehl ein wait a moment auf den helden
anwenden... (also mehrere..^^)

Caine Luveno
23.10.2007, 14:14
du könntest aber auch per move befehl ein wait a moment auf den helden
anwenden... (also mehrere..^^)

Kann er? Wenn er über MoveEvents eine Schlag-Animation durchführt und dann paralell ein weiteres MoveEvent ausführt wird das erste doch unterbrochen. Zumindest meines Wissens nach (DAS hat mir nämlich schon so manches Kopfzerbrechen bereitet <_<°)

wie das bei
<Change Graphic
<wait a moment
<change graphic
<wait a moment
...

aussähen würde wüsst ich allerdings grad nicht x)

Blackduc
23.10.2007, 15:38
Ich würde ganz einfach machen, dass


<Change Graphic>
<Change Graphic>
<Procced with movevent>
<......>
oder so was ähnliches^^ habe grad den maker nicht bei mir
das Procced with movevent bedeutet, das erst wen die oberen Befehle ausgefürht werden, kommen dan die unteren Befehle.
noch mal zu verstehen::D

<Befehl>
<Befehl>
<Nix mehr machen, bist die oberen befehle fertig ausgeführt sind>
(Procced with movevent)
<......>
ich hoffe du hast es verstanden8)

mfg Blackduc

übelster Held
23.10.2007, 15:54
<Change Graphic
<wait a moment
<change graphic
<wait a moment


das würde gehen (meine version nicht^^)
jedoch ist da wieder der nachteil, dass man die länge von
wait a moment nicht bestimmt werden kann, und meiner meinung
nach für flüssige animationen nicht grade geeignet ist...

eine alternative wäre natürlich ein event auf den helden zu teleportieren,
den helden unsichtbar zu machen, den held mit wait a moment zu blocken,
das event über (oder halt same lvl as hero) den helden die animationen ausführen zu lassen, am ende den helden sichtbar machen und das event verschwinden lassen...

Beril
23.10.2007, 18:55
Danke für die Ideen, klappen aber alle nicht.

Mit wait a moment hab ich das Problem, dass die Ani nicht flüßig wird, bei Move all (was ich denke, dass du meinst) kollidiert das mit den Move Befehlen der Gegner.
Es geht wie gesagt darum NUR den Helden unbeweglich zu machen.
Das mit dem Event danstelle des Heros ist ein problem, fall der Held während des Schlags getroffen wird (von den Gegnern) ist also auch keine Variante.
noch irgendwer ne idee?

übelster Held
23.10.2007, 21:54
warum ist das mit den event auf den hero ein problem?
was passiert denn wenn der held getroffen wird?

denn der held ist ja immernoch an der selben stelle wie das event, das die animation ausführt...
wird der held (der zwar unsichtbar, aber immernoch als event vorhanden ist)
angegriffen, brichst du halt die animation des events ab, lässt den held wieder anzeigen und rot aufblinken...
oder was muss bei dir noch beachtet werden?

Beril
24.10.2007, 23:19
Is jetzt zu aufwändig zu erklären. Es werden mehrere Dinge in Bewegung gesetzt, wenn der Held getroffen wird und das würde auch erfordern, dass ich den Code ganz umbaue, da hab ich mittlerweile keinen Bock mehr zu.

Ich nehme also an, dass es nicht geht?

Caine Luveno
25.10.2007, 11:45
Naja, meine Variante mit den blockierenden Events ist noch eine möglichkeit..... anders wird es dann wohl echt nicht gehen ....

(auch wenn ich mich immernoch frage woher das kommt weil sich der Held bei mir nicht bewegt wenn ich n MoveEvent auf in am laufen habe x)

Beril
25.10.2007, 12:37
hast du den 2k3er?
mein Projekt is 2k

Caine Luveno
25.10.2007, 13:16
Ich hab beide Maker zu Hause und bei meiner Freundin rgad nur den 2k3 zur Hand. Ansonsten hät ich mal nen kleinen Testlauf gestartet... denn mein erstes AKS war 2k und mein neues ist 2k3. In beiden Fällen hatte ich das Problem nicht. Aber wie gesagt: kanns grad nicht testen.

Alan
25.10.2007, 13:16
Wir haben hier ein ernst zu nehmendes Problem - es besteht nämlich der weitgehende Irrglaube, das Blocken der Richtungstasten ohne Auto-Start-Event sei ein Kinderspiel. Im Gegenteil, es ist die schwierigste Aufgabe für den AKS-Programmierer, die Steuerung zu unterbinden, wenn sie nicht gebraucht wird. Und das mit den 4 Blockern ist auch nicht das Gelbe vom Ei, weil die Steuerung selbst deshalb immer noch funktioniert.

@Beril: Du hast 4 Möglichkeiten:

1) Du sorgst dafür, dass der Held während des Rennens zuschlagen kann. Das geht besonders gut, wenn man für den Helden ein CharSet verwendet, wo nur die Füße zu sehen sind und eine BA, wo der ganze Rest drauf ist.

2) Du programmierst die Gegner so, dass sie auch während eines Auto-Start-Events "funktionieren". Will heißen: Parallel Process-Events, die die Koordinaten von Held und Gegner speichern und den Gegner entsprechend bewegen. Oder einfach ein PP, das mit "move towards hero" arbeitet ^^

3) Du steigst auf RMXP um, weil man da die Tasten via Ruby aktivieren und deaktivieren kann, wie man es grade braucht.

4) Du wartest, bis Cherry seinen PowerPatch fertig hat, mit dem kann man die Tasten ebenfalls sperren.


Ich hoffe, das hat dir geholfen. Wenn du zu einem Vorschlag nähere Hilfe brauchst, stehe ich natürlich gerne zur Verfügung.


Greetings!



Alan

Caine Luveno
25.10.2007, 13:56
Ist etwas off-topic aber in einem Punkt kann ich Alan nicht zustimmen ;) und zwar das die Tasten zu sperren das schwierigste überhaupt für einen AKS-Ersteller ist.

Das Schwierigste ist in meinen Augen das Timing von den vielen MoveEvent Befehlen da es nicht absehbar ist ob und wann eventuell ein MoveEvent unterbrochen werden könnte.

Die einzige Lösung die ich bisher gefunden habe und die mir auch hier angeboten wurde ist ein Switch welcher dazu dient abzufragen ob derzeit ein MoveEvent läuft oder nicht und ggf. ein MoveEvent auszulassen und später auszuführen wenn das aktuelle beendet ist (also eine Art Kette).

Und das finde ich wesentlich komplizierter und schwieriger als einen Gegner als PP laufen, und darin einen "move towards hero" Befehl unterzubringen. Für eine gute KI funktioniert die Event Einstellung "by its route" sowieso nicht mehr.

Alan
25.10.2007, 19:54
Ist etwas off-topic aber in einem Punkt kann ich Alan nicht zustimmen ;) und zwar das die Tasten zu sperren das schwierigste überhaupt für einen AKS-Ersteller ist.

Das Schwierigste ist in meinen Augen das Timing von den vielen MoveEvent Befehlen da es nicht absehbar ist ob und wann eventuell ein MoveEvent unterbrochen werden könnte.


Genau lesen - ich hab geschrieben "ohne Auto-Starts zu verwenden" ^^ Mit sieht die Sache natürlich anders aus, das ist mir schon klar :)

Und dass man die ganzen Move-Events nur durch Variablen und Switches kontrollieren kann, stimmt ebenfalls. Da muss man dann eben wirklich Prioritäten setzen und zum Beispiel sagen: "Das Zurückgeworfen-Werden durch Gegnertreffer ist wichtiger als das Vorwärtsgehen bei der Angriffs-Combo" oder so. Dann geht das schon ^^


Greetings!


Alan