Dear visitor, welcome to RPG Studio - Make your World real. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

1

Saturday, April 6th 2019, 7:13pm

Gegnergruppen zusammenführen

Hallo.

Bei diesem Skript geht es darum, bis zu 4 Gegnergruppen zusammen zu führen.
Wenn der Spieler von 2,3 oder 4 Events umgeben ist, welche ein "Battle process" beinhalten (sagen wir mal in diesem fall ein schleim), möchte ich, dass er nicht einzeln gegen jeweils einen Schleim kämpft, sondern stattdessen mit einer von mir vordefinierten "troop" in diesem Fall entweder ein großer Schleim oder 4 Kleine (nur um die möglichkeiten mal darzustellen)

ist das verständlich?
Lg Cryztal

Playm

RPG Studio Webmaster

  • Send private message

2

Saturday, April 6th 2019, 8:34pm

Aber wie? Also wie stellst Du dir vor, dass ein Troop ausgewählt werden soll, wenn jetzt Troop A, B und C in der Nähe sind? Wird das global im Script definiert? Das wären dann ziemlich viele mögliche Parings. Wird das im Event geregelt? Wenn ja, wie?

Hier mal ein Script, dass dir für ein Event die umgebenden Battle-Event-IDs (nicht Troop-IDs) ausgibt.

Spoiler: Event

Ruby Source code

1
p near_battler
highlight to read


Spoiler: Script Editor

Ruby Source code

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#==============================================================================
# ** Game_Event
#==============================================================================
 
class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # * Check whether this Event has a 'Battle Processing' command on current
  #   event page.
  #--------------------------------------------------------------------------
  def has_battle_processing?
    @battle_flag == true
  end
  #--------------------------------------------------------------------------
  # * Clear Battle Flag
  #--------------------------------------------------------------------------
  def clear_battle_flag
    @battle_flag = false
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  alias_method(:org_refresh_wo_battle_flag, :refresh)
  def refresh
    org_refresh_wo_battle_flag
    @battle_flag = @list.any?{|command| command.code == 301}
  end
end
#==============================================================================
# ** Interpreter
#==============================================================================
 
class Interpreter
  def near_battler
    this = get_character(0)
    events = $game_map.events.values.select do |ev|
      next unless ev.has_battle_processing?
      x_diff = (ev.x - this.x).abs
      y_diff = (ev.y - this.y).abs
      x_diff + y_diff < 3
    end
    events.map{|ev| ev.id }
  end
end
highlight to read

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

3

Saturday, April 6th 2019, 10:03pm

ich verstehe grade nicht wie ich die

Ruby Source code

1
p near_battler
anwende.

hab ich was falsch gemacht?
Bild
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

4

Thursday, April 11th 2019, 5:22pm

bump*
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

5

Monday, April 15th 2019, 1:42pm

okay habs jetzt in einem neuen projekt hinbekommen. allerdings weiß ich nicht genau wie ich die werte verarbeiten kann die er mir anzeigt. also die id's von den Battle Events. bzw. wie kann ich es jetzt hinbekommen daraus ein kampfevent entstehen zu lassen?
Lg Cryztal

This post has been edited 1 times, last edit by "Cryztal" (Apr 16th 2019, 3:00am)


Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

6

Tuesday, April 16th 2019, 1:44pm

Hier by the way noch ein Nachtrag zu dem Thema: Was ich bräuchte wäre eigentlich viel schmaler. Ich muss nur wissen ob ein von mir vormarkiertes event quasi in unmittelbarer reichweite des spielers ist. also wenn ich bspw 2 Wölfe um mich herum sehe, dann kann ich das als condition auf den entsprechenden Fight meiner Wahl laufen lassen. Es ist nur wichtig, dass das Spiel weiß: AHA da stehen jetzt also 2 Wölfe und 1 Schleim um den Spieler herum. Ich würde dann sowieso vermutlich die Monster nicht mixen, sondern eher spezifische Kombinationen kämpfen lassen alá: Großes Wolfsrudel, Riesenschleim, etc.
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

