查看: 3024|回复: 9

[已经解决] 请教随机目标的公式写法

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2019-1-15 17:36:05 | 显示全部楼层 |阅读模式

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

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

×
例如眼前有N条路,角色踏上这几条路的几率都不同,请问角色最后随机走上了哪一条路?

我复制了游戏随机决定目标的公式来改,但最后却失败了,看了看元脚本是遍历我方存活角色然后让全角色的合计仇恨逐个减去每个角色的rand(仇恨),实际上这样遍历一遍肯定是减不完的。
另外,脚本不支持数组的合计函数吗?
梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-1-15 18:19:34 | 显示全部楼层
a=[1,2,3].max
p a#3
其实我看不懂楼主的问题..

点评

仇恨的话时先统计了所有角色的合计值再计算的,计算方法就是鹰大写的那个。  发表于 2019-1-15 20:37
返回仇恨数组所在的单元位置  发表于 2019-1-15 19:25
那不是选仇恨最高的值吗?那用index  发表于 2019-1-15 19:24
max是求数组中元素的最大值不是合计值。另外我的问题是在原始脚本中敌人根据仇恨多少选择我方哪名队友进行攻击的那个计算公式。  发表于 2019-1-15 19:07

评分

参与人数 1赞 +1 收起 理由
jianyulei + 1 塞糖

查看全部评分

回复

使用道具 举报

老鹰

梦石
40
星屑
37812
在线时间
7091 小时
注册时间
2012-5-26
回帖
3297

极短24评委极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2019-1-15 18:20:33 | 显示全部楼层
推荐:
每条路都定义一个随机因子,比如A有20,B有30,C有10,而它们的和s=60作为分母
那么它们的被选中的概率就是 随机因子/s
然后取 1~s 之间的一个随机数r,按顺序判定该数在哪个区间内,就取那个结果
{A => 20, B => 30, C => 10}.each do |k, v|
  return k if (r -= v) <= 0
end

评分

参与人数 2星屑 +20 赞 +1 收起 理由
jianyulei + 1 认可答案
VIPArcher + 20 我很赞同

查看全部评分

回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2019-1-15 19:18:26 | 显示全部楼层
a = [1,2,3]
eval a.join("+")

点评

a = [0,1,2,3,4,5]; b= a.join("+") ; p eval(b);可以合计了  发表于 2019-1-15 19:45

评分

参与人数 1赞 +1 收起 理由
jianyulei + 1 塞糖

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2019-1-15 19:27:10 | 显示全部楼层
p a.index(a.max) 获取数组中最大值元素的位置
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部