|
|
@@ -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
|