RPGVX.net

  RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet von: tobiasruf am Juni 25, 2010, 16:19:00

Titel: Event kopieren
Beitrag von: tobiasruf am Juni 25, 2010, 16:19:00
Hat jemand eine Idee wie man per Event im Spiel kann ein anderes Event kopieren ?
z.B :
Event (Parrarel Prozess) :
Hier gibt man den Auftrag ein event zu kopieren
Event (Das man kopieren will)
und
Kopiertes Event

mfG tobiasruf
Titel: Re: Event kopieren
Beitrag von: Fiyehman am Juni 25, 2010, 17:47:59
Mach das Event als Common Event und dann kannst du machen:

Parallel Process
call common event

und dann soweiter, wie dus halt machen willst
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 25, 2010, 20:25:03
hi für mich iust die frage auch interessant da ich grafiken bei dem event mit bei haben möchte oder sogar mehr ...
also ich würde am liebsten direkt auf der ma das event erstellen mit grafik und alles und dann dies als template dummy nutzen
Titel: Re: Event kopieren
Beitrag von: tobiasruf am Juni 25, 2010, 21:55:10
Als Common Event kann ichs nicht machen weil das Event ne Grafik Braucht
Titel: Re: Event kopieren
Beitrag von: Fiyehman am Juni 25, 2010, 21:59:07
Eventuell ein Mini-Script? Deity ist da die richtige Adresse^^
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 25, 2010, 22:47:11
heyho,

hier haste mal n script für:

#==============================================================================
# ** Events klonen V1.1
#==============================================================================

class Spriteset_Map
  def refresh
    $game_map.need_refresh = true
    unless @character_sprites == nil
      for sprite in @character_sprites
        sprite.dispose
      end
    end
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  end
end

class Game_Map
  def add_event(map_id,id,x,y)
    s = 1
    (1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
    map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
    ev = map.events[id]
    ev.id = s
    @events[s] = Game_Event.new(@map_id, ev)
    @events[s].moveto(x, y)
    return @events[s].id
  end
end

aufrufen tuste es über nen Eventbefehl und zwar mit folgenden zwei befehlen:

$game_map.add_event(map_id,event_id,X,Y)
$scene = Scene_Map.new

map_id: Die ID der Map von der kopiert werden soll
event_id: Die ID vom Event, das kopiert werden soll
X: die X-Koordinate des Events
Y: Die Y-Koordinate des Events

lg flipely

PS: das $scene = Scene_Map.new muss noch dazu nehmn, da es sonst die Map nich automatisch refreshen würde /=
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 26, 2010, 16:06:31
heyho,

hier haste mal n script für:

#==============================================================================
# ** Events klonen V1.1
#==============================================================================

class Spriteset_Map
  def refresh
    $game_map.need_refresh = true
    unless @character_sprites == nil
      for sprite in @character_sprites
        sprite.dispose
      end
    end
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  end
end

class Game_Map
  def add_event(map_id,id,x,y)
    s = 1
    (1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
    map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
    ev = map.events[id]
    ev.id = s
    @events[s] = Game_Event.new(@map_id, ev)
    @events[s].moveto(x, y)
    return @events[s].id
  end
end

aufrufen tuste es über nen Eventbefehl und zwar mit folgenden zwei befehlen:

$game_map.add_event(map_id,event_id,X,Y)
$scene = Scene_Map.new

map_id: Die ID der Map von der kopiert werden soll
event_id: Die ID vom Event, das kopiert werden soll
X: die X-Koordinate des Events
Y: Die Y-Koordinate des Events

lg flipely

PS: das $scene = Scene_Map.new muss noch dazu nehmn, da es sonst die Map nich automatisch refreshen würde /=

ich habe ne frage. wenn ich ein event erstelle das dann diesen script als inhalt hatt. wird dieses dann zu diesem event oder wird das auf die X und Y Koordinaten gelegt?

wenn das 2 eintrifft könntest du das vileicht so umschreiben das mann auch variablen dafür nutzen kann?
were das I punktchen was noch fehlt^^

somit ist es dann möglich ohne probleme dynamische welten zu erstellen teils :)
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 26, 2010, 23:05:08
jup es wird auf die x und y koordinaten gelegt (=

so, hier haste was:

module Flipely
  def self.koordinaten
    $game_map.add_event($game_variables[id],$game_variables[id],$game_variables[id],$game_variables[id])
    $scene = Scene_Map.new
  end
end

einfach beim andern script ganz unten hinzufügen ;)
Jetzt musst du nur mehr die id bei allen variablen durch 4 verschiedene variablen ersetzen (am besten vorm einsatz) dann über Flipely.koordinaten aufrufen und fertig ;)

lg flipely
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 27, 2010, 00:17:51
danke ich weiss zwar nur noch nicht wie ich dann de funktion aufrufen soll (keine ahnung vom scripten)
aber ich denke ich werde es irgendwie rauskriegen :)
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 27, 2010, 00:20:01
du rufst es per callevent auf. der befehl fürs Call Event wäre:

