Update - 1.4.0.73

EN: 1.4.0.73
CN: 1.4.0.74
JP: 1.4.0.77
KR: 1.4.0.80
This commit is contained in:
SL1900
2025-12-25 19:00:00 +09:00
parent 5f417fbe9d
commit 35c8d87e86
1183 changed files with 893278 additions and 92778 deletions
@@ -538,7 +538,7 @@ function JointDrillLevelData:OnEvent_MonsterSpawn(nBossId)
if self.bChangeLevel then
return
end
local data, nDataLength = self:CacheTempData(true, bBoss)
local data, nDataLength = self:CacheTempData(true, bBoss, true)
local nHp, nHpMax = 0, 0
if self.mapTempData ~= nil and self.mapTempData.mapBossTempData ~= nil then
nHp = self.mapTempData.mapBossTempData.nHp
@@ -560,19 +560,22 @@ function JointDrillLevelData:OnEvent_BattleLvsToggle(nBattleLv, nTotalTime, nDam
self.parent:AddJointDrillTeam(self.mapBuildData, nTotalTime, self.nDamageValue)
PanelManager.InputDisable()
self.parent:StopRecord()
local syncCallback = function()
PanelManager.InputEnable()
AdventureModuleHelper.LevelStateChanged(false)
EventManager.Hit("ResetBossHUD")
local func = function()
local syncCallback = function()
PanelManager.InputEnable()
AdventureModuleHelper.LevelStateChanged(false)
EventManager.Hit("ResetBossHUD")
end
local data, nDataLength = self.parent:EncodeTempDataJson(self.mapTempData)
local nHp, nHpMax = 1, 1
local tempBossData = self.mapTempData.mapBossTempData
if tempBossData ~= nil then
nHp = math.max(tempBossData.nHp, 1)
nHpMax = math.max(tempBossData.nHpMax, 1)
end
self.parent:JointDrillSync(self.nCurLevel, nTotalTime, self.nDamageValue, nHp, nHpMax, data, syncCallback)
end
local data, nDataLength = self.parent:EncodeTempDataJson(self.mapTempData)
local nHp, nHpMax = 1, 1
local tempBossData = self.mapTempData.mapBossTempData
if tempBossData ~= nil then
nHp = math.max(tempBossData.nHp, 1)
nHpMax = math.max(tempBossData.nHpMax, 1)
end
self.parent:JointDrillSync(self.nCurLevel, nTotalTime, self.nDamageValue, nHp, nHpMax, data, syncCallback)
EventManager.Hit(EventId.SetTransition, 3, func)
end
function JointDrillLevelData:OnEvent_UnloadComplete()
if self.bInResult == true then
@@ -601,6 +604,7 @@ end
function JointDrillLevelData:OnEvent_RestartJointDrill()
self.bRestart = true
self.parent:SetGameTime(0)
AdventureModuleHelper.ClearCharacterDamageRecord(true)
local sRecord = self.parent:EncodeTempDataJson(self.mapInitTempData)
self.parent:ResetRecord(sRecord)
self.parent:SetRecorderExcludeIds(true)
@@ -613,7 +617,11 @@ function JointDrillLevelData:OnEvent_RetreatJointDrill()
self.parent:ResetRecord(sRecord)
self:JointDrillFail(AllEnum.JointDrillResultType.Retreat)
end
self.parent:JointDrillRetreat(self.mapBuildData, callback)
local nHp = 1
if self.mapInitTempData ~= nil and self.mapInitTempData.mapBossTempData ~= nil then
nHp = self.mapInitTempData.mapBossTempData.nHp
end
self.parent:JointDrillRetreat(self.mapBuildData, nHp, callback)
end
function JointDrillLevelData:OnEvent_JointDrill_Result(nLevelState, nTotalTime, nDamageValue)
if self.bInResult then
@@ -398,6 +398,8 @@ function MainlineBattleLevel:OnEvent_SendMsgFinishBattle(LevelResult, _doorIdx,
print("====== 当前通关主线关卡ID:" .. self._nSelectId .. " ======")
if PlayerData.Mainline.bUseOldMainline then
HttpNetHandler.SendMsg(NetMsgId.Id.mainline_settle_req, mapSendMsg, nil, func_cbFinishSucc)
elseif self.bActivityStory then
PlayerData.ActivityAvg:SendMsg_STORY_DONE(func_cbFinishSucc)
else
PlayerData.Avg:SendMsg_STORY_DONE(func_cbFinishSucc)
end
@@ -130,7 +130,7 @@ end
function ScoreBossLevel:OnEvent_BossRushSpawnId(bossId)
self.BossId = bossId
local healthInfo = CS.AdventureModuleHelper.GetEntityHealthInfo(bossId)
self.BossMaxHp = healthInfo ~= nil and healthInfo.hpMax:AsInt() or 0
self.BossMaxHp = healthInfo ~= nil and healthInfo.hpMax or 0
EventManager.AddEntityEvent("HpChanged", self.BossId, self, self.OnEvent_HpChanged)
EventManager.AddEntityEvent("BossRushMonsterLevelChanged", self.BossId, self, self.OnEvent_BossRushMonsterLevelChanged)
EventManager.AddEntityEvent("BossRushMonsterBattleAttrChanged", self.BossId, self, self.OnEvent_BossRushMonsterBattleAttrChanged)
@@ -780,7 +780,7 @@ function BaseRoom:OpenNpcOptionPanel(nCaseId, nNpcConfigId)
local mapTalkCfg = ConfigTable.GetData("StarTowerTalk", nTalkId)
if mapTalkCfg ~= nil and mapAffinity[mapTalkCfg.NPCId] ~= nil then
local nAffinity = mapAffinity[mapTalkCfg.NPCId]
if #mapTalkCfg.Affinity == 2 and nAffinity ~= nil and nAffinity > mapTalkCfg.Affinity[1] and nAffinity <= mapTalkCfg.Affinity[2] then
if #mapTalkCfg.Affinity == 2 and nAffinity ~= nil and nAffinity >= mapTalkCfg.Affinity[1] and nAffinity <= mapTalkCfg.Affinity[2] then
table.insert(tbChat, nTalkId)
end
end
@@ -868,7 +868,7 @@ function BaseRoom:OpenNpcOptionPanel(nCaseId, nNpcConfigId)
local mapTalkCfg = ConfigTable.GetData("StarTowerTalk", nTalkId)
if mapTalkCfg ~= nil and mapAffinity[mapTalkCfg.NPCId] ~= nil then
local nAffinity = mapAffinity[mapTalkCfg.NPCId]
if #mapTalkCfg.Affinity == 2 and nAffinity ~= nil and nAffinity > mapTalkCfg.Affinity[1] and nAffinity <= mapTalkCfg.Affinity[2] then
if #mapTalkCfg.Affinity == 2 and nAffinity ~= nil and nAffinity >= mapTalkCfg.Affinity[1] and nAffinity <= mapTalkCfg.Affinity[2] then
table.insert(tbChat, nTalkId)
end
end
@@ -930,11 +930,18 @@ function BaseRoom:HandleNpcRecover(nCaseId, nNpcConfigId)
local tbChat = ConfigTable.GetData("NPCConfig", nNpcConfigId).Lines
local nCount = #tbChat
local nTalkId = tbChat[1]
local tbSelectedChat = {}
local nAffinity = PlayerData.StarTower:GetNpcAffinityData(9172).nTotalExp
if 1 < nCount then
nTalkId = tbChat[math.random(1, #tbChat)]
for _, nTalkId in ipairs(tbChat) do
local mapTalkCfg = ConfigTable.GetData("StarTowerTalk", nTalkId)
if mapTalkCfg ~= nil and nAffinity ~= nil and #mapTalkCfg.Affinity == 2 and nAffinity ~= nil and nAffinity >= mapTalkCfg.Affinity[1] and nAffinity <= mapTalkCfg.Affinity[2] then
table.insert(tbSelectedChat, nTalkId)
end
end
end
if nTalkId == nil then
nTalkId = 0
if 0 < #tbSelectedChat then
nTalkId = tbSelectedChat[math.random(1, #tbSelectedChat)]
end
local nCoin = self.parent._mapItem[AllEnum.CoinItemId.FixedRogCurrency] or 0
EventManager.Hit(EventId.OpenPanel, PanelId.NpcOptionPanel, 0, 0, {}, nSkinId, 1, {}, {}, nTalkId, 0, true, false, nCoin, self.parent.nTowerId, self.parent._mapNote)
@@ -88,7 +88,7 @@ function BattleRoom:OnEvent_LevelStateChanged(nState)
local tbUsage = self.parent:GetFateCardUsage()
local clientData, nDataLength = self.parent:CacheTempData()
local tbDamage = self.parent:GetDamageRecord()
local tbSamples = UTILS.GetBattleSamples()
local tbSamples = {}
if self.parent.nTotalTime ~= nil then
self.parent.nTotalTime = self.parent.nTotalTime + self.nTime
end
+14 -8
View File
@@ -8,7 +8,7 @@ local mapEventConfig = {
BattlePause = "OnEvnet_Pause",
AdventureModuleEnter = "OnEvent_AdventureModuleEnter"
}
function StoryLevel:Init(parent, nLevelId, nBuildId)
function StoryLevel:Init(parent, nLevelId, nBuildId, bActivityStory)
self.bSettle = false
self.parent = parent
self.nMainLineTime = 0
@@ -16,7 +16,8 @@ function StoryLevel:Init(parent, nLevelId, nBuildId)
self.nLevelId = nLevelId
self.curFloorIdx = 1
self.mapCharacterTempData = {}
local mapStory = ConfigTable.GetData_Story(nLevelId)
self.bActivityStory = bActivityStory == true
local mapStory = bActivityStory == true and ConfigTable.GetData("ActivityStory", nLevelId) or ConfigTable.GetData_Story(nLevelId)
if mapStory == nil then
printError("mapStory is nil,id = " .. nLevelId)
return
@@ -75,7 +76,7 @@ function StoryLevel:OnEvent_SendMsgFinishBattle(LevelResult, FadeTime, sVideoNam
self:OnEvent_AbandonBattle()
return
end
local mapStory = ConfigTable.GetData_Story(self.nLevelId)
local mapStory = self.bActivityStory == true and ConfigTable.GetData("ActivityStory", self.nLevelId) or ConfigTable.GetData_Story(self.nLevelId)
if self.curFloorIdx < #mapStory.FloorId then
self:ChangeFloor()
return
@@ -87,7 +88,11 @@ function StoryLevel:OnEvent_SendMsgFinishBattle(LevelResult, FadeTime, sVideoNam
local events = {
List = PlayerData.Achievement:GetBattleAchievement(GameEnum.levelType.Mainline, LevelResult ~= AllEnum.LevelResult.Failed)
}
PlayerData.Avg:SendMsg_STORY_DONE(func_cbFinishSucc, events)
if self.bActivityStory then
PlayerData.ActivityAvg:SendMsg_STORY_DONE(func_cbFinishSucc, events)
else
PlayerData.Avg:SendMsg_STORY_DONE(func_cbFinishSucc, events)
end
end
function StoryLevel:OnEvent_AbandonBattle()
self:RefreshCharDamageData()
@@ -164,8 +169,9 @@ function StoryLevel:PlaySuccessPerform(FadeTime, mapChangeInfo, sVideoName)
local function videoCallback()
EventManager.Remove("VIDEO_END", self, videoCallback)
EventManager.Hit(EventId.OpenPanel, PanelId.BattleResultMask)
local nFloorCount = #ConfigTable.GetData_Story(self.nLevelId).FloorId
local nMapId = ConfigTable.GetData_Story(self.nLevelId).FloorId[nFloorCount]
local storyCfg = self.bActivityStory == true and ConfigTable.GetData("ActivityStory", self.nLevelId) or ConfigTable.GetData_Story(self.nLevelId)
local nFloorCount = #storyCfg.FloorId
local nMapId = storyCfg.FloorId[nFloorCount]
local nType = ConfigTable.GetData("MainlineFloor", nMapId).Theme
local sName = ConfigTable.GetData("EndSceneType", nType).EndSceneName
EventManager.Add("SettlementPerformLoadFinish", self, openBattleResultPanel)
@@ -239,12 +245,12 @@ function StoryLevel:OnEvent_Time(nTime)
self.nMainLineTime = self.nCacheFloorTime + nTime
end
function StoryLevel:OnEvnet_Pause()
local sAim = ConfigTable.GetData_Story(self.nLevelId).Aim
local sAim = self.bActivityStory == true and ConfigTable.GetData("ActivityStory", self.nLevelId).Aim or ConfigTable.GetData_Story(self.nLevelId).Aim
EventManager.Hit(EventId.OpenPanel, PanelId.MainBattlePause, self.nMainLineTime or 0, self.mapBuildData.tbChar, sAim)
end
function StoryLevel:ChangeFloor()
self:CacheTempData()
local mapStory = ConfigTable.GetData_Story(self.nLevelId)
local mapStory = self.bActivityStory == true and ConfigTable.GetData("ActivityStory", self.nLevelId) or ConfigTable.GetData_Story(self.nLevelId)
self.curFloorIdx = self.curFloorIdx + 1
self.nCacheFloorTime = self.nMainLineTime
local function levelUnloadCallback()
@@ -12,15 +12,7 @@ local mapEventConfig = {
}
function TravelerDuelLevelData:Init(parent, nLevel, tbAffixes, nBuildId)
self._EntryTime = CS.ClientManager.Instance.serverTimeStampWithTimeZone
local LocalData = require("GameCore.Data.LocalData")
local sKey = LocalData.GetPlayerLocalData("TravelerDuelRecordKey")
if sKey ~= nil or sKey ~= "" then
NovaAPI.DeleteRecFile(sKey)
end
self.bEnd = false
local ClientManager = CS.ClientManager.Instance
sKey = tostring(ClientManager.serverTimeStamp)
LocalData.SetPlayerLocalData("TravelerDuelRecordKey", sKey)
self.parent = parent
self.nlevelId = nLevel
self.tmpBuildId = nBuildId
@@ -48,7 +40,6 @@ function TravelerDuelLevelData:Init(parent, nLevel, tbAffixes, nBuildId)
end
PlayerData.nCurGameType = AllEnum.WorldMapNodeType.TravelerDuel
CS.AdventureModuleHelper.EnterTravelerDuel(nLevel, mapLevel.FloorId, self.tbCharId, tbAffixes)
safe_call_cs_func(CS.AdventureModuleHelper.SetDamageRecordId, sKey)
NovaAPI.EnterModule("AdventureModuleScene", true, 17)
end
PlayerData.Build:GetBuildDetailData(GetDataCallback, nBuildId)
@@ -67,7 +58,7 @@ function TravelerDuelLevelData:OnEvent_LevelResult(bSuccess, nTime)
end
self.bEnd = true
self:RefreshCharDamageData()
local msgCallback = function(mapMsgData)
local msgCallback = function(bNewRecord)
self._EndTime = CS.ClientManager.Instance.serverTimeStampWithTimeZone
local tabUpLevel = {}
local nResult = bSuccess and "1" or "2"
@@ -95,25 +86,49 @@ function TravelerDuelLevelData:OnEvent_LevelResult(bSuccess, nTime)
"battle_result",
tostring(nResult)
})
local tmp = table.concat(self.tbAffixes, ",")
table.insert(tabUpLevel, {
"battle_affix",
tmp
})
table.insert(tabUpLevel, {
"characterid1",
self.tbCharDamage[1] ~= nil and tostring(self.tbCharDamage[1].nCharId) or "0"
})
table.insert(tabUpLevel, {
"damage1",
self.tbCharDamage[1] ~= nil and tostring(self.tbCharDamage[1].nDamage) or "0"
})
table.insert(tabUpLevel, {
"characterid2",
self.tbCharDamage[2] ~= nil and tostring(self.tbCharDamage[2].nCharId) or "0"
})
table.insert(tabUpLevel, {
"damage2",
self.tbCharDamage[2] ~= nil and tostring(self.tbCharDamage[2].nDamage) or "0"
})
table.insert(tabUpLevel, {
"characterid3",
self.tbCharDamage[3] ~= nil and tostring(self.tbCharDamage[3].nCharId) or "0"
})
table.insert(tabUpLevel, {
"damage3",
self.tbCharDamage[3] ~= nil and tostring(self.tbCharDamage[3].nDamage) or "0"
})
NovaAPI.UserEventUpload("traveler_duel_battle", tabUpLevel)
if bSuccess then
self:PlaySuccessPerform(mapMsgData, 3, nTime)
self:PlaySuccessPerform(bNewRecord, 3, nTime)
else
EventManager.Hit(EventId.ClosePanel, PanelId.BtnTips)
EventManager.Hit(EventId.OpenPanel, PanelId.TDBattleResultPanel, false, {
false,
false,
false
}, mapMsgData.AwardItems, mapMsgData.FirstItems, {}, 0, false, nTime, self.nlevelId, self.tbCharId, self.tbAffixes, mapMsgData.TimeScore, mapMsgData.BaseScore, mapMsgData.FinalScore, mapMsgData.FinalScore > mapMsgData.MaxScore, mapMsgData.Change, mapMsgData.SurpriseItems, mapMsgData.CustomItems, self.tbCharDamage)
}, {}, {}, {}, 0, false, nTime, self.nlevelId, self.tbCharId, self.tbAffixes, 0, 0, 0, bNewRecord, {}, {}, {}, self.tbCharDamage)
self.parent:LevelEnd()
end
end
local nStar = 0
if bSuccess then
nStar = 3
end
local wait = function()
self.parent:SendMsg_TravelerDuelSettle(nStar, self.nlevelId, nTime, msgCallback)
self.parent:SettleBattle(bSuccess, self.nlevelId, nTime, self.tbAffixes, self.mapBuildData.nBuildId, msgCallback)
end
if bSuccess then
TimerManager.Add(1, 2, self, wait, true, true, nil, nil)
@@ -126,7 +141,7 @@ function TravelerDuelLevelData:OnEvent_AbandonBattle()
end
function TravelerDuelLevelData:OnEvent_AdventureModuleEnter()
PlayerData.Achievement:SetSpecialBattleAchievement(GameEnum.levelType.TravelerDuel)
EventManager.Hit(EventId.OpenPanel, PanelId.TDBattlePanel, self.tbCharId)
EventManager.Hit(EventId.OpenPanel, PanelId.TDBattlePanel, self.tbCharId, self.nlevelId)
self:SetPersonalPerk()
self:SetDiscInfo()
for idx, nCharId in ipairs(self.tbCharId) do
@@ -182,7 +197,7 @@ function TravelerDuelLevelData:SetDiscInfo()
end
safe_call_cs_func(CS.AdventureModuleHelper.SetDiscInfo, tbDiscInfo)
end
function TravelerDuelLevelData:PlaySuccessPerform(mapMsgData, nStar, nTime)
function TravelerDuelLevelData:PlaySuccessPerform(bNewRecord, nStar, nTime)
local func_OpenResult = function(bSuccess)
end
local tbChar = self.tbCharId
@@ -191,10 +206,6 @@ function TravelerDuelLevelData:PlaySuccessPerform(mapMsgData, nStar, nTime)
local nFloorId = ConfigTable.GetData("TravelerDuelBossLevel", self.nlevelId).FloorId
local nType = ConfigTable.GetData("TravelerDuelFloor", nFloorId).Theme
local sName = ConfigTable.GetData("EndSceneType", nType).EndSceneName
local jumpPerform = function()
NovaAPI.DispatchEventWithData("SKIP_SETTLEMENT_PERFORM")
end
EventManager.Hit(EventId.OpenPanel, PanelId.BtnTips, jumpPerform)
local tbSkin = {}
for _, nCharId in ipairs(tbChar) do
local nSkinId = PlayerData.Char:GetCharSkinId(nCharId)
@@ -208,7 +219,7 @@ function TravelerDuelLevelData:PlaySuccessPerform(mapMsgData, nStar, nTime)
true,
true,
true
}, mapMsgData.AwardItems, mapMsgData.FirstItems, {}, 0, false, nTime, self.nlevelId, self.tbCharId, self.tbAffixes, mapMsgData.TimeScore, mapMsgData.BaseScore, mapMsgData.FinalScore, mapMsgData.FinalScore > mapMsgData.MaxScore, mapMsgData.Change, mapMsgData.SurpriseItems, mapMsgData.CustomItems, self.tbCharDamage)
}, {}, {}, {}, 0, false, nTime, self.nlevelId, self.tbCharId, self.tbAffixes, {}, {}, {}, bNewRecord, {}, {}, {}, self.tbCharDamage)
self.bSettle = false
self.parent:LevelEnd()
self:UnBindEvent()
@@ -224,7 +235,14 @@ function TravelerDuelLevelData:CalCharFixedEffect(nCharId, bMainChar, tbDiscId)
return stActorInfo
end
function TravelerDuelLevelData:OnEvnet_Pause()
EventManager.Hit("OpenTDPause", self.nlevelId, self.tbCharId)
local nHard = 0
for _, nAffixId in ipairs(self.tbAffixes) do
local mapAffixCfgData = ConfigTable.GetData("TravelerDuelChallengeAffix", nAffixId)
if mapAffixCfgData ~= nil then
nHard = nHard + mapAffixCfgData.Difficulty
end
end
EventManager.Hit("OpenTDPause", self.nlevelId, self.tbCharId, nHard)
end
function TravelerDuelLevelData:OnEvent_UploadDodgeEvent(padMode)
local tab = {}
+3
View File
@@ -71,6 +71,9 @@ function TrialLevel:OnEvent_LoadLevelRefresh()
end
function TrialLevel:RefreshCharDamageData()
self.tbCharDamage = UTILS.GetCharDamageResult(self.tbCharId)
for i, v in ipairs(self.tbCharDamage) do
self.tbCharDamage[i].nSkinId = PlayerData.Char:GetCharSkinId(v.nCharId)
end
end
function TrialLevel:OnEvent_LevelResult(nLevelTime)
self:RefreshCharDamageData()