牛头 发表于 2026-6-17 15:10:30

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

-- 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

pxlovewj 发表于 2026-6-19 21:06:51

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

我爱嘟嘟 发表于 2026-6-21 11:16:33


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

初见ol 发表于 2026-6-21 17:15:34

DDDDDDDDDDDD

goodsnowv 发表于 2026-6-21 17:39:59

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

司马懿 发表于 2026-6-27 22:25:16

可以,自己做版本必学
页: [1]
查看完整版本: 土城每日签到领奖(每日一次,累计签到额外大奖)