|
@@ -64,6 +64,9 @@ function NewProto(human, type, param)
|
|
|
local fatherHeroBagIndex = tonumber(tb[1]) or 0
|
|
local fatherHeroBagIndex = tonumber(tb[1]) or 0
|
|
|
local motherHeroBagIndex = tonumber(tb[2]) or 0
|
|
local motherHeroBagIndex = tonumber(tb[2]) or 0
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST,
|
|
|
|
|
+ "开始融合 fatherHeroBagIndex: " .. fatherHeroBagIndex .. "motherHeroBagIndex: " .. motherHeroBagIndex)
|
|
|
|
|
+
|
|
|
local fatherHeroGrid = human.db.heroBag[fatherHeroBagIndex]
|
|
local fatherHeroGrid = human.db.heroBag[fatherHeroBagIndex]
|
|
|
if not heroGrid then
|
|
if not heroGrid then
|
|
|
return
|
|
return
|
|
@@ -74,8 +77,15 @@ function NewProto(human, type, param)
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "motherHeroGrid: " .. Json.Encode(motherHeroGrid))
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "fatherHeroGrid: " .. Json.Encode(fatherHeroGrid))
|
|
|
|
|
+
|
|
|
local fatherHeroAttr = ObjHuman.getHeroAttrs(human, fatherHeroBagIndex)
|
|
local fatherHeroAttr = ObjHuman.getHeroAttrs(human, fatherHeroBagIndex)
|
|
|
local motherHeroAttr = ObjHuman.getHeroAttrs(human, motherHeroBagIndex)
|
|
local motherHeroAttr = ObjHuman.getHeroAttrs(human, motherHeroBagIndex)
|
|
|
|
|
+
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "fatherHeroAttr: " .. Json.Encode(fatherHeroAttr))
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "motherHeroAttr: " .. Json.Encode(motherHeroAttr))
|
|
|
|
|
+
|
|
|
local mergeInfo = {}
|
|
local mergeInfo = {}
|
|
|
local attrs = RoleDefine.PANEL_ATTR_KEY
|
|
local attrs = RoleDefine.PANEL_ATTR_KEY
|
|
|
|
|
|
|
@@ -84,22 +94,33 @@ function NewProto(human, type, param)
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "sonHeroID: " .. sonHeroID)
|
|
|
|
|
+
|
|
|
for key, value in pairs(attrs) do
|
|
for key, value in pairs(attrs) do
|
|
|
local param1 = fatherHeroAttr[key] or 0
|
|
local param1 = fatherHeroAttr[key] or 0
|
|
|
local param2 = motherHeroAttr[key] or 0
|
|
local param2 = motherHeroAttr[key] or 0
|
|
|
attrs[key] = math.floor(((param1 + param2) / 4))
|
|
attrs[key] = math.floor(((param1 + param2) / 4))
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "融合后的属性: " .. Json.Encode(attrs))
|
|
|
|
|
+
|
|
|
local xLv = getxLv(fatherHeroGrid, motherHeroGrid)
|
|
local xLv = getxLv(fatherHeroGrid, motherHeroGrid)
|
|
|
local cnt = math.floor(xLv / 2) + 1
|
|
local cnt = math.floor(xLv / 2) + 1
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "xLv: " .. xLv)
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "cnt: " .. cnt)
|
|
|
|
|
+
|
|
|
--使用道具
|
|
--使用道具
|
|
|
ItemLogic.use(human, itemId, cnt)
|
|
ItemLogic.use(human, itemId, cnt)
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "删除开始")
|
|
|
|
|
+
|
|
|
-- 删除英雄
|
|
-- 删除英雄
|
|
|
HeroLogic.delHeroByIndex(human, fatherHeroBagIndex, "hero_merge")
|
|
HeroLogic.delHeroByIndex(human, fatherHeroBagIndex, "hero_merge")
|
|
|
HeroLogic.delHeroByIndex(human, motherHeroBagIndex, "hero_merge")
|
|
HeroLogic.delHeroByIndex(human, motherHeroBagIndex, "hero_merge")
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "删除结束")
|
|
|
|
|
+
|
|
|
-- for heroIndex = 1, human.db.heroBag[0] do
|
|
-- for heroIndex = 1, human.db.heroBag[0] do
|
|
|
-- local heroGrid = human.db.heroBag[heroIndex]
|
|
-- local heroGrid = human.db.heroBag[heroIndex]
|
|
|
-- if heroGrid.id == fatherHeroID or heroGrid.id == motherHeroID then
|
|
-- if heroGrid.id == fatherHeroID or heroGrid.id == motherHeroID then
|
|
@@ -114,15 +135,18 @@ function NewProto(human, type, param)
|
|
|
human.db.mergeInfo.mergeEndTime = os.time() + getHatchTime(xLv)
|
|
human.db.mergeInfo.mergeEndTime = os.time() + getHatchTime(xLv)
|
|
|
human.db.mergeInfo.mergeTime = getHatchTime(xLv)
|
|
human.db.mergeInfo.mergeTime = getHatchTime(xLv)
|
|
|
|
|
|
|
|
- mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
|
|
|
|
|
- mergeInfo.heroId = human.db.mergeInfo.heroId
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "human.db.mergeInfo : " .. Json.Encode(human.db.mergeInfo))
|
|
|
|
|
+
|
|
|
|
|
+ mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
|
|
|
|
|
+ mergeInfo.heroId = human.db.mergeInfo.heroId
|
|
|
|
|
|
|
|
- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
|
|
|
|
|
- msgRet.ret = MERGE_HERO_TYPE
|
|
|
|
|
- msgRet.tip = Json.Encode(mergeInfo)
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "mergeInfo: " .. Json.Encode(mergeInfo))
|
|
|
|
|
+
|
|
|
|
|
+ local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
|
|
|
|
|
+ msgRet.ret = MERGE_HERO_TYPE
|
|
|
|
|
+ msgRet.tip = Json.Encode(mergeInfo)
|
|
|
Msg.send(msgRet, human.fd)
|
|
Msg.send(msgRet, human.fd)
|
|
|
end
|
|
end
|
|
|
-
|
|
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
|
|
|
|
@@ -136,6 +160,8 @@ function NewProto(human, type, param)
|
|
|
local nowTime = os.time()
|
|
local nowTime = os.time()
|
|
|
local mergeTime = human.db.mergeInfo.mergeEndTime - nowTime
|
|
local mergeTime = human.db.mergeInfo.mergeEndTime - nowTime
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "mergeTime: " .. mergeTime)
|
|
|
|
|
+
|
|
|
-- 孵化成功
|
|
-- 孵化成功
|
|
|
if mergeTime <= 0 then
|
|
if mergeTime <= 0 then
|
|
|
hatchHero(human)
|
|
hatchHero(human)
|
|
@@ -149,43 +175,56 @@ function NewProto(human, type, param)
|
|
|
mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
|
|
mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
|
|
|
mergeInfo.heroData = heroSimple
|
|
mergeInfo.heroData = heroSimple
|
|
|
|
|
|
|
|
- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
|
|
|
|
|
- msgRet.ret = AD_DRAW_REWARD_TYPE
|
|
|
|
|
- msgRet.tip = Json.Encode(mergeInfo)
|
|
|
|
|
|
|
+ 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)
|
|
Msg.send(msgRet, human.fd)
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
-- 加速孵化
|
|
-- 加速孵化
|
|
|
if type == QUICK_HATCH_TYPE then
|
|
if type == QUICK_HATCH_TYPE then
|
|
|
- -- 初始化
|
|
|
|
|
- initMergeInfo(human)
|
|
|
|
|
-
|
|
|
|
|
local tb = Util.split(param, "|")
|
|
local tb = Util.split(param, "|")
|
|
|
local itemId = tonumber(tb[1]) or 0
|
|
local itemId = tonumber(tb[1]) or 0
|
|
|
local cnt = tonumber(tb[2]) or 0
|
|
local cnt = tonumber(tb[2]) or 0
|
|
|
|
|
|
|
|
if tb[1] and tb[2] then
|
|
if tb[1] and tb[2] then
|
|
|
|
|
+ -- 初始化
|
|
|
|
|
+ initMergeInfo(human)
|
|
|
|
|
+
|
|
|
--使用道具
|
|
--使用道具
|
|
|
ItemLogic.use(human, itemId, cnt)
|
|
ItemLogic.use(human, itemId, cnt)
|
|
|
|
|
|
|
|
local remainingTime = human.db.mergeInfo.mergeTime - (60 * cnt)
|
|
local remainingTime = human.db.mergeInfo.mergeTime - (60 * cnt)
|
|
|
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "remainingTime: " .. remainingTime)
|
|
|
|
|
+
|
|
|
-- 孵化成功
|
|
-- 孵化成功
|
|
|
if remainingTime <= 0 then
|
|
if remainingTime <= 0 then
|
|
|
hatchHero(human)
|
|
hatchHero(human)
|
|
|
- return
|
|
|
|
|
|
|
+ -- return
|
|
|
end
|
|
end
|
|
|
|
|
|
|
|
- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
|
|
|
|
|
- msgRet.ret = QUICK_HATCH_TYPE
|
|
|
|
|
- msgRet.tip = Lang.QUICK_HATCH_SUCCESS
|
|
|
|
|
- Msg.send(msgRet, human.fd)
|
|
|
|
|
|
|
+ Log.write(Log.LOGID_TEST, "加速后 human.db.mergeInfo : " .. Json.Encode(human.db.mergeInfo))
|
|
|
|
|
|
|
|
Broadcast.sendErr(human, Lang.QUICK_HATCH_SUCCESS)
|
|
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)
|
|
|
|
|
+
|
|
|
|
|
+ mergeInfo.mergeTime = human.db.mergeInfo.mergeTime
|
|
|
|
|
+ mergeInfo.heroData = heroSimple
|
|
|
|
|
+
|
|
|
|
|
+ local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
|
|
|
|
|
+ msgRet.ret = QUICK_HATCH_TYPE
|
|
|
|
|
+ msgRet.tip = Json.Encode(mergeInfo)
|
|
|
|
|
+ Msg.send(msgRet, human.fd)
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
-
|
|
|
|
|
return
|
|
return
|
|
|
end
|
|
end
|
|
|
end
|
|
end
|