查看: 32|回复: 4

[Lua] 土城每日签到领奖(每日一次,累计签到额外大奖)

[复制链接]

16

主题

13

回帖

555

积分

高级会员

积分
555
发表于 5 天前 | 显示全部楼层 |阅读模式
-- SignNPC.lua 签到NPC脚本
local SignNPC = {}

-- NPC对话主入口
function SignNPC.OnTalk(player)
    local sDay = player:GetVarNumber("Sign_Day") -- 今日是否签到标记
    local sCount = player:GetVarNumber("Sign_Count") -- 连续签到天数
    local today = os.date("%d")

    -- 上次签到日期不等于今日=未签到
    if sDay ~= tonumber(today) then
        player:SendMsg(0, "【签到使者】今日还未签到,点击【领取每日奖励】")
        player:AddSelectMenu("领取每日奖励", "SignNPC.GetDailyReward")
    else
        player:SendMsg(0, string.format("【签到使者】今日已签到,连续签到%d天", sCount))
    end
    player:AddSelectMenu("查看连续签到奖励", "SignNPC.ShowTotalReward")
end

-- 领取每日签到奖励
function SignNPC.GetDailyReward(player)
    local today = tonumber(os.date("%d"))
    local oldDay = player:GetVarNumber("Sign_Day")
    local count = player:GetVarNumber("Sign_Count")

    -- 判断断签
    if oldDay ~= today - 1 then
        count = 0 -- 断签重置连续天数
    end
    count = count + 1

    -- 基础奖励
    player:GiveYB(200)
    player:GiveItem("强化石", 3)
    player:SetVarNumber("Sign_Day", today)
    player:SetVarNumber("Sign_Count", count)
    player:SendMsg(0, string.format("签到成功!获得200元宝、3个强化石,连续签到%d天", count))

    -- 7天累计大奖
    if count >= 7 then
        player:GiveItem("高级强化石", 10)
        player:SetVarNumber("Sign_Count", 0) -- 重置循环
        player:SendMsg(0, "连续7天签到达成!额外领取10颗高级强化石!")
    end
end

-- 展示累计奖励提示
function SignNPC.ShowTotalReward(player)
    player:SendMsg(0, "连续签到7天可领取:高级强化石*10")
end

return SignNPC

23

主题

53

回帖

947

积分

高级会员

积分
947
发表于 3 天前 | 显示全部楼层
lua真的这么好用吗?这种签到脚本也要lua写...

2

主题

68

回帖

596

积分

高级会员

积分
596
发表于 昨天 11:16 | 显示全部楼层

lua真的这么好用吗?这种签到脚本也要lua写...

0

主题

10

回帖

123

积分

注册会员

积分
123
发表于 昨天 17:15 | 显示全部楼层
DDDDDDDDDDDD

1

主题

39

回帖

6638

积分

论坛元老

积分
6638
发表于 昨天 17:39 | 显示全部楼层
lua真的这么好用吗?这种签到脚本也要lua写...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表