Project1

标题: 关于VS中的odds这个值是怎么计算的 [打印本页]

作者: CHAR    时间: 2014-10-23 22:21
标题: 关于VS中的odds这个值是怎么计算的
就是每个职业都有一个类型

这个位置类型决定被怪攻击的几率,反复查看脚本这个值在脚本里是被命名为odds,不知道这个odds是怎么计算被攻击几率的呢~?


哪位大大清楚?
作者: 喵呜喵5    时间: 2014-10-23 23:45
本帖最后由 喵呜喵5 于 2014-10-23 23:47 编辑

Game_Unit
  1.   def random_target
  2.     roulette = []
  3.     for member in existing_members
  4.       member.odds.times do
  5.         roulette.push(member)
  6.       end
  7.     end
  8.     return roulette.size > 0 ? roulette[rand(roulette.size)] : nil
  9.   end
复制代码
思路就是根据队伍中存活角色的odd生成一个类似这样的数组:
  1. [拉尔夫,拉尔夫,拉尔夫,吴莉嘉,班尼特,班尼特]
复制代码
接着再从这个数组中随机选一个元素出来,选到谁这次攻击就打谁
作者: 喵呜喵5    时间: 2014-10-25 01:30
本帖最后由 喵呜喵5 于 2014-10-25 01:32 编辑

@chd114 想想都知道史莱姆不可能没有动作
RMVA的目标选择方法
Game_Unit
  1.   def random_target
  2.     tgr_rand = rand * tgr_sum
  3.     alive_members.each do |member|
  4.       tgr_rand -= member.tgr
  5.       return member if tgr_rand < 0
  6.     end
  7.     alive_members[0]
  8.   end
复制代码
队伍中所有存活队员的受到攻击几率加起来乘以0~1之间的随机数,然后再一个一个减去每名队员的受到攻击几率,如果小于0那么对应的角色挨打,如果全员的受攻击几率都为0导致最后结果也不小于0的话那么固定打第一个活着的队员
作者: chd114    时间: 2014-10-25 08:58
喵呜喵5 发表于 2014-10-24 08:30
@chd114 想想都知道史莱姆不可能没有动作
RMVA的目标选择方法
Game_Unit队伍中所有存活队员的受到攻击几率 ...

就是说VA默认的隐身技能如果只有一个人,用了也等于没效果?




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