Explorar el Código

1.增加加战令进度的GM 2.增加冲级活动协议分段发数据的相关代码

gitxsm hace 1 año
padre
commit
4fa4477009

+ 10 - 0
script/module/chat/Gm.lua

@@ -1992,4 +1992,14 @@ function d3.mblv(human, value)
 	local level = tonumber(string.sub(value,pos+1,#value))
 	local TalismanLogic = require("talisman.TalismanLogic")
 	TalismanLogic.GmSetlevel(human, id, level)
+end
+--战令增加进度
+function d3.zljd(human, value)
+	local pos = string.find(value, " ", 1, true)
+	if pos == nil then return end
+	local orderType = tonumber(string.sub(value, 1, pos - 1))
+	local cnt = tonumber(string.sub(value,pos+1,#value))
+	local WarOrder = require("shop.WarOrder")
+	WarOrder.warOrderUnlock(human,orderType)
+	WarOrder.trigger(human, orderType, cnt)
 end

+ 59 - 18
script/module/present/ChongJiLogic.lua

@@ -10,6 +10,8 @@ local YunYingLogic = require("yunying.YunYingLogic")
 local PanelDefine = require("broadcast.PanelDefine")
 local GuideLogic = require("guide.GuideLogic")
 
+local MSGMAXLEN = 20 -- GC_PRESENT_CHONGJI_QUERY 协议 一次下发数据长度
+
 function getLeftTime()
     return 0
 end
@@ -22,25 +24,64 @@ function query(human)
 	if isOpen(human) ~= true then
 		return
 	end
+	-- local chongJi = human.db.chongJi or {}
+	-- local msgRet = Msg.gc.GC_PRESENT_CHONGJI_QUERY
+	-- msgRet.lv = human.db.lv	
+	-- for i = 1, #OpenActExcel.chongJi do
+	-- 	local config = OpenActExcel.chongJi[i]
+    --     msgRet.list[i].id = i
+    --     msgRet.list[i].maxLv = config.lv
+    --     msgRet.list[i].desc = Util.format(config.desc, config.lv)
+	-- 	msgRet.list[i].state = 0
+	-- 	if chongJi[i] then msgRet.list[i].state = 1 end
+    --     for j = 1, #config.reward do
+    --         local itemID = config.reward[j][1]
+    --         local itemCnt = config.reward[j][2]
+    --         Grid.makeItem(msgRet.list[i].item[j], itemID, itemCnt)
+    --     end
+    --     msgRet.list[i].item[0] = #config.reward
+    -- end
+    -- msgRet.list[0] = #OpenActExcel.chongJi	
+	-- Msg.send(msgRet, human.fd)
+
+
+	local allLen = #OpenActExcel.chongJi
+	local allTimes = math.ceil(allLen / MSGMAXLEN)
+
+	local realIndex = 1
+	local chongJiCfg = OpenActExcel.chongJi
 	local chongJi = human.db.chongJi or {}
-	local msgRet = Msg.gc.GC_PRESENT_CHONGJI_QUERY
-	msgRet.lv = human.db.lv	
-	for i = 1, #OpenActExcel.chongJi do
-		local config = OpenActExcel.chongJi[i]
-        msgRet.list[i].id = i
-        msgRet.list[i].maxLv = config.lv
-        msgRet.list[i].desc = Util.format(config.desc, config.lv)
-		msgRet.list[i].state = 0
-		if chongJi[i] then msgRet.list[i].state = 1 end
-        for j = 1, #config.reward do
-            local itemID = config.reward[j][1]
-            local itemCnt = config.reward[j][2]
-            Grid.makeItem(msgRet.list[i].item[j], itemID, itemCnt)
-        end
-        msgRet.list[i].item[0] = #config.reward
-    end
-    msgRet.list[0] = #OpenActExcel.chongJi	
-	Msg.send(msgRet, human.fd)
+
+	for k=1, allTimes do
+		local msgRet = Msg.gc.GC_PRESENT_CHONGJI_QUERY
+		local nowLen = allLen > MSGMAXLEN and MSGMAXLEN or allLen
+
+		msgRet.list[0] = nowLen
+		msgRet.lv = human.db.lv
+		msgRet.isEnd = k < allTimes and 0 or 1
+
+		for i = 1, nowLen do
+			local config = chongJiCfg[realIndex]
+			msgRet.list[i].id = i
+			msgRet.list[i].maxLv = config.lv
+			msgRet.list[i].desc = Util.format(config.desc, config.lv)
+			msgRet.list[i].state = 0
+
+			if chongJi[realIndex] then
+				msgRet.list[i].state = 1
+			end
+			for j = 1, #config.reward do
+				local itemID = config.reward[j][1]
+				local itemCnt = config.reward[j][2]
+				Grid.makeItem(msgRet.list[i].item[j], itemID, itemCnt)
+			end
+			msgRet.list[i].item[0] = #config.reward
+			realIndex = realIndex + 1
+		end
+		Msg.send(msgRet,human.fd)
+		allLen = allLen - MSGMAXLEN
+	end
+
 end
 
 function getChongJiReward(human, id)

+ 2 - 1
script/module/present/Proto.lua

@@ -229,7 +229,8 @@ CG_PRESENT_CHONGJI_QUERY = {}
 
 GC_PRESENT_CHONGJI_QUERY = {
     {"lv",      1, "int"},
-    {"list",    28, ChongJiData},
+    {"list",    20, ChongJiData},
+    {"isEnd",    1, "byte"}, --0未发完,1-已发完
 }
 
 CG_PRESENT_CHONGJI_GET = {