• Anmelden

1

Freitag, 15. Juni 2012, 14:55

Erstschlag-Skript (Knifflig :P)

Hallo zusammen,

ich suche ein "Erstschlag-Skript" à la Paper Mario 2. Den meisten wird das Spiel nichts sagen, deswegen erkläre ich es mal:

Die Monster laufen als Event auf der Map herum und greifen den Spieler an. Haben sie den Spieler erfolgreich attackiert, wechselt die Szene von der Map in den Kampfbildschirm und das Monster darf einen Erstschlag ausführen, noch bevor der eigentliche Kampf beginnt. Umgekehrt gilt: Greift der Spieler ein Monsterevent (auf der Map) zuerst an, darf er im Kampfbildschirm auch den ersten Schlag ausführen, noch bevor der eigentliche Kampf beginnt.

Das eigentliche Problem ist es, den Angriff des Monsters auf der Map zu initiieren. Ich habe schon versucht, dieses Problem per Eventing zu lösen, allerdings war das sehr unschön und ungenau, daher müsste schon eine Skript-Lösung her. Möglicherweise müsste man hier einige Elemente eines Action-Battle-Systems übernehmen, aber damit kenne ich mich nicht aus.

Ich weiß, dass es knifflig ist, aber vielleicht gibt es hier ja einen pfiffigen Skripter, der mir weiterhelfen kann ;)
Vielen Dank im voraus!

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

2

Samstag, 16. Juni 2012, 20:26

Moment mal, du willst dass ein Monster Event den Spieler angreifen kann?
Oder willst du ein Script wo derjenige der zuerst angreift im Kampf dann den Erstschlag hat?

Zum ersten Problem: Du kannst doch einfach einstellen das die Monster den Spieler verfolgen und bei Berührung haben sie Erstschlag.
Damit der Spieler Erstschlag hat könntest du ja auf jeder Map ne Abfrage machen, wenn der Spieler Enter drückt wird geprüft ob auf einen benachbarten Feld ein Monster ist welches er angreifen kann.

Achja ich habe hier ein Script gefunden ich weiss nicht ob es funktioniert habe nur kurz mal geguckt:
[XP] Strike First States

Aber konnte man beim Maker nicht einstellen Erstschlag? Hab ihn leider nicht mehr kann das jetzt nicht gucken.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

3

Sonntag, 17. Juni 2012, 21:52

Um deine ersten beiden Fragen zu beantworten: Sowohl als auch :D

Der Link den du gepostet hast ist schonmal sehr hilfreich, danke. Den Angriff des Spielers auf das Monster könnte man mit Events so lösen, wie du es beschrieben hast, die Problematik besteht allerdings darin:

Dem Spieler soll der Erstschlag nicht immer gelingen, d.h. auch das Monster soll versuchen, einen Angriff auf der Map auszuführen. Wenn jetzt Spieler und Monster direkt voreinander stehen, wie soll unterschieden werden, wer den Erstschlag ausführt?

Und noch ein Problem: Sagen wir ich mache ein Monster-Event und stelle ein, dass der Kampf bei "Kollision" mit dem Monster beginnt. Jetzt greift der Spieler aber das Monster an, ohne dass eine Kollision erfolgt. Wie soll das Monster-Event dann ausgelöst werden und der Kampf damit beginnen?

Uuund noch ein Problem: Wenn ich ständig die Koordinaten des Spielers und der Monster abfragen muss, dann müssen diese auch in Variablen gespeichert werden. Wenn ich jetzt 10 Monster auf der Map habe, dann brauche ich ganze 20 Variablen dafür (x- und y-Koordinate). Gibt es da keine elegantere Lösung?

Yuber

Seher

Motto: Die Welt zu beherrschen.

  • Nachricht senden

4

Sonntag, 17. Juni 2012, 23:35

Ich hätte das so gemacht, die Monster gehen auf den Spieler zu, bei Kollision kriegt das Monster Erstschlag.
Der Spieler muss rechtzeitig die Aktiontaste drücken wenn ein Monster in Reichweite ist dann kriegt es Erstschlag.

Zitat

Und noch ein Problem: Sagen wir ich mache ein Monster-Event und stelle ein, dass der Kampf bei "Kollision" mit dem Monster beginnt. Jetzt greift der Spieler aber das Monster an, ohne dass eine Kollision erfolgt. Wie soll das Monster-Event dann ausgelöst werden und der Kampf damit beginnen?


Du fragst in einen Event ab, ob der Spieler die Aktionstaste gedrückt hat und wenn Ja, ob sich ein Monster auf der umliegenden Koordinate befindet.

Du könntest alle Monster Koordinaten in einer Variable speichern und dann abfragen ob sie angegriffen werden.
Klar ist das aufwendig, aber es geht eben nicht alles immer ratzfatz.

Klar kannst du dir ein Script dafür schreiben dann geht es erheblich schneller.
Ob du das kannst weiss ich nicht.
Nur noch selten hier.

'Til now, I always let people walk all over me!
From now on, if anyone makes fun of me, I'll kill 'em! Just like that!

5

Donnerstag, 21. Juni 2012, 19:14

Wenn ich es so mache, taucht immernoch die Schwierigkeit auf, dass per Knopfdruck genau das Event aktiviert werden muss, dass sich vor dem Helden befindet. Da ja keine Kollision erfolgt, wird das "Monsterevent" ja auch nicht ausgelöst. Dann bräuchte ich für 20 Monster zu den 40 Variablen zusätzlich noch 20 Global Switches, um das Monsterevent auszulösen, und dass müsste ich dann für jedes Monster auf jeder Map im Spiel noch einstellen... eine Skriptlösung wäre also um ein Vielfaches angenehmer.

Und nein, ich kann es nicht skripten, daher habe ich dieses Thema ja auch unter "Skript-Anfragen" gepostet ;)

Falls es jedoch zuviel Arbeit für einen Skripter sein sollte, dann wäre es nett, wenn mir folgende Fragen beantwortet werden könnten, dann würde ich mich nämlich selbst an ein Skript trauen. Ich bräuchte folgende Skript-Befehle:

1) Wie kann ich das Skript so konstruieren, dass es nur für Events greift, welche "Monster" im Eventnamen tragen?
2) Wie frage ich per Skript-Befehl die Koordinaten dieser Events ab und speichere sie in Variablen (am besten in Game_Variablen)?
3) Wie schaffe ich es, dass die Koordinaten der Events von Map zu Map aktualisiert werden?
4) Wie lautet der Skript-Befehl zum Abfragen, ob eine Taste gedrückt wurde?
5) Wie lautet der Skript-Befehl zum Ändern des Charsets des Spielers/zum Zeigen einer Animation?
6) Am Wichtigsten: Wie lautet der Skript-Befehl zum Auslösen eines Events auf der Map?

Das sind viele Fragen, aber als Ruby-Neuling habe ich halt keine Ahnung davon. Vielleicht kann mir ja jemand auf die Sprünge helfen :)

EDIT: Okay, es geht auch viiieeel einfacher. Man müsste lediglich einen zweiten Action Key einführen, und ein Event unterscheiden lassen, ob es mit "Enter" oder mit der anderen Taste aktiviert wurde. Zudem sollte es auch unterscheiden können, ob es durch eine Kollision aktiviert wurde. Ich hoffe immernoch, dass mir hier vielleicht jemand helfen kann :)

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Magic Pancake« (21. Juni 2012, 19:14)


Ähnliche Themen

Social Bookmarks