View difference between Paste ID: w3RPaSHz and smgHNz71
SHOW: | | - or go back to the newest paste.
1
#==============================================================================
2
# ** Change Graphic by Equipment
3
# by: Jeneeus Guruman
4
#------------------------------------------------------------------------------
5
#  This script allows to change sprite and face graphics depending on the
6
# Equipment.
7
#
8
#   How to insert:
9
#
10
#     * Plug-n-play
11
#     * Place this below default and non-aliased scripts.
12
#   
13
#   How to use:
14
#
15
#     To use this, you need to put the following notetags:
16
#
17
#       To change sprites:
18
#
19
#       <ge: actor_id, sprite_name, sprite_index>
20
#
21
#       actor_id: The ID of the actor to be change graphics.
22
#       sprite_name: The filename of the sprite graphic to be placed.
23
#       sprite_index: The index of the sprite graphic to be placed.
24
#
25
#       To change face:
26
#
27
#       <fe: actor_id, face_name, face_index>
28
#
29
#       actor_id: The ID of the actor to be change face.
30
#       face_name: The filename of the face graphic to be placed.
31
#       face_index: The index of the face graphic to be placed.
32
#
33
#       Notes: 
34
#       * If you use a single-sprite file (files with $ at the 
35
#       beginning), you may also add it but the index must be 0.
36
#       * If the notetag is not fit in a single line, shorten the filename or 
37
#       use the other method below.
38
#       * You may put many notetags for the different actors at the same 
39
#       equipment.
40
#       
41
#==============================================================================
42
43
module Jene
44
  #--------------------------------------------------------------------------
45
  # * PRIORITY_EQUIP
46
  #     The priority of what equipment type will be the bases on changing 
47
  #   the sprites and faces. This is from the least to greatest priority.
48
  #     0 = Weapon;         3 = Body Armor;
49
  #     1 = Shield;         4 = Accessory;
50
  #     2 = Headgear;
51
  #--------------------------------------------------------------------------
52
  PRIORITY_EQUIP = [0, 4, 1, 2, 3]
53
  #--------------------------------------------------------------------------
54
  # * graphic_equip
55
  #     Used to change sprites.
56
  #     when item_id
57
  #       return [[actor_id, sprite_name, sprite_index]]
58
  #
59
  #     Add another bonus by adding a comma (,) and another parameter array
60
  #   before the last bracket.
61
  #
62
  #     Example: when 20
63
  #                return [[1, Actor2, 2], [2, Actor2, 3]]
64
  #
65
  #     In this example, if Actor 1 will equip the item with the ID 20
66
  #   (Saint Robe in Default), that actor will change its sprite graphic to
67
  #   the sprite in actor 2 at index 2 (Bennett's Sprite) and if Actor 2 will 
68
  #   equip the item with the ID 20 (Saint Robe in Default), that actor will 
69
  #   change its sprite graphic to the sprite in actor 2 at index 3 
70
  #   (the sprite at Bennett's Right).
71
  #--------------------------------------------------------------------------
72
  def self.graphic_equip(id)
73
    case id
74
    when 1
75
      return [[0, nil, 0]]
76
    end
77
    return [[0, nil, 0]]
78
  end
79
  #--------------------------------------------------------------------------
80
  # * face_equip
81
  #     Used to change faces.
82
  #     when item_id
83
  #       return [[actor_id, sprite_name, sprite_index]]
84
  #
85
  #     Add another bonus by adding a comma (,) and another parameter array
86
  #   before the last bracket.
87
  #
88
  #     Example: when 20
89
  #                return [[1, Actor2, 2], [2, Actor2, 3]]
90
  #
91
  #     In this example, if Actor 1 will equip the item with the ID 20
92
  #   (Saint Robe in Default), that actor will change its face graphic to
93
  #   the face in actor 2 at index 2 (Bennett's Face) and if Actor 2 will 
94
  #   equip the item with the ID 20 (Saint Robe in Default), that actor will 
95
  #   change its face graphic to the face in actor 2 at index 3 
96
  #   (the face at Bennett's Right).
97
  #--------------------------------------------------------------------------
98
  def self.face_equip(id)
99
    case id
100
    when 1
101
      return [[0, nil, 0]]
102
    end
103
    return [[0, nil, 0]]
104
  end
105
  
106
#----------------------------------------------------------------------------
107
# * Do not edit below here
108
#----------------------------------------------------------------------------
109
110
  GRAPHIC_EQUIP = /<ge[:]?\s*(\d+)\s*[,]?\s*([$]*\w+)?\s*[,]?\s*(\d+)\s*>/i
111
  FACE_EQUIP = /<fe[:]?\s*(\d+)\s*[,]?\s*(\w+)?\s*[,]?\s*(\d+)\s*>/i
112
end
113
114
class RPG::Armor
115
  #--------------------------------------------------------------------------
116
  # * Graphic Equipment
117
  #--------------------------------------------------------------------------
118
  def graphic_equip(equip_arr = [])
119
    self.note.split(/[\r\n]+/).each { |line|
120
      case line
121
      when Jene::GRAPHIC_EQUIP
122
        equip_arr.push([$1.to_i, $2.to_s, $3.to_i])
123
      end
124
    }
125
    equip_arr.concat(Jene.graphic_equip(@id))
126
    return equip_arr
127
  end
128
  #--------------------------------------------------------------------------
129
  # * Face Equipment
130
  #--------------------------------------------------------------------------
131
  def face_equip(equip_arr = [])
