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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
| # ------------------------------------------------------------------------------
# * Script de Zou
# ------------------------------------------------------------------------------
# Ce script permet de sauvegarder la position des événements quand
# on quitte la map, et de retrouver les évènements à la même place
# quand on revient.
class Save_Event
Nom = "/S" # ce que doit comporter le nom de l'event à sauvegarder
Inverse = false # inverse l'effet, si l'event doit avoir (false) ou ne pas
# avoir (true) le mot dans son nom pour être sauvegardé.
# (pratique pour ne pas avoir à changer le nom de tous les
# evenements)
# Utilisez avec "inserer un script" $game_map.save_event.clear(MAP_ID) pour
# oublier la position de tous les évènements de la map d'id = MAP_ID
# Remplacer MAP_ID par 0 pour toutes les maps.
# Rajoutez $game_map.save_event.clear(MAP_ID, EVENT_ID) pour oublier uniquement
# la position de l'évènement d'id = EVENT_ID
def initialize
@array = []
end
def save(map_id)
return if map_id == 0
@array[map_id] = []
if Inverse
for i in $game_map.events.keys
if $game_map.events[i].name[Nom] == nil
@array[map_id][i] = Event.new($game_map.events[i].x,$game_map.events[i].y,
$game_map.events[i].direction)
end
end
else
for i in $game_map.events.keys
if $game_map.events[i].name[Nom] != nil
@array[map_id][i] = Event.new($game_map.events[i].x,$game_map.events[i].y,
$game_map.events[i].direction)
end
end
end
end
def load(map_id)
return unless @array[map_id]
for i in $game_map.events.keys
if @array[map_id][i]
$game_map.events[i].moveto(@array[map_id][i].x,@array[map_id][i].y)
$game_map.events[i].direction = @array[map_id][i].direction
end
end
end
def clear(map_id,event = nil)
unless event
if map_id == 0
@array = []
else
@array[map_id] = nil
end
else
@array[map_id][event] = nil
end
end
end
class Game_Map
attr_accessor :save_event
alias old_initialize initialize
def initialize
old_initialize
@save_event = Save_Event.new
end
alias old_setup setup
def setup(map_id)
@save_event.save(@map_id)
old_setup(map_id)
@save_event.load(@map_id)
end
end
class Event
attr_accessor :x, :y, :direction
def initialize(x,y,direction)
@x,@y,@direction = x,y,direction
end
end
class Game_Event < Game_Character
def name
return @event.name
end
end
class Game_Character
attr_accessor :direction
end |