Project1

标题: 伤害 [打印本页]

作者: 雾情沙滋    时间: 2013-8-31 00:53
标题: 伤害
1、怎么样才能做到攻击跟伤害同时出现,而不是攻击动画结束才出现!
2、怎么样让结束前,先显示怪物或物品里的公共事件后才显示经验跟金币?现况是,显示了经验金币后,切到地图外面才显示公共事件里面的内容!
作者: asdwds    时间: 2013-8-31 12:00
1.这是我看后知后觉横版脚本里的方法,在攻击动画中,你认为攻击击中敌人的帧那里加一个空音乐
然后在处理se的地方添加显示伤害的动作,以此来达成伤害和动画同步。

2.战斗结束后运行怪物和事件的话,你可以考虑
a.如果你是使用“战斗处理”动作进入战斗的话,敌人不设置经验物品,一切等到“战斗处理”动作结束后统一发放
b.步数遇敌的情况,你可以考虑判断敌人血小于一定百分比(例如1%),达到条件后就运行公共事件并结束这次战斗
  但是施行b时,你要给敌人不死的效果,让其不会被一击致命
以上2种方法比较简单
作者: moy    时间: 2013-9-9 20:44
  1.   #--------------------------------------------------------------------------
  2.   # ● 胜利时的处理
  3.   #--------------------------------------------------------------------------
  4.   def self.process_victory
  5.     play_battle_end_me
  6.     replay_bgm_and_bgs
  7.     $game_message.add(sprintf(Vocab::Victory, $game_party.name))
  8.     display_exp
  9.     gain_gold
  10.     gain_drop_items
  11.     gain_exp
  12.     SceneManager.return
  13.     battle_end(0)
  14.     return true
  15.   end
  16.   #--------------------------------------------------------------------------
  17.   # ● 战斗结束
  18.   #     result : 结果(0:胜利 1:撤退 2:全灭)
  19.   #--------------------------------------------------------------------------
  20.   def self.battle_end(result)
  21.     @phase = nil
  22.     @event_proc.call(result) if @event_proc
  23.     $game_party.on_battle_end
  24.     $game_troop.on_battle_end
  25.     SceneManager.exit if $BTEST
  26.   end
复制代码
以上是默认脚本。将之改为如下
  1.   #--------------------------------------------------------------------------
  2.   # ● 胜利时的处理
  3.   #--------------------------------------------------------------------------
  4.   def self.process_victory
  5.     play_battle_end_me
  6.     replay_bgm_and_bgs
  7.     $game_message.add(sprintf(Vocab::Victory, $game_party.name))
  8.     battle_end_first(0)          #added
  9.     display_exp
  10.     gain_gold
  11.     gain_drop_items
  12.     gain_exp
  13.     SceneManager.return
  14.     battle_end_second        #changed
  15.     return true
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 战斗结束1
  19.   #     result : 结果(0:胜利 1:撤退 2:全灭)
  20.   #--------------------------------------------------------------------------
  21.   def self.battle_end_first(result)
  22.     @phase = nil
  23.     @event_proc.call(result) if @event_proc
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● 战斗结束2
  27.   #--------------------------------------------------------------------------
  28.   def self.battle_end_second
  29.     $game_party.on_battle_end
  30.     $game_troop.on_battle_end
  31.     SceneManager.exit if $BTEST
  32. end

复制代码
其中added表示增加,changed表示修改,将battle_end拆成两部分,这样理论上应该可以达成你的要求,但不保证一次可行,或者是否有冲突。




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