• Anmelden

1

Donnerstag, 1. Juli 2010, 22:57

Kopie einer Map auf einer 2. map.. ABER.. keine Events!

Servus..

ich weiß ned wie leicht es ist.. aber ich versuchs mal ^^...m

Grundsituation:
1.) Man ist auf der map, rennt rum.. und entweder schlägt man einen gegner oder man wird von ihm getroffen
2.) Ein wechsel auf eine Art kampfmap (bzw.. kopie der ersten map, mit Gegnertruppe drauf.. die gegner werden mittels eventklonen auf die 500x500 map gepackt)
3.) Kampf alá zelda (inkl Pixelmovement von fOetz!)
4.) kampfende.. mapwechsel zurück auf originalmap


Thema:
so.. ich hab im Spiel 1 map..
diese hat eine größe von 500x500.. und ist.. LEER
so.. wenn ich jetzt im Spiel nen kampf starte, solld er spieler auf die map teleportiertw erden..
Dabei soll sowohl das tileset, die priority, die passabels und die ganze tilemap auf die 500x500 mitkopiert werden..


Wichtig:
Sicherlich könnte ich für jede map im spiel wo gekämpft wird, ne kopie anlegen.. das ist aber ned das was ich will.


Was ich brauche:
Ein Script das mit beim aufrufen eine 1:1 Kopie der akutellen map, auf eine spezifische andere map (die 500x500) macht (alle events dabei aber ignoriert und nicht mitkopiert) , sodass ich da hinteleportiere, und da kämpfen lassen kann. :espér:
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Chaosgod Espér« (4. Juli 2010, 22:30)


Pride

Ankömmling

Motto: Life is hard and then you die

  • Nachricht senden

2

Freitag, 2. Juli 2010, 05:57

ich hab kA ob das geht und bin zu faul es auch zu testen:

Versuchen die aktuelle Position in einer variable speichern und dann transfer player to Kampfmap position (variable)
und nach dem Kampf halt wieder das ganze rückwärts
  • free Kekse

    :cookie2:
  • FRPG

    Steckbrief

    -Spiel-


    Was bisher geschah:
    Aufenthaltsort: Nebelläufe - Verfallener Bergpfad
    Party: /
    Level: 1
    Rüstung:
    • Aquazor (Speer)
    • Ledergurt (Halterung für Speer)
    • Gürtel aus Fell (Zum anbringen von Taschen)
    • Bandagen (am Rumpf – darüber ein Netzhemd für bessere Stabilität dieser, und an den Unterarmen)
    • Stoff Kleidung (Hemd und Hose)
    • 1x alter Stoffumhang (um sich in Städten tarnen zu können)

    Inventar: Umhängetasche(4) (hängt auf der rechten Seite am Fellgürtel):
    • 1x Proviant (mageres Fleisch mit getrockneten Kräutern)
    • 1x Ritualfratze
    kleiner Beutel (2)
    • 1x
      Kette mit Kupferplatte (Eine Kette an der ein mehr oder weniger großes,
      plattes rundes Stück Kupfer angebracht ist, welches wunderschön das
      Mondlicht refkletieren kann. Wird vom Oberhaupt an seinen ersten Sohn
      überreicht. Canin schenkte sie einst Kolochnir)
    Geld: 0 Kupfer

3

Freitag, 2. Juli 2010, 09:47

Die Transfers hab ich hinbekommen ( mal davon abgesehen das es hier um scripts geht, und nicht um eventcodes)

Mein Problem liegt beim kopieren der ursprungsmap, auf die 500x500 Map.
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

4

Freitag, 2. Juli 2010, 14:30

Ich kann den RMXP zZt nicht benutzen (jaja, hab diese Ausrede in letzter Zeit oft benutzt :o), darum kann ich dir nur ungefähr beschreiben was du tun musst:

In Game_Map in der Methode setup findest du map = (oder @map =) load_data(blabla), ziemlich am Anfang.
Das musst du einfach ersetzen:

Ruby Quellcode

1
2
3
4
5
if $copy_map_instead_load_new
 map = @map.dup
else
 # alte Zeile map = load_data(bla)
end


Dann kannst du mit $copy_map_instead_load_new = true / false ändern, ob kopiert beim Laden einer Map die aktuelle kopiert werden soll.

(hoffe zumindest, dasse s klappt x)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

5

Sonntag, 4. Juli 2010, 16:54

Kopier doch einfach die Mapdateien und bennen sie um...
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

6

Sonntag, 4. Juli 2010, 20:26

Hindi...

Zitat

Wichtig:
Sicherlich könnte ich für jede map im spiel wo gekämpft wird, ne kopie anlegen.. das ist aber ned das was ich will.



Neo:
Klappt nicht wirklich...
Der übernimmt das tileset der originalmap nicht. und wnens ichs schaffe das set zu übernehmen.. stimmt die passierbarkeit/priorität nicht...
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

7

Sonntag, 4. Juli 2010, 21:28

