RPGVX.net

  RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet von: DimiFW am Februar 03, 2010, 09:08:08

Titel: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 03, 2010, 09:08:08
Ist es möglich dass die Monster die auf einer Map in den Zufallskämpfen auftauchen später mit anderen ersätzt werden wenn im späteren spielverlauf man wieder in das gebiet muss?

Geht das mit irgendeinem Event/Script, oder hilft alles nichts und ich muss die map kopieren, bei der kopierten andere zufallsmonster auswählen und den helden dann halt an der späteren stelle des spiels auf die kopie teleportieren lassen?
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: _D3nn!§_ am Februar 05, 2010, 23:01:27
Du könntest das irgendwie mit einen parallelevent die Schritte abzählen lassen und dann die Monster dadurch kommen lassen und das nachher mit einen Switch ändern, sodass nachher andere "Troops" kommen oder so.
Ich kenn keinen andere Alternative zurzeit.
Ich versuche mal aus Langeweile an einen solchen Event zu basteln und werde mich dann bei dir wieder melden :D .
Wenn das alles nicht hilft, musst du wohl oder übel die Map kopieren.
Ach ja, einen Skript dafür kenne ich zurzeit nicht :) .


_D3nn!§_
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 05, 2010, 23:25:34
Naja das handling ist nicht sehr leicht, aber es funktioniert:
class Game_Interpreter
  def change_encounterlist(area_id,encounterlist)
    $data_areas[area_id].encounter_list = encounterlist
  end
end

Einfach per Call Script:
change_encounterlist(area_id,encounterlist)
eingeben und es wird verändert. area_id ist die ID des Gebiets, die Gebiete werden ja so benannt AREA001 du musst die Zahl übernehmen in diesem Fall die 1. Die encounterlist wird in eckigen Klammern übergeben und würde zum Beispiel so aussehen:
[1,2,3,4]
Das würde bedeuten, dass das Gebiet ab jetzt die Gegnertruppen 1,2,3 und 4 beinhaltet.

MfG
Deity
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: _D3nn!§_ am Februar 06, 2010, 14:05:40
Mist, Ðeity war schneller als ich xD .
Trotzdem möchte ich dir mein selbstgebasteltes Event geben :
http://www.file-upload.net/download-2232479/Andere-Troops-per-Event.rar.html (http://www.file-upload.net/download-2232479/Andere-Troops-per-Event.rar.html)
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Seth am Februar 06, 2010, 21:52:02
Ah, mist. Das wäre natürlich auch eine Option gewesen. Ich hatte das ganze als Event gemacht, sodass die Monster auf der Map rumlaufen. Das ganze basiert auf einem Trick von Kyoshiro, den er in den Videotutorials vorgestellt hatte. (Mit kleinen anpassungen, weil das wie bei Kyoshiro nur mit Items klappt. ihr müsst dann ein commmon event setzen. Wenn sich jemand dafür interessiert, soll er mir eine PN schicken)
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 09, 2010, 09:31:59
Naja das handling ist nicht sehr leicht, aber es funktioniert:
class Game_Interpreter
  def change_encounterlist(area_id,encounterlist)
    $data_areas[area_id].encounter_list = encounterlist
  end
end

Einfach per Call Script:
change_encounterlist(area_id,encounterlist)
eingeben und es wird verändert. area_id ist die ID des Gebiets, die Gebiete werden ja so benannt AREA001 du musst die Zahl übernehmen in diesem Fall die 1. Die encounterlist wird in eckigen Klammern übergeben und würde zum Beispiel so aussehen:
[1,2,3,4]
Das würde bedeuten, dass das Gebiet ab jetzt die Gegnertruppen 1,2,3 und 4 beinhaltet.

MfG
Deity

hm, ich habs ausprobiert aber irgendwie bekomm ichs nicht hin mit dem script-code.

change_encounterlist(area_1,[1,2,3,4])

