Archiv verlassen und diese Seite im Standarddesign anzeigen : Auf Angriffs-Taste auch wirklich nur angreifen lassen
Norpoleon
14.11.2015, 11:51
Ich habe ein Action-KS gebastelt & möchte nun, dass auf der Angriffstaste ( bei mir die NUM-Tasten ) auch wirklich nur angegriffen wird.
Also ich möchte nicht, dass der Held beim Angreifen immer an Texten oder anderen Aktionen "hängenbleibt".
Wie mache ich das?
Kannst du das Problem noch einmal anders formulieren? Ich habe keine Ahnung, was du mit deinem zweiten Satz meinen könntest. Es soll auch angegriffen werden können, während eine Textbox offen ist?
Norpoleon
14.11.2015, 12:41
@Cepanks: Nein, ich meine: wenn man die Angriffs-Taste betätigt, sollen keine "Standard-Aktionen", wie das Aufrufen von Textboxen oder das Einsammeln von Items, ausgeführt werden; es soll bei Druck auf die Angriffs-Taste nur ein Angriff erfolgen, nichts sonst.
Linksawakening
17.11.2015, 15:52
Wenn du die NUM Taste dafür definiert hast, sollten eigentlich keine anderen Aktionen stattfinden, da die ja auf der Enter Taste liegen ...
Ein Ausschnitt aus dem Code wäre hier denke ich hilfreich ...
Der 2K3 kann NUM eigentlich gar nicht abfragen oder machst du das per Patch? Ich würde die Angriffstaste auf eine Taste legen, die nicht vom System benutzt wird.
Norpoleon
17.11.2015, 16:24
@Linksawakening:
@> Key Input Processing: [0003], Wait
@> Play SE: 'sword1', 100, 100, 50
@> Wait: 0.0 seconds
@> Wait: 0.0 seconds
@> Wait: 0.0 seconds
@> Control Variables: [0004] = Player's X Coordinate
@> Control Variables: [0005] = Player's Y Coordinate
@> Control Variables: [0007] = Player's Screen X
@> Control Variables: [0008] = Player's Screen Y
@Kelven: Ich verwende keine Tastenpatches. Man kann die NUM-Tasten einfach bei "Key Input Processing" auswählen.
Du meinst die Zahlen von 0 - 9. Auf manchen der Zahlen vom NUM-Feld liegen Systemfunktionen. Du müsstest dann eine nehmen, auf der keine liegt. Das Problem mit dem NUM-Feld ist nur, dass es das z. B. auf manchen Laptops nicht gibt.
Norpoleon
17.11.2015, 16:44
@Kelven: Hm, das habe ich nicht bedacht. \:
Welche Tasten sind denn garantiert auf so einem Keyboard, außer ESC & Enter?
Wenn du keinen Patch verwenden willst, bleibt dann nur noch Shift.
Norpoleon
17.11.2015, 17:27
@Cepanks: & Shift ist Mist, weil nach jedem fünften Druck auf Shift immer diese nervige Einrastmeldung kommt. \:
Die Einrastmeldung kann man irgendwo in den Systemeinstellungen deaktivieren. Und ich meine ab Windows 8 oder 7 gibt es die Standardmäßig nicht mehr. Keine Ahnung ob man die wieder aktivieren kann, auf jeden Fall kann ich bei meinem Win 10 Tausendmal auf die Shift-Taste drücken ohne das was kommt. Und auch bei Win 8 ging das ohne Probleme. Einige Makerspiele machen ja intensiven Gebrauch von der Shift-Taste, daher hatte ich damals nach einer Lösung dafür gesucht (und halt durch die Systemeinstellungen gefunden) und habe mich gefreut, als es das Problem bei den neueren Betriebssystemen nicht mehr gab.
Norpoleon
18.11.2015, 07:46
@eddy: Also, bei mir kommt die Meldung für das Einrasten der Shift-Taste & ich habe Windows 8.
Naja, ich hoffe nur, dass meine Spieler die ausschalten, wenn ich den Attack jetzt auf Shift lege...
Mal abgesehen von der aufploppenden Einrastfunktion bin ich generell kein Fan der Shift-Taste für häufige Aktionen (rennen, angreifen etc.). Sie liegt einfach zu ungünstig, gemessen an den gebräuchlichen Steuerungsschemata (WASD oder SYXC). Ich muss mir dazu immer den kleinen Finger verrenken, um die Taste zu erreichen, dabei benutze ich idR vor allem Zeige-, Mittel- und Ringfinger.
Auf dem Maker ist das gebräuchlichste Steuerschema aber doch, zumindest für Rechtshänder, die Cursortasten.
MagicMaker
18.11.2015, 11:43
Mal abgesehen von der aufploppenden Einrastfunktion bin ich generell kein Fan der Shift-Taste für häufige Aktionen (rennen, angreifen etc.). Sie liegt einfach zu ungünstig, gemessen an den gebräuchlichen Steuerungsschemata (WASD oder SYXC). Ich muss mir dazu immer den kleinen Finger verrenken, um die Taste zu erreichen, dabei benutze ich idR vor allem Zeige-, Mittel- und Ringfinger.
Wozu gibt's sonst eine Shift-Taste auf zwei Seiten? Die Richtungstastenhand muss die doch nicht auch noch bedienen.
zumindest für Rechtshänder, die Cursortasten.
Nö, ich benutz die auch. Erstens sind sie dafür da, zweitens gibt's auf jeder normalen Tastatur keinen anderen Block,
auf dem man nicht auf andere Tasten als diese 4 Richtungen verrutschen kann und vorallem nichts anderes darunter
die Finger behindert. Jedes Spiel, das mir was anderes direkt zwangsweise aufdrücken will, hat gleich verloren.
Norpoleon
18.11.2015, 12:03
Mal von der vielleicht etwas ungünstigen Lage von Shift abgesehen, löst das Belegen von Shift als Angriffstaste nicht mein Problem.
Auch bei Druck auf Shift werden weiterhin Standardaktionen ( das Aufrufen von Textboxen, das Aktivieren von Events ) ausgeführt.
Das ist ein großes Problem, weil so auch Pages von Events aufgerufen werden, die eigentlich vom Verlauf des Spiels her passé geworden sind.
Sephigruen
18.11.2015, 12:15
Weil ich mit rechts die Cursortasten benutze, lege ich solche Aktionen immer auf 1-0 (also die Ziffernzeile), weil meine linke Hand da eh unterwegs ist.
Auch bei Druck auf Shift werden weiterhin Standardaktionen ( das Aufrufen von Textboxen, das Aktivieren von Events ) ausgeführt.
Das sollte aber wirklich nicht passieren. Ich denke, der Fehler könnte damit zu tun haben, dass du die "Conditional Branch" vergessen hast. Der Code muss so aussehen:
Key Input Processing: Variable x
Conditional Branch: Variable x == 7 (7 ist die ID für Shift)
Angreifen
Das Problem mit der Shift-Taste kann ich nicht ganz nachvollziehen. Bei Maker-Spielen braucht man in der Regel die Leertaste und eine der Tasten ab x und rechts davon (funktionieren immer alle, weiß grad nicht bis welcher Taste). Wenn ich dann den Daumen auf die Leertaste und den Zeigefinger auf c hab liegt der kleine Finger schon ganz natürlich und automatisch auf der Shift-Taste. Ich muss da nichts verrenken, den Finger einfach nur da lassen, wo er eh schon ist. Und auch wenn die Steuerung auf w a s d liegt, komm ich ganz gut an die Shift-Taste mit dem kleinen Finger ran. ehrlich gesatg fand ich die Belegung immer recht praktisch.
Und warum die Einrastwarnung bei dir unter Win 8 noch aufploppt versteh ich grad nicht. War mir relativ sicher, dass es die da nicht mehr gibt. Vielleicht hat das ein Programm de- oder aktiviert? Oder ich irre mich grad^^
Zumindest kann ich dir Einwandfrei bestätigen, das es bei Win 10 keine Probleme damit mehr gibt. Gerade getestet :A
Norpoleon
18.11.2015, 15:06
@Kelven: Auch die Conditional Branch brachte keine Lösung des Problems. Du meinst das doch so:
@> Key Input Processing: [0003], Wait
@> Conditional Branch: Variable [0003] == 7
@> Play SE: 'sword1', 100, 100, 50
@> Show Animation: Player, [Sword A]
@> Wait: 0.0 seconds
@> Wait: 0.0 seconds
@> Wait: 0.0 seconds
@> Control Variables: [0004] = Player's X Coordinate
@> Control Variables: [0005] = Player's Y Coordinate
@> Control Variables: [0007] = Player's Screen X
@> Control Variables: [0008] = Player's Screen Y
[...]
Oder?
Ja, das ist eigentlich richtig. Ist das Event mit dem Code ein Parallel Process?
Norpoleon
18.11.2015, 16:16
@Kelven: Yo, ist es.
Im weiteren Code dieses Common Events folgen eigentlich nur die relativen Koordinaten für die Hitboxen.
Ich kann mir nicht erklären, warum der Maker bei dir gleichzeitig so tut, als ob Enter gedrückt wurde. Das ist also echt so, wenn du z. B. neben einem NPC stehst, dass bei einem Druck auf Shift auch der NPC angesprochen wird?
Norpoleon
18.11.2015, 16:58
Ja, genau, du hast es erfasst.
Das Skurrile ist, dass die NPCs ( z.B. ) selbst dann angesprochen werden, wenn die NPCs durch Switches eigentlich gar nicht mehr da sein sollten.
Habe ich irgendwas verstellt, sodass das Programm denkt, jede Taste wäre Enter?
Das geht ohne Patches ja eigentlich nicht. Aber wenn sogar die NPCs noch ansprechbar sind, obwohl sie per Switch abgeschaltet wurden (Sie sind denn noch sichtbar? Steht auf der Seite mit dem Switch noch der Code?), dann klingt das eher nach einem seltsamen Bug des Makers.
Norpoleon
19.11.2015, 16:21
@Kelven: Nein, die NPCs sind nicht mehr sichtbar & der Code für das Aufrufen der Textboxen oder andere Handlungen fehlt auch auf der eigentlich aktiven Page der betreffenden Events. Ich habe übrigens die RM 2k3 Version 1.11.
Egal welche Taste ich belege für das Angreifen, immer werden diese Textboxen aufgerufen.
elvissteinjr
19.11.2015, 19:19
Klingt stark nach etwas, was du uns bei [...] vorenthalten hast. Du machst nicht zufällig ein Call Event basierend auf den Angriffskoordinaten?
Ansonsten, Projekt oder isoliertes Testcase her. Vom Ratespiel wird hier wohl keiner so schnell schlau.
Die Tastenzuweisungen lassen sich übrigens relativ einfach ändern. Könnte ich dir auch machen wenn du das so brauchst.
Wozu gibt's sonst eine Shift-Taste auf zwei Seiten? Die Richtungstastenhand muss die doch nicht auch noch bedienen.
Zumindest bei meiner Tastatur komm ich an die rechte Shift-Taste sogar noch schlechter ran, da sich diese direkt über den zur Bewegung genutzten Pfeiltasten befindet (Pfeiltasten vom Nummernblock verwende ich nicht, da die 8 und die 2 zuweit auseinanderliegen. Die Shift-Taste wäre in dieser Position mit dem Daumen ebenfalls nur sehr unbequem erreichbar). Die rechte Hand ist idR schon meine Bewegungshand, die linke dann für Aktionen, die, wie gesagt, auch gerne auf WASD liegen.
Ein Beispiel dafür, wo mir dies auch negativ aufgefallen ist, wäre jüngst "Yukiko" von Vreeky.
Wenn ich dann den Daumen auf die Leertaste und den Zeigefinger auf c hab liegt der kleine Finger schon ganz natürlich und automatisch auf der Shift-Taste. Ich muss da nichts verrenken, den Finger einfach nur da lassen, wo er eh schon ist. Und auch wenn die Steuerung auf w a s d liegt, komm ich ganz gut an die Shift-Taste mit dem kleinen Finger ran.
Liegt bei dir zwischen "Y" und Shift keine "<>"-Taste? Bei mir schon, sodass ich den kleinen Finger je nach Schema nach (unten) links abspreizen muss. Nicht bequem...
Norpoleon
19.11.2015, 23:42
Hier ist ein kleiner Engine-Test: Datei von filehorst.de laden (http://filehorst.de/d/bEzCpbJe)
Liegt bei dir zwischen "Y" und Shift keine "<>"-Taste? Bei mir schon, sodass ich den kleinen Finger je nach Schema nach (unten) links abspreizen muss. Nicht bequem...
Doch schon, aber gerade dadurch liegt meine Hand ganz bequem und kommt überall ran. Ohne die Taste wären meine Finger ziemlich gedrängt, und ich habe nicht unbedingt eine große Hand. Vielleicht liegt's auch einfach an den verschiedenen Tastaturlayouts. Ich habe ein 11,6" großes Ultrabook, da ist die Tastatur mein ich etwas kleiner als Standard. Kann wohl daran liegen.
Aber auch dann könnte ich die x-Taste anstelle der c-Taste nehmen und hätte wieder einen kleineren Abstand. An die Leertaste komm ich trotzdem gut dran.
Und wenn ich wasd nutze wäre die Position der [<>| ]-Taste eher problematisch, die Shift-Taste liegt für mich perfekt.
Das is ja gut, wenn dir die Shifttaste taugt, aber ändert halt nichts daran, dass es Ark X nicht so geht :hehe: Ich finde Shift als Angriffstaste übrigens auch bescheuert, nach ner Weile wird das echt unbequem
Hier ist ein kleiner Engine-Test: Datei von filehorst.de laden (http://filehorst.de/d/bEzCpbJe)
Danke, das erklärt doch alles.
Die Ursache des Problems ist eigentlich ganz banal und genau, was elvissteinjr vorhergesagt hat: Bei einem Druck auf die Angriffstaste callt das Common Event "Key Input Club" das Event direkt vor dem Spieler.
Das Spiel hat aber keine Ahnung, ob das gecallete Event ein Monster ist oder nicht, es wird einfach stumpf bei jedem Event dessen erste Seite ausgeführt. (na ja, nicht bei jedem, mehr dazu im übernächsten Absatz) Wenn das Event ein Schild mit Text ist, wird eben der Text angezeigt, wenn das Event eine Tür mit Teleport ist, wird der Held teleportiert, etc. Das gilt natürlich auch für Events, die durch einen aktivierten Switch "gelöscht" sind, denn sie sind ja trotzdem noch auf der Map und Call Event schert sich nicht um Eventseiten-Bedingungen.
Darf man fragen, wer das KS geschrieben hat? Nach einem Blick auf das Beispielprojekt klingt das alles wie ein typischer Fall von "Code übernommen, ohne ihn zu verstehen". :)
Das System scheint für dein Problem nämlich schon eine Lösung mitzubringen. Im Event "Map Ref" wird die Variable 25 auf 3 gesetzt. Erst dachte ich mangels Variablennamen, das sei die Anzahl der Monster auf der Map, der eigentliche Sinn ist aber ein anderer: Der Call-Befehl in "Key Input Club" wird nur ausgeführt, wenn die ID des abgefragten Events >= dem Wert von Variable 25 ist.
Monster sollten also als allerletztes auf die Map gepackt und Variable 25 dann auf die kleinste Monster-Event-ID gesetzt werden.
Beheben lässt sich der Fehler also ganz einfach, du wirst aber nicht umhinkommen, die Events auf deinen bisherigen Maps noch einmal neu nach diesen Regeln zu sortieren. Ein anderer, aber wohl ähnlich zeitaufwändiger, Fix wäre, allen Nicht-Monster-Events eine leere erste Seite zu geben.
Norpoleon
20.11.2015, 10:25
@Cepanks: Klar darfst du fragen. (:
Das Script stammt von Kazesui. Die Hälfte versteh ich, die andere Hälfte eben nicht. (:
Ich muss nun also die Monster-Events ihrer ID nach sortieren? In "Knocka Dora" gibt es jeweils immer nur ein Monster pro Map. Können also alle Gegner die gleiche ID haben?
Entschuldigung, dass ich so blöd frage, aber ich will in Zukunft halt was anständiges abliefern. (:
Öffne mal irgend ein Event und schau dir die Titelleiste an, da sollte dann "ID: 0009" oder so stehen, das meine ich. Es kann auf einer Map immer nur ein Event eine bestimmte ID haben. Jedes Mal, wenn du ein neues Event auf einer Map erstellst, erhöht der Maker diese ID automatisch, bzw. er nimmt die nächste die frei ist (z. B. du erstellst drei Events, EV0001, EV0002, EV0003, löschst dann EV0002, erstellst dann zwei neue Events, die hätten dann die IDs 0002 und 0004).
Wenn du nur einen Gegner pro Map hast, sollte es ganz einfach sein. Kopier einfach dein Gegner-Event (das Event auf der Map, nicht den Inhalt) und lösch das Original. Das neue Event sollte jetzt die höchste ID haben, falls nicht, kopier die Kopie ein paar Mal. ;)
Die ID von diesem finalen Gegner-Event verwendest du jetzt für Variable 25.
Edit: Wenn du dir sicher bist, dass es wirklich auf jeder Map nur ein Monster geben wird, könntest du natürlich auch die Abfrage so ändern, dass geprüft wird, ob die ID des aufgerufenen Event genau dem Wert X entspricht. Dann würdest du dir das Setzen der Variable auf jeder Map sparen, müsstest aber aufpassen, dass Gegner-Events auch tatsächlich immer eine identische ID haben. 0001 würde sich in dem Fall anbieten.
Norpoleon
20.11.2015, 15:31
@Cepanks: Also, auf meiner Engine-Testmap krieg ich es zum laufen.
Aber ich habe Probleme damit, es in mein Game zu integrieren.
So wie ich die Sache sehe, wird ein Event gehitet, das eine ID höher als Variable 25 hat oder gleich der ID von dem Wert, der in Variable 25 steht, ist. Warum werden Events gecallt auf einer Map, wo ich in der Map ref die Variable 25 auf 616 gesetzt habe? Das wollte ich eigentlich auf allen Maps machen, auf denen kein Gegner ist.
EDIT: Ich brauche doch das Event "Map ref" auf jeder Map, oder?
Norpoleon
21.11.2015, 14:14
So, ich habe es jetzt hinbekommen. Eine Map ref pro Game. (:
Danke für die Hilfe übrigens. (:
Allerdings war das 'ne ziemliche Frickelarbeit die Events auf die Maximum-ID zu bekommen; mir graust es schon davor, das Script in ein anderes Projekt als "Knocka Dora", das ja sehr wenig Gegner-Events hat, zu intergrieren. & da es nur eine Map ref gibt, muss man das Game zum Testen der Engine immer komplett neustarten.
Nein, mal ehrlich, so stelle ich mir die Hölle vor. \:
Gibt es noch eine andere Möglichkeit, die ID eines Events zu beeinflussen, außer sie tausendmal zu kopieren?
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.