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

【入门夯实】整数除法:人数分组的先floor再比较

2026-09-24 13:42 作者:996 技术组 0 阅读 996引擎Lua教程传奇脚本入门夯实996引擎Lua除法取整

学员常见误区

30 份奖励按 4 人一组分配,学员写 30 / 4 = 7.5,再拿 7.5 去做循环边界或数量比较——Lua 的 / 永远返回浮点,7.5 参与下标、比较、拼接都会出幺蛾子:t[7.5] 是 nil,"共 7.5 组"的公告更让玩家满头问号。除法的商要当“份数”用,必须显式向下取整。错误写法:

lua
local function splitGroups(actor, total, perGroup)
    actor = getplayerbyname(actor)
    local groups = total / perGroup
    for i = 1, groups do
        sendmsg(actor, 1, "第 " .. i .. " 组发放完毕。")
    end
end

total=30、perGroup=4 时 i 会取到 7.5,循环多跑一轮半且下标全错。

正确姿势

份数用 math.floor 显式取整,余数单独处理:整除部分循环发放,余量单独发一轮。示例代码如下:

lua
local function splitGroups(actor, total, perGroup)
    actor = getplayerbyname(actor)
    local fullGroups = math.floor(total / perGroup)
    local remainder = total % perGroup
    for i = 1, fullGroups do
        giveitem(actor, "裁决之杖碎片", perGroup)
        sendmsg(actor, 1, "第 " .. i .. " 组发放 " .. perGroup .. " 片。")
    end
    if remainder > 0 then
        giveitem(actor, "裁决之杖碎片", remainder)
        sendmsg(actor, 1, "余量单发 " .. remainder .. " 片。")
    end
end

本篇的新技术点是“商与余分离”:floor 的商管整组循环,% 的余数管散片,两者配合让任何总量都能恰好分完。

引擎验证

三步验证:total=30、perGroup=4 时 fullGroups 应为 7、remainder 为 2,合计恰为 30;total=12、perGroup=4 的整除场景余数为 0、不进余量分支;total=3、perGroup=4 的不足一组场景只走余量分支。

举一反三

反过来“每组分几个”也同理:人均 = math.floor(总量 / 人数),剩余的进行会金库而不是硬分。示例代码如下:

lua
local function perPlayerAndRemain(total, players)
    local per = math.floor(total / players)
    local remain = total - per * players
    return per, remain
end
作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

策划架构996引擎

【策划架构】反伤与荆棘:生存向反击属性的收益模型设计

设计初衷 生存向属性的堆法单一:全堆血防就能站桩——挨打没有反馈,进攻方也没有取舍。反伤与荆棘设计:引入"被打反伤"机制并配…

2026-09-25 16:19 996 技术组 · 0 阅读
策划架构996引擎

【策划架构】活动复刻:老玩法的翻新与节奏重排设计

设计初衷 活动做过就下架:老玩家念着当年的中秋灯会,新玩家永远错过——内容资产利用率极低,新玩法的开发压力却全压在增量上。活…

2026-09-25 16:19 996 技术组 · 0 阅读
高级技巧996引擎

【高级技巧】中间件模式:请求处理的洋葱模型封装

底层原理 一条业务请求(聊天、交易、入队)前面总挂着同样的横切逻辑:鉴权、限频、日志——每个入口各写一遍必然重复。中间件模式…

2026-09-25 16:19 996 技术组 · 0 阅读
高级技巧996引擎

【高级技巧】线段树:区间统计的分段管理

底层原理 求区间和(第 3 到 17 名的战力总和):前缀和预处理后查询 O(1),但单点更新要 O(n) 重算整张前缀表;…

2026-09-25 16:19 996 技术组 · 0 阅读
策划架构996引擎

【策划架构】玩家传记:个人历程的自动编纂设计

设计初衷 玩家的江湖故事散落在各系统的角落:成就页有里程碑、战绩页有击杀、名人堂有荣誉——拼不出一个完整的"人"。玩家传记设…

2026-09-25 16:19 996 技术组 · 0 阅读
进阶实战996引擎

【进阶实战】马车货运:多站卸货的运力调度封装

业务场景 玩家跑商只能身上背货:负重有限、路线自己跑、货物分站下不去。马车货运封装:驿站雇马车按固定线路多点卸货,载重按马车…

2026-09-25 16:19 996 技术组 · 0 阅读