魔王 ⑨
您需要 登录 才可以下载或查看,没有账号?注册会员
使用道具 举报
class Spriteset_Battle # 获取保存了我方和敌人精灵的数组 def battler_sprites return @actor_sprites + @enemy_sprites end end class Scene_Battle alias make_skill_action_result_old make_skill_action_result alias update_phase4_step6_old update_phase4_step6 def make_skill_action_result make_skill_action_result_old # 此处按照 ‘|' 将技能名分开,无视空格,查找是否包含 "<暗>" # 包含的话即是特殊技能,降低与技能无关的人的不透明度 # 比如 "十字斩 | <暗>"、"扫荡|<暗>|<魔>" 都是匹配的技能 # (此处自行修改)~ if(@skill.name.split(/\s*\|\s*/).include?("<暗>")) # 遍历数组中 Sprite_Battler 类型的元素 sp # 通过这个元素可以获取到与精灵相关的 Game_Actor 对象 # 所以就能直接和同样是 Game_Actor 类型的 @active_battler # 以及 @target_battlers 数组中的元素比较 for sp in @spriteset.battler_sprites # 跳过施放技能者及被攻击者 next if (sp.battler == @active_battler || @target_battlers.include?(sp.battler)) sp.dime = true end end end def update_phase4_step6 update_phase4_step6_old # 技能动画刷新结束时恢复不透明度 for sp in @spriteset.battler_sprites sp.dime = false end end end class Sprite_Battler < RPG::Sprite attr_accessor :dime def initialize(viewport, battler = nil) super(viewport) @battler = battler @battler_visible = false @dime = false end def update super # 战斗者为 nil 的情况下 if @battler == nil self.bitmap = nil loop_animation(nil) return end # 文件名和色相与当前情况有差异的情况下 if @battler.battler_name != @battler_name or @battler.battler_hue != @battler_hue # 获取、设置位图 @battler_name = @battler.battler_name @battler_hue = @battler.battler_hue self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue) @width = bitmap.width @height = bitmap.height self.ox = @width / 2 self.oy = @height # 如果是战斗不能或者是隐藏状态就把透明度设置成 0 if @battler.dead? or @battler.hidden self.opacity = 0 end end # 动画 ID 与当前的情况有差异的情况下 if @battler.damage == nil and @battler.state_animation_id != @state_animation_id @state_animation_id = @battler.state_animation_id loop_animation($data_animations[@state_animation_id]) end # 施放特殊技能时以 5 每帧的比率降低不透明度到 40 if @dime self.opacity -= 5 if self.opacity > 40 # 应该被显示的角色的情况下 elsif @battler_visible # 不在主状态或在特殊技能施放完毕的时候恢复到不透明 if $game_temp.battle_main_phase self.opacity += 3 if self.opacity < 255 else self.opacity -= 3 if self.opacity > 207 end end # 明灭 if @battler.blink blink_on else blink_off end # 不可见的情况下 unless @battler_visible # 出现 if not @battler.hidden and not @battler.dead? and (@battler.damage == nil or @battler.damage_pop) appear @battler_visible = true end end # 可见的情况下 if @battler_visible # 逃跑 if @battler.hidden $game_system.se_play($data_system.escape_se) escape @battler_visible = false end # 白色闪烁 if @battler.white_flash whiten @battler.white_flash = false end # 动画 if @battler.animation_id != 0 animation = $data_animations[@battler.animation_id] animation(animation, @battler.animation_hit) @battler.animation_id = 0 end # 伤害 if @battler.damage_pop damage(@battler.damage, @battler.critical) @battler.damage = nil @battler.critical = false @battler.damage_pop = false end # korapusu if @battler.damage == nil and @battler.dead? if @battler.is_a?(Game_Enemy) $game_system.se_play($data_system.enemy_collapse_se) else $game_system.se_play($data_system.actor_collapse_se) end collapse @battler_visible = false end end # 设置活动块的坐标 self.x = @battler.screen_x self.y = @battler.screen_y self.z = @battler.screen_z end end
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
这里的今天,有我过往努力的见证~
Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.