Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein Event soll man nur von 2 Seiten aktivieren
n'Abend
Weiß vllt. jemand, ob es möglich ist, ein Event nur von 2 Seiten aktivieren zukönnen?
Beispiel: Ich rede ein NPC an, diesen sollte man jedoch nur von links oder rechts anquatschen können und nicht von vorne oder hinten. Ginge das?
Gruß
Condition (Von rechts):
- Branch if heros face is left
[...]
Else Handler (von links):
- Branch if heros face is right
[...]
Quetschi
24.11.2012, 22:38
Du Setzt oben in das Event einfach eine Bedingung die (Fork oder Conditional Branch) die abfragt, ob das Event nach links oder rechts guckt. Ist glaub ich auf Seite 2...Sprite is facing [...].
Dann fragst du einfach die gewünschten richtungen ab und dann kommt da jeweils dein Eventcode rein.
Edit: Verdammt. Penetranz war ein bisschen schneller^^
Edit2:
- SCRIPT -
<> Fork Condition: If This event is facing right then ...
. <> Comment: Dein Eventcode
. <>
: Else ...
. <> Fork Condition: If This event is facing left then ...
. . <> Comment: Dein Eventcode
. . <>
. : End of fork
. <>
: End of fork
Argh, warum bin ich darauf selber nicht gekommen. x__x
Ich Danke euch. Hat super funktioniert. ^^
Da ich das gerade sehe:
- SCRIPT -
<> Fork Condition: If This event is facing right then ...
. <> Comment: Dein Eventcode
. <>
: Else ...
. <> Fork Condition: If This event is facing left then ...
. . <> Comment: Dein Eventcode
. . <>
. : End of fork
. <>
: End of fork
das piekst mir richtig in den Augen^^
Mag vll bei einem 2Zeiler Event so funktionieren, aber schöner finde ich es entweder, wenn man in den Forks ein Event called oder einfach nur einen Switch aktiviert, etwa so:
- SCRIPT -
<> SetSwitch: XYZ = off
<> Fork Condition: If This event is facing right then ...
<> SetSwitch: XYZ = on
. <>
: Else ...
. <> Fork Condition: If This event is facing left then ...
<> SetSwitch: XYZ = on
. . <>
. : End of fork
. <>
: End of fork
<> Fork Condition: If Switch XYZ = on then ...
. <> Comment: Dein Eventcode
. <>
: End of Fork
Hat einfach den Hintergrund, das ich nicht den kompletten code zweimal habe. erzeugt nur unnötig arbeit sowas.
Das aber nur so als Tipp am Rande.
MagicMaker
27.11.2012, 19:00
Das lässt sich gewissermaßen noch einfacher machen und verschwendet nichtmal einen Switch:
<> If ThisEvent Facing == ←
<> Label Jump: 1
<>
: Else
<> If ThisEvent Facing == →
<> Label Jump: 1
<>
: Else
<> Label Jump: 2
<>
: End
<>
: End
<> Label Set: 1
<> CODE INSERT
<> Label Set: 2
<> (Event-Ende)
stimmt. hatte ich so nicht dran gedacht, da ich labels aka spaghetticode eigentlich nicht verwenden wollte. aber der maker bietet ja kaum brauchbare alternativen. ;)
bin nicht der meinung daß labels daselbe wie spaghetti code ist, eher etwas was gern dazu führt, und wie du gesagt hast, weil der maker halt kein "for", "while", "switch" (nicht der on/off switch) hat, ist es öfter besser dies zu benutzen. Das gesagt wurde ich eher den code in diesem fall so machen:
<> If ThisEvent Facing == Up
<> End Event Processing
<>
: End
<> If ThisEvent Facing == Down
<> End Event Processing
<>
: End
<> CODE INSERT
<> (Event-Ende)
Labels zu benutzen in so einem fall macht nur dann sinn, wenn man am ende noch code ausführen will, ansonsten ist es das wofür "end event processing" da ist. Macht hier auch kein sinn else statements zu machen, da man hier dabei nichts verdient.
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.