设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1412|回复: 4
打印 上一主题 下一主题

[已经解决] 如何实现多角色队伍中每回合只有部分角色可以行动?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-28
帖子
18
跳转到指定楼层
1
发表于 2013-12-12 18:08:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
如何实现多角色队伍中每回合只有部分角色可以行动?

问题比较抽象,先说说最终要达到的效果:

1,队伍中共有6名角色出战,序号1、2、3……6
2,战斗开始后,所有角色自动战斗,不用再选择指令(已实现)
3,战斗开始后第一回合:序号为1、2、3的角色自动攻击敌人,4、5、6角色不做任何动作
4,战斗开始后敌人回合:随机攻击序号1-6中的任意一个角色
5,战斗开始后第二回合:序号为4、5、6的角色自动攻击敌人,1、2、3角色不做任何动作
6,战斗开始后敌人回合:随机攻击序号1-6中的任意一个角色
之后循环过程3-6;

目前的思路是,引入一个全局变量 $turn_index = 0,敌人回合结束后+1,控制回合数与参战角色序号的对应关系:

比如 in_actor[min..max]=$turn_index % 2 * 3 , $turn_index % 2 * 3 +1 , $turn_index % 2 * 3 + 2

然后,每回合决定我方行动列表时,只选择in_actor[ ]中的角色;



问题在于,因为涉及了自动战斗,原有的角色行动流程更看不懂了(BattleManager),不清楚应该在什么地方修改,求大大们指点~

点评

可以的话请附上自动战斗的脚本,不然这边修改完不排除和自动战斗脚本发生冲突的可能性  发表于 2013-12-12 18:25
游戏开发者+游戏玩家

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-28
帖子
18
2
 楼主| 发表于 2013-12-12 18:55:53 | 只看该作者
  1. #效果为:团队指令界面,点击一次战斗后,自动战斗到分出胜负为止
  2. #开关1表示团队战斗指令输入ok
  3. #
  4. class Scene_Battle < Scene_Base
  5.    
  6.      alias ma_command_fight command_fight
  7.   
  8.      def command_fight
  9.      
  10.       $game_switches[1] = 1
  11.       
  12.        ma_command_fight
  13.    
  14.      end
  15.      
  16. end   
  17.      
  18. class Game_Actor
  19.    
  20.      def auto_battle?
  21.    
  22.        $game_switches[1] || super
  23.    
  24.      end
  25. end
复制代码
脚本很山寨,自己写的……献丑了
游戏开发者+游戏玩家
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-28
帖子
18
3
 楼主| 发表于 2013-12-12 22:54:36 | 只看该作者
另:敌人永远只会有1个,行动顺序也永远是 我方先行动,所以没有想太复杂,大大们也不用想太复杂~
游戏开发者+游戏玩家
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-28
帖子
18
4
 楼主| 发表于 2013-12-16 11:13:38 | 只看该作者
本帖最后由 joerlee 于 2013-12-16 16:14 编辑
joerlee 发表于 2013-12-12 22:54
另:敌人永远只会有1个,行动顺序也永远是 我方先行动,所以没有想太复杂,大大们也不用想太复杂~ ...


#-------------------------------------------------------------------
  # ● 这里实现了2个功能:敌人只攻击队长,每回合可以参加攻击的角色不同
  #--------------------------------------------------------------------------
module BattleManager

  #-------------------------------------------------------------------
  # ● 初始化成员
  #--------------------------------------------------------------------------
  def self.init_members
   
    $turn_index = -1                  # 添加组计数

  end
  
  def self.turn_start
   
    $turn_index += 1
    @phase = :turn
    clear_actor
    $game_troop.increase_turn
    make_action_orders
    turn_limit          # 敌人只攻击队长
   
  end
  
  def self.make_action_orders
    action_limit        
    @action_battlers = []   
    @action_battlers += @game_party_members # 在这里偷梁换柱了
    @action_battlers += $game_troop.members

  end
  

  #--------------------------------------------------------------------------
  # ● 全员增加不受攻击的状态3,队长再单独加受攻击状态4,需要配合状态
  #--------------------------------------------------------------------------
  def self.turn_limit
      
      $game_party.all_members.each do |actor|
      actor.add_state(3)
      end
   
      $game_party.leader.remove_state(3)
      $game_party.leader.add_state(4)
      
  end
  
  #--------------------------------------------------------------------------
  # ● 选择每回合可行动的队员
  #--------------------------------------------------------------------------
  def self.action_limit
   
    @game_party_members = []
   
    $row_members_max = 3
   
    $party_members_max = 6
   
    @a = $party_members_max / $row_members_max
   
    @turn_index_min = ( $turn_index % @a ) * $row_members_max + 1
   
    @turn_index_max = @turn_index_min + $row_members_max
   
    i = @turn_index_min
   
    while i < @turn_index_max
      
      @game_party_members.push $game_party.members[@actorid = i - 1]
      
      i += 1
    end
  
  end
  
end
游戏开发者+游戏玩家
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2013-10-28
帖子
18
5
 楼主| 发表于 2013-12-16 11:14:23 | 只看该作者
本帖最后由 joerlee 于 2013-12-16 16:13 编辑
joerlee 发表于 2013-12-16 11:13
#-------------------------------------------------------------------
  # ● 这里实现了2个功能:敌 ...

虽然这个实现不够漂亮,算法部分不够简洁,不过目前还能凑合用,算是完成了吧,感谢各位帮助,帖子可以over了
游戏开发者+游戏玩家
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 04:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表