Browse Source

荣耀历程增加新任务

gitxsm 2 months ago
parent
commit
7e2b7f0582

+ 3 - 0
script/core/ObjHuman.lua

@@ -924,6 +924,9 @@ function updateDaily(human, isGm)
 	ClutterDataLogic.updateDaily(human)
 	BreakThroughTheme.updateDaily(human)
 	QQBigShot.updateDaily(human)
+
+	TriggerLogic.PublishEvent(TriggerDefine.EVENT_TYPE_DAILY_LOGIN, human.db._id, 1)
+	
 	-- 红点 发送  理论放最后
 	RoleSystemLogic.onLogin(human)
 end

+ 63 - 1
script/module/dailyTask/HonorJourney.lua

@@ -185,6 +185,18 @@ local function HonorJourney_AddTaskPoint(human, nPoint)
     human.db.HonorJourney.nPoint = human.db.HonorJourney.nPoint + nPoint
 end
 
+
+local function HonorJourney_GetDayLoginTime(human)
+    local tDBData = HonorJourneyTask_GetTaskDB(human)
+    return tDBData.dayLoginTime
+end
+
+local function HonorJourney_UpdateDayLoginTime(human)
+    local tDBData = HonorJourneyTask_GetTaskDB(human)
+    tDBData.dayLoginTime = os.time()
+end
+
+
 -- 检测任务状态
 function HonorJourney_CheckTaskStatus(human,nID)
     local nNowFinishNum = HonorJourney_GetTaskFinishNum(human, nID)
@@ -590,7 +602,7 @@ end
 local tEventHandler = nil
 -- 起服处理
 local function HonorJourneyTask_EvnentCommon(nEventType, uuid, nValue, nArgumentType)
-    print("当前进入荣耀历程增加次数..............................",nEventType, nArgumentType)
+    -- print("当前进入荣耀历程增加次数..............................",nEventType, nArgumentType)
     local human = ObjHuman.onlineUuid[uuid]
     if not human then
         print("[HonorJourneyTask_EvnentCommon] 玩家不在线了? nEventType = "..nEventType)
@@ -937,6 +949,39 @@ local function HonorJourneyTask_EvnentGetJingLing(nEventType, uuid, nValue1, nVa
     end
 end
 
+-- 每日登录
+local function HonorJourneyTask_EvnentDailyLogin(nEventType, uuid, nValue1)
+    local human = ObjHuman.onlineUuid[uuid]
+    if not human then
+        return
+    end
+
+    if not nValue1 then
+        return
+    end
+    
+    local tTaksID = {}
+    for nID, v in pairs(HonorJourneyExcel.HonorJourney) do
+        if v.triggerType == nEventType then
+            local nState = HonorJourney_GetTaskStatus(human, nID)
+            if nState == CommonDefine.COMMON_PRIZE_STATE_NOGET then
+                table.insert(tTaksID, nID)
+            end
+        end
+    end
+
+    if tTaksID and nil ~= _G.next(tTaksID) then
+        for _, nID in ipairs(tTaksID) do
+            HonorJourneyTask_AddTaskFinishNum(human, nID, nValue1)
+            HonorJourney_CheckTaskStatus(human, nID)
+        end
+
+        HonorJourney_UpdateDayLoginTime(human)
+        RoleSystemLogic.onDot(human, RoleSystemDefine.ROLE_SYS_ID_803)
+    end
+end
+
+
 function Init()
     tEventHandler = {
         [TriggerDefine.CHAT_TIMES] = HonorJourneyTask_EvnentCommon,
@@ -973,6 +1018,7 @@ function Init()
         [TriggerDefine.EVENT_TYPE_GETPOINTHERO] = HonorJourneyTask_EvnentGetPointHero,
         [TriggerDefine.EVENT_TYPE_JINGLING_GET] = HonorJourneyTask_EvnentGetJingLing,
         [TriggerDefine.EVENT_TYPE_JINGLING_STAR] = HonorJourneyTask_EvnentCommon,
+        [TriggerDefine.EVENT_TYPE_DAILY_LOGIN] = HonorJourneyTask_EvnentDailyLogin,
     }
 end
 
@@ -1034,6 +1080,9 @@ local function HonorJourney_OnLoginSubEvent(human)
     HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_JINGLING_GET)
 
     HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_JINGLING_STAR)
+
+    -- 每日登录
+    HonorJourney_SubEvent(uuid, TriggerDefine.EVENT_TYPE_DAILY_LOGIN)
 end
 
 -- 回调,增加次数
