This commit is contained in:
aixianling
2024-12-13 13:41:02 +08:00
commit 06658f112f
3887 changed files with 2687822 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
module("PersonalBoss", package.seeall)
BossConfig = BossConfig
--[[
个人数据ActorData[]
{
}
全局数据GlobalData
{
}
]]--
MonTabType = 9; --
--对应的活动配置
if BossConfig == nil then
assert(false)
end
--退出副本
function OnExitFuben(nFdId,pFuben, nSceneId, pActor)
-- 通关后才消耗门票跟次数
if FubenDispatcher.GetReault(pFuben) == 1 then
local fbcache = FubenDispatcher.GetCacheData(pFuben)
-- local Cfg = ShenZhuangBossConfig
-- if Cfg then
-- 补充退出结算
OnReqFubenAward(pFuben, pActor, pActor)
if fbCacheData then
fbCacheData.ownerId = 0
end
-- 消耗次数
-- Actor.addStaticCount(pActor, Cfg.pid,-1);
-- end
end
end
--活动请求结算
function OnReqFubenAward(pFuben, pActor, pOwner)
-- 单人副本活动,所有者必须为自己
if pOwner == pActor then
if FubenDispatcher.GetReault(pFuben) == 1 then
local fbcache = FubenDispatcher.GetCacheData(pFuben)
local cfg = getRealCfg((fbcache.nSerial or 0))
if not fbcache.hasGetAward then
--邮件发送奖励
local data = MonDispatcher.GetActorData(pActor,cfg.fbid)
if cfg and cfg.firstprize and data.isFirst == nil then
local actorId = Actor.getIntProperty( pOwner, PROP_ENTITY_ID )
local monsterName = System.getMonsterNameById(cfg.entityid);
local title = string.format("%s首杀奖励", monsterName)
local content = string.format("恭喜您首杀%s以下是给您的奖励请接收", monsterName)
SendMail(actorId, title, content, cfg.firstprize)
data.isFirst = 1;
-- Actor.addStaticCount(pActor, cfg.pid,-1);
end
fbcache.hasGetAward = 1
if cfg then
Actor.addStaticCount(pActor, cfg.staticType,-1);
Actor.SendSzBossTimes(pActor);
end
end
end
end
end
--活动副本结束
function OnFubenFinish(pFuben, result, pOwner)
--发送成功失败的旗帜
if pOwner then
if FubenDispatcher.GetReault(pFuben) == 1 then
local fbcache = FubenDispatcher.GetCacheData(pFuben)
local Cfg = getRealCfg((fbcache.nSerial or 0))
if not fbcache.hasGetAward then
--邮件发送奖励
if Cfg then
local data = MonDispatcher.GetActorData(pOwner,Cfg.fbid)
if Cfg.firstprize and data.isFirst == nil then
local actorId = Actor.getIntProperty( pOwner, PROP_ENTITY_ID )
local monsterName = System.getMonsterNameById(Cfg.entityid);
local title = string.format("%s首杀奖励", monsterName)
local content = string.format("恭喜您首杀%s以下是给您的奖励请接收", monsterName)
SendMail(actorId, title, content, Cfg.firstprize)
data.isFirst = 1;
end
Actor.addStaticCount(pOwner, Cfg.staticType,-1);
Actor.SendSzBossTimes(pOwner);
---处理超时
FubenDispatcher.SetFubenTimeout(Cfg.fbid, pFuben);
Actor.sendTipmsgWithId(pOwner, tmChallengBossSucess, tstUI)
end
fbcache.hasGetAward = 1
end
end
end
end
function getRealCfg(nSerial)
local data = nil
for _, cfg in pairs(BossConfig) do
if cfg.Serial == nSerial then
data = cfg
break
end
end
return data
end
--记录参与奖的玩家
function OnReqEnterFuben(pActor, nFubenId, nSerial)
--进入副本
return MonDispatcher.EnterMonFuben(MonTabType, pActor, nFubenId, nSerial)
end
MonDispatcher.Reg(MonEvent.OnExitFuben, MonTabType, OnExitFuben, "PersonalBoss.lua")
MonDispatcher.Reg(MonEvent.OnFubenFinish, MonTabType, OnFubenFinish, "PersonalBoss.lua")
MonDispatcher.Reg(MonEvent.OnReqEnterFuben, MonTabType, OnReqEnterFuben, "PersonalBoss.lua")
--------------------------------------------------------------------
-- 玩家 回调注册
--------------------------------------------------------------------
-- 跨天,次数清零
function OnNewDayArrive(pActor, ndiffday)
local openday = System.getDaysSinceOpenServer()
local Cfg = ShenZhuangBossConfig
if Cfg then
local times = 0;
if openday >= Cfg.popenday then
local day = Actor.getStaticCount(pActor, Cfg.pid+1);
if day == 0 then
day = Cfg.popenday-1;
end
ndiffday = openday - day
if ndiffday > 0 then
times = Cfg.ptimes * ndiffday;
-- print("times.."..times)
Actor.addStaticCount(pActor, Cfg.pid, times)
Actor.setStaticCount(pActor, Cfg.pid+1, openday)
end
end
end
end
ActorEventDispatcher.Reg(aeNewDayArrive, OnNewDayArrive, "PersonalBoss.lua")