Flipely.koordinaten

lg flip
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 28, 2010, 12:48:43
sry wenn ich zu doof bin xD
irgendwie klappt das nicht.

habe das letzendlch jetze so probiert:
call:
Flipely.koordinaten
$game_map.add_event(498,497,499,500)
$scene = Scene_Map.new


dabei sind die variablen als kordinaten vorher festgelegt worden
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 28, 2010, 13:31:54
nein nein, du kannst dich entscheiden. Willst du es über Variablen machen dann reicht dir dann nur das Flipely.koordinaten wenn du vorher die Variablen eingestellt hast.

das
$game_map.add_event(map_id,event_id,x,y)
$scene = Scene_Map.new

brauchst du nur, wenn du es direkt ohne variablen machen willst (=

lg Flipely
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 28, 2010, 14:33:16
omg xD ich bin echt doof in letzter zeit xD

gebe mal nen beispiel wie es in ner call aufgerufen werden muss.

Flipely.koordinaten hinter müssen doch die ids der variablen hin?
zb. Flipely.koordinaten (498,497,499,500) ???
wenn das im script festgelegt wird(da wo ich das kommplete script drinn habe)
dann habe ich nen mächtiges problem da ich den event nicht einmal brauch sondern 30 mal xD
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 28, 2010, 14:42:16
nein nein, wenn du im Script beim Teil module Flipely bei der def koordinaten, musst du gucken wo die $game_map.add_event($game_variables[id],$game_variables[id],$game_variables[id],$game_variables[id])
musst du die IDs mit zb 1 für variable 1 usw. ersetzen. dann vor dem aufrufen per scriptbefehl mit Flipely.koordinaten ebn noch die variablen definiern. Ein Beispiel findest du in meiner Scriptdemo ;)

lg flip
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 28, 2010, 15:18:35
gut habs hinbekommen :D
kannst du vil noch etwas das script erweitern?
dass man einstellen kann wie weit die passierbarkeit überprüft wird und ob das event da stehen kann ;) (einstellbar)

weil nen baum auf ner wand sieht hard aus xD
wennde keine lust hast ist net schlimm :D
es klappt alles super
und nen credits eintrag ist garantiert in dem projekt.
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 28, 2010, 18:24:13
hmm... das kann ich schon machen, aber wieso willst du sowas machen, wenn du sowieso entscheidest wo der Chara hingeportet werden soll oO
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 28, 2010, 22:14:52
ich hatte dich drumm gebten wegen den variablen nehmen aus dem grund weil ich dann perzufall auf bestimmten kordinaten spawnen lasse...
somit ändert sich die umgebung bei jeden neuen spiel start. und es ist immer wieder was neues was man spielt und die umgebung sieht net ganz gleich aus immer
Titel: Re: Event kopieren
Beitrag von: FlipelyFlip am Juni 28, 2010, 23:05:10
So hab nach langem rumprobiern deinen Wunsch und dank etwas Hilfe von Kread-EX ausm rpgmakervx.net hast du hier dein Script:

#==============================================================================
# ** Events klonen V1.1
#==============================================================================

class Spriteset_Map
  def refresh
    $game_map.need_refresh = true
    unless @character_sprites == nil
      for sprite in @character_sprites
        sprite.dispose
      end
    end
    @character_sprites = []
    for i in $game_map.events.keys.sort
      sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
  @character_sprites.push(sprite)
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
  end
end

class Game_Map
  def add_event(map_id,id,x,y)
    s = 1
    (1..@events.size + 1).each{|s|break unless @events.keys.include?(s)}
    map = load_data(sprintf("Data/Map%03d.rvdata", map_id))
    ev = map.events[id]
    ev.id = s
    @events[s] = Game_Event.new(@map_id, ev)
    @events[s].moveto(x, y)
    return @events[s].id
  end
end

module Flipely
  def self.passable?
    return $game_map.passable?($game_variables[3], $game_variables[4], flag = 0x01)
  end
end

module Flipely
  def self.koordinaten
    if Flipely.passable? == true
      $game_map.add_event($game_variables[id],$game_variables[id],$game_variables[id],$game_variables[id])
      $scene = Scene_Map.new
    else
      $game_variables[id] += 1 # Der Wert kann beliebig geändert werden, ich weiß jetz nicht wie Random im Ruby aussieht
      $game_variables[id] += 1 # Der Wert kann beliebig geändert werden, ich weiß jetz nicht wie Random im Ruby aussieht
      Flipely.koordinaten
    end
  end
end

lg Flipely
Titel: Re: Event kopieren
Beitrag von: Noa3 am Juni 30, 2010, 22:09:10
wow die götter des scripten sind in erscheinung getreten xD
ihr habt echt die grundlage für viele spiele geschaffen :)
aleine die möglichkeiten bei RTS (real time strategy) endlich richtig gut spiele machen ohne das mann rumfummeln muss^^
SimplePortal 2.3.3 © 2008-2010, SimplePortal