Эх сурвалжийг харах

提交新增战令和循环周活动登录检测

SCFC 7 сар өмнө
parent
commit
bc533af750

+ 11 - 1
script/common/ProtoID.lua

@@ -1640,4 +1640,14 @@ _ENV[1679]="GC_AREABATTLE_COMBATVIDEO_QUERY"
 _ENV[1680]="CG_AREABATTLE_REWARD_QUERY"
 _ENV[1681]="GC_AREABATTLE_REWARD_QUERY"
 
-_ENV[1682]="GC_SKIN_DATA_QUERY"
+_ENV[1682]="GC_SKIN_DATA_QUERY"
+
+-- _ENV[1683]="CG_UNLIMITDRAW_QUERY"
+-- _ENV[1684]="GC_UNLIMITDRAW_QUERY"
+-- _ENV[1685]="CG_UNLIMITDRAW_DO"
+-- _ENV[1686]="GC_UNLIMITDRAW_DO"
+-- _ENV[1687]="CG_UNLIMITDRAW_ABANDON"
+-- _ENV[1688]="CG_UNLIMITDRAW_GET"
+
+_ENV[1689]="CG_COMMON_HUMAN_INFO"       -- 玩家通用的一些数据请求(是否首充等)
+_ENV[1690]="GC_COMMON_HUMAN_INFO"

+ 1 - 0
script/core/ObjHuman.lua

@@ -484,6 +484,7 @@ function onLvUpCB(human, oldLv, newLv)
 	local DataCache = require("core.DataCache")
 	DataCache.Update_PlayerLv(human.db._id, human.db.lv)
 
+	commonOperate.LvChange(human, oldLv, newLv)
 
 	--升级日志
 	--Log.write(Log.LOGID_OSS_LEVELUP, human.db._id, human.db.account, human.db.name, oldLv, newLv)

+ 10 - 0
script/core/commonOperate.lua

@@ -1,5 +1,6 @@
 local Util = require("common.Util")
 local OneKillGiftLogic = require("present.OneKillGift")
+local WarOrder = require("shop.WarOrder")
 
 function onZero()
     OneKillGiftLogic.onZero()
@@ -7,4 +8,13 @@ end
 
 function onLogin(human)
     OneKillGiftLogic.onLogin(human)
+end
+
+function LvChange(human, nOldeLv, nNewLv)
+    if nOldeLv >= nNewLv then
+        return
+    end
+
+
+    WarOrder.trigger(human, 6, nNewLv - nOldeLv) -- 等级战令
 end

+ 25 - 1
script/module/WeekendLoopActivity/WeekendLoopActCard.lua

@@ -219,7 +219,7 @@ local function WeekActCard_SetCardNum(human, nValue)
 
     local nNowCard = WeekActCard_GetCardNum(human)
     if -1 >= nNowCard then
-       WeekActCard_WriteLog(human, "[WeekActCard_SetCardNum]", "获取古玉数量失败")
+       WeekActCard_WriteLog(human, "[WeekActCard_SetCardNum]", "获取抽卡数量失败")
         return
     end
 
@@ -465,4 +465,28 @@ function WeekActCard_GetPrize(human)
 
     WeekActCard_Query(human)
     WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
+end
+
+function onLogin(human)
+    if not human.db.nWeekCardNum or not human.db.tWeekCardPrize then
+        return
+    end
+
+    local nNowCard = WeekActCard_GetCardNum(human)
+    if -1 >= nNowCard then
+        return
+    end
+
+    local tConfig = WeekActCard_GetConfigByHuman(human)
+    if tConfig then
+        for nID, v in pairs(tConfig) do
+            local nStatus = WeekActCard_GetPrizeStatus(human, nID)
+            if nNowCard >= v.nNum and WeekLoopActDef.WEEKACT_STATE_NONE == nStatus then
+                local bRet = WeekActCard_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_CANGET)
+                if false == bRet then
+                    print("[WeekActCard_UseCard] 设置失败 nID = "..nID.." nStatus = "..nStatus.." num = "..v.nNum)
+                end
+            end
+        end
+    end
 end

+ 38 - 0
script/module/WeekendLoopActivity/WeekendLoopActHeroStar.lua

@@ -50,6 +50,20 @@ local function WeekActHeroStar_GetHeroID(human)
     return human.db.nWeekHeroID
 end
 
+-- 重置选择的英雄最大星数
+local function WeekActHeroStar_RestHeroStar(human)
+    human.db.nWeekHeroStar = 0
+end
+
+-- 设置当前英雄最大星数
+local function WeekActHeroStar_SetHeroStar(human, nStar)
+    human.db.nWeekHeroStar = math.max(human.db.nWeekHeroStar, nStar)
+end
+
+local function WeekActHeroStar_GetHeroStar(human)
+    return human.db.nWeekHeroStar
+end
+
 -- 设置英雄ID
 local function WeekActHeroStar_SetHeroID(human, nHeroID)
     if not human or not nHeroID then
