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

Project1

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

[已经解决] 回合行动的顺序判断的脚本是在哪个目录里面呢

[复制链接]

Lv1.梦旅人

梦石
0
星屑
90
在线时间
11 小时
注册时间
2018-5-20
帖子
6
跳转到指定楼层
1
发表于 2018-5-20 23:03:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
Game_Battler 1里面有获取角色的速度值
我想知道回合判定速度值高先出手的脚本在哪个目录里,是如何实现判断的
请教一下

Lv5.捕梦者 (版主)

梦石
1
星屑
23999
在线时间
3339 小时
注册时间
2011-7-8
帖子
3926

开拓者

2
发表于 2018-5-20 23:21:41 手机端发表。 | 只看该作者
make_action_speed
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39034
在线时间
5725 小时
注册时间
2006-11-10
帖子
6622
3
发表于 2018-5-20 23:26:13 | 只看该作者
Game_Battler 是定义各种战斗需要的数据的, 负责获得战斗者的各种属性, 战斗时使用的技能效果,伤害公式等

可以把它看做"战斗前准备"

实际战斗过程是在 scene battle 实现的

scene_battle分成4个部分.  大致可以看做  

1 准备好战斗场景和各种道具(窗口), 把没用到的窗口隐藏起来, 安排好战斗流程
2  战斗开始和战斗结束的判断, 顺便安排善后工作
3  负责打开各种窗口,给我方角色输入各种指令
4  正式开打

从上面的总结可以看出, 你要找的那个部分, 是属于已经开打后的效果. 所以到 scene battle4 里去找.

  #--------------------------------------------------------------------------
  # ● 生成行动循序
  #--------------------------------------------------------------------------
  def make_action_orders

就是它了~

解释下这个方法的工作原理
先准备一个空的数组
然后把前面已经下好指令的角色塞进去
接着把可以行动的敌人也塞进去
然后给他们分别按规则算好速度(game battler里设定好的make_action_speed规则)
重新整理这个数组,把里面的单位按速度排列
end

评分

参与人数 2星屑 +50 +1 收起 理由
RyanBern + 50 认可答案
xp兔子徒弟 + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
90
在线时间
11 小时
注册时间
2018-5-20
帖子
6
4
 楼主| 发表于 2018-5-21 00:12:31 | 只看该作者
灯笼菜刀王 发表于 2018-5-20 23:26
Game_Battler 是定义各种战斗需要的数据的, 负责获得战斗者的各种属性, 战斗时使用的技能效果,伤害公式等

...

按您的方法去查看了一下,大概意思就是
Game_Battler 1里面先把速度值确认出来
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 确定动作速度
  3.   #--------------------------------------------------------------------------
  4.   def make_action_speed
  5.     @current_action.speed = agi + rand(10 + agi / 4)
  6.   end


然后
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 生成行动循序
  3.   #--------------------------------------------------------------------------
  4.   def make_action_orders
  5.     # 初始化序列 @action_battlers
  6.     @action_battlers = []
  7.     # 添加敌人到 @action_battlers 序列
  8.     for enemy in $game_troop.enemies
  9.       @action_battlers.push(enemy)
  10.     end
  11.     # 添加角色到 @action_battlers 序列
  12.     for actor in $game_party.actors
  13.       @action_battlers.push(actor)
  14.     end
  15.     # 确定全体的行动速度
  16.     for battler in @action_battlers
  17.       battler.make_action_speed
  18.     end
  19.     # 按照行动速度从大到小排列
  20.     @action_battlers.sort! {|a,b|
  21.       b.current_action.speed - a.current_action.speed }
  22.   end


这里就是对参与战斗的ID进行速度值确认,然后按大小来判定先后顺序是吧
那这里最后一句的b.current_action.speed - a.current_action.speed是什么意思呢

点评

current_action.speed,这个数据可以看你最上面贴出来的那段,可以看到make_action_speed这个方法就是给这个变量附加实际数据了。  发表于 2018-5-21 09:56
这个是块的操作,带块调用的方法会把参数传给块,使用块的计算结果互相比较。详细可以按F1 搜索 sort ,不理解没关系,先死记下来,用多了就懂了  发表于 2018-5-21 09:53
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6245
在线时间
558 小时
注册时间
2018-6-5
帖子
129
5
发表于 2018-6-8 00:23:31 | 只看该作者
Game_Battle 1分割定义里
俄罗斯帝国末代沙皇尼古拉二世
#俄文转写 = Царь Николай II
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 19:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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