zhanwencai 1 yıl önce
ebeveyn
işleme
84dd84244b

+ 2 - 1
script/common/Lang.lua

@@ -720,4 +720,5 @@ LOST_TEMPLE_OPEN_ERROR = [[主角等级达到50级开启]]
 AD_DRAW_REWARD_LIMIT_ERROR = [[超过领取上限次数!!]]
 AD_DRAW_REWARD_SUCCESS = [[观看广告领取奖励成功!!]]
 
-QUICK_HATCH_SUCCESS = [[加速孵化成功!!]]
+QUICK_HATCH_SUCCESS = [[加速孵化成功!!]]
+MERGE_SUCCESS = [[融合成功!!]]

+ 2 - 1
script/module/chat/Gm.lua

@@ -110,7 +110,8 @@ function d3.herodel(human,val)
 	
 	local index = tonumber(string.sub(val, 1, pos - 1))
 	local cnt= tonumber(string.sub(val,pos+1,#val))
-	require("hero.HeroLogic").delHeroByIndex(human,index,"gm")
+	require("hero.HeroLogic").
+    (human,index,"gm")
 end
 
 function d3.herodelAll(human,val)

+ 63 - 31
script/module/role/NewLogic.lua

@@ -15,11 +15,12 @@ local RoleDefine = require("role.RoleDefine")
 local ObjHuman = require("core.ObjHuman")
 local HeroGrid = require("hero.HeroGrid")
 
-AD_DRAW_REWARD_TYPE = 10   --观看广告领取召唤券
-QUERY_MERGE_INFO_TYPE = 11 --获取融合信息
-HATCH_SCCUESS_TYPE = 12    -- 孵化成功
-MERGE_HERO_TYPE = 13       --融合
-QUICK_HATCH_TYPE = 14      --加速
+AD_DRAW_REWARD_TYPE = 10         --观看广告领取召唤券
+QUERY_MERGE_INFO_TYPE = 11       --获取融合信息
+QUERY_MERGE_BEFOR_INFO_TYPE = 15 --获取融合前信息
+HATCH_SCCUESS_TYPE = 12          -- 孵化成功
+MERGE_HERO_TYPE = 13             --融合
+QUICK_HATCH_TYPE = 14            --加速
 
 function NewProto(human, type, param)
     -- print("newProto:",type,param)
@@ -106,6 +107,7 @@ function NewProto(human, type, param)
 
             local xLv = getxLv(fatherHeroGrid, motherHeroGrid)
             local cnt = math.floor(xLv / 2) + 1
+            local heroSimple = {}
 
             Log.write(Log.LOGID_TEST, "xLv: " .. xLv)
             Log.write(Log.LOGID_TEST, "cnt: " .. cnt)
@@ -137,11 +139,16 @@ function NewProto(human, type, param)
 
             Log.write(Log.LOGID_TEST, "human.db.mergeInfo : " .. Json.Encode(human.db.mergeInfo))
 
+            local cf            = sonHeroID and HeroExcel.hero[sonHeroID]
+            heroSimple.name     = cf and cf.name or ""
             mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
-            mergeInfo.heroId    = human.db.mergeInfo.heroId
+            mergeInfo.xLv       = xLv
+            mergeInfo.heroData  = heroSimple
 
             Log.write(Log.LOGID_TEST, "mergeInfo: " .. Json.Encode(mergeInfo))
 
+            Broadcast.sendErr(human, Lang.MERGE_SUCCESS)
+
             local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
             msgRet.ret   = MERGE_HERO_TYPE
             msgRet.tip   = Json.Encode(mergeInfo)
@@ -152,35 +159,60 @@ function NewProto(human, type, param)
 
     -- 获取融合信息
     if type == QUERY_MERGE_INFO_TYPE then
-        local mergeInfo = {}
+        local tb = Util.split(param, "|")
+        if tb[1] and tb[2] then
+            -- 初始化
+            initMergeInfo(human)
 
-        -- 初始化
-        initMergeInfo(human)
+            human.db.heroBag         = human.db.heroBag or {}
 
-        local nowTime = os.time()
-        local mergeTime = human.db.mergeInfo.mergeEndTime - nowTime
+            local fatherHeroBagIndex = tonumber(tb[1]) or 0
+            local motherHeroBagIndex = tonumber(tb[2]) or 0
 
-        Log.write(Log.LOGID_TEST, "mergeTime: " .. mergeTime)
+            local fatherHeroGrid     = human.db.heroBag[fatherHeroBagIndex]
+            if not heroGrid then
+                return
+            end
 
-        -- 孵化成功
-        if mergeTime <= 0 then
-            hatchHero(human)
-            return
-        end
+            local motherHeroGrid = human.db.heroBag[motherHeroBagIndex]
+            if not heroGrid then
+                return
+            end
 
-        local heroSimple = {}
-        heroSimple.general = heroSimple.general or {}
-        HeroGrid.makeHeroSimpleByID(heroSimple, human.db.mergeInfo.heroId, nil, nil, human)
+            local mergeInfo  = {}
+            local nowTime    = os.time()
+            local mergeTime  = 0
+            local heroSimple = {}
+            local xLv        = getxLv(fatherHeroGrid, motherHeroGrid)
+            local cnt        = math.floor(xLv / 2) + 1
 
-        mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
-        mergeInfo.heroData  = heroSimple
+            local sonHeroID  = mergeHero(fatherHeroGrid.id, motherHeroGrid.id)
+            if sonHeroID <= 0 then
+                return
+            end
 
-        Log.write(Log.LOGID_TEST, "mergeInfo: " .. Json.Encode(mergeInfo))
+            if human.db.mergeInfo.mergeEndTime ~= 0 then
+                mergeTime = human.db.mergeInfo.mergeEndTime - nowTime
+                -- 孵化成功
+                if mergeTime <= 0 then
+                    hatchHero(human)
+                    return
+                end
+            end
 
-        local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
-        msgRet.ret   = QUERY_MERGE_INFO_TYPE
-        msgRet.tip   = Json.Encode(mergeInfo)
-        Msg.send(msgRet, human.fd)
+            local cf            = sonHeroID and HeroExcel.hero[sonHeroID]
+            heroSimple.name     = cf and cf.name or ""
+            mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
+            mergeInfo.xLv       = xLv
+            mergeInfo.heroData  = heroSimple
+
+            Log.write(Log.LOGID_TEST, "mergeInfo: " .. Json.Encode(mergeInfo))
+
+            local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
+            msgRet.ret   = QUERY_MERGE_INFO_TYPE
+            msgRet.tip   = Json.Encode(mergeInfo)
+            Msg.send(msgRet, human.fd)
+        end
         return
     end
 
@@ -211,10 +243,10 @@ function NewProto(human, type, param)
 
             Broadcast.sendErr(human, Lang.QUICK_HATCH_SUCCESS)
 
-            local mergeInfo = {}
-            local heroSimple = {}
-            heroSimple.general = heroSimple.general or {}
-            HeroGrid.makeHeroSimpleByID(heroSimple, human.db.mergeInfo.heroId, nil, nil, human)
+            local mergeInfo     = {}
+            local heroSimple    = {}
+            -- heroSimple.general = heroSimple.general or {}
+            -- HeroGrid.makeHeroSimpleByID(heroSimple, human.db.mergeInfo.heroId, nil, nil, human)
 
             mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
             mergeInfo.heroData  = heroSimple