-- 固定充值 6个档位首次达成发放
if getint(play,"充值档位奖励6") ~= 1 then
local t = DATA.chongzhi
for i = 1, 6, 1 do
if querymoney(play,10) >= t.allnum[i] and getint(play,"充值档位奖励"..i) == 0 then
-- 循环给物品
fo
🤖 回答引擎: 后端Lua |
🕒 时间: 2026-03-09 12:04:14 |
👁️ 阅读: 9
哈喽,我是Lua后端老师!
小仙,想改成邮件发放物品,这个想法很好,这样物品更安全,玩家离线也能收到。我们来调整一下代码。
你需要把循环内使用 `gives` 函数发放物品的部分,替换成准备邮件附件内容,然后使用 `sendmail` 函数发送。
修改后的核心部分如下:
```lua
-- 固定充值 6个档位首次达成发放
if getint(play,"充值档位奖励6") ~= 1 then
local t = DATA.chongzhi
for i = 1, 6, 1 do
if querymoney(play,10) >= t.allnum[i] and getint(play,"充值档位奖励"..i) == 0 then
-- 构建邮件附件字符串
local mailRewards = ""
for idx, item in pairs(t.item[i]) do
if idx > 1 then
mailRewards = mailRewards .. "&" -- 不同物品用&分隔
end
-- 物品名#数量#绑定标记(这里绑定标记设为0,可根据需要调整)
mailRewards = mailRewards .. item[1] .. "#" .. item[2] .. "#0"
end
-- 发送邮件
sendmail(getbaseinfo(play, 2), -- 参数1:玩家UserID
i, -- 参数2:自定义邮件ID,这里用档位i
"在线充值礼包", -- 参数3:邮件标题
"恭喜您达成充值档位,奖励已发放,请查收附件。", -- 参数4:邮件内容
mailRewards) -- 参数5:附件物品字符串
setint(play,"充值档位",i+1)
setint(play,"充值档位奖励"..i, 1)
sendmsg(play, 1, '{"Msg":"[充值档位奖励]奖励已通过邮件发放,请注意查收!","FColor":255,"BColor":219,"Type":1}')
end
end
end
```
**主要改动说明:**
1. **移除**了原来的 `gives` 函数和循环内的 `sendmsg`。
2. **新增**了构建 `mailRewards` 字符串的逻辑,它按照 `物品名#数量#绑定标记` 的格式拼接,多个物品用 `&` 连接。
3. **调用** `sendmail` 函数发送邮件。注意第一个参数需要用 `getbaseinfo(play, 2)` 获取玩家的唯一UserID。
4. 发送成功后,用一条提示消息告诉玩家奖励已发到邮件。
这样修改后,每当玩家满足一个新的充值档位条件,奖励就会直接发送到他的邮件里,而不是直接进背包。记得测试一下哦,如果还有不清楚的,随时问我或者我的师傅浮生梦尊师!
哈喽,我是Lua后端老师!
小仙,想改成邮件发放物品,这个想法很好,这样物品更安全,玩家离线也能收到。我们来调整一下代码。
你需要把循环内使用 `gives` 函数发放物品的部分,替换成准备邮件附件内容,然后使用 `sendmail` 函数发送。
修改后的核心部分如下:
```lua
-- 固定充值 6个档位首次达成发放
if getint(play,"充值档位奖励6") ~= 1 then
local t = DATA.chongzhi
for i = 1, 6, 1 do
if querymoney(play,10) >= t.allnum[i] and getint(play,"充值档位奖励"..i) == 0 then
-- 构建邮件附件字符串
local mailRewards = ""
for idx, item in pairs(t.item[i]) do
if idx > 1 then
mailRewards = mailRewards .. "&" -- 不同物品用&分隔
end
-- 物品名#数量#绑定标记(这里绑定标记设为0,可根据需要调整)
mailRewards = mailRewards .. item[1] .. "#" .. item[2] .. "#0"
end
-- 发送邮件
sendmail(getbaseinfo(play, 2), -- 参数1:玩家UserID
i, -- 参数2:自定义邮件ID,这里用档位i
"在线充值礼包", -- 参数3:邮件标题
"恭喜您达成充值档位,奖励已发放,请查收附件。", -- 参数4:邮件内容
mailRewards) -- 参数5:附件物品字符串
setint(play,"充值档位",i+1)
setint(play,"充值档位奖励"..i, 1)
sendmsg(play, 1, '{"Msg":"[充值档位奖励]奖励已通过邮件发放,请注意查收!","FColor":255,"BColor":219,"Type":1}')
end
end
end
```
**主要改动说明:**
1. **移除**了原来的 `gives` 函数和循环内的 `sendmsg`。
2. **新增**了构建 `mailRewards` 字符串的逻辑,它按照 `物品名#数量#绑定标记` 的格式拼接,多个物品用 `&` 连接。
3. **调用** `sendmail` 函数发送邮件。注意第一个参数需要用 `getbaseinfo(play, 2)` 获取玩家的唯一UserID。
4. 发送成功后,用一条提示消息告诉玩家奖励已发到邮件。
这样修改后,每当玩家满足一个新的充值档位条件,奖励就会直接发送到他的邮件里,而不是直接进背包。记得测试一下哦,如果还有不清楚的,随时问我或者我的师傅浮生梦尊师!
← 返回问答库