PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kampfsytem Problem



derliner
07.10.2007, 16:53
hi
ich habe ein Problem mit einem Kampfsystem und zwar mit dem Distanzkampf.
Sagen wir ich feure ein Ereignis ab z.B eine Kugel,schön und gut klappt Prima,
aber wie mache ich es den wenn das Ereignis enen Gegner berührt das der Gegner Schaden bekommt.:confused:

~Jack~
07.10.2007, 17:16
Paralell Process das jeweils die X und Y-Koordinaten von Kugel und Gegner in Variablen speichert und überprüft ob sie gleich sind. Dann kommt die Schadensberechnung wie auch immer die bei dir aussehen soll^^

Alan
07.10.2007, 18:34
Jup, ~Jack~ hat völlig Recht mit dem, was er sagt, aber da du (zumindest hier im Forum) noch neu bist (und ich - anhand der Art und Weise, in der du deine Frage gestellt hast - festgestellt habe, dass du mit der Makertechnik noch nicht allzu vertraut bist) vielleicht nochmal langsam.

Jedes Event auf der Map hat eine ganz bestimmte Position - diese lässt sich eindeutig durch 2 Zahlen bestimmen. Die erste Zahl bestimmt, wie viele Kästchen sich das Event vom linken Mapende entfernt befindet, die zweite hingegen, wie viele Kästchen zwischen dem Event und dem oberen Map-Ende befinden. Du kannst diese beiden Werte ansehen, indem du im Maker die dritte Ebene aktivierst und dein Event einmal anklickst - die "Koordinaten", wie diese Werte auch genannt werden, erscheinen unten in der Statusleiste in dieser Form: (X/Y)

Wenn du jetzt mittels Variablen die Position des Kugel-Ereignisses speicherst und dasselbe mit dem Ziel und logischerweise 2 anderen Variablen machst, dann kannst du die Koordinaten miteinander vergleichen (Bedingung!). Sollten sowohl die beiden X- als auch die beiden Y-Werte gleich sein, kannst du dein Ereignis aufrufen, wo dann die Schadensberechnung stattfinden soll.

Ich hoffe, dass dir das geholfen hat!


Greetings



Alan

derliner
09.10.2007, 17:41
klasse danke ok das Event steht.
Jetzt noch eine Frage muss man das Ereigniss(z.B Bummerang) in jede Map einfügen?

Alan
09.10.2007, 18:04
Prinzipiell: ja. Allerdings muss ich dich warnen. Falls du ein Event (beispielsweise den Bumerang) hast, welches als Geschoss verwendet wird und noch ein zweites, welches per Parallel Process ständig die Koordinaten des Geschoss-Events speichert, so kann es beim Kopieren zu Problemen kommen. Der Grund? Öffne mal im Maker ein solches Event. In der Titel-Leiste des Ereignis-Eigenschaften-Fensters siehst du den Text: "Event-ID" und eine lange Zahl dahinter. Der Maker arbeitet niemals mit den Namen der Events, sondern immer mit diesen ID-Nummern, denn von denen gibt es auf jeder Map nur eine einzige. Wenn du aber das Event auf eine neue Map kopierst, dann kann es sein, dass das Event eine neue ID erhält - und das andere Event, welches die Position des Geschosses speichert, weiß plötzlich nicht mehr, um welches Event es geht --> Fehlermeldung "Event script has refered an Event that doesn't exist".

Wie beugst du dem vor? Entweder:

a) Du kopierst immer die ganze Map, nie die einzelnen Events

oder

b) Du lässt das Geschoss selber per Parallel Process seine eigene Position in Variablen speichern (Variable "X-Pos", set, "This Event" "X-Coordinate"). Entscheidend ist hier "this event", da man sich dann nicht länger um die Event-IDs Gedanken zu machen braucht.



Ich hoffe, ich konnte dir helfen ^^


Greetings!


Alan

derliner
09.10.2007, 18:31
joa ok danke.
Mal eine andere Frage ich arbeite gerade an einem KS das soll so funktionieren:

Mann berührt den Gegner daraufhin wird man in eine Map Teleportiert.
Man kämpft gegen diese Gegner im Zelda KS System.Nun ich habe die Gegner Besiegt und in einen Ereignis eigegeben:

Bedingung:
Gegner HP gleich 0
Teleportieren an (map wo man den Gegner berührt hatte)


Ok so das funktioniert bis dahin noch,aber wenn ich wieder zurück komme
steht der Gegner immer noch da und wenn er mich berührt fängt der Kampf von neuen an.Jetzt meine Frage wie mache ich es das dieser Gegner nach dem Kampf verschwindet,aber nicht für immer den wenn man die Map wechselt sollte er wieder erscheinen.

Alan
09.10.2007, 18:42
Dadurch, dass du für den Kampf die Map wechselst, ist das leider nur per Switch (Schalter) möglich. Würde sich der Gegner auf derselben Map befinden (was typisch für Zelda wäre), dann könntest du ihn einfach per "Erase Event" löschen und er würde nach erneutem Betreten der Map wieder erscheinen, in diesem Fall musst du das aber so machen:

1) Das Gegner-Event, welches dich wegteleportiert, braucht eine 2. Ereignisseite, wo der Gegner nicht mehr zu sehen ist und als Startbedingung soll sie den Switch "Gegne 1 tot" haben.

2) Auf der Kampf-map musst du, vor dem Zurückteleportieren, den Switch "Gegner 1 tot" auf ON stellen.

3) Bei jedem Verlassen der Map musst du den Switch "Gegner 1 tot" wieder auf OFF stellen.

Natürlich brauchst du so für jeden Gegner einen eigenen Switch XD



Greeetings!



Alan

derliner
09.10.2007, 18:45
Klasse vielen dank,ich weis nun warum die meisten Spiele das Kampfsystem meiden.

Alan
09.10.2007, 19:20
Tja, aus gutem Grund, wie du siehst ^^

Aber es ist nicht so, dass es unmöglich wäre, damit ein ganzes Spiel zu bauen. Es ist nur schwierig und langwierig und erfordert sowohl Geduld als auch fundierte Kenntnisse über den Maker... Für den Anfang daher eher ungeeignet, aber du kannst es natürlich trotzdem probieren. Viel Erfolg!



Alan