So, jetzt konnt ich es auch testen:
Spoiler

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Game_Map
  def setup(map_id)
	if !$copy_map_instead_load_new
  	@map_id = map_id
	end
 
	@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
 
	tileset = $data_tilesets[@map.tileset_id]
	@tileset_name = tileset.tileset_name
	@autotile_names = tileset.autotile_names
	@panorama_name = tileset.panorama_name
	@panorama_hue = tileset.panorama_hue
	@fog_name = tileset.fog_name
	@fog_hue = tileset.fog_hue
	@fog_opacity = tileset.fog_opacity
	@fog_blend_type = tileset.fog_blend_type
	@fog_zoom = tileset.fog_zoom
	@fog_sx = tileset.fog_sx
	@fog_sy = tileset.fog_sy
	@battleback_name = tileset.battleback_name
	@passages = tileset.passages
	@priorities = tileset.priorities
	@terrain_tags = tileset.terrain_tags
 
	@display_x = 0
	@display_y = 0
	@need_refresh = false
	@events = {}
	if !$copy_map_instead_load_new
  	for i in @map.events.keys
    	@events[i] = Game_Event.new(@map_id, @map.events[i])
  	end
	end
	@common_events = {}
	for i in 1...$data_common_events.size
  	@common_events[i] = Game_CommonEvent.new(i)
	end
	@fog_ox = 0
	@fog_oy = 0
	@fog_tone = Tone.new(0, 0, 0, 0)
	@fog_tone_target = Tone.new(0, 0, 0, 0)
	@fog_tone_duration = 0
	@fog_opacity_duration = 0
	@fog_opacity_target = 0
	@scroll_direction = 2
	@scroll_rest = 0
	@scroll_speed = 4
  end
end
 
class Interpreter
  #--------------------------------------------------------------------------
  # * End Event
  #--------------------------------------------------------------------------
  def command_end
	# Clear list of event commands
	@list = nil
	# If main map event and event ID are valid
	if @main and @event_id > 0
  	# Unlock event
  	event = $game_map.events[@event_id]
  	event.unlock if !event.nil?
	end
  end
end
zum Lesen den Text mit der Maus markieren
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

8

Sonntag, 4. Juli 2010, 22:07

Neo hat jetzt zwar schon ne Lösung, aber da ich jetzt eh auch schon was gecodet habe hier noch meine...
und so dürfte es funktionieren:
Spoiler: Script

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class Game_Map
  MAP_ID = 5
  def setup(map_id)
    @map_id = map_id
    if @map_id == MAP_ID
      @map = load_data(sprintf("Data/Map%03d.rxdata", @LastMapID))
      @map.events.clear
    else
      @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
    end
    tileset = $data_tilesets[@map.tileset_id]
    @tileset_name = tileset.tileset_name
    @autotile_names = tileset.autotile_names
    @panorama_name = tileset.panorama_name
    @panorama_hue = tileset.panorama_hue
    @fog_name = tileset.fog_name
    @fog_hue = tileset.fog_hue
    @fog_opacity = tileset.fog_opacity
    @fog_blend_type = tileset.fog_blend_type
    @fog_zoom = tileset.fog_zoom
    @fog_sx = tileset.fog_sx
    @fog_sy = tileset.fog_sy
    @battleback_name = tileset.battleback_name
    @passages = tileset.passages
    @priorities = tileset.priorities
    @terrain_tags = tileset.terrain_tags
    @display_x = 0
    @display_y = 0
    @need_refresh = false
    @events = {}
    for i in @map.events.keys
      @events[i] = Game_Event.new(@map_id, @map.events[i])
    end
    @common_events = {}
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i)
    end
    @fog_ox = 0
    @fog_oy = 0
    @fog_tone = Tone.new(0, 0, 0, 0)
    @fog_tone_target = Tone.new(0, 0, 0, 0)
    @fog_tone_duration = 0
    @fog_opacity_duration = 0
    @fog_opacity_target = 0
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 4
    @LastMapID = @map_id
  end
end
zum Lesen den Text mit der Maus markieren

Du musst nur die Variable mit der Map ID die du erstellt hast ersetzten.
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Reborn« (4. Juli 2010, 22:44)


9

Sonntag, 4. Juli 2010, 22:31

hmm..
k.. 2 probleme..

1. ich hab kein plan wie ich des aufrufen soll

2. scheinbar gibt das eingreifen in game_map fehler mit fOetz! pixelmovement... Y_Y
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

10

Sonntag, 4. Juli 2010, 22:40

Wie oben gesagt, mit der globalen Variable.
Wenn du willst, kann ichs auch noch so ändern, dass es mit der Mapid arbeitet.

Für das Pixelmovement poste mal die setup-Methode aus Game_Map.
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Reborn

hat beim Stromkonzern schon Rabatt

Motto: Wer noch was vom Wochenende weis, hat es nie erlebt!

  • Nachricht senden

11

Sonntag, 4. Juli 2010, 22:45

Hast du meins schon Probiert?
Du kannst dich auf die Map teleportieren wo du willst und diese map wird dann ganz normal aufgebaut, halt nur ohne Events.
Mehr als a Allgäuer ka a Mensch it wera.


