macosx Rei
Mensagens : 74 MakerCoins : 2147483647 Data de inscrição : 17/04/2010
| Assunto: Efeito Espelho Ter maio 11, 2010 9:04 pm | |
| Efeito Espelho - Código:
-
################################################################# ################ Dynamic shadows Mirror Effect ################## ################################################################# # Adiciona o efeito espelho. # Para ativar o script entre no Comando de Eventos e selecione #o comando Comentário e adicione o código abaixo. ###################### # m # ######################
class Sprite_Mirror < RPG::Sprite
attr_accessor :character attr_accessor :events attr_accessor :event_y
def initialize(viewport=nil) super(viewport) @character = $game_player @events=0 @event_y=0 self.opacity=0 update end
def update super if @tile_id != @character.tile_id or @character_name != @character.character_name or @character_hue != @character.character_hue @tile_id = @character.tile_id @character_name = @character.character_name @character_hue = @character.character_hue if @tile_id >= 384 self.bitmap = RPG::Cache.tile($game_map.tileset_name, @tile_id, @character.character_hue) self.src_rect.set(0, 0, 32, 32) self.ox = 16 self.oy = 32 else self.bitmap = RPG::Cache.character(@character.character_name, @character.character_hue) @cw = bitmap.width / 4 @ch = bitmap.height / 4 self.ox = @cw / 2 self.oy = @ch end end self.visible = (not @character.transparent) if @tile_id == 0 sx = (@character.pattern) * @cw sy = (@character.direction - 2) / 2 * @ch if @character.direction==8 sy = 0 * @ch end if @character.direction==2 sy = 3 * @ch end self.src_rect.set(sx, sy, @cw, @ch) end self.x = @character.screen_x self.y = self.event_y-($game_player.screen_y-self.event_y).abs+30 self.z = 10 self.blend_type = @character.blend_type self.bush_depth = @character.bush_depth if @character.animation_id != 0 animation = $data_animations[@character.animation_id] animation(animation, true) @character.animation_id = 0 end end end
#=================================================== # ▼ CLASS Sprite_Character edit #===================================================
class Sprite_Character < RPG::Sprite alias mirror_initialize initialize def initialize(viewport, character = nil) @character = character super(viewport) if character.is_a?(Game_Player) $game_map.mirror=Sprite_Mirror.new(viewport) end mirror_initialize(viewport, @character) end alias mirror_update update def update mirror_update if (@mirror!=nil and character.is_a?(Game_Event) and character.list!=nil and character.list[0].code == 108 and character.list[0].parameters == ["m"]) if $game_player.screen_y-self.y<80 and self.y<$game_player.screen_y and ($game_player.screen_x-self.x).abs<17 if (character.list[1]!=nil and character.list[1].code == 108) @mirror.opacity=character.list[1].parameters[0].to_f else @mirror.opacity=$game_player.opacity end @mirror.events=self.id @mirror.event_y=self.y else if @mirror.events==self.id @mirror.events=0 else if @mirror.events==0 @mirror.opacity=0 end end end end @mirror=$game_map.mirror if character.is_a?(Game_Player) @mirror.update end end end
#=================================================== # ▼ CLASS Scene_Save edit #=================================================== class Scene_Save < Scene_File alias mirror_write_save_data write_save_data def write_save_data(file) $game_map.mirror = nil mirror_write_save_data(file) end end
#=================================================== # ▼ CLASS Game_Map edit #=================================================== class Game_Map attr_accessor :mirror end
#=================================================== # ▼ CLASS Scene_Map edit #=================================================== class Spriteset_Map alias mirror_map_initialize initialize def initialize $game_map.mirror=nil mirror_map_initialize end end
Descrição:efeito espelho Criador:Desconhecido Disponibilizador:Mundo RPG Maker Aplicando-o:insira um novo script e quando quizer usar o efeitos espelho coloque o evento comentário 'm' minusculo Screen:Não tem |
|