132
    self.note.split(/[\r\n]+/).each { |line|
133
      case line
134
      when Jene::FACE_EQUIP
135
        equip_arr.push([$1.to_i, $2.to_s, $3.to_i])
136
      end
137
    }
138
    equip_arr.concat(Jene.face_equip(@id))
139
    return equip_arr
140
  end
141
end
142
143
class RPG::Weapon
144
  #--------------------------------------------------------------------------
145
  # * Graphic Equipment
146
  #--------------------------------------------------------------------------
147
  def graphic_equip(equip_arr = [])
148
    self.note.split(/[\r\n]+/).each { |line|
149
      case line
150
      when Jene::GRAPHIC_EQUIP
151
        equip_arr.push([$1.to_i, $2.to_s, $3.to_i])
152
      end
153
    }
154
    equip_arr.concat(Jene.graphic_equip(@id))
155
    return equip_arr
156
  end
157
  #--------------------------------------------------------------------------
158
  # * Face Equipment
159
  #--------------------------------------------------------------------------
160
  def face_equip(equip_arr = [])
161
    self.note.split(/[\r\n]+/).each { |line|
162
      case line
163
      when Jene::FACE_EQUIP
164
        equip_arr.push([$1.to_i, $2.to_s, $3.to_i])
165
      end
166
    }
167
    equip_arr.concat(Jene.face_equip(@id))
168
    return equip_arr
169
  end
170
end
171
172
#==============================================================================
173
# ** Game_Actor
174
#------------------------------------------------------------------------------
175
#  This class handles actors. It's used within the Game_Actors class
176
# ($game_actors) and referenced by the Game_Party class ($game_party).
177
#==============================================================================
178
179
class Game_Actor < Game_Battler
180
  #--------------------------------------------------------------------------
181
  # * Public Instance Variables
182
  #--------------------------------------------------------------------------
183
  attr_reader   :default_character_name           # character graphic filename
184
  attr_reader   :default_character_index          # character graphic index
185
  attr_reader   :default_face_name                # face graphic filename
186
  attr_reader   :default_face_index               # face graphic index
187
  #--------------------------------------------------------------------------
188
  # * Setup
189
  #     actor_id : actor ID
190
  #--------------------------------------------------------------------------
191
  alias jene_setup setup
192
  def setup(actor_id)
193
    jene_setup(actor_id)
194
    actor = $data_actors[actor_id]
195
    @default_character_name = actor.character_name
196
    @default_character_index = actor.character_index
197
    @default_face_name = actor.face_name
198
    @default_face_index = actor.face_index
199
    refresh_graphic_equip
200
  end
201
  #--------------------------------------------------------------------------
202
  # * Change Equipment (designate object)
203
  #     equip_type : Equip region (0..4)
204
  #     item       : Weapon or armor (nil is used to unequip)
205
  #     test       : Test flag (for battle test or temporary equipment)
206
  #--------------------------------------------------------------------------
207
  alias jene_change_equip change_equip
208
  def change_equip(slot_id, item)
209
    jene_change_equip(slot_id, item)
210
    refresh_graphic_equip
211
    $game_player.refresh
212
  end
213
  #--------------------------------------------------------------------------
214
  # * Graphic Equipment
215
  #     item  : Weapon or Armor
216
  #--------------------------------------------------------------------------
217
  def graphic_equip(item)
218
    return unless item.is_a?(RPG::Weapon) || item.is_a?(RPG::Armor)
219
    id = item.id
220
    for graphic in item.graphic_equip
221
      if @actor_id == graphic[0]
222
        set_graphic(graphic[1], graphic[2], @face_name, @face_index)
223
        break
224
      end
225
    end
226
  end
227
  #--------------------------------------------------------------------------
228
  # * Face Equipment
229
  #     item  : Weapon or Armor
230
  #--------------------------------------------------------------------------
231
  def face_equip(item)
232
    return unless item.is_a?(RPG::Weapon) || item.is_a?(RPG::Armor)
233
    id = item.id
234
    for graphic in item.face_equip
235
      if @actor_id == graphic[0]
236
        set_graphic(@character_name, @character_index, graphic[1], graphic[2])
237
        break
238
      end
239
    end
240
  end
241
  #--------------------------------------------------------------------------
242
  # * Refresh Graphic Equip
243
  #--------------------------------------------------------------------------
244
  def refresh_graphic_equip
245
    set_graphic(@default_character_name, @default_character_index, 
246
      @default_face_name, @default_face_index)
247
    for i in Jene::PRIORITY_EQUIP
248
      graphic_code = 'graphic_equip(equips[' + i.to_s + '])'
249
      face_code = 'face_equip(equips[' + i.to_s + '])'
250
      eval(graphic_code)
251
      eval(face_code)
252
    end
253
  end
254
end
255
256
#==============================================================================
257
# ** Game_Party
258
#------------------------------------------------------------------------------
259
#  This class handles the party. It includes information on amount of gold 
260
# and items. The instance of this class is referenced by $game_party.
261
#==============================================================================
262
263
class Game_Party < Game_Unit
264
  #--------------------------------------------------------------------------
265
  # * Object Initialization
266
  #--------------------------------------------------------------------------
267
  alias jene_initialize initialize
268
  def initialize
269
    jene_initialize
270
    refresh_graphic_equip
271
  end
272
  #--------------------------------------------------------------------------
273
  # * Refresh Graphic Equip
274
  #--------------------------------------------------------------------------
275
  def refresh_graphic_equip
276
    for actor in members
277
      actor.refresh_graphic_equip
278
    end
279
  end
280
end