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

Project1

 找回密码
 注册会员
搜索

关于VS中的odds这个值是怎么计算的

查看数: 2500 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2014-10-23 22:21

正文摘要:

就是每个职业都有一个类型 这个位置类型决定被怪攻击的几率,反复查看脚本这个值在脚本里是被命名为odds,不知道这个odds是怎么计算被攻击几率的呢~? 哪位大大清楚? ...

回复

chd114 发表于 2014-10-25 08:58:46
喵呜喵5 发表于 2014-10-24 08:30
@chd114 想想都知道史莱姆不可能没有动作
RMVA的目标选择方法
Game_Unit队伍中所有存活队员的受到攻击几率 ...

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

点评

ORZ···就是说想要单人的情况下隐身有效还是得自己改吗···  发表于 2014-10-25 11:00
是的  发表于 2014-10-25 10:50
喵呜喵5 发表于 2014-10-25 01:30:47
本帖最后由 喵呜喵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的话那么固定打第一个活着的队员
喵呜喵5 发表于 2014-10-23 23:45:03
本帖最后由 喵呜喵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. [拉尔夫,拉尔夫,拉尔夫,吴莉嘉,班尼特,班尼特]
复制代码
接着再从这个数组中随机选一个元素出来,选到谁这次攻击就打谁

点评

如果只有拉尔夫一个人打一个史莱姆,拉尔夫的受攻击几率为0是不是史莱姆就无动作了  发表于 2014-10-24 22:44
敌人打我而不打别人,这叫受攻击;打我以后没打中,敌人这次攻击浪费了,这叫闪避  发表于 2014-10-24 22:31
那个受到攻击几率和闪避的区别是什么0.0  发表于 2014-10-24 22:29
VA那个叫“受到攻击几率”,在VX中写成前卫中卫后卫时不知道如何影响受到攻击几率也就算了,名字都叫“受到攻击几率”了还看不懂是要怎样?  发表于 2014-10-24 22:28
VA不是有个隐身什么的技能吗0.0那个调整下效果差不多吧···  发表于 2014-10-24 22:26

评分

参与人数 1星屑 +125 收起 理由
怪蜀黍 + 125 认可答案

查看全部评分

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

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

GMT+8, 2024-5-10 11:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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