Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
[Offen] Eventsteuerung über Scene_Map
ich möchte - wenn möglich - einiges an Eventtechnik in Scene_Map auslagern (wenn es denn da richtig aufgehoben ist).
Konkret geht es um die Gegner und sichtbaren Teleport-Events.
1.) Gegner auf Map
Aktuell ist es ja so, dass Gegner anfangen, den Spieler zu verfolgen, sobald eine Mindes-Distanz zwischen ihnen unterschritten wurde.
Kann sich der Spieler aus dieser Distanz "flüchten", so hört der Gegner auf, ihm zu folgden. Eventtechnisch sieht das ganze so aus beim Gegner:
Seite 1 - Random Bewegen
Seite 2 - Spieler verfolgen + Kampf bei Berührung
Seite 3 - Tue nichts (wenn "StopAll"-Switch an ist)
Seite 4 - Nichts (Gegner besiegt)
Zusätzlich brauch ich natürlich noch zu jedem Gegner ein Parallel Process Event, das die Ausrufezeichen-Animation über ihm anzeigt,
während er den Spieler verfolgt.
Mein Ziel wäre das in die Skripttechnik auszulagern. Ich müsste nur noch z.B. "EnemyMap" in den Eventnamen schreiben und die Self-Switches
würden automatisch aktiviert werden. Sprich: Die 4 Eventseiten beim Gegner sollen erhalten bleiben, nur das Verfolgen bzw. Nicht-Verfolgen soll
per Skript abgewickelt werden. Zangsweise müsste dann auch das Anzeigen der Animation hierüber geregelt werden.
2.) Teleport Events
Hiermit meine ich die sichtbaren Mapübergänge. Das sind aktuell die Events, die mir beim Maperstellen die meiste Arbeit machen (mit Abstand).
Funktionsweise aktuell:
Kommt der Spieler nahe genug an ein Teleportevent, dann fängt es an seine Opacity zu erhöhen (langsam von 0 auf 255). Sobald dies geschehen ist,
bleibt die Opacity auf 255. Sobald sich der Spieler wieder weit genug entfernt, verringert sich die Opacity von 255 auf 0 und bleibt solange auf 0, bis der
Spieler wieder in Reichweite kommt.
Aktuell brauche ich dafür auch einige Steuerungs-Switches, damit die Opacity nicht in einer Schleife von 0 auf 255 erhöht wird, sondern das nur
einmalig passiert. Per Skript könnte man das sicher leichter handeln. Auch hier ist es das Ziel, dass ich später eigentlich nur noch "Teleporter" in
den Eventnamen schreiben müsste und der Skript dann den Rest übernimmt.Das eigentliche Teleportieren usw. würde natürlich im Event vorhanden bleiben.
Fragen, die sich mir hierzu stellen:
- Wäre das mit den Gegner wie beschrieben möglich?
- Wäre das mit den Teleportern wie beschrieben möglich?
- Wo implementiere ich am besten das Ganze? Scene_Map?
- Ich werde wohl nicht drum rumkommen, alle Events einer Map in einer Schleife zu durchlaufen, damit ich meine "Teleporter" und "EnemyMap" finde, oder?
- Ich habe noch keine Idee, wie ich es anstelle, dass eine Animation über einen NPC angezeigt wird, solange ein Self_Switch aktiv ist.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Hast du es mal mit so einem Script ausprobiert?
Link
Bei diesem Script wird ein ausgewähltes Icon (manuell im Code einstellbar) angezeigt. Es beherrscht das reine Einfaden (aber auch hoch und runter hoovern und ein und ausfaden, solange der Trigger aktiviert ist). Man kann sogar einstellen, dass das Icon erst auftaucht, wenn ein bestimmter Switch ON ist. Kann man aber auch lassen.
Ganz sicher lässt sich da als Trigger eine Distanz einbauen? :3
Bzw ist hier ein Script, das auf Distanz ein- und ausfadet. Ist vlt besser XD°
Und worum geht es bei der Gegnersache? Ums Sparen von Switches? :3
-
Joseys Wuselei
-
Meine Story - Pausiert
Lust auf Abenteuer?
So richtig mit Selbstbestimmung?
Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
"Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
Hier die Antwort:


Hier könnt ihr euren Lieblingschar wählen ;D
Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt. -
Meine Arbeiten
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(Mein) Autismus
Ich bin im autistischen Sprektrum-
sollte ich mich komisch verhalten, oder unhöflich wirken
(oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
ist das nicht beabsichtigt.
Josey. Epicgarantie.
Nehmt das bloß nicht ernst! D: -
Meine Welt
Mein Ehemann Kain!
:*
Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
Er verdient einfach einen Platz (
) in meiner Signatur! XD

-
Mein Support
Der In-Game-Charset-Generator!
Erstelle Random-NPCs mit Charsetteilen!
Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
Bastelt mal Banner! : D
-
Meine beendeten Contests
[Pixelcontest] Rund um den Kürbis

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
Scripted Desaster
("nicht ganz so ernstes Projekt")
Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.
Das bedeutet doch Spaß... -
Pokémon EV
Pokemon EV
("Zeitvertreib nebenbei - Kreatief-Helfer")
Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
Ist inzwischen alles schonmal dagewesen. XD -
Lost Island
Harvest Moon - Lost Island
(Arbeitstitel, "Eventtechnik-Projekt")
Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
Das Spiel ist ein Harvest Moon Abklatsch. XD
Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
-
-
Joseys Fortschritt
-
Endless Ending
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Zitat
Und worum geht es bei der Gegnersache? Ums Sparen von Switches? :3
Bei beiden Sachen gehts hauptsächlich um Einsparen von Arbeit. Für ein billiges Teleportevent ist das aktuell
echt abnormal viel. Und bei den Gegner ist es auch nicht besser. Brauche alleine für jeden Gegner 1 Parallel Process
Event für Distanzabfrage + Animationsanzeige. Und da muss man natürlich immer kleinlichst darauf achten, dass
man die richtige Event ID auch verwendet. Switche verwende ich immer die selben für die Gegner, da die
ja sowieso beim Instanzreset zurückgesetzt werden.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Hide&Seek (Coconut) würde für die Distanzabfrage nicht helfen (oder benutzt du die schon)? Dort ist es möglich einen CB mit einer Distanz zu bestücken und wenn die Distanz true ist, kann man einen SelfSwitch umstellen und wenn sie false ist, die Random-Bewegung machen.
Zitat
Zusätzlich brauch ich natürlich noch zu jedem Gegner ein Parallel Process Event, das die Ausrufezeichen-Animation über ihm anzeigt, während er den Spieler verfolgt.
Meinst du damit dass die Animation immer wieder abgespielt werden würde? Wenn das alles so einfach ist, wie es für mich klingt, müsste das doch auch mit Hide&Seek möglich sein :/ Soll ich mal was basteln, bei dem man möglichst nur kopieren muss und du sagst mir dann, obs das ist, was du brauchst? Oder willst du selber erstmal mit H&S gucken (wenn dus nicht schon hast)?
Verfolgen die Gegner eigentlich per Pathfinding oder mit Move toward Player?
Sollte aber das Ausrufezeichen nur aufploppen und dann nicht mehr verschwinden (also die ganze Zeit da sein), kann man das auch über das Head-up-Icon lösen, denke ich ><
-
Joseys Wuselei
-
Meine Story - Pausiert
Lust auf Abenteuer?
So richtig mit Selbstbestimmung?
Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
"Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
Hier die Antwort:


Hier könnt ihr euren Lieblingschar wählen ;D
Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt. -
Meine Arbeiten
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(Mein) Autismus
Ich bin im autistischen Sprektrum-
sollte ich mich komisch verhalten, oder unhöflich wirken
(oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
ist das nicht beabsichtigt.
Josey. Epicgarantie.
Nehmt das bloß nicht ernst! D: -
Meine Welt
Mein Ehemann Kain!
:*
Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
Er verdient einfach einen Platz (
) in meiner Signatur! XD

-
Mein Support
Der In-Game-Charset-Generator!
Erstelle Random-NPCs mit Charsetteilen!
Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
Bastelt mal Banner! : D
-
Meine beendeten Contests
[Pixelcontest] Rund um den Kürbis

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
Scripted Desaster
("nicht ganz so ernstes Projekt")
Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.
Das bedeutet doch Spaß... -
Pokémon EV
Pokemon EV
("Zeitvertreib nebenbei - Kreatief-Helfer")
Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
Ist inzwischen alles schonmal dagewesen. XD -
Lost Island
Harvest Moon - Lost Island
(Arbeitstitel, "Eventtechnik-Projekt")
Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
Das Spiel ist ein Harvest Moon Abklatsch. XD
Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
-
-
Joseys Fortschritt
-
Endless Ending
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
ich aber sowieso noch verwenden, weil ich ja die Demo umkrempeln möchte (unter anderem mit einer Hide and Seek Passage).
Aber die Distanzabfrage ist auch nicht das Problem. Das kann ich auch in ein paar Zeilen Skript lösen, dafür gibt es ja den Onkel Pythagoras^^.
Ich habe mal über die Skripte drüber geguckt, da wird das aber irgendwie ganz anders gemacht, wie ich es vor hatte - wobei
ich ja nicht mal weiß, ob mein Plan mit Scene_Map / Game_Map aufgehen würde. Vorallem weiß ich nicht, wie gut man das Problem
in die vorhandenen Skripte copy-pasten kann.
Aber bei dem Headup Icon werd ich mal genauer nach gucken. Würde ja die selbe Funktion erfüllen.
Zitat
Verfolgen die Gegner eigentlich per Pathfinding oder mit Move toward Player?
Aktuell per stupider MoveRoute. Pathfinding wäre natürlich richtig schnieke.
Gerade stellen sich mir halt noch so Standardfragen: Ich möchte optimalerweise nur einmal alle Events durchgehen und mir diese merken, die
einen gewissen Namen haben z.b. "EnemyMap" und mit denen soll dann weitergearbeitet werden. Sonst würde ja bei jedem Refresh alle Events durchgegangen werden.
Kann mir vorstellen, dass das zu starken Lags führen kann je nach Mapgröße.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Benutzerinformationen überspringen
Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"
Wegen dem Gegner hätte ich für das Ausrufezeichen (sollte es eine Ani sein und kein Icon über dem Kopf) noch eine bessere Version, die halt wirklich über den Gegnernamen geht. Wenn dann aber mehrere Gegner auf der Map sind, würden die alle das Ausrufezeichen bekommen, bisher kann ich nur über einen Namen gehen.
Dann wärs doch besser, sich aus dem Gegnerevent selbst die Event-ID geben zu lassen (ohne den Namen), die in einer Variable zu speichern und dann mit dieser Variable die Show-Ani abspielen zu lassen?
|
|
Ruby Quellcode |
1 |
$game_variables[3] = @event_id |
Ich hab von StorMeye einen Scriptschnippsel bekommen, der Show_Animation als Scriptbefehl zulässt, darf den aber nicht einfach weitergeben ohne zu fragen- aber es ist superkurz geschrieben, das kriegst du sicher hin. :D
Dann kannst du schreiben:
|
|
Ruby Quellcode |
1 2 3 4 |
id= $game_variables[3] inp=$game_system.map_interpreter inp.show_ani(id,98) |
Ich hab auch versucht das Icon-Script zu verwenden, aber offenbar wird das nicht mehr aktiv, sobald ein Event mehr Seiten hat oder so. Jedenfalls ging es nicht XD
Aber mit dem HeadUpIcon müsste das klappen, da hat man noch ein paar mehr Möglichkeiten :) (Allerdings ist bei der Version halt das Fragezeichen die ganze Zeit da und ploppt nicht immer wieder hoch)
Zitat
Aber die Distanzabfrage ist auch nicht das Problem. Das kann ich auch in ein paar Zeilen Skript lösen, dafür gibt es ja den Onkel Pythagoras^^.
Haha, kuhl, dass du sowas einfach hinkriegst XD
Zitat
Ich habe mal über die Skripte drüber geguckt, da wird das aber irgendwie ganz anders gemacht, wie ich es vor hatte - wobei
ich ja nicht mal weiß, ob mein Plan mit Scene_Map / Game_Map aufgehen würde. Vorallem weiß ich nicht, wie gut man das Problem
in die vorhandenen Skripte copy-pasten kann.
Okay, bei dem über Scene_Map/Game_Map zu gehen, kann ich dir gar nicht helfen, ich hab nur meinen umständlichen Kram XD
Zitat
Aktuell per stupider MoveRoute. Pathfinding wäre natürlich richtig schnieke.
In das, was ich gepostet habe, wäre auch ein Pathfind-Befehl integrierbar XD
Zitat
Gerade stellen sich mir halt noch so Standardfragen: Ich möchte optimalerweise nur einmal alle Events durchgehen und mir diese merken, die
einen gewissen Namen haben z.b. "EnemyMap" und mit denen soll dann weitergearbeitet werden. Sonst würde ja bei jedem Refresh alle Events durchgegangen werden.
Kann mir vorstellen, dass das zu starken Lags führen kann je nach Mapgröße.
Gut, da bin ich raus XD
Also, wenn du weiter die H&S-Lösung verfolgen willst, bin ich dein Mann, aber sonst musst du doch auf Playm warten :P
-
Joseys Wuselei
-
Meine Story - Pausiert
Lust auf Abenteuer?
So richtig mit Selbstbestimmung?
Und mit was Spannendem? Zum Spielen? Ohne Schokolade?
"Eines, das mit dem leistungsstärksten Grafikchip der Welt läuft? Deiner Vorstellungskraft?"
Hier die Antwort:


Hier könnt ihr euren Lieblingschar wählen ;D
Und hier findet ihr das Minigame, das ab und an den Würfel ersetzt. -
Meine Arbeiten
-
Meine Fähigkeiten
Maker:
XP
Pixeln:
Mappen:
Eventen:
Scripten:
Komponieren:

-
(Mein) Autismus
Ich bin im autistischen Sprektrum-
sollte ich mich komisch verhalten, oder unhöflich wirken
(oder mich zu oft entschuldigen, unaufmerksam sein, unsicher wirken, zum zehnten Mal nachfragen, blablabla),
ist das nicht beabsichtigt.
Josey. Epicgarantie.
Nehmt das bloß nicht ernst! D: -
Meine Welt
Mein Ehemann Kain!
:*
Freund und Helfer in der Not, immer da, steht er mir mit Rat und Tat zur Seite. Meine andere Hälfte! : D
Er verdient einfach einen Platz (
) in meiner Signatur! XD

-
Mein Support
Der In-Game-Charset-Generator!
Erstelle Random-NPCs mit Charsetteilen!
Diese Spiele finde ich toll und brauchen viel mehr Aufmerksamkeit!
Bastelt mal Banner! : D
-
Meine beendeten Contests
[Pixelcontest] Rund um den Kürbis

Abstimmung
Siegerehrung
Das Wunder der Berge

Abstimmung
Siegerehrung -
Meine Contests
Ein Schreibcontest in Arbeit! : D 
-
-
Joseys Spiele
-
Endless Ending
-
Scripted Desaster
Scripted Desaster
("nicht ganz so ernstes Projekt")
Ein verfressener Idiot und ein sarkastischer Workaholic treffen in einem dunklen Wald auf einen weißes Kaninchen...
Ein Auftragskiller jagt einem Meisterdieb hinterher, wobei nicht ersichtlich ist, wer eigentlich wen jagt...
Und eine "Kristallhöhle", sowie einen "Wald ohne Wiederkehr" gibts auch.
Das bedeutet doch Spaß... -
Pokémon EV
Pokemon EV
("Zeitvertreib nebenbei - Kreatief-Helfer")
Ist nur ein Pokemonspiel mit üblicher Story und nicht so üblicher Story.
Ist inzwischen alles schonmal dagewesen. XD -
Lost Island
Harvest Moon - Lost Island
(Arbeitstitel, "Eventtechnik-Projekt")
Ist momentan mein Hauptprojekt, weil bei EE die Scripts einfach fehlen :<
Das Spiel ist ein Harvest Moon Abklatsch. XD
Felder funktionieren, Tiere auch, Grafiken sehen schon gut aus, Maps sind fast fertig. Man kann in die Miene, man kann einkaufen. Auf dem Papier ist alles schon durchgeplant, einiges muss noch umgesetzt werden.
-
-
Joseys Fortschritt
-
Endless Ending
Story: 60%
Charas: 20%
Maps: 01%
Zeichnungen: 05%
Grafiken: 30%
Scripte: 70%
Musik: 00%
...ist nicht viel, huh? ^^° -
Scripted Desaster
Story: 10%
Charas: 60%
Maps: 30%
Zeichnungen: 01%
Grafiken: 60%
Scripte: 70%
Musik: 00%
Gut Ding... -
Pokemon EV
Story: 60%
Charas: 10%
Maps: 00%
Zeichnungen: 00%
Grafiken: 80%
Scripte: 90%
Musik: 70%
Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht... -
Lost Island
Story: 100%
Charas: 10%
Maps: 90%
Zeichnungen: 00%
Grafiken: 60%
Scripte: 90%
Musik: 00%
Das macht richtig Spaß XD
-
-
Huiii
Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.
Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Nur das Hide&Seek Skript ist noch nicht ganz so tauglich, da ich da auch einiges für die Gegner machen müsste.
Mein Wunschziel ist ja: Einfach nur Gegner z.B. benennen und Skript regelt den Rest. Das einzige was bleibt, ist "Eventfüllung"
vom Gegner selbst und das ist im Grunde nur copy-paste.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Versteh ich nicht. Mal in Paint oder so mal einen Automaten auf, mit gelabelten Zuständen und was in dem Zustand gilt ('SelfSwitch B = ON, Animation showing' ...) und die Übergänge ('Held ist maximal 5 Schritte entfernt', 'Held greift an', 'Held entfernt sich aus einem 8-Schritt-Radius' ...)
Zitat
1.) Gegner auf Map

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
Switches
Ich habe insgesamt Switches für 20 Gegner eingebaut. Grund dafür war, dass ich dann später
nur noch diese Switche zurücksetzen muss, wenn eine Instanz verlassen wird.
Sprich: Aktuell ist eine max. Gegneranzahl von 20 pro Instanz möglich.
Zu jeden Gegner gehören die folgenden Switches:
- GegnerXinRange - True, wenn Spieler die Mindestdistanz zum Gegner X unterschreitet
- GegnerXAnimation - False, solange Gegner X am Leben ist. *
- GegnerXBesiegt - True, sobald Gegner X besiegt wurde
- StopAll - "Globaler" Switch, der dafür sorgen soll, dass sich kein Gegner mehr auf der Map bewegt. Dieser SWith wird unter anderem auf ON gesetzt,
wenn ein Spieler mit Schatztruhen oder anderen Objekten interagiert. Nach Ende der Interaktion wird der Switch wieder auf OFF gestellt => d.h. bewegen sich
dann alle Gegner wieder
* Zweck hiervor: Nachdem ein Gegner besiegt wurde, wird eine "GegnerBesiegt" Animation abgespielt. Da
sich aber zu dieser Zeit der Spieler natürlich noch in Range zum Gegner befindet, würde die ,,GegnerAggro"-
Animation immer noch angezeigt werden. Deshalb setze ich den SWitch GegnerXAnimation auf true bevor die
Animation "GegnerBesiegt" angezeigt wird. Sprich: Der Zweck des Switch ist as Stoppen der Aggro-Animation, sobald
der Gegner besiegt wurde.
Range-Finder
Ist ein Parallel Process Event.
Berechnet alle 10 Frames die Distanz zwischen Spieler und GegnerX auf der Karte.
Gibt es mehr als einen Gegner auf der Map, werden diese auf die selbe Art im gleichen Event
abgefragt.
Das Event triggert dann den zum Gegner dazugehörigen Switch "GegnerXRange" auf TRUE, wenn
der Spieler zum Gegner die Mindestdistanz unterschritten hat. Ansonsten wird dieser Switch auf FALSE
getriggert.
MobAnimation - "Aggro Animation"
Ist ein Parallel Process Event.
Überprüft alle 2 Frames (ist Länge der Animation), ob die Aggro-Animation angezeigt wird oder nicht.
Das Anzeigen geschieht nur dann, wenn sich der Switch "GegnerXinRange" TRUE ist und "GegnerXAnimation" auf FALSE
(d.h. "Animation soll noch angezeigt werden").
Gegner-Event
Seite 1:
Diese Seite besitzt keine Conditions. Der Gegner bewegt sich einfach Random auf der Map.
Seite 2:
Condition: GegnerXinRange = TRUE.
Der Spieler hat nun die Mindestdistanz unterschritten und der Gegner verfolgt ihn per "Approach".
Bei Berührung wird der Kampf ausgelöst.
Wird der Gegner besiegt, wird zuerst der Switch "GegnerXAnimation" auf true gestellt, damit die Aggro-Animation
gestoppt wird. Danach wird die "GegnerBesiegt" Animation abgespielt.
Zum Schluss wird noch der Switch "GegnerXBesiegt" auf TRUE gestellt.
Kann der Spieler flüchten, wird der Gegner sich nur eine Schritte vom Spieler entfernen.
Seite 3:
Condition: StopAll = TRUE
"Globaler" Switch, der bewirken soll, das sich nichts auf der Map bewegt.
Gegner bewegt sich nicht.
Seite 4:
Condition: GegnerXBesiegt = TRUE
Komplett leeres Event ohne Grafik, da der Gegner ja bis zum Instanzreset nicht mehr existiert.
Diese Seite muss sich natürlich NACH Seite 3 befinden, da sonst der Gegner bei StopAll = TRUE angezeigt werden würde,
obwohl er bereits besiegt wurde.
Bemerkung:
Der Graph mag ein bisschen umständlich gezeichnet sein, aber wollte nur deutlich machen, dass bei StopAll = FALSE
der Gegner wieder zu seinem "normalen Verhalten" zurückkehrt.
Wie man sieht, verwende ich aktuell keine SelfSwitches, da es technisch auf diese Weise nicht möglich ist.
Es wäre aber doch evtl. denkbar mit Skripttechnik das ganze so zu reduzieren, dass man nur noch die "GegnerXBesiegt"-Switches
benötigt, da die ja resettet werden müssen beim Verlassen einer Instanz.
Das Problem bei der aktuellen Eventlösung ist, dass ein fremdes Event nicht den SelfSwitch eines anderen Events triggern kann.
Meine Lösung würde in die folgende Richtung gehen:
Seite 1 - keine Condition
Seite 2 - Condition: SelfSWitchA == TRUE
Seite 3 (NEU) - Condition: SelfSwitch B == TRUE
Seite 4 - Condition: StopAll == TRUE
Seite 5 - Condition: GegnerXbesiegt == TRUE
Seite 3 bräuchte man nun vermutlich, um zu verhindern, dass die Aggro-Animation weiterhin angezeigt wird.
Ich hab es mir so gedacht: Wird der Gegner besiegt (Seite 2), so wird der Self Switch B getriggert. Dieser sagt dem Skript
"Hör auf die Animation über Gegner X anzuzeigen". Seite 3 könnte dann ein Parallel Process/Autorun Event sein, das nur die "GegnerBesiegt"-
Animation abspielt und danach den Switch "GegnerXBesiegt" auf ON stellt.
Meine größte Sorge ist aber die Performance. Mein Plan wäre es ja, den Gegner-Events Namen zu geben wie "EnemyMap" und das SKript
sucht sich gerade diese Events raus. Aber natürlich müssten dann einmal alle Events einer Map durchlaufen werden und ich weiß nicht, wie lange
soetwas dauert wenn man Anzahl der Events > 100 hat. Evlt. könnte man einmalig beim Betreten einer Map die Events durchgehen, sich diese
für die aktuelle Map merken und beim Betreten einer neuen Map wieder verwerfen.
Zusätzlich könnte man dem Skript auch nur die MapIDs angeben, auf denen Gegner überhaupt möglich sind. Somit könnte sich der Skript
das Event-Suchen in z.B. Städten direkt sparen. Und gerade solche Maps haben ja eine höhere Anzahl an Events.
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Zitat
Es wäre aber doch evtl. denkbar mit Skripttechnik das ganze so zu reduzieren, dass man nur noch die "GegnerXBesiegt"-Switches
benötigt, da die ja resettet werden müssen beim Verlassen einer Instanz.
Ist eine Instanz eine einzelne Map oder eine Menge von Maps?
Ich denke, man könnte auch diese Switches durch SelfSwitches ersetzen, sollange noch einer frei ist im Event.
Aber klingt doch machbar. Man baut sich einen OnMapEnemy-Manager, der mit allen Event-IDs initialisiert wird, die er verwalten soll. Dann wird Game_Map bei jedem Update diesen Manager auch updaten und dann spielt der Manager halt für alle Events die er managed den Automaten durch. Die Automatenzustände muss er nichtmal doppelt speichern, sondern verwendet einfach die SelfSwitches der Events, um zu ermitteln in welchem Zustand der jeweilige Automat gerade ist. So wie Du das bereits alles durchgeplant hat, klingt das doch gut implementierbar.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
class OnMapEnemy_Manager def setup( event_ids ) end def update end def check_alive( event_id ) end def check_distance( character_A, character_B ) end def change_state_to_wander( event_id ) end def change_state_to_chase( event_id ) end end class Game_Map # alias ... def initialize @ome_manager = OnMapEnemy_Manager.new end def setup( map_id ) @ome_manager.setup( @map.events.values.select{|ev| ev.name.include? "BöserGegner" }.map{ |ev| ev.id } ) end def update @ome_manager.update end end |

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Benutzerinformationen überspringen
Motto: Aufgeben ist es, was den Menschen tötet. Nur der Mensch, der sich weigert aufzugeben, hat sich das Recht verdient, auf dem glanzvollen Pfad der Menschheit zu wandeln.
In den meisten Fällen wird es eine Menge an Maps sein und nur in Ausnahmen eine einzelne Map.
Deshalb würde ich den "GegnerXBesiegt" Switch behalten, da ja folgendes auftreten könnte:
Eine Instanz besteht aus MapID 1-3. Der Spieler besiegt alle Gegner in der Instanz und verlässt sich danach. Der Ausgang
der Instanz befindet sich zB auf MapID 1. Jetzt müsste der Skript ja - der aktuell auf MapID1 ausgeführt wird - auf die SelfSwitches der Events der
Map 2 und 3 auch noch zugreifen.
Und wenn ich das gerade so schreibe, fällt mir auf, dass er das ja in jedem Fall machen muss, alleine, um die SelfSwitches der Gegner
zurückzusetzen ^^.
Und noch eine Kleinigkeit: Wie könnte ich denn in dem Konstrukt am geschicktesten die Bedrohungs-Reichweite angeben?
Am besten, indem ich die Gegner so benenne ,,MapEnemy(Range)" oder? Da könnte ich ja aus dem Eventnamen die Range extrahieren
und in check_distance verwenden.
Bei der Range hab ich mir ja überlegt, dass ich das mit dem guten alten Pythagoras in der Eben machen kann:
|
|
Quellcode |
1 |
distance = sqrt ( (x_player - x_enemy)^2 + (y_player_ - y_enemy)^2 ) |
Wäre damit einfach möglich oder? Müsste man da noch irgendwas an Rundungen anstellen? Da ja bei dem Ergebnis natürlich
auch Nicht-Ganzzahlen rauskommen können, aber die Distanz ja meistens mit Ganzzahlen verglichen wird, wie zB bei dem
"Distance Skript".
-
Projekte -
Tutorials & Hilfreiches aus der Eventtechnik
[Tutorial] Skills, Stats und Bosse - So erstellt ihr einen guten Bosskampf
[Tutorial] Kampf - Unendlich Gegner erscheinen lassen
[Tutorial] Kämpfe, Klassen und Balancing
[Tutorial] Entwickler Talk: Skalierungen

