Archiv verlassen und diese Seite im Standarddesign anzeigen : Switch per Tastendruck ändern[2k3]...
Tja...
das gleiche Problem hatte ich schonmal...
nur hab ich den alten Thread nich gefunden...
Ich will per Knopfdruck [Shift] einen Switch verändern...
aber der will nicht:
http://www.npshare.de/files/655bbca0/Untitled%201.jpg
Habs so aufgebaut:
Common Event - Parallel Process
Key input Process Shift in Var "Shift"
If Var "Shift" is 7
Toggle Switch Waffe Ziehen on/off
end if
Ich kapiere nicht was falsch läuft...
könnte mir bitte einer die Korekte Formulierung nennen?
Danke im vorraus^^
Engel der Furcht
10.05.2010, 19:40
ist der Key Input auf "Wait until Key hit"?
ausserdem solltest du noch nachschauen,ob die Variable überhaupt auf 7 springt.
€dit:
Wenns im PP ist,wird der Switch immer und immer wieder On/off getogglet.
Du musst ne art Sperre einfügen oder den Switch nur auf AN und nicht auf ON/OFF Toggle setzen.
ist der Key Input auf "Wait until Key hit"?
ausserdem solltest du noch nachschauen,ob die Variable überhaupt auf 7 springt.
€dit:
Wenns im PP ist,wird der Switch immer und immer wieder On/off getogglet.
Du musst ne art Sperre einfügen oder den Switch nur auf AN und nicht auf ON/OFF Toggle setzen.
Oh stimmt hab garnich dran gedacht, dass die Var dann so bleibt
ja is auf Wait until key (Ich hab gewusst, dass ich irgendwas vergessen hab zu erwähnen) ^^
RPG Hacker
10.05.2010, 19:44
Es ist, nach dem zu urteilen, was ich hier so sehe, genau wie Engel der Furcht sagt. Der Switch wird ca. 60 mal pro Sekunde getoggled. Du müsstest an's Ende noch etwas von der Art machen:
Loop
if Shift not equal 7
then
Break Loop
Wait 0.0
Und GANZ am Ende des PP muss auch nochmal ein Wait 0.0.
Engel der Furcht
10.05.2010, 19:45
mach am besten den Tastendruck in eine "OFF"-Bedingung.
Also
"IF Switch "Waffe gezogen is OFF"
then...
*Code heir rein*
Else
End
Habs ma getestet.
Selbst wenn ich vergessen hätte die Var am ende umzustimmen, müsste der Wert der Variable doch trotz alle dem "7" haben.
Aber, ich habe mal nachgesehen der verändert nichtmal die Var nach dem Knopfdruck "SHIFT"...
Ich kapier nix mehr -_-
EDIT:
Kacke...
Ich glaube ich weiß es nun...
Ein Freund von mir hat mir das KS geschickt...
Ich sollte nur das mit dem WAffenwechseldingens ändern...
das Projekt sollte ich ausserdem in 2k3 umwandeln... son dreck xD...
Wisst ihr wie ich das machen kann, dass das nicht nur ein Konvertiertes Spiel ist sondern ein echtes 2k3 Game?
Engel der Furcht
10.05.2010, 19:54
Neues Projekt > die Exe überschreiben.
Jez benutzt der aber noch das Rm2k RTP...wie kann ich das umstellen?
Ich hab zwar das RTP installiert aber der Maker erkennt das nicht -_-
EDIT:
Ich weiß, dass es sich dort um eine ldb Datei handelt die sowas feststellt...
Aber ersetze ich die ebenfalls, löscht der die Common Eventes usw.
vlt. kann einer von euch obergeilen Profis das so bearbeiten das es funtzt?
Kriegt auch Credit^^
hier die ldb (http://www.npshare.de/files/8e6ea672/RPG_RT.ldb)
RPG Hacker
10.05.2010, 20:32
Am besten wäre dann doch, gleich alles von Hand zu kopieren.
Am besten wäre dann doch, gleich alles von Hand zu kopieren.
schade...
goldenroy
10.05.2010, 20:51
Here~ (http://npshare.de/files/764a5335/Riku11Projekt.rar)
(Musst vielleicht die Grafiknamen ändern, denn ich hab zwar den 2003, benutze aber das 2000'er RTP^^)
So hab alles von Hand kopiert...
Wie ihr bemerkt habt is das ja ein AKS...
Und zwar hat mein Freund mir das einfache AKS geschickt welches auch mal hier downloadbar war... (Das mit LInk und dem Slime)
Ich sollte nur was verändern...
so jetzt habe ich eingebaut, dass der auf Shift die Wafef zieht/wegsteckt...
Und nun wenn ich den Slime abschlachten will, dann klappts nicht...
Der verliert keine HP...
Ich habe nichts verändert ausser bei dem Common Event "Angriff mit Gegner" eine Fork Condition reingesetzt welche auf den Switch "Waffe gezogen" läuft...
aber sonst nichts...
Was habe ich denn jetzt schon wieder falsch gemacht -_-
Ich glaube es macht keinen Sinn einfach nur von Problemen zu erzählen...
seht es euch selbst an:
Download (http://www.npshare.de/files/b54aca2c/Gothic%20die%203%20Goetter.zip)
Bitte stellt keine Fragen über das Projekt...ich weiß selbst nichts darüber xD
Ist seltsam, dass es nicht funktioniert hat, also dass mit der Shift-Taste. In einem PP zur Tastenabfrage braucht man eigentlich weder ein Wait noch andere Konstrukte wie eine Loop. Weil die Tastenabfrage (mit Wait until key pressed) sowieso selber ein Wait ist und so lange wartet, bis der Spieler etwas drückt. Da die Shift-Taste beim Spielen nicht benötigt wird, sollte der Switch auch nicht die ganze Zeit an- und ausgeschaltet werden.
Hab's eben auch nochmal getestet, funktioniert einwandfrei, also nur:
Key Input [Variable] (mit Wait until key pressed)
if [Variable] == 7
Toogle [Switch]
end
hmmmm....tjoa...
keine Ahnung...bei mir klappts nicht...
Also ich kann den Slime eben nicht killen...
Und du konntest das?
EDIT:
Also die Tastenabfrage geht ja jetzt nur eben nicht das killn -_-
Wer mir hilft kriegt nen Creditseintrag^^
Engel der Furcht
11.05.2010, 13:18
Erstmal solltest du selbst nach Fehlern Ausschau halten,anstatt die Leute mitm Creditseintrag zu ködern ;)
Hast du überhaupt eine Trefferabfrage etc. drin?
Bevor dem mit dem Fork ging alles einbahnfrei^^
EDIT:
Hab noch nen Fehler gefunden aber den kann ich leicht wegmachen...
(Der kann die Waffe nicht mehr wegpacken)
Habs gefunden: Dein Code sah so aus:
Key
If Key 7
then
Switch "Waffe" ON/OF Switcher
else
Switch "Waffe" OFF
Das würde heißen, sobald man ne andere Taste als Shift drückt, wird die Waffe weggesteckt.
Engel der Furcht
11.05.2010, 16:42
Ich würde so eine Variante vorschlagen
Key "Shift"
<>If "Shift" is 7
<>If Switch "Waffe gezogen" is OFF
*Code für Waffe Ziehen-Animation etc.*
<><>Swicth "Waffe Gezogen" set ON
<>Else
<><>If Switch 'Waffe gezogen" is ON
*Code für Waffe Wegstecken-Animation etc.*
<><><>Switch "Waffe Gezogen" set OFF
So kannst du eine Animation für das Ziehen und Wegstecken einfügen und evtl. weitere Features de-/aktiveren.
RPG Hacker
11.05.2010, 17:49
Ich hätte es hingegen eher so gemacht:
(Parallel Process)
Check Key Input (Taste: Shift, Variable: Taste) ; Ohne Wait
If Taste = 7
then begin
Toggle ON/OFF Shift_Gedrueckt
Loop
If Taste =|= 7
then Break Loop
Wait 0.0
end
end
Wait 0.0
Der Loop in der Mitte verhindert, dass die Taste nochmal aktiviert wird, solange man sie festhält.
Welche der vorgeschlagenen Varianten du wählst bleibt aber dir überlassen. Funktionieren tun sie alle.
Das wird nicht funktionieren, weil die Variable nur außerhalb der Schleife abgefragt wird.
RPG Hacker
11.05.2010, 21:37
Das wird nicht funktionieren, weil die Variable nur außerhalb der Schleife abgefragt wird.
Scharf beobachtet! Ich bin wohll an meine eigene Programmierweise gewöhnt. Da nimmt man irgendwann bestimmte Dinge als selbstverständlich hin, obwohl sie nur bei einem selbst so sind. Ich korrigiere es mal.
(Parallel Process)
Check Key Input (Taste: Shift, Variable: Taste) ; Ohne Wait
If Taste = 7
then begin
Toggle ON/OFF Shift_Gedrueckt
Loop
Check Key Input (Taste: Shift, Variable: Taste)
If Taste =|= 7
then Break Loop
Wait 0.0
end
end
Wait 0.0
makenshi
14.05.2010, 06:48
Das ist völlig überkompliziert und unnötig.
Das hier reicht vollkommen:
Key Input Proc: [0001:Keycode] ( Wait until Key pressed )
Switch Operation: [0001:Target] ON/OFF Toggle
Hab es eben nochmal probiert, funktioniert tadellos.
Wenn das nicht funktioniert, dann muss es anderen Code geben der da mit reinspielt.
Auf keinen Fall braucht man für sowas ein Wait oder gar eine Schleife.
Beim Key Input muss dann alles andere außer Shift ausgeschaltet sein, versteht sich.
Aber RPG Hacker wollte wohl, dass die Waffe so lange gehalten wird, wie man Shift gedrückt hält. Das ist mMn aber zu umständlich, außerdem kann der Maker nur zwei Tasteneingaben gleichzeitig verarbeiten. Man könnte also nicht gleichzeitig bewegen, gedrückt halten und angreifen.
RPG Hacker
14.05.2010, 13:22
...außerdem kann der Maker nur zwei Tasteneingaben gleichzeitig verarbeiten. Man könnte also nicht gleichzeitig bewegen, gedrückt halten und angreifen.
Das geht sehr wohl. Zumindest geht es bei mir. Möglicherweise hast du eine andere Version als ich. Als Beleg kannst du dir das Video von meinem Zelda AKS ansehen. Da werden Leertaste, Shift, ESC und die Richtungstasten gleichzeitig abgefragt (und es funktioniert auch, was sich per F9 überprüfen lässt). Muss allerdings betonen, dass das Version 1.51 ist. Ansonsten könnte ich ja die Richtungstasten nicht einzeln abfragen und auch kein diagonales Laufen mit einbauen.
EDIT: Naja, klar. Wenn man die "Wait until Key pressed"-Methode benutzt, DANN kann man keine zwei Tasten gleichzeitig abfragen. :EDIT
Das hier reicht vollkommen
Ja, wenn man sich mit mittelmäßiger Funktion zufrieden gibt, dann schon.
Also ich persönlich benutze ja diese Methode:
(Parallel Process)
Check Key Input (Taste: Shift, Variable: Shift)
If Variable Shift = 7
then ShiftPressed = ON
else ShiftPressed = OFF
Check Key Input (Taste: ESC, Variable: ESC)
If Variable ESC = 6
then ESCPressed = ON
else ESCPressed = OFF
[...]
Wait 0.0
So werden alle Tasten gleichzeitig abgefragt und indem man einfach die Switches abfragt, erkennt man auch ganz leicht, ob eine Taste gedrückt gehalten wird bzw. losgelassen wird. Die eigentlichen KS-Routinen kann man dann ganz leicht in einem anderen Event verarbeíten. So habe ich's bei mir gemacht und so funktioniert es reibungslos. Unnötig ist daran gar nichts, denn wenn man die wahl zwischen "gut" und "mittelmäßig" hat, dann sollte man natürlich "gut" nehmen, auch wenn es komplizierter ist.
Es kommt natürlich auf die Art des Kampfsystems an. Normalerweise halte ich es bei einem AKS aber gerade für nicht gut, wenn man ständig eine Taste gedrückt halten muss, weil das auf kurz oder lang auf die Muskeln geht. Selbst wenn sich die Tasten dann nicht gegenseitig blockieren, muss man immer noch mit Links auf Shift+Leertaste gleichzeitig drücken. Unbequem.
makenshi
14.05.2010, 20:51
Did i touch a nerv? ; )
Rein objektiv gesehen ist dein Konstrukt unnötig , so leid es mir tut.
Am Anfang war gefragt das ein Switch umgeschaltet werden soll. Dafür ist deine Konstruktion völlig überkompliziert, es lässt sich in weniger Zeilen mit weniger Aufwand erreichen. Selbst für weiteres lässt sich auf die oben genannte Art und Weise einfacher umschalten.
Aus der Sicht eines Spielers ist es Blödsinn eine Taste gedrückt zu halten um eine Waffe ausgefahren zu lassen. Das führt allerhöchstens zu Verkrampfungen im betroffenen Finger.
RPG Hacker
15.05.2010, 10:17
Von "Waffe ausgefahren lassen" war ja nie die Rede. Ich sagte ja lediglich, dass es auf diese Art und Weise möglich ist, auch die Länge die Drückens abzufragen. So könnte man z.B. eine Wirbelattacke wie in Zelda einbauen. Normale Schläge wären aber trotzdem noch problemlos möglich. Dafür müsste man die Taste nicht gedrückt halten.
Ja, es mag überkompliziert sein, aber wenn das Überkomplizierte noch besser als das Nicht-Komplizierte funktioniert, wieso sollte man das dann nicht verwenden? Gerade bei einem AKS halte ich es für sinnvoll seine Tastenabfrage von Anfang an sinnvoll zu programmieren, sonst wird es später nur Probleme geben (spätestens dann wenn man Combos oder sowas einbauen will). Genauso wie es zwar leichter wäre, Ressourcen einfach ins RTP zu kopieren statt sie jedes mal zu importieren, man das aber nicht tun sollte, weil es zu Problemen führt. Ich finde das ist hier genau das gleiche. Aber vermutlich hast du Recht und es lässt sich auf diese Art und Weise trotzdem ein vernünftiges AKS machen, wenn man es nur richtig anstellt.
makenshi
15.05.2010, 15:26
Von "Waffe ausgefahren lassen" war ja nie die Rede. Ich sagte ja lediglich, dass es auf diese Art und Weise möglich ist, auch die Länge die Drückens abzufragen. So könnte man z.B. eine Wirbelattacke wie in Zelda einbauen. Normale Schläge wären aber trotzdem noch problemlos möglich. Dafür müsste man die Taste nicht gedrückt halten.
Wo war das denn vom TE gefordert? Habe ich das irgendwo überlesen?
Hier geht es darum den Zustand eines Switches zu wechseln. Hin und wieder liest man was vom Waffenwechsel. Beides hat nichts mit einem Schlag zutun.
Ja, es mag überkompliziert sein, aber wenn das Überkomplizierte noch besser als das Nicht-Komplizierte funktioniert, wieso sollte man das dann nicht verwenden? Gerade bei einem AKS halte ich es für sinnvoll seine Tastenabfrage von Anfang an sinnvoll zu programmieren, sonst wird es später nur Probleme geben (spätestens dann wenn man Combos oder sowas einbauen will). Genauso wie es zwar leichter wäre, Ressourcen einfach ins RTP zu kopieren statt sie jedes mal zu importieren, man das aber nicht tun sollte, weil es zu Problemen führt. Ich finde das ist hier genau das gleiche. Aber vermutlich hast du Recht und es lässt sich auf diese Art und Weise trotzdem ein vernünftiges AKS machen, wenn man es nur richtig anstellt.
Mit dem RTP gibst du in meinen Augen ein völlig falsches Beispiel. Es geht hier um eine Aufgabenverfehlung. Nicht um grobe Fehler im Ressourcenmanagement. Das sind zwei paar Schuhe die anders zu sehen sind.
Etwas ist nicht überkompliziert wenn es sich mit den Anforderungen deckt. Wenn du eine Schleife brauchst, weil sich die Funktionalität nicht anders umsetzen lässt, dann ist das so. Und solange es keine kürzere und performantere Lösung gibt, ist es damit nicht überkompliziert. Darauf will ich gar nicht hinaus.
Ich will eher darauf hinaus das du es übererfüllst. Unter dem Gesichtspunkt das es hier um das simple Umschalten eines Switches geht, schießt du völlig über das Ziel hinaus.
RPG Hacker
15.05.2010, 16:37
So gesehen hast du Recht, da kann ich nichts gegen sagen. Naja, ich denke halt immer im großen Stil und plane solche Dinge immer schon in Vorraussicht. Dann verbleibe ich wohl mit einem "makenshis Variante ist leichter, unkomplizierter und erfüllt die genannten Vorraussetzungen, aber falls du in der Zukunft noch vorhaben solltest ein komplizierteres AKS zu bauen, könntest du dir meine Variante ruhig einmal angucken". ;)
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.