@@ -58,6 +72,7 @@ local function WeekActHeroStar_SetHeroID(human, nHeroID)
     end
 
     human.db.nWeekHeroID = nHeroID
+    WeekActHeroStar_RestHeroStar(human)
 end
 
 -- 初始化奖励信息
@@ -176,6 +191,8 @@ function WeekActHeroStar_End(human)
     local senderName = tMailConfig.senderName
     MailManager.add(MailManager.SYSTEM, human.db._id, title, content, items, senderName)
 
+    WeekActHeroStar_RestHeroStar(human)
+
     print("[WeekActHeroStar_End] 英雄升星 活动结束处理完成")
 end
 
@@ -361,6 +378,27 @@ function WeekActHeroStar_HeroStarUp(human, nHeroID, nStar)
         end
     end
 
+    WeekActHeroStar_SetHeroStar(human, nStar)
     WeekActHeroStar_Query(human)
     WeekendLoopActManger.WeekLoopACT_SendActInfo(human)
+end
+
+function onLogin(human)
+    if not human.db.nWeekHeroID or not human.db.nWeekHeroStar or not human.db.tWeekHeroPrize then
+        return
+    end
+
+    local tConfig = WeekActHeroStar_GetConfig()
+    local nNowStar = WeekActHeroStar_GetHeroStar()
+    if tConfig then
+        for nID, v in pairs(tConfig) do
+            if nNowStar >= nID then
+                local nStatus = WeekActHeroStar_GetPrizeStatus(human, nID)
+                if WeekLoopActDef.WEEKACT_STATE_NONE == nStatus then
+                    WeekActHeroStar_SetPrizeStatus(human, nID, WeekLoopActDef.WEEKACT_STATE_CANGET)
+                end
+            end
+        end
+    end
+
 end

+ 2 - 1
script/module/WeekendLoopActivity/WeekendLoopActManager.lua

@@ -26,7 +26,6 @@ local YunYingLogic = require("yunying.YunYingLogic")
 local WeekLoopActGuYu = require("WeekendLoopActivity.WeekendLoopActUseGuYu")
 local weekLoopActCard = require("WeekendLoopActivity.WeekendLoopActCard")
 local weekLoopActRank = require("WeekendLoopActivity.WeekendLoopActRank")
-local CommonDB = require("common.CommonDB")
 
 -- 活动信息
 tWeekActInfo = nil
@@ -405,6 +404,8 @@ function onLogin(human, funcID)
     -- 下发活动基础数据
     if true == WeekLoopACT_IsRun() then
         WeekLoopACT_SendActInfo(human)
+        weekLoopActCard.onLogin(human)
+        WeekLoopActHeroStar.onLogin(human)
     end
 end
 

+ 3 - 0
script/module/drawCard/DrawCardLogic.lua

@@ -60,6 +60,7 @@ local TriggerLogic = require("trigger.TriggerLogic")
 local WeekTaskLogic = require("dailyTask.WeekTaskLogic")
 local ClutterDataLogic = require("clutter.ClutterDataLogic")
 local ClutterDataDefine = require("clutter.ClutterDataDefine")
+local WarOrder = require("shop.WarOrder")
 
 DRAWCARD_ID0 = 0	-- 积分召唤
 DRAWCARD_ID1 = 1	-- 基础召唤
@@ -774,6 +775,8 @@ local function draw(human, id, op, actConfig, skip,isAct)
 
         --高级召唤周任务
         WeekTaskLogic.recordWeekTaskFinishCnt(human, WeekTaskLogic.WEEK_TASK_ID_2, heroCnt)
+
+        WarOrder.trigger(human, 7, heroCnt) -- 招募战令
     end
 
     sendDrawOp(human, id, op, heroList, fenjielist, heroNewList,heroIndexList,isAct)

+ 2 - 0
script/module/lianyu/LianyuLogic.lua

@@ -65,6 +65,7 @@ local YunYingLogic = require("yunying.YunYingLogic")
 -- local HeroDefine = require("hero.HeroDefine")
 local TriggerLogic = require("trigger.TriggerLogic")
 local TriggerDefine = require("trigger.TriggerDefine")
+local WarOrder = require("shop.WarOrder")
 
 
 local PER_FIVELEVEL = 5 --每隔5关(首通奖励,buffer选择)
@@ -1050,6 +1051,7 @@ function onFightEnd(human, result, combatType, lv, combatInfo)
             setMaxLv(human, lv)
 
             TriggerLogic.PublishEvent(TriggerDefine.LIANYU_PASS, human.db._id, 1)
+            WarOrder.trigger(human, 8) -- 深渊战令
         end
         -- 每5关重置buffer
         if lianyuCache.winLv % PER_FIVELEVEL == 0 then

+ 4 - 0
script/module/role/Handler.lua

@@ -78,4 +78,8 @@ end
 function CG_ONLINETIME_REPORT(human, msg)
 	print("[CG_ONLINETIME_REPORT] 收到请求下发在线时间的协议")
 	RoleLogic.RoleLogic_GetOnlineTime(human, msg.nType)