NPC verfolgt Held durch Türen

Pokemon- Fangskript

Monstergruppenführer

Automatisches prioritätsgesteuertes Anordnen von Bildern

Doppelte Eventfunktionen auf Map

Objekte schieben & ziehen
Zitat
Und wenn ich das gerade so schreibe, fällt mir auf, dass er das ja in jedem Fall machen muss, alleine, um die SelfSwitches der Gegner
zurückzusetzen ^^.
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class OnMapEnemy_Manager Instances = { :all_instances => [12,17,13,15,20,21,22], :woods => [12,13,17], :ruins => [15], :ship => [20, 21, 22] } def reset_instance( identifier ) instance = Instances[identifier] return if instance == nil instance.each do |map_id| load_event_ids_from_map( map_id ).each do |event_id| reset( map_id, event_id ) end end end end |
Wenn Du sonst keine Attribute brauchst, wäre das eine Möglichkeit. Außer den Wert im Eventnamen oder einem Kommentar auf einer der Eventseiten unterzubringen wüsste ich auch keine praktikable Alternative.
Zitat
Und noch eine Kleinigkeit: Wie könnte ich denn in dem Konstrukt am geschicktesten die Bedrohungs-Reichweite angeben?
Am besten, indem ich die Gegner so benenne ,,MapEnemy(Range)" oder? Da könnte ich ja aus dem Eventnamen die Range extrahieren
und in check_distance verwenden.
Naja, Du würdest wahrscheinlich <= abfragen und nicht ==. Ansonsten musst Du dir überlegen, ob Du auf einer Map wo die Figuren sich eh nicht diagonal bewegen es nicht reicht die Cityblockdistance zu verwenden, die ohne Quadratwurzel auskommt. Alternativ statt mit der Distance mit Distance² zu vergleichen - weil wenn Du 20mal pro Frame es vermeiden kannst die Wurzel zu ziehen, hast Du 20 aufwändige Rechenschritte wegoptimiert.
Zitat
Wäre damit einfach möglich oder? Müsste man da noch irgendwas an Rundungen anstellen?

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Ähnliche Themen
-
RGSS 1 Probleme & Talk »-
Map Freeze - Menu Frage
(18. Juni 2014, 14:11)
-
RGSS 1 Probleme & Talk »-
Questlog 2.0 wird nicht angezeigt
(14. Juli 2008, 20:23)
-
RGSS 1 Probleme & Talk »-
Zeit
(24. Dezember 2007, 13:57)
-
RGSS 1 Probleme & Talk »-
Schadenssprite / Zahl anzeigen
(13. November 2007, 20:43)
-
RGSS 1 Probleme & Talk »-
Ein Tagebuch
(4. Juni 2006, 12:29)