7

Thursday, April 18th 2019, 6:38pm

Das Skript ist wirklich sehr wichtig für mich. ich bump nochmal falls jemand helfen mag.
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

8

Sunday, April 28th 2019, 7:39pm

Bump
Lg Cryztal

Playm

RPG Studio Webmaster

  • Send private message

9

Monday, April 29th 2019, 10:16pm

Spoiler

Ruby Source code

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#==============================================================================
# ** Game_Map
#==============================================================================
class Game_Map
  attr_reader :battle_troop_events
  def setup_battle_troop_events
    @battle_troop_events = {}
  end
  def near_battle_troop_events( max_distance = 4 )
    battle_troop_events.select do |event_id, troop_id|
      e = events[event_id]
      distance = (e.x - $game_player.x).abs + (e.y - $game_player.y).abs
      distance < max_distance
    end
  end
end
#==============================================================================
# ** Game_Event
#==============================================================================
class Game_Event
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  alias_method(:org_refresh_wo_battle_flag, :refresh)
  def refresh
    org_refresh_wo_battle_flag
    battle_commands = @list.select{|command| command.code == 301}
    $game_map.setup_battle_troop_events if not $game_map.battle_troop_events
    if battle_commands.empty?
      $game_map.battle_troop_events.delete(@id)
    else
      first_battle_command = battle_commands.first
      $game_map.setup_battle_troop_events if not $game_map.battle_troop_events
      $game_map.battle_troop_events[@id] = first_battle_command.parameters[0]
    end
  end
end
#==============================================================================
# ** Interpreter
#==============================================================================
class Interpreter
  def show_near_battler
    p $game_map.near_battle_troop_events
  end
  def show_all_battler
    p $game_map.battle_troop_events
  end
end
highlight to read


Spiel mal mit den folgenden Event-ScriptCalls herum:

Ruby Source code

1
show_all_battler

Ruby Source code

1
show_near_battler


Die liefern dir einen Array der Paare enthält. Jedes Paar ist [Event ID, Troop ID] also kannst Du gucken, welche Troops da sind und vor allem aus welchem MapEvent sie kommen.
Aber ich habe noch keine Ahnung, wie Du das dann im Event verwalten willst. .-.

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

10

Tuesday, April 30th 2019, 12:34pm

jetzt könnte ich entweder per conditional branch als script abragen ob 1 und/oder 2 und/oder 3 = true ist, und dann die nächste condition reinmachen und entsprechend andere battleevents aufrufen lassen, oder (wenn es sowas überhaupt gibt, aber denke schon) man fragt den inhalt des arrays ab und definiert quasi in einem Modul ein anderes Battleevent bzw andere Gegner. Das Modul würde dann vom größten Troop (anzahl an monstern oder name der troop in der datenbank können hier die maßstäbe sein für "groß") ein Battleevent erzeugen. Mal ein Beispiel:

um den Gegner stehen 2 Harpyien, 1 Schleim und 2 Wölfe.
Das Modul erkennt jetzt jedoch nur die Kombination 2 Wölfe oder 2 Harpyien oder 1 Schleim. Die Harpyien haben im Troopname "2 Harpyien (1)". Die Wölfe haben im Troopname "kleines Wolfsrudel (2)"
Das Skript entscheidet jetzt also: Aha. 2>1 also das kleine Wolfsrudel zuerst in den Kampf. Der Schleim ist in seiner Anzahl allein und hat keinen Zahlenwert im Troopname, daher kommt er zuletzt.

Wie gesagt kann das ganze natürlich aber auch über diese conditional abfrage laufen. Ich preferiere jedoch die Variante mit Modul, da man diese Abfrage sonst in jedes einzelne Event stecken muss und das klingt nicht nach der performantesten variante.

