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 |