so muss das doch aussehen, oder mach ich das falsch?
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 09, 2010, 15:36:38
change_encounterlist(1,[1,2,3,4])
Würde in diesem Fall passen. ^^

MfG
Deity
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 09, 2010, 17:38:14
change_encounterlist(1,[1,2,3,4])
Würde in diesem Fall passen. ^^

MfG
Deity

"Script 'NPC Changer' line 3: NoMethodError occured.

undefined method `encounter_list=' for nil:NilClass"

bitte übersetzen wo der fehler ist ^^'
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 09, 2010, 19:08:15
Der Fehler liegt darin, dass du entweder einen zu hohen wert als area_id benutzt hast, oder eben kein Integer sondern ein String oder etwas anderes, von daher greift das Script auf etwas zu, was nicht exestiert. ;)
Also nicht auf ID's zugreifen, die zu hoch sind.
Übrigens werden die Gebiete für jede Map immer von anfang an gezählt, sprich mit dem Script kannst du nur auf die Areas (Gebiete) zugreifen, die auf der Map sind, auf der du dich gerade befindest. Von anderen Maps lässt sich die ARea nicht verändern. :)

MfG
Deity
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 10, 2010, 03:44:51
Der Fehler liegt darin, dass du entweder einen zu hohen wert als area_id benutzt hast, oder eben kein Integer sondern ein String oder etwas anderes, von daher greift das Script auf etwas zu, was nicht exestiert. ;)
Also nicht auf ID's zugreifen, die zu hoch sind.
Übrigens werden die Gebiete für jede Map immer von anfang an gezählt, sprich mit dem Script kannst du nur auf die Areas (Gebiete) zugreifen, die auf der Map sind, auf der du dich gerade befindest. Von anderen Maps lässt sich die ARea nicht verändern. :)

MfG
Deity

ach mist, jetzt hab ichs. hätte ich auch vorher sagen müssen...ich löse meine zufallskämpfe nicht über die gebietfunktion sondern stelle das allgemein für jede map ein. die bereiche sind so schlecht einzuteilen bei mir dass das ewiges gefummel wäre für die zufallskämpfe areas zu erstellen.

alsoooo, im endeffekt soll das script nicht die monster einer area ändern sondern einer map...reicht das wenn ich das "area" im script in "map" ändere?
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 10, 2010, 13:08:34
Nein eigentlich nicht. :D
Ich verstehe dein Problem jetzt aber garnicht mehr, könntest du es anders formulieren? ^^
Vielleicht auch ein Teil des Scripts zeigen ich müsste es daraus erkennen können.

MfG
Deity
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 10, 2010, 16:41:41
Nein eigentlich nicht. :D
Ich verstehe dein Problem jetzt aber garnicht mehr, könntest du es anders formulieren? ^^
Vielleicht auch ein Teil des Scripts zeigen ich müsste es daraus erkennen können.

MfG
Deity


ok, also nochmal ganz langsam und ausführlich von vorne ^^

ich hab in meinem spiel eine map, nennen wir sie "Karte1". bei dieser Karte1 hab ich in den map-eigenschaften folgendes eingestellt:

http://img704.imageshack.us/img704/7931/unbenanntck.jpg

der grund wieso ich das so habe und nicht mit der "Area-Funktion" ist, dass auf der Karte1 eine stadt und ein kleiner wald vorhanden ist und die monster nur auf den grasflächen in der stadt und in dem wald erscheinen sollen. jetzt aber für jede einzelne fläche eine Area zu erstellen ist mir zu umständlich. deshalb hab ich zwischen den stellen wo monster erscheinen sollen und zwischen den stellen wo keine erscheinen sollen ein event erstellt das automatisch startet und entweder zufallskämpfe an oder aus schaltet. bisschen kompliziert gelöst, aber durchaus das richtige für meine wünsche.

das sieht in etwa so aus:

http://img710.imageshack.us/img710/5516/unbenanntxq.jpg

Karte1 ist die erste karte auf der man im spiel ist und spielt. deshalb sind die monster dort noch relativ schwach und bringen kaum was. später im spielverlauf, kurz vorm ende, landet man wieder dort. da sollen dann allerdings andere monster auftauchen da die alten ja zu schwach wären und zu wenig erfahrung bringen würden.

im endeffekt will ich jetzt also nur ein script dass die map-eigenschaften von karte1 so abändert dass die zufallskämpfe nicht mehr gegen "hase" "kuh" "schaf" sind sondern halt gegen andere monstergruppen.

hoffe dass war jetzt ausführlich genug ^^

ps: danke für deine große geduld mir dabei zu helfen ^^'
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 10, 2010, 16:59:43
Alter Post:
OMG. Da lese ich ein mal Gebiet im ersten Beitrag, und interpretiere da zu viel rein. xD
Naja jetzt sieht das ganze ein bischen anders aus. :)

Hier das Script:
class Game_Map
  def encounter_list=(encounterlist)
    @map.encounter_list = encounterlist
  end
end
class Game_Interpreter
  def change_encounter(encounter)
    $game_map.encounter_list = encounter
  end
end

Benutzung:
Call Script
change_encounter([encounter_list])

[encounter_list] muss eben wieder die ID's der Monster beinhalten.


Eine Schwäche hat dieses System aber schon, das Problemm liegt darin, dass die Game_Map ihre Daten aus dem nicht überschreibbahren "Map_Datas" nimmt. Das heist ich kann die Daten für die Encounterlist nur indirekt überschreiben. Beim verlassen der Map werden diese wieder zu den uhrsprünglichen. :(
Ich schreibe dir noch ein Addon, welches das ganze automatisiert, aber solange müsstest du das ganze halt mit einem Event regeln.

Beispiel:
Trigger: Autostart
CB: Switch:Neue Monster == ON
Call Script: change_encounter([20,22,23])
Erase Event
end

Das Event würde beim begehen der Map alles regeln, soweit der Schalter an ist, der sagt, dass neue Gegner da sein sollen. ^^

MfG
Deity

Edit:
Hab es automatisiert, du musst halt die Mapid, die Liste der auftauchenden Monster und den Schalter der bestimmt, ob neue Monster da sein sollen oder nicht wählen.
Falls du also der 3. Map die Monster 5,7,9 zuweisen willst, nachdem der 15. Schalter aktiviert worden ist, würde dies so aussehen:

3 =>    [[5,7,9],                    15],


Und hier natürlich das Script:
module ENCOUNTER
  MAP_AND_MONSTER = {
  # Map_ID  #Monster to encount    #Switch_ID
  1 =>      [[1,2,3],              1],
  2 =>      [[5,6,7],              1],
  }
end
class Game_Map
  alias setup_encounter setup
  def setup(map_id)
    setup_encounter(map_id)
    if ENCOUNTER::MAP_AND_MONSTER.has_key?(@map_id) && $game_switches[ENCOUNTER::MAP_AND_MONSTER[@map_id][1]] == true
      change_encounter_list(ENCOUNTER::MAP_AND_MONSTER[@map_id][0])
    end
  end
  def change_encounter_list(encounterlist)
    @map.encounter_list = encounterlist
  end
end

MfG
Deity
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: DimiFW am Februar 11, 2010, 02:04:19
wuhu göttlich, klappt perfekt so wie ichs will. danke dir tausend mal ^^
Titel: Re: Monster in Zufallskämpfen in einem Gebiet nach bestimmten Ereignis ändern
Beitrag von: Ðeity am Februar 11, 2010, 14:04:30
Zitat
wuhu göttlich, klappt perfekt so wie ichs will. danke dir tausend mal ^^

Danke, und habe ich gern gemacht. ^^
Ich hoffe die Bedinung war nicht all zu schwer, aber mir ist nichts einfacheres bzw. besseres eingefallen.
So oder so, ich mache hier zu, da die Sache anscheinend geklärt wurde. ;)

MfG
Deity
SimplePortal 2.3.3 © 2008-2010, SimplePortal