CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
入门夯实996引擎math.random参数形态

【入门夯实】math.random的参数形态:零参与倒参的报错

2026-09-25 14:46 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本入门夯实996引擎Luamath.random参数形态

学员常见误区

把 math.random() 的返回值当整数用——不带参数时它返回 0 到 1 之间的小数,直接拿去计数或比较区间全是错的;另外 random(5, 1) 这种起点大于终点的写法、random(0) 的零区间,都会直接报 bad argument。错误场景:

lua
print(math.random())

输出 0.286902 之类的小数——想要的是 1 到 100 的整数掷点,拿到的是小数。

正确姿势

要整数必须带参数:random(n) 得 1 到 n,random(m, n) 得 m 到 n(含两端)。规范写法。示例代码如下:

lua
local roll = math.random(1, 100)
if roll <= 30 then
    sendmsg(actor, 1, "触发烈火剑法双倍伤害。")
end

1 到 100 掷点、30% 概率判定——形态用对,概率才有意义。

引擎验证

三步验证:裸调 random() 观察小数输出,确认不带参的形态;故意调 random(5, 1) 与 random(0) 复现 bad argument 报错并记住提示语;改成 random(1, 100) 循环一万次统计 30 以下的频率,结果落在 30% 附近验证均匀性。

举一反三

需要精细小概率(如千分之五的暴率)时,用无参形态的小数配合阈值判断。示例代码如下:

lua
local rare = math.random() < 0.005
print(rare)

0.005 即五千分之一——整数掷点表达不了的概率刻度,小数形态刚好补位。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战游戏功能

帮会运镖:镖车护送与劫镖的判定规则

【游戏】 一、一行代码拆解:hp = 10000 + teamN 5000 —— 运镖劫镖的全部骨架:镖车按护送人数增强血量…

2026-09-26 22:53 996 技术组 · 0 阅读
进阶实战语法算法

Lua线性建堆:自底向上的堆构造

【语法】 一、隐蔽陷阱:逐个插入建堆要 n 次上浮;自底向上从末个非叶子节点倒序下沉,一遍线性把乱序表调成合法堆。 二、底层…

2026-09-26 22:53 996 技术组 · 0 阅读
入门夯实语法算法

Lua真因子和数:真因子和的数体判定

【语法】 一、抛坑提问:一个数等于它全部真因子之和就叫真因子和数,6 等于 1 加 2 加 3——判定只需枚举到平方根配对求…

2026-09-26 22:53 996 技术组 · 0 阅读
入门夯实游戏功能

批量合成:低级材料的批量转换

【游戏】 一、一行代码拆解:n = math.floor(have / 5) —— 批量合成的全部骨架:5 个碎片合成 1 …

2026-09-26 22:53 996 技术组 · 0 阅读
策划架构游戏功能

装备保险:死亡掉落的保险赔付

【游戏】 一、一行代码拆解:if INSURED[actor] then 赔付 end —— 装备保险的全部骨架:死亡掉落判…

2026-09-26 22:53 996 技术组 · 0 阅读
进阶实战语法算法

Lua快速选择:第K小元素的分区求解

【语法】 一、隐蔽陷阱:找第 K 小元素先全量排序再取下标,n log n 浪费在无关排序上;快速选择借用快排分区——每轮只…

2026-09-26 22:53 996 技术组 · 0 阅读