-- 全局怪物击杀计数回调(所有地图通用)
function OnMonsterKill(Player,MonsterID)
-- 排除新手小怪、假人怪物(可自定义怪物ID)
if MonsterID < 1000 then return end
-- 累计每日杀怪数
local KillNum = tonumber(Player:GetVar("Day_Kill_Monster")) or 0
Player:SetVar("Day_Kill_Monster",KillNum + 1)
end
-- 刷怪福利领取NPC
function OnClickKillReward(self)
local kill = tonumber(self:GetVar("Day_Kill_Monster")) or 0
local r1 = self:GetVar("Kill_Rew_100")
local r2 = self:GetVar("Kill_Rew_500")
local r3 = self:GetVar("Kill_Rew_1000")
local info = string.format("今日累计杀怪:%d只\n\n1.击杀100只(未领:%s):元宝1000、小怪爆率券x1\n2.击杀500只(未领:%s):高级强化石x8、百万经验卷x2\n3.击杀1000只(未领:%s):绑定万元宝、神装碎片x5",
kill,r1=="1"?"已领":"可领",r2=="1"?"已领":"可领",r3=="1"?"已领":"可领")
self:ShowDialog("每日刷怪福利",info,"领取100只|领取500只|领取1000只|关闭")
end
-- 杀怪奖励领取逻辑
function OnSelectKillReward(self,idx)
local kill = tonumber(self:GetVar("Day_Kill_Monster")) or 0
if idx == 1 then
if kill < 100 then self:SendMsg("今日杀怪数量不足100!")return end
if self:GetVar("Kill_Rew_100")=="1" then self:SendMsg("已领取该档位奖励!")return end
self:AddGold(1000)
self:AddItem(80001,1)
self:SetVar("Kill_Rew_100","1")
self:SendMsg("成功领取100只杀怪奖励!")
elseif idx == 2 then
if kill < 500 then self:SendMsg("今日杀怪数量不足500!")return end
if self:GetVar("Kill_Rew_500")=="1" then self:SendMsg("已领取该档位奖励!")return end
self:AddItem(10001,8)
self:AddItem(80002,2)
self:SetVar("Kill_Rew_500","1")
self:SendMsg("成功领取500只杀怪奖励!")
elseif idx == 3 then
if kill < 1000 then self:SendMsg("今日杀怪数量不足1000!")return end
if self:GetVar("Kill_Rew_1000")=="1" then self:SendMsg("已领取该档位奖励!")return end
self:AddBindGold(10000)
self:AddItem(80003,5)
self:SetVar("Kill_Rew_1000","1")
self:SendMsg("成功领取1000只杀怪终极奖励!")
end
end
-- 凌晨重置每日杀怪数据
SetDayTimer(0,0,function()
local plyList = GetAllPlayerList()
for _,pid in pairs(plyList) do
local p = GetPlayerObj(pid)
if p then
p:SetVar("Day_Kill_Monster",0)
p:SetVar("Kill_Rew_100","0")
p:SetVar("Kill_Rew_500","0")
p:SetVar("Kill_Rew_1000","0")
end
end
end)
|