Explorar o código

提交物品兑换和屏蔽一些不需要的打印

SCFC hai 7 meses
pai
achega
e3b0f2abf5

+ 1 - 0
script/common/LogDefine.lua

@@ -270,6 +270,7 @@ DEFINE = {
 	CommonActFindTreasure	= 274,			 -- 通用节日活动-限时寻宝
 	UnlimitDrawCard			= 275,			 -- 无限高抽
 	OpenServerGiftPackage   = 276,			 -- 开服礼包
+	item_hecheng  			= 277,			 -- 物品合成
 
 	abs_totalReach          = 500,           -- 周期性活动累计
     abs_singleReach         = 501,           -- 周期性活动单次

+ 4 - 0
script/common/ProtoID.lua

@@ -1663,3 +1663,7 @@ _ENV[1698]="GC_OPENSERVER_GIFTPACKAGE_QUERY"
 
 _ENV[1699]="CG_ZHUANPAN_GIFT_QUERY"
 _ENV[1700]="GC_ZHUANPAN_GIFT_QUERY"
+
+_ENV[1701]="CG_DUIHUANG_QUERY"
+_ENV[1702]="GC_DUIHUANG_QUERY"
+_ENV[1703]="CG_DUIHUANG_DO"

+ 1 - 1
script/module/absAct/AbsActLogic.lua

@@ -160,7 +160,7 @@ function isStarted(human, id)
 
     local nNowOpenDay = CommonDB.getServerOpenDay()
     if nNowOpenDay < config.openDay then
-        print("[isStarted] 当前活动未开启 进行额外判断 id = "..id.." nNowOpenDay = "..nNowOpenDay.." config.openDay = "..config.openDay)
+        -- print("[isStarted] 当前活动未开启 进行额外判断 id = "..id.." nNowOpenDay = "..nNowOpenDay.." config.openDay = "..config.openDay)
         return
     end
 

+ 2 - 2
script/module/bag/BagLogic.lua

@@ -327,14 +327,14 @@ end
 
 -- 改变
 function sendChange(human, itemID, isAdd)
-	print("12131231进入下发逻辑")
+	--print("12131231进入下发逻辑")
 	local msgRet = Msg.gc.GC_ITEM_BAG_CHANGE
 	local itemCnt = human.db.bag[itemID] or 0
 	msgRet.itemID = itemID	
 	msgRet.itemCnt = itemCnt
 	msgRet.itemData[0] = 0
 	if isAdd == true then
-		print("下发为true")
+		--print("下发为true")
 		msgRet.itemData[0] = 1
 		Grid.makeItem(msgRet.itemData[1], itemID, itemCnt, nil,nil,nil, Grid.getOpflagAtBag(itemID))
 	end

+ 19 - 10
script/module/bag/Grid.lua

@@ -407,6 +407,9 @@ function getOpflagAtBag(id)
     if itemConfig then
        itemConfig.id = id
     end
+	if id == 125 then
+		print("[getOpflagAtBag] 进入获取可操作行为!!!!!!")
+	end
     local flag = 0
     -- 使用道具
 	if canUse(itemConfig) then
@@ -458,6 +461,11 @@ function getOpflagAtBag(id)
         flag = Util.setBit(flag, ItemDefine.ITEM_OP_FJIE)
     end
 
+	-- 能否兑换
+	if canDuiHuang(itemConfig) then
+		flag = Util.setBit(flag, ItemDefine.ITEM_OP_DUIHUAN)
+	end
+
 	return flag
 end
 
@@ -569,16 +577,7 @@ function canHeCheng(itemConfig)
 	local getWay = itemConfig.get and itemConfig.get[1]
 	if getWay == SuipianLogic.SUMMON_TYPE_TARGET or getWay == SuipianLogic.SUMMON_TYPE_DROP then	
 		local suipianType = itemConfig.get[2]
-		if suipianType == SuipianLogic.SUMMON_SUBTYPE_HERO then
-			return true
-		end
-		if suipianType == SuipianLogic.SUMMON_SUBTYPE_SKIN then
-			return true
-		end
-		if suipianType == SuipianLogic.SUMMON_SUBTYPE_TALISAM then
-			return true
-		end
-		if suipianType == SuipianLogic.SUMMON_SUBTYPE_RELIC then
+		if true == SuipianLogic.SuipianLogic_CanHeCheng(suipianType) then
 			return true
 		end
 	end
@@ -613,6 +612,16 @@ function canFJie(itemConfig)
     end
 end
 
+function canDuiHuang(itemConfig)
+	local nID = itemConfig.id
+	local getWay = itemConfig.get and itemConfig.get[1]
+	if getWay == SuipianLogic.SUMMON_TYPE_TARGET then	
+		local nDuiHuangType = itemConfig.get[2]
+		if true == SuipianLogic.SuipianLogic_CanDuiHuang(nDuiHuangType) then
+			return true
+		end
+	end
+end
 
 
 

+ 8 - 0
script/module/bag/Handler.lua

@@ -83,4 +83,12 @@ end
 
 function CG_ITEM_CHOSE_SKIN(huamn, msg)
 	HeroSkinLogic.BuySkinBySuiPian(huamn, msg.nSkinID, msg.nItemID)
+end
+
+function CG_DUIHUANG_QUERY(human, msg)
+	SuipianLogic.SuiPianLogic_DuiHuangQuery(human, msg.nID)
+end
+
+function CG_DUIHUANG_DO(human, msg)
+	SuipianLogic.SuiPianLogic_DuiHuangDo(human, msg.nID, msg.nNum)
 end

+ 1 - 0
script/module/bag/ItemDefine.lua

@@ -54,6 +54,7 @@ ITEM_OP_HECHENG  = 8            -- 合成
 ITEM_OP_EQUIP  = 9              -- 能否穿戴
 ITEM_OP_CZHU  = 10              -- 能否重铸
 ITEM_OP_FJIE  = 11              -- 能否分解
+ITEM_OP_DUIHUAN = 12			-- 能否兑换
 
 PAGE_LIST_COUNT = 30   			--游戏背包每次发送的数量
 BAG_ITEM_MAX_CNT = 2100000000 	-- 背包道具叠加上限

+ 14 - 0
script/module/bag/Proto.lua

@@ -315,3 +315,17 @@ CG_ITEM_CHOSE_SKIN = {
 	{"nSkinID",	1,		"int"},		-- 选择的皮肤ID
 	{"nItemID",	1,		"int"},		-- 物品ID
 }
+
+CG_DUIHUANG_QUERY = {
+	{"nID",		1,		"int"},		-- 物品ID
+}
+
+GC_DUIHUANG_QUERY = {
+	{"nUseNum",		1,		"int"},		-- 消耗物品数量
+	{"ItemData",	1,		ItemData},
+}
+
+CG_DUIHUANG_DO = {
+	{"nID",		1,		"int"},		-- 物品ID
+	{"nNum",	1,		"int"},		-- 兑换数量
+}

+ 72 - 5
script/module/bag/SuipianLogic.lua

@@ -19,11 +19,28 @@ SUMMON_TYPE_DROP      = 2 -- 随机掉落表兑换
 SUMMON_TYPE_HERO_SP   = 3 -- 英雄条件兑换
 SUMMON_TYPE_SHENQI_SP = 4 -- 神器条件兑换
 
+SUMMON_SUBTYPE_MIN = 1 
 SUMMON_SUBTYPE_HERO = 1 -- 英雄
 SUMMON_SUBTYPE_EQUIP = 2 -- 装备
 SUMMON_SUBTYPE_SKIN = 3  -- 皮肤
 SUMMON_SUBTYPE_TALISAM = 4 --秘宝
 SUMMON_SUBTYPE_RELIC = 5  --遗物
+SUMMON_SUBTYPE_MAX = 5
+
+SUMMON_HECHENG_TYPE_GOOD = 11 --可合成物品
+
+function SuipianLogic_CanHeCheng(nID)
+	if nID == SUMMON_SUBTYPE_HERO or nID == SUMMON_SUBTYPE_SKIN  or SUMMON_SUBTYPE_TALISAM == nID 
+		or SUMMON_SUBTYPE_RELIC == nID then
+			return true
+	end
+	
+	return false
+end
+
+function SuipianLogic_CanDuiHuang(nID)
+	return SUMMON_HECHENG_TYPE_GOOD == nID
+end
 
 -- 查询
 function query(human, itemID)
@@ -65,11 +82,7 @@ function summon(human, itemID, itemUseCnt)
 		return
 	end
 
-	if itemConfig.get[2] ~= SUMMON_SUBTYPE_HERO 
-	and itemConfig.get[2] ~= SUMMON_SUBTYPE_EQUIP
-	and itemConfig.get[2] ~= SUMMON_SUBTYPE_SKIN
-	and itemConfig.get[2] ~= SUMMON_SUBTYPE_TALISAM 
-	and itemConfig.get[2] ~= SUMMON_SUBTYPE_RELIC then
+	if itemConfig.get[2] < SUMMON_SUBTYPE_MAX or SUMMON_SUBTYPE_MAX < itemConfig.get[2] then
 		return
 	end
 	
@@ -917,3 +930,57 @@ function CG_SUIPIAN_SYNTHESIS(human, synthesisType)
 	msgRet.status = status
 	Msg.send(msgRet, human.fd)
 end
+
+
+function SuiPianLogic_DuiHuangQuery(human, nID)
+	local itemConfig = ItemDefine.getConfig(nID)
+	if not itemConfig then
+		return
+	end
+
+	local tGetInfo = itemConfig.get
+	if nil == _G.next(tGetInfo) then
+		return
+	end
+
+	if tGetInfo[1] ~= SUMMON_TYPE_TARGET or tGetInfo[2] ~= SUMMON_HECHENG_TYPE_GOOD  then
+		return
+	end
+
+	local tTargetID = tGetInfo[3]
+	local nUseNum = itemConfig.fullCnt
+	if 0 >= nUseNum then
+		return
+	end
+
+	local tMsgData = Msg.gc.GC_DUIHUANG_QUERY
+	tMsgData.nUseNum = nUseNum
+	Grid.makeItem(tMsgData.ItemData, tTargetID, 1)
+
+	Msg.send(tMsgData, human.fd)
+end
+
+function SuiPianLogic_DuiHuangDo(human, nID, nTargetNum)
+	local itemConfig = ItemDefine.getConfig(nID)
+	if not itemConfig then
+		return
+	end
+
+	local tGetInfo = itemConfig.get
+	if nil == _G.next(tGetInfo) then
+		return
+	end
+
+	if tGetInfo[1] ~= SUMMON_TYPE_TARGET or tGetInfo[2] ~= SUMMON_HECHENG_TYPE_GOOD  then
+		return
+	end
+
+	local nUseNum = nTargetNum * itemConfig.fullCnt
+	if 0 >= nUseNum or nUseNum > BagLogic.getItemCnt(human, nID) then
+		return
+	end
+
+	print("[SuiPianLogic_DuiHuangDo]")
+	BagLogic.delItem(human, nID, nUseNum, "item_hecheng")
+	BagLogic.addItemList(human, {{tGetInfo[3], nTargetNum}}, "item_hecheng")
+end

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

@@ -923,7 +923,7 @@ end
 --订阅事件
 
 local function HonorJourney_SubEvent(uuid, nEventType)
-    print("当前进入荣耀历程订阅事件 注册 nEventType = "..nEventType)
+    -- print("当前进入荣耀历程订阅事件 注册 nEventType = "..nEventType)
     TriggerLogic.SubscribeEvent(nEventType, uuid, HonorJourneyTask_EventCallBack)
 end