@@ -1052,6 +1101,17 @@ function HonorJourneyTask_EventCallBack(nEventType, uuid, nValue1, nValue2, nVal
     -- print("[HonorJourneyTask_EventCallBack] 触发事件回调 处理结束 ")
 end
 
+
+local function dailyLoginCheck(human)
+    local dayLoginTime = HonorJourney_GetDayLoginTime(human)
+    local now = os.time()
+
+    if not dayLoginTime or not Util.isSameDayByTimes(dayLoginTime,now) then
+        HonorJourneyTask_EvnentDailyLogin(TriggerDefine.EVENT_TYPE_DAILY_LOGIN, human.db._id, 1)
+    end
+end
+
+
 function onLogin(human)	
     -- print("当前进入荣耀历程登录")
 
@@ -1062,6 +1122,8 @@ function onLogin(human)
     HonorJourney_OnLoginSubEvent(human)
 
 	-- HonorJourneyTaskQuery(human, true)
+
+    dailyLoginCheck(human)
 end
 
 function HonorJourney_GMClear(human)

+ 3 - 0
script/module/trigger/TriggerDefine.lua

@@ -67,6 +67,8 @@ JINGYAN_DEL                = 60          --  消耗经验
 EVENT_TYPE_GETPOINTHERO    = 61          --  获得指定英雄(包含星级)
 EVENT_TYPE_JINGLING_GET    = 62          --  获得精灵
 EVENT_TYPE_JINGLING_STAR   = 63          --  精灵总星数
+EVENT_TYPE_DAILY_LOGIN     = 64          --  每日登录
+
 
 --触发事件后, 新值与旧值相加
 TRIGGERADDTB = {
@@ -109,6 +111,7 @@ TRIGGERADDTB = {
     [SET_MODELING] = SET_MODELING,
     [EQUIP_REFINEMENT] = EQUIP_REFINEMENT,
     [UNIONS_CHALLENGE_BOSS] = UNIONS_CHALLENGE_BOSS,
+    [EVENT_TYPE_DAILY_LOGIN] = EVENT_TYPE_DAILY_LOGIN,
 }
 
 --触发事件后, 用新值替换旧值

+ 0 - 77
script/module/trigger/TriggerLogic.lua

@@ -9,42 +9,6 @@ local TriggerDefine = require("trigger.TriggerDefine")
 local moniterTbl = {}
 
 
---检测触发事件是否正确
--- local function checkTrigger(arg)
---     local errTag = nil
---     if type(arg) == "table" then
---         for _, tag in ipairs(arg) do
---             if not TriggerDefine.TRIGGERADDTB[tag] and not TriggerDefine.TRIGGERUPDATETB[tag] then
---                 errTag = tag
---                 break
---             end
---         end
---     else
---         if not TriggerDefine.TRIGGERADDTB[arg] and not TriggerDefine.TRIGGERUPDATETB[arg] then
---             errTag = arg
---         end
---     end
-
---     if errTag then
---         assert(false, string.format("注册事件不存在, tag = %s", errTag))
---     end
---     return true
--- end
-
-
---注册订阅
--- function RegisterMoniter(triggerArr, cbFunc)
---     checkTrigger(triggerArr)
-
---     local handler = #moniterTbl+1
---     moniterTbl[handler] = {
---         triggerArr = triggerArr,
---         cbFunc = cbFunc,
---     }
-
---     return handler
--- end
-
 -- 注册事件
 -- 为每个玩家维护订阅表
 function SubscribeEvent(eventType, uuid, callback)
@@ -105,47 +69,6 @@ function onLogout(human)
 end
 
 
---移除订阅
--- function RemoveMoniter(handler)
---     if not handler then
---         return
---     end
-
---     table.remove(moniterTbl, handler)
--- end
-
-
---广播
--- function Broadcast(human, triggerTag, val, isAdd)
---     for tag, v in ipairs(moniterTbl) do
---         if table.find(v.triggerArr, triggerTag) then
---             local f = v.cbFunc
---             local res = pcall(f, human, triggerTag, val, isAdd)
---             if not res then
---                 print(string.format("广播失败, handler = %s", tag))
---             end
---         end
---     end
--- end
-
-
--- --触发事件
--- function Trigger(human, triggerTag, val)
---     local isAdd = false
---     if TriggerDefine.TRIGGERADDTB[triggerTag] then
---         isAdd = true
---     end
-
---     if not isAdd then
---         if not TriggerDefine.TRIGGERUPDATETB[triggerTag] then
---             assert(false, string.format("触发事件不存在, tag = %s", triggerTag))
---         end
---     end
-
-
---     Broadcast(human, triggerTag, val, isAdd)
--- end
-