Bevor ich es vergesse ist jedoch noch eine Sache ganz wichtig: Die Events, die am Kampf beteiligt waren, müssen nach Kampfende (erfolgreich oder nicht spielt dabei keine rolle) den Self-Switch A auf ON umstellen.
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

11

Monday, May 6th 2019, 5:28am

*push
Lg Cryztal

Playm

RPG Studio Webmaster

  • Send private message

12

Monday, May 6th 2019, 10:45pm

Hier ist meine Idee. Ich glaube mit diesem System müsstest Du zurecht kommen.

Bedingung: In einem Kampf, der durch dieses System erzeugt wird, gibt es nie mehr als X Gegner gleichzeitig, zum Beispiel X=3.

Vorbereitung: Unter Database/Troops werden Troops für einzelne OnMap-Gegner angelegt mit dem Schlüssel "[Ghost]" oder "[Basilisk]" im Troop-Namen.
Da Du dein Spiel perfekt kennst, legst Du auch für alle möglichen Kombinationen Troops an, die dann zum Beispiel "[Basilisk,Basilisk,Ghost]" im Troop-Namen haben. Die Schlüsselelemente (nicht die Battler, aber die kommagetrennte Liste im Namen) muss alphabetisch sortiert sein.

Die einzelnen Events auf der Map haben dann folgenden Event-Code. Als Beispiel nehmen wir einen fiesen Geist, der auf der Map rumfliegt.
  • @> Script: invite_to_battle()
    @> BattleProcessing: [Ghost]
    @> Script: resolve_after_battle()

Hierbei wählt invide_to_battle alle in der Nähe befindlichen Events mit einem BattleProcessing aus (maximal X=3) und ändert dann den folgenden BattleProcessing-Befehl dahingehend ab, dass stattdessen ein Kampf mit einem Troop der einen passenden Schlüssel im Namen hat stattfindet.
Der Befehl resolve_after_battle nimmt dann alle Events, die zum Kampf beigetragen haben und setzt deren SelfSwitch auf ON.

Kein Wunschkonzert: Falls Du fragen willst: Oh, kann ich damit Kämpfe machen, wo wenn ich fliehe ein paar der Events nur resolved werden? Nein. Viel zu kompliziert, geh weg. :I

Gute Idee, wo ist das Script: Noch nicht fertig. Die Methode invite_to_battle habe ich noch nicht ganz geschrieben. Es fehlt noch das Anpassen des folgenden Battle-EventCommands, der Rest steht. Aber Du kannst schonmal die Troops mit den besonderen Namen anlegen, wenn Du das System so später benutzen möchtest.
Alternativ: Wenn jemand anderes gerade mehr Zeit hat und das System fertigschreiben möchte, kann ich demjenigen meine angefangenen Scripte geben.

Edit Script ist soweit fertig, muss nurnoch den Code aufräumen und kommentieren. :dance:

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

13

Tuesday, May 7th 2019, 6:27pm

Wäre gut, wenn X = 4 Gegner sind.

Alles amdere ist sehr verständlich und klar. Ich freue mich drauf dein Skript einzubauen!
Und danke vielmals für deine Hilfe!
Lg Cryztal

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

14

Saturday, May 11th 2019, 11:05am

push*
Lg Cryztal

Playm

RPG Studio Webmaster

  • Send private message

15

Wednesday, May 15th 2019, 1:02am

Willkommen in Joseys Welt. Sie bietet sicher eine Selbsthilfe-Gruppe an, wo man sich über seine Gefühle austauschen kann, wenn man auf Playm wartet. ;)

Habe dir eine PN geschickt. Ich komme sicher irgendwann mal dazu, das Script aufzuräumen.

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

16

Wednesday, May 15th 2019, 6:00pm

Merk schon D:

Besten Dank dir :)
Lg Cryztal

Josey

Storyteller