Wie soll ich wissen was ich denke, bevor ich nicht höre was ich sage?


Spoiler: OpenSource-Projects
NES-Emulator - a simple NES-Emulator
ERDL - a embedded Ruby Interpreter with the abilltiy to render images with DirectX ERDL shall be 100% compatible to RPGXP-Ruby Scripts
zum Lesen den Text mit der Maus markieren

12

Sonntag, 4. Juli 2010, 22:47

ja.. hab ich auch getesten.. ebenso kompatibilitätsproblem mitm pixelmovement....

hier ist ma die setup def:
Spoiler

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  #-----------------------------------------------------------------------------
 
  # map setup
 
  #-----------------------------------------------------------------------------
 
  def setup(map_id)
 
 
 
    # saves tables of the old map
 
    self.save_tables
 
 
 
    # resets other things
 
    @jump_events = {}
 
    @ice_events = {} 
 
 
 
    pixelmovement_game_map_setup(map_id)
 
 
 
    # Caterpillar System
 
    @game_party_actors_copy = $game_party.actors.clone
 
    @game_party_actors = []
 
    if $pixelmovement.cater_activate
 
      for i in 1..$game_party.actors.length
 
        @game_party_actors.push(Game_Party_Actor.new(i))
 
      end
 
    end
 
 
 
    # for Loop Maps
 
    name = (load_data('Data/MapInfos.rxdata'))[@map_id].name
 
    if name.include?('[Loop-Map]') and 
 
    not $pixelmovement.loop_maps.include?(self.map_id)
 
      $pixelmovement.loop_maps.push(self.map_id)
 
    end
 
 
 
    # see below
 
    self.load_bitmaps 
 
    self.load_tables
 
 
 
    # loads waypoints for pathfinding
 
    self.load_waypoints
 
 
 
    # deletes pathfinding of the player for the old map
 
    $game_player.pathfinding = Game_Pathfinding.new($game_player)      
 
  end
zum Lesen den Text mit der Maus markieren

(Leerzeilen sind durch nen fehler der elamshin HP gekommen. kann leider keine aktuelle version alden, wegen zu vieler edits für mein AKS)
There was a Cave,
below a Silent's Grave.
Tunnels, extending far, running wide,
going deep into the World on the other Side.
Poor little Child, that was to brave,
died painfully deep down, in the Devil's Cave.

Neo-Bahamut

Himmelsgleicher

Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.

  • Nachricht senden

13

Sonntag, 4. Juli 2010, 22:51

Spoiler

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
class Game_Map
  def  pixelmovement_game_map_setup(map_id)
if !$copy_map_instead_load_new
   @map_id = map_id
end
 
@map =  load_data(sprintf("Data/Map%03d.rxdata", @map_id))
 
tileset =  $data_tilesets[@map.tileset_id]
@tileset_name = tileset.tileset_name
@autotile_names  = tileset.autotile_names
@panorama_name = tileset.panorama_name
@panorama_hue  = tileset.panorama_hue
@fog_name = tileset.fog_name
@fog_hue =  tileset.fog_hue
@fog_opacity = tileset.fog_opacity
@fog_blend_type  = tileset.fog_blend_type
@fog_zoom = tileset.fog_zoom
@fog_sx =  tileset.fog_sx
@fog_sy = tileset.fog_sy
@battleback_name =  tileset.battleback_name
@passages = tileset.passages
@priorities =  tileset.priorities
@terrain_tags = tileset.terrain_tags
 
@display_x  = 0
@display_y = 0
@need_refresh = false
@events = {}
if  !$copy_map_instead_load_new
  for i in @map.events.keys
     @events[i] = Game_Event.new(@map_id, @map.events[i])
  end
end
@common_events  = {}
for i in 1...$data_common_events.size
  @common_events[i] =  Game_CommonEvent.new(i)
end
@fog_ox = 0
@fog_oy = 0
@fog_tone  = Tone.new(0, 0, 0, 0)
@fog_tone_target = Tone.new(0, 0, 0, 0)
@fog_tone_duration  = 0
@fog_opacity_duration = 0
@fog_opacity_target = 0
@scroll_direction  = 2
@scroll_rest = 0
@scroll_speed = 4
  end
end
 
class  Interpreter
   #--------------------------------------------------------------------------
   # * End Event
   #--------------------------------------------------------------------------
   def command_end
# Clear list of event commands
@list = nil
#  If main map event and event ID are valid
if @main and @event_id > 0
   # Unlock event
  event = $game_map.events[@event_id]
   event.unlock if !event.nil?
end
  end
end
zum Lesen den Text mit der Maus markieren


Try this. (unterm Pixelmovement)
Spoiler: Wurstinator
zum Lesen den Text mit der Maus markieren

Spoiler: Lazer-Wurst
zum Lesen den Text mit der Maus markieren

Spoiler: Hallowurst
zum Lesen den Text mit der Maus markieren

Ähnliche Themen

Social Bookmarks