Project1

标题: 角色受攻击、升级、胜利、死亡显示一张图片。 [打印本页]

作者: 爆焰    时间: 2013-1-19 13:56
标题: 角色受攻击、升级、胜利、死亡显示一张图片。
比如:阿尔西斯,在Battlers里有张阿尔西斯_A等图片,收到攻击就会显示这张。然后升级和胜利就会显示阿尔西斯_B的图片。死亡就会一直显示,除非复活。
  然后,角色二,帕吉尔也是这样。

请问该如何做?请高手帮忙。
作者: q1270524984    时间: 2013-1-19 14:13
这个······好像要用脚本的吧······
作者: 唐门草楹    时间: 2013-1-19 14:13
如果你从来没有接触过脚本的话,那的确比较难一些。你可以这样
首先定义公共事件,就是把战斗图片更改为想要的图片。
然后在需要变换战斗图片的时候来调用这些公共事件。调用n号公共事件的脚本如下:
      common_event = $data_common_events[@common_event_id]
      $game_system.battle_interpreter.setup(common_event.list, 0)
比如,我要一号队友受到攻击后战斗图片改变,在公共事件里把一号事件设置为战斗图片改为战斗图片,二号事件设置为战斗图片变回平常的图片。
然后在脚本Scene_Battle 4里找到“
  #--------------------------------------------------------------------------
  # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  #--------------------------------------------------------------------------
  def update_phase4_step5

在这一部分的下方添加类似于以下格式的分歧语句:
for target in @target_battlers
      ######################################################
      if $game_variables[1]!=5 and $game_variables[1]!=6
      case target.name
      when "阿尔西斯"
         $game_system.battle_interpreter.setup($data_common_events[1].list, 0)
      
      end


作者: 美丽晨露    时间: 2013-1-19 15:38
四格待机动画可以做到
脚本搜索一下就有了
作者: 爆焰    时间: 2013-1-24 04:51
本帖最后由 爆焰 于 2013-1-24 04:57 编辑

第一步 Game_Battler 1 里
attr_reader   :battler_name
改为 attr_accessor :battler_name (把只读属性改为可变换的后面切换战斗图要用到)
挨打 防御 改Scene_Battle 4
这里我做了点扩展 你自己修改 这段插入到 显示动画这里
01.     if (target.current_action.kind == 0 and target.current_action.basic == 1 and target.damage != "")  

02.         if target.damage.to_i >= 0 #按了防御 并且伤害大于0 切换防御战斗图 判定伤害是为了 避免加血时 按防御 结果角色防御动作的违和感

03.          target.battler_name = target.battler_name.split(/★/)[0]

04.         target.battler_name = target.battler_name + "★防御"

05.         end

06.       else

07.         if  target.damage == "Miss"  or target.damage == "" #伤害是字符串类 比如MISS 这里可以自己添加闪避类的战斗图

08.           target.battler_name = target.battler_name.split(/★/)[0]

09.         else

10.           if target.damage.to_i <=0

11.             target.battler_name = target.battler_name.split(/★/)[0]###伤害值小于0的时候 比如加血技能 自己可以添加加血类的战斗图

12.           else

13.         target.battler_name = target.battler_name + "★挨打" #####受到伤害 切换挨打战斗图

14.      end

15.         end

16.         end
复制代码上面2处都要加在 for target in @target_battlers 这里面 否则无法识别taget
最后在显示伤害里加上 target.battler_name = target.battler_name.split(/★/)[0] 把战斗图还原







死亡的话是Sprite_Battler 找到 if @battler.damage == nil and @battler.dead?
加入这个@battler.battler_name = @battler.battler_name.split(/★/)[0]
  @battler.battler_name = @battler.battler_name + "★死亡"



@yagami
为什么我自己弄就会self.bitmap = RPG::Cache.battler(@battler_name, @battler_hue)出错?
我现在只需要受攻击、死亡、升级和胜利时显示一张图片就可以了,我方就可以了。
请帮帮忙。
作者: eve592370698    时间: 2013-1-24 08:59
建议参考《重生学校》里的脚本。
作者: 爆焰    时间: 2013-2-2 04:09
没人帮我吗?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1