+end
+
+function CG_COMMON_HUMAN_INFO(human, msg)
+	RoleLogic.RoleLogic_QueryHumanInfo(human)
 end

+ 7 - 0
script/module/role/Proto.lua

@@ -233,4 +233,11 @@ GC_ROLE_INFO_ICON_CHENGHAO = {
 
 CG_ONLINETIME_REPORT = {
 	{"nType",		1,		"byte"}
+}
+
+-- 请求玩家的一些信息
+CG_COMMON_HUMAN_INFO = {}
+
+GC_COMMON_HUMAN_INFO = {
+	{"bChange",		1,		"byte"},	-- 1 充值 0 未充值
 }

+ 18 - 0
script/module/role/RoleDBLogic.lua

@@ -519,6 +519,24 @@ function createDefaultRole(channelID, account, serverTag)
 				unlock = 0,
 				upgradeFinish = {}
 			},
+			lvOrder = {
+				exp = 0,
+				finish = {},
+				unlock = 0,
+				upgradeFinish = {}
+			},
+			zhaomuOrder = {
+				exp = 0,
+				finish = {},
+				unlock = 0,
+				upgradeFinish = {}
+			},
+			shenyuanOrder = {
+				exp = 0,
+				finish = {},
+				unlock = 0,
+				upgradeFinish = {}
+			}
 		},
 		
 		-- 注意 以后再加字段如初始化为非nil 要在下面的newAddDBData同步加,否则老号会报错。

+ 15 - 0
script/module/role/RoleLogic.lua

@@ -407,4 +407,19 @@ end
 
 function onLogin(human)
    RoleLogic_CreateTime(human.db._id)
+end
+
+local function isChange(human)
+    if not human.db.topupAcount or human.db.topupAcount <= 0 then
+        return false
+    end
+
+    return true
+end
+
+function RoleLogic_QueryHumanInfo(human)
+    local tMsgData = Msg.gc.GC_COMMON_HUMAN_INFO
+    tMsgData.bChange = isChange(human) and 1 or 0
+
+    Msg.send(tMsgData, human.fd)
 end

+ 2 - 2
script/module/scene/Proto.lua

@@ -2,7 +2,7 @@ local RoleBase = require("role.Proto").RoleBase
 
 
 WarOrder = {
-	{"type", 1,"int"},          -- 1 勇士之证 2 恶魔之证 3 工会之证明 4 竞技之证, 5- 天梯之证
+	{"type", 1,"int"},          -- 1 勇士之证 2 恶魔之证 3 工会之证明 4 竞技之证, 5- 天梯之证, 6-等级, 7-招募,8-深渊
 	{"exp",1,"int"},            -- 战令经验
 	{"finish",64,"int"},        -- 战令已经领取idx
 	{"unlock",1,"int"},         -- 战令是否RMB解锁
@@ -56,7 +56,7 @@ GC_ZZ_HUMAN_INFO = {
     {"openDay",			1, "short"},	-- 开服天数
 	{"guideState",      1, "byte"},
     {"drawCardRateList",      1, "string"}, -- 抽奖等级概率列表
-	{"warOrder" ,       5, WarOrder},         -- 战令信息
+	{"warOrder" ,       8, WarOrder},         -- 战令信息
 	{"nSpeed",			5,	"short"},		-- 速度
 }
 GC_ENTER_CITY = {}

+ 12 - 0
script/module/shop/WarOrder.lua

@@ -16,6 +16,9 @@ local devilOrder = 2
 local clanOrder = 3
 local arenaOrder = 4
 local tiantiOrder = 5
+local lvOrder = 6
+local zhaomuOrder = 7
+local shenyuanOrder = 8
 
 
 local passBattleExp = 5
@@ -23,6 +26,9 @@ local passDevilExp = 5
 local passClanBattleExp = 10 * 3  --改为原来的3倍
 local victoryArenaBattleExp = 3 * 3 --改为原来的3倍
 local tiantiExp = 30
+local HumanLvExp = 20           -- 等级
+local zhaomuExp = 10            -- 招募
+local shenyuanExp = 4           -- 深渊
 
 local orderExpMap = {
     [battleOrder] = passBattleExp,
@@ -30,6 +36,9 @@ local orderExpMap = {
     [clanOrder] = passClanBattleExp,
     [arenaOrder] = victoryArenaBattleExp,
     [tiantiOrder] = tiantiExp,
+    [lvOrder] = HumanLvExp,
+    [zhaomuOrder] = zhaomuExp,
+    [shenyuanOrder] = shenyuanExp,
 }
 
 local orderNameMap = {
@@ -38,6 +47,9 @@ local orderNameMap = {
     [clanOrder] = "clanOrder",
     [arenaOrder] = "arenaOrder",
     [tiantiOrder] = "tiantiOrder",
+    [lvOrder] = "lvOrder",
+    [zhaomuOrder] = "zhaomuOrder",
+    [shenyuanOrder] = "shenyuanOrder",
 }
 
 local GC_WARORDER_CHANGE = 53