摊位收费统一一个价:黄金位置与角落位置同价——好摊位秒抢、差摊位无人问。分级费率的入门写法:用一张费率表按摊位级别查表取费,而不是写一堆 if-else。学员常见的额外错误是把费率写成小数(0.05 表示 5%)而不是整数(500 表示万分之 500),与其他配置的单位不统一。错误场景:
local rates = { gold = 0.05, std = 0.01 }
local fee = price * rates.gold
费率用小数与其他万分比配置不统一,容易混用出错。
费率表用整数万分比,查表取费后 math.floor 取整。规范写法。示例代码如下:
local RATES = { gold = 500, std = 100, free = 0 }
local function calcTax(price, tier)
local rate = RATES[tier] or 0
return math.floor(price * rate / 10000)
end
print(calcTax(50000, "gold"))
calcTax(50000, "gold") 返回 2500——万分之 500 即 5% 的摊位税。
三步验证:gold 级 5 万金币的商品税费 2500;free 级税费为 0;费率表查不到的级别返回 0 不报错。
分级费率的配置表可以扩展为按等级递增的阶梯费率(首小时全额、连续租用打 9 折),只需要在查表前加一个连续天数折扣系数。示例代码如下:
local function calcTaxDays(price, tier, days)
local base = calcTax(price, tier)
if days >= 7 then
return math.floor(base * 0.9)
end
return base
end
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、业务场景:if dist 20 then rate = 0.5 end —— 距离折损的全部骨架。组队打宝有人…
【游戏】 一、业务场景:STOCK = STOCK - 1 —— 全服限量抢购的核心一行。限量 1000 件的活动因不验余量…
【语法】 一、抛坑提问:按"金币除以等级"的复合值排序,比较函数里每次都现算除法,n log n 次重复计算——装饰排序先把…
【语法】 一、抛坑提问:背包格子列表整体后移 2 格,末尾 2 件绕回头部,逐个搬移要写嵌套循环——三步反转法三次交换完成,…
【游戏】 一、业务场景:PROGRESS = 0 —— 任务重接的全部规则。讨伐祖玛教主 30 只的任务卡在 29 只想换路…
【语法】 一、隐蔽陷阱:嵌套盒子求总金币用递归,盒子层数不可控时调用栈随之失控;把递归改成显式栈循环,层数与内存占用从失控变…