Project1

标题: 请问:怎么做回合制战斗? [打印本页]

作者: cmzjbczzf    时间: 2008-8-18 19:07
标题: 请问:怎么做回合制战斗?
就是我方轮流出招,然后才允许敌人出招,而不是根据速度来决定 [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: dbshy    时间: 2008-8-18 19:20
def make_action_orders
    # 初始化序列 @action_battlers
    @action_battlers = []
    # 添加敌人到 @action_battlers 序列
    for enemy in $game_troop.enemies
      @action_battlers.push(enemy)
    end
    # 添加角色到 @action_battlers 序列
    for actor in $game_party.actors
      @action_battlers.push(actor)
    end
    # 确定全体的行动速度
    for battler in @action_battlers
      battler.make_action_speed
    end
    # 按照行动速度从大到小排列
    @action_battlers.sort! {|a,b|
      b.current_action.speed - a.current_action.speed }
  end

把排序的删了
作者: ybb520520520    时间: 2008-8-18 19:21
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-8-18 19:39
  def make_action_orders
    # 初始化序列 @action_battlers
    @action_battlers = []
       for actor in $game_party.actors
      @action_battlers.push(actor)
    end
     for enemy in $game_troop.enemies
      @action_battlers.push(enemy)
    end
  end

替换掉原来的脚本,即可
作者: cmzjbczzf    时间: 2008-8-18 19:43
还是不行,这样还是会出现这一回合我先出手,下一回合他先出手的情况……
作者: ybb520520520    时间: 2008-8-18 23:25
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-8-19 00:08
以下引用cmzjbczzf于2008-8-18 11:43:32的发言:

还是不行,这样还是会出现这一回合我先出手,下一回合他先出手的情况……

在game_battle下找到这段
#--------------------------------------------------------------------------
  # ● 确定动作速度
  #--------------------------------------------------------------------------
  def make_action_speed
    @current_action.speed = agi + rand(10 + agi / 4)
  end

作者: dbshy    时间: 2008-8-19 00:37
以下引用cmzjbczzf于2008-8-18 11:43:32的发言:

还是不行,这样还是会出现这一回合我先出手,下一回合他先出手的情况……


def make_action_orders
   # 初始化序列 @action_battlers
   @action_battlers = []
      for actor in $game_party.actors
     @action_battlers.push(actor)
   end
    for enemy in $game_troop.enemies
     @action_battlers.push(enemy)
   end
end


默认的根据AGI来排序,而我修改的直接的放进数组中,根本不会排序.....

解释到此,要说的已经说完了....


[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: cmzjbczzf    时间: 2008-8-19 00:44
ybb520520520的回答真的很囧……
作者: 灯笼菜刀王    时间: 2008-8-19 00:50
他的方法是最方便的。dbshy君的是最直接的。我提供给你个最干脆的-。-

#--------------------------------------------------------------------------
# ● 确定动作速度
#--------------------------------------------------------------------------
def make_action_speed
   if @current_action.is_a?(Game_Actor)
    @current_action.speed = 999
   else
    @current_action.speed = 1
  end
end

把这段替换原来的就行了。


作者: cmzjbczzf    时间: 2008-8-19 20:05
还是不行~
算了~
我放弃这个了~
以后自己解决~
作者: 三毛    时间: 2008-8-19 20:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: 三毛    时间: 2008-8-19 20:45
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmzjbczzf    时间: 2009-6-12 08:00
楼上醒悟的很及时;
楼上的楼上,请问哪些是排序的?




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