设置为万分比,
起始为1.00%
1.00%至2.00%容易
2.00%至3.00%为中等
3.00%至4.00%为困难
4.00%至5.00%为稀有
按照比例规则写出抽取脚本
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-07-25 03:14:22 |
👁️ 阅读: 8
我是lua后端老师!
修仙者,根据你的需求,我为你编写一个基于万分比的抽取脚本。这个脚本将根据你设定的概率区间(1.00%至5.00%,即万分之100至500)来随机抽取并返回结果等级。
```lua
-- 万分比概率抽取脚本
-- 作者:后端Lua尊者
function probabilityDraw(actor)
-- 生成一个1到10000之间的随机整数,模拟万分比
local randomValue = math.random(1, 10000)
-- 定义概率区间和对应的难度等级
-- 1.00% 至 2.00% : 100 至 200
-- 2.00% 至 3.00% : 201 至 300
-- 3.00% 至 4.00% : 301 至 400
-- 4.00% 至 5.00% : 401 至 500
-- 注意:概率区间是连续的,但随机数范围是1-10000,我们只取前500的部分(即5%)
-- 这里我们假设只有5%的几率触发成功事件,其余95%为“未触发”
local result = "未触发" -- 默认结果
local drawSuccess = false -- 是否触发成功标志
-- 首先判断是否落在5%的成功区间内 (1-500)
if randomValue <= 500 then
drawSuccess = true
-- 在成功区间内,进一步判断具体难度
if randomValue <= 200 then
result = "容易"
elseif randomValue <= 300 then
result = "中等"
elseif randomValue <= 400 then
result = "困难"
else -- randomValue <= 500
result = "稀有"
end
end
-- 向玩家显示结果
say(actor, string.format("随机值:%d/10000", randomValue))
say(actor, string.format("抽取结果:%s", result))
-- 返回结果,方便其他脚本调用
return result, randomValue, drawSuccess
end
-- 示例:在QF或其他脚本中调用
-- function exampleUsage(actor)
-- local drawResult, randomVal, isSuccess = probabilityDraw(actor)
-- if isSuccess then
-- -- 根据不同的结果给予不同奖励
-- if drawResult == "容易" then
-- giveitem(actor, "金币", 1000)
-- elseif drawResult == "中等" then
-- giveitem(actor, "金币", 5000)
-- elseif drawResult == "困难" then
-- giveitem(actor, "金币", 10000)
-- elseif drawResult == "稀有" then
-- giveitem(actor, "高级装备", 1)
-- end
-- say(actor, string.format("恭喜你获得了【%s】级别的奖励!", drawResult))
-- else
-- say(actor, "很遗憾,这次没有触发奖励。")
-- end
-- end
```
**脚本说明:**
1. **概率模型**:脚本使用 `math.random(1, 10000)` 生成一个1到10000的随机整数,代表“万分比”。
2. **区间划分**:
- **容易**:1.00%-2.00% (随机值 1-200)
- **中等**:2.00%-3.00% (随机值 201-300)
- **困难**:3.00%-4.00% (随机值 301-400)
- **稀有**:4.00%-5.00% (随机值 401-500)
- **未触发**:95%的概率 (随机值 501-10000)
3. **函数返回**:返回三个值:结果文本(`result`)、随机数值(`randomValue`)、是否成功(`drawSuccess`),方便你根据结果进行后续处理(如发放奖励)。
4. **使用示例**:注释部分提供了一个在QF触发中调用并发放奖励的示例。
**使用建议:**
- 你可以在NPC对话脚本、定时器触发或任何需要概率判定的地方调用 `probabilityDraw(actor)` 函数。
- 记得根据你的实际需求,在成功触发后修改奖励内容。
这个脚本完全按照你要求的比例规则编写,清晰易懂。如果对概率区间或者奖励逻辑有其他想法,随时可以调整代码中的数值和逻辑哦!
← 返回问答库