Project1

标题: 3个关于战斗的问题 [打印本页]

作者: fbeds    时间: 2015-2-10 12:46
标题: 3个关于战斗的问题
三个问题如下:
①如何移动战斗中敌人的位置?当然也可以告诉我如何设置8个以上的敌人……
②如何使战斗中敌人连续行动?
③如何设置一种状态,中了这种状态就没法使用物理特技。
我知道要用脚本……请把脚本发过来……当然不用脚本也好……
作者: 573932914    时间: 2015-2-10 14:42
1。队伍中不就能调吗
2。队伍里貌似可以做到吧
3。这个判断状态用脚本,如果魔法倒还能设置,可以考虑用0%的物理攻击的状态代替吗
作者: fbeds    时间: 2015-2-10 15:49
①我说的是要在战斗中更换,我想实现以下:
跟敌人战斗,达到一定条件后,战场上敌人退下,换上另一波敌人,但是敌人设置量只能是8个,我这两波敌人加起来超过8人,使用‘敌人变身’的话也有问题……因为我想实行一个事件,里面敌人位置很重要,所以请告诉我在战斗中更换敌人位置的方法。
②貌似行……
③不可以啊,我设置了一下,里面魔法和物理特技要区分开,否则后期会出问题……
作者: guoxiaomi    时间: 2015-2-12 21:21
设置连续的两次战斗事件?
作者: 恐惧剑刃    时间: 2015-2-14 00:52
1. 增加一个变量即可解决
class Game_Battler
  attr_writer :_move_
  def _move_
    @_move_ = [] unless @_move_
    return @_move_
  end
end
然后就调整 Game_Actor
                Game_Enemy
中的 screen_x  screen_y 方法!
比如
alias screen_x_old screen_x
def screen_x
  return screen_x_old + self._move_[0].nil? 0 : self._move_[0]
end
alias screen_y_old screen_y
def screen_y
  return screen_y_old + self._move_[1].nil? 0 : self._move_[1]
end
然后需要移动的时候
actor._move_ = [x, y]
x y 均指 偏移量,可以为 负值。

2.  Scene_Battle 4 中的 make_action_orders 方法 (生成行动循序)
你可以再加一次,也就是行动多次。
这也是部分版本 【连击】 脚本的原理。
比如
# 添加敌人到 @action_battlers 序列
for enemy in $game_troop.enemies
  @action_battlers.push(enemy)
  @action_battlers.push(enemy)
end
# 添加角色到 @action_battlers 序列
for actor in $game_party.actors
  @action_battlers.push(actor)
  @action_battlers.push(actor)
end
你会发现 每个敌人、角色 都会行动两次!!

3. Scene_Battle 4中的 make_skill_action_result(生成特技行动结果)
示例
  1. class Scene_Battle
  2.   alias make_skill_action_result_old make_skill_action_result
  3.   def make_skill_action_result
  4.     if @active_battler.states.include?(状态ID) and
  5.       $data_skills[@active_battler.current_action.skill_id].atk_f == 100
  6.       return
  7.     end
  8.     make_skill_action_result_old
  9.   end
  10. end
复制代码

作者: fbeds    时间: 2015-6-16 09:57
嗯,已经解决。




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