Motto: "Was du nicht willst, das man dir tu', füge keinem And'ren zu!"

  • Send private message

18

Friday, May 17th 2019, 4:50pm

Tatsächlich empfinde ich das Warten gar nicht als schlimm, ich freu mich einfach nur, wenns dann klappt, egal, ob ich Hilfe beim Scriptbasteln oder ein fertiges Script krieg XD *leicht glücklich zu machen*

*lol* XD
Von mir hätte Playm längst die Demo ins Postfach geklatscht gekriegt XD
Cryztal, mach mal hinne! :P
Notfalldiscord: Hier klicken


  • 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:
      Bild
      Bild
      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
      Einige Ressourcen, vor allem Baby-Tiere, aber auch alle Requests, die ich erfüllt habe.
      Bild

      Bild

      In unregelmäßigen Abständen fasse ich alles Neue, was so im Studio passiert ist, zusammen. -Pausiert-
      Bild
    • Meine Fähigkeiten
      Maker: :rmxp: XP
      :rainbow: Pixeln: :star: :star: :star: :star: :star-empty: :star-empty:
      :image: Mappen: :star: :star: :star: :star: :star: :star-empty:
      :wrench-screwdriver: Eventen: :star: :star: :star: :star: :star-empty: :star-empty:
      :puzzle: Scripten: :star: :star-half: :star-empty: :star-empty: :star-empty: :star-empty:
      :music: Komponieren: :star-half: :star-empty: :star-empty: :star-empty: :star-empty: :star-empty:
    • (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! :heart_full: :*
      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 ( :medal: ) in meiner Signatur! XD
      :heart-half:
    • 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
      Bild
      Abstimmung
      Siegerehrung

      Das Wunder der Berge
      Bild
      Abstimmung
      Siegerehrung
    • Meine Contests
      Bild Ein Schreibcontest in Arbeit! : D Bild
  • Joseys Spiele

    • Endless Ending
      :rmxp: Endless Ending
      (Arbeitstitel, "ernstes Projekt")

      Bild

      Eine Reise durch die Wüste.
      Sieben mächtige Gegenstände.
      Unendlich viele Aufgaben.

      Und die Götter haben die Würfel.
    • Scripted Desaster
      :rmxp: 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
      :rmxp: 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
      :rmxp: 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
      :hourglass: Story: 60%
      :foaf: Charas: 20%
      :leaf: Maps: 01%
      :ruby: Zeichnungen: 05%
      :color: Grafiken: 30%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      ...ist nicht viel, huh? ^^°
    • Scripted Desaster
      :hourglass: Story: 10%
      :foaf: Charas: 60%
      :leaf: Maps: 30%
      :ruby: Zeichnungen: 01%
      :color: Grafiken: 60%
      :clipboard: Scripte: 70%
      :music-beam-16: Musik: 00%
      Gut Ding...
    • Pokemon EV
      :hourglass: Story: 60%
      :foaf: Charas: 10%
      :leaf: Maps: 00%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 80%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 70%
      Nicht ernstnehmen XD Das mache ich nur, wenn woanders nix mehr geht...
    • Lost Island
      :hourglass: Story: 100%
      :foaf: Charas: 10%
      :leaf: Maps: 90%
      :ruby: Zeichnungen: 00%
      :color: Grafiken: 60%
      :clipboard: Scripte: 90%
      :music-beam-16: Musik: 00%
      Das macht richtig Spaß XD
  • Huiii

    Bitte klicken Sie weiter. Hier gibt es nichts zu sehen. Nichts. Hören Sie? Nichts.

Cryztal

Knappe

  • "Cryztal" started this thread

Motto: Ich mag das Gefühl von völliger Ungezwungenheit. Dann bin ich am besten, würde ich sagen.

  • Send private message

19

Saturday, May 18th 2019, 6:25am

Uff. Jetzt kommt der Erwartungsdruck. xD
Lg Cryztal

Social bookmarks