RPGVX.net
RPG-Maker VX => VX Technik [Frageforum] => Thema gestartet 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
-
Mach das Event als Common Event und dann kannst du machen:
Parallel Process
call common event
und dann soweiter, wie dus halt machen willst
-
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
-
Als Common Event kann ichs nicht machen weil das Event ne Grafik Braucht
-
Eventuell ein Mini-Script? Deity ist da die richtige Adresse^^
-
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 /=
-
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 :)
-
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
-
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 :)
-
du rufst es per callevent auf. der befehl fürs Call Event wäre:
Flipely.koordinaten
lg flip
-
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
-
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
-
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
-
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
-
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.
-
hmm... das kann ich schon machen, aber wieso willst du sowas machen, wenn du sowieso entscheidest wo der Chara hingeportet werden soll oO
-
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
-
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
-
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^^