PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : nur DER und nicht DER!



desred
12.09.2003, 06:29
tach

also ich hab mich gefagt, wie ich ein event mache, dass gestartet wird, wenn ein npc "drauftritt" aber nicht wenn der held das feld berührt!!! wie mach ich das?

Ziek
12.09.2003, 06:58
N'abend desRed,

hmm ... mach einen PARALLEL PROCESS der die X und die Y Achse des Trigger-Events und des Events der das ganze durch Berührung auslösen soll abgleicht. Stimmen X und Y dann überein, passiert dann ein Ereignis deiner Wahl. Der PARALLEL PROCESS kann auch der eigentliche Trigger-Event sein.

=BEISPIEL=
Zur Erklärung:
Trigger-Event = Event der berührt werden soll damit was geschieht.

<>IF VAR [00X: NPCX] V[00X: TRIGGERX] (=)
<>IF VAR [0XX: NPCY] V[0XX: TRIGGERY] (=)
<>FLASH SCREEN

Also wenn X vom NPC und X vom TRIGGER übereinstimmen und auch noch Y vom NPC mit Y vom TRIGGER übereinstimmt, dann flashe den Screen.

Einen anderen Weg kenne ich sonst nich. Vielleicht weiss jemand anderes eine bessere Lösung mir fällt grad nur die ein. >_<

YamiModi
12.09.2003, 13:00
Nein eigentlich gibt es keine einfachere Loesung man koennte es nur schwerer machen in dem man die Variablenanzahl hochschraubt... oder versucht den Npc danach etwas sprechen zu lassen was man will... *lol*

desred
14.09.2003, 03:54
wenn wa schon mal dem variablen scheiß sind, könnt ihr mir mit sicherheit auch vollgende frage beantworten:

bezogen zu dieser zeile

<>IF VAR [00X: NPCX] V[00X: TRIGGERX] (=)

wie finde ich heraus was ich für das "X" einsetzen muss? kästchen abzählenn oder wie oder wo oder wat?

mfg

desRed

melior
14.09.2003, 03:56
Original geschrieben von desred
wenn wa schon mal dem variablen scheiß sind, könnt ihr mir mit sicherheit auch vollgende frage beantworten:

bezogen zu dieser zeile

<>IF VAR [00X: NPCX] V[00X: TRIGGERX] (=)

wie finde ich heraus was ich für das "X" einsetzen muss? kästchen abzählenn oder wie oder wo oder wat?

mfg

desRed
genau das ;)

links oben ist das kästchen X = 0 und Y = 0, steht aber auch unten dran in so ner leiste, welches kästchen du markiert hast

Edit: oder so wie bei meph? kommt drauf an was ziek meinte ^^°

Mephisto
14.09.2003, 03:59
also bei 00X kannst du dir irgendeine variable aussuchen und bei NPCX ist die X coordinate gemeint, ist doch so, oder Ziek

Edit: mist, melior war schneller;);)

Ziek
14.09.2003, 04:05
N'abend Community,
N'abend desRed!

also machen wir es jetzt mal GANZ ausführlich.

Als erstes erstellen wir einen Parallelprocess und der muss folgende Dinge enthalten:

<>Change Var: [Var0001:TriggerX] (Set)-TriggerEvent's X Pos.
<>Change Var: [Var0002:TriggerY] (Set)-TriggerEvent's Y Pos.
<>Change Var: [Var0003:desRedX] (Set)-desRed's X Pos.
<>Change Var: [Var0004:desRedY] (Set)-desRed's Y Pos.

Dieser Event speichert also die X und Y Positionen vom TriggerEvent (der Event der berührt werden soll) in den Variablen 0001 + 0002 ab. In den Variablen 0003 und 0004 werden die Coordinaten vom Event "desRed" gespeichert. In diesem Beispiel ist der Event "desRed" der Event der den Trigger berühren soll, worauf daraufhin ein Ereignis stattfindet.

Als nächstes brauchen wir den eigentlichen Trigger, der abgleicht ob beide Positionen übereinstimmen und dann einen Switch auslöst oder ähnliches macht. In diesen Event muss folgendes eingetragen werden:

<>IF VAR [0001:TriggerEventX] V[0003:desRedX] (=)
<>IF VAR [0002:TriggerEventY] V[0004:desRedY] (=)
<>FLASH SCREEN

Wie bereits gesagt überprüft dieser Event ob die Coordianten in der Variable 0001 und 0003 identisch sind. Sind sie es werden die Coordinaten in den Variablen 0002 und 0004 überprüft. Sind diese ebenfalls identisch dann wird der Screen kurz "ge-flashed" sind sie es nicht dann passiert nichts.
Anstelle des FLASH SCREEN Befehls kannst du natürlich irgendetwas anderes setzen.
So das sollte dir helfen.


wenn wa schon mal dem variablen scheiß sind, könnt ihr mir mit sicherheit auch vollgende frage beantworten: Fehler meinerseits .... die X-e waren nur Platzhalter weil ich ja nicht wusste welche Variablen du verwendest. Hier habe ich jetzt die ersten 4 benutzt. Wieder nur ein Beispiel also nicht auf Krampf diese Variablen Nr. wählen!
Sollte es immer noch Fragen oder Probleme geben, stehe ich per PN oder hier im Forum gerne zur Verfügung.

Zur Not kann ich dir auch eine kleine Testmap basteln die das ganze einmal in Aktion zeigt.

desred
14.09.2003, 04:05
also, nur so als beispiel, auf einer map die 3 x 3 kästchen groß ist, ist:

oben links------------1 - 1
oben mitte------------2 - 1
oben rechts-----------3 - 1
mitte links-----------1 - 2
mitte mitte ^^--------2 - 2
mitte rechts----------3 - 2
unten links-----------1 - 3
unten mite------------2 - 3
unten rechts----------3 - 3

so ungefähr? oder wie?!?!!?!?!?

Ziek
14.09.2003, 04:09
so ungefähr? oder wie?!?!!?!?!? Yep genauso, aber eigentlich brauchst du das nicht, da in meinem Beispiel der erste Parallel Process Event sich die Variablen automatisch holt und der zweite diese Abgleicht. Ist IMHO einfach als die Felder zu zählen ^^


also bei 00X kannst du dir irgendeine variable aussuchen und bei NPCX ist die X coordinate gemeint, ist doch so, oder Ziek Holla die Waldfee ... ihr wart aber beide recht fix, du und Melior ^^

Ja, die X-e kann man durch eine x-belibige Variable ersetzen. Hätte ich vielleicht erwähnen sollen .... mein Fehler -_-

melior
14.09.2003, 04:12
Original geschrieben von desred
also, nur so als beispiel, auf einer map die 3 x 3 kästchen groß ist, ist:

oben links------------1 - 1
oben mitte------------2 - 1
oben rechts-----------3 - 1
mitte links-----------1 - 2
mitte mitte ^^--------2 - 2
mitte rechts----------3 - 2
unten links-----------1 - 3
unten mite------------2 - 3
unten rechts----------3 - 3

so ungefähr? oder wie?!?!!?!?!?
falsch ^^

oben links------------0 - 0
oben mitte------------1 - 0
oben rechts-----------2 - 0
mitte links-----------0 - 1
mitte mitte ^^--------1 - 1
mitte rechts----------2 - 1
unten links-----------0 - 2
unten mite------------1 - 2
unten rechts----------2 - 2

Lachsack
14.09.2003, 04:15
Original geschrieben von desred


so ungefähr? oder wie?!?!!?!?!?
Ja aber oben links wäre 000,000
Die Null gibts nämlich auch noch. Aber guck doch wirklich wie Melior schon sagte einfach unten nache ^____^
(Koordinaten brauch man immer nicht nur für diese Sache)

Lachsen
14.09.2003, 19:01
Es gibt btw. doch eine einfacher Methode, abzufragen, ob ein NPC auf das Gewünschte Event nun steht.
Erstmal muss eines beachtet werden:
Das Event auf dass der NPC stehen soll (etwa ein Schalter) muss zuerst erstellt werden, dann erst das Event des NPCs, der auf das andere Event drauf soll.

Hierbei geht es darum, dass der NPC eine höhere Event-ID hat, als der Schalter.
Die Event ID von einem Event kann man sehen, wenn man das Fenster öffnet, womit man das Event bearbeitet oder erstellt. Ganz oben steht dort neben "Event Editor" die Event ID.
Hat man nun die Events von NPC und Schalter erstellt und hat der Schalter eine kleinere ID als der NPC geht es so weiter:
Man erstellt ein Parallel Event und verwendet den befehl "Set Event ID" (der eigentlich "Get event ID" heißen sollte). Oben wählt man bei Position die Position von dem Schalter. Unten wählt gibt man eine Variable an, in der das Ergebnis eingespeichert wird, man kann sie z.B. "Schalter-ID" nennen oder so.
Letztendlich speichert dieser Befehl die ID, von dem Feld, worauf sich der Schalter befindet, in eine Variable.
Das interessante ist nun:
Steht der NPC nicht auf dem Schalter bekommt die Variable die ID von dem Schalter.
Steht aber der NPC auf dem Schalter, bekommt die Variable die ID vom NPC.
Das liegt daran, das immer die höhste ID dominant ist, wenn mehrere Events auf einem Feld stehen. Und hier hat man schon die Abfrage.
In einer Schleife wird ständig die ID von dem Feld des Schalter in einer Variable eingespeichert. Enthält nun diese Variable den ID-Wert von dem NPC, steht der NPC auf dem Schalter.
Im Endeffekt ist diese Methode ein ganzes Stück weniger Arbeit, als die Methode mit X und Y Coordinaten.

Ich hoffe ich konnte damit helfen.

C ya

Lachsen

Ziek
14.09.2003, 19:09
Im Endeffekt ist diese Methode ein ganzes Stück weniger Arbeit, als die Methode mit X und Y Coordinaten. Interessant, diese Idee war mir noch gar nicht in den Sinn gekommen. Aber ich glaube jetzt haben dir den armen desRed total verwirrt ^^

desred
14.09.2003, 20:22
ich glaube jetzt haben dir den armen desRed total verwirrt ^^

das hättest du dir gedacht! aber ich blick da voll durch! tia, manchmal bin in nähmlich nich so dumm wie sonst!


also danke an alle die einen sinvollen beitrag geschrieben haben,
ausnahme melior §spam

YamiModi
14.09.2003, 21:57
Mensch... also der Lachsen... der kann... also ich will auch mal so werden wie der... irgendwie hat der es aufm Kasten... (oder is Lachsen weiblich??? weis das jemand???)


@Lachsen: Hast du Zufaellig mal mit C++ oder so gearbeitet???

Nur zum Beitrag... klingt zwar nach weniger... aber irgendwie dann doch wieder komplizierter (naja eigentlich will ich nur meine Stellungnahme verteidigen) ... zumindest haste mehr geschrieben!!!


Aber das mit deiner Version muss ich mir mal merken