You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1361 lines
52 KiB

return function(obj)
local isKeyValuePair
local function lua_iter(cs_iter, k)
if cs_iter:MoveNext() then
local current = cs_iter.Current
if isKeyValuePair == nil then
if type(current) == 'userdata' then
local t = current:GetType()
isKeyValuePair = t.Name == 'KeyValuePair`2' and t.Namespace == 'System.Collections.Generic'
else
isKeyValuePair = false
end
--print(current, isKeyValuePair)
end
if isKeyValuePair then
return current.Key, current.Value
else
return k + 1, current
end
end
end
return lua_iter, obj:GetEnumerator(), -1
end
-- date: 2020/7/23 17:50:00
-- target version: WWL5.0
-- HotFixNum 238
require 'xlua.util'.hotfix_ex(CS.GameLogin.UIVersionCodeView, 'GetHotFixVersionStr', function(self)
return " 238"
end)
-- WWL5.0\#01
------------------------------------------------------------------------------------------------
-- HotFix#1 WWL5.0 ps4手柄 激活职业技能的手柄按键名称显示错了
-- Hengxiachen : Fixed Incorrect Composite Gamepad Button Icon
------------------------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.BattleRoyale.BRSkillView, 'Start', function(self)
self:Start()
xlua.private_accessible(CS.GamepadButton)
local getChild = CS.GameEngine.PlayableController
local gamePadBtnObj = getChild.findChild(self.transform, "UIGamepadButton", true).gameObject;
if gamePadBtnObj == nil then
return
end
local gamePadBtn = gamePadBtnObj:GetComponent(typeof(CS.GamepadButton));
if gamePadBtn ~= nil then
local container = getChild.findChild(self.transform, "Container", true).gameObject;
local ButtonSpriteOne = nil
local ButtonSpriteTwo = nil
local BtnSpriteOne = getChild.findChild(self.transform, "ButtonSprite1", true).gameObject
local BtnSpriteTwo = getChild.findChild(self.transform, "ButtonSprite2", true).gameObject
if BtnSpriteOne ~= nil then
ButtonSpriteOne = BtnSpriteOne:GetComponent(typeof(CS.UISprite))
end
if BtnSpriteTwo ~= nil then
ButtonSpriteTwo = BtnSpriteTwo:GetComponent(typeof(CS.UISprite))
end
gamePadBtn.m_IsCompositeButton = true
gamePadBtn.m_CompositeCfg.RootObj = container
gamePadBtn.m_CompositeCfg.ButtonSprite1 = ButtonSpriteOne
gamePadBtn.m_CompositeCfg.ButtonSprite2 = ButtonSpriteTwo
end
end)
require 'xlua.util'.hotfix_ex(CS.GameBase.UltSkillHud, 'Start', function(self)
self:Start()
xlua.private_accessible(CS.GamepadButton)
local getChildMP = CS.GameEngine.PlayableController
local gamePadBtnObjMP = getChildMP.findChild(self.transform, "UIGamepadButton", true).gameObject;
if gamePadBtnObjMP == nil then
return
end
local gamePadBtnMP = gamePadBtnObjMP:GetComponent(typeof(CS.GamepadButton));
if gamePadBtnMP ~= nil then
local containerMP = getChildMP.findChild(self.transform, "Container", true).gameObject;
local ButtonSpriteOneMP = nil
local ButtonSpriteTwoMP = nil
local BtnSpriteOneMP = getChildMP.findChild(self.transform, "ButtonSprite1", true).gameObject
local BtnSpriteTwoMP = getChildMP.findChild(self.transform, "ButtonSprite2", true).gameObject
if BtnSpriteOneMP ~= nil then
ButtonSpriteOneMP = BtnSpriteOneMP:GetComponent(typeof(CS.UISprite))
end
if BtnSpriteTwoMP ~= nil then
ButtonSpriteTwoMP = BtnSpriteTwoMP:GetComponent(typeof(CS.UISprite))
end
gamePadBtnMP.m_IsCompositeButton = true
gamePadBtnMP.m_CompositeCfg.RootObj = containerMP
gamePadBtnMP.m_CompositeCfg.ButtonSprite1 = ButtonSpriteOneMP
gamePadBtnMP.m_CompositeCfg.ButtonSprite2 = ButtonSpriteTwoMP
end
end)
-- WWL5.0\#02
--------------------------------------------------------------------------------
-- smartzhu: fix PlaylistSelectorController OnVideoIntroductionBtnClick #2
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameUI.Room.PlaylistSelectorController,'OnVideoIntroductionBtnClick',function(self)
--CS.GameEngine.Log.GeneralError("{0}",self.m_PlaylistId)
local temp = self.m_PlaylistId
local languageCode = CS.LanguageManager.CurrentELanguageCode
local suffix = 0
if CS.GameDefine.IsIMSDKKing then
if languageCode == CS.msg.ELanguageCode.ar_SA then
suffix=10
elseif languageCode == CS.msg.ELanguageCode.pt_BR then
suffix=11
elseif languageCode == CS.msg.ELanguageCode.de_DE then
suffix=12
elseif languageCode == CS.msg.ELanguageCode.en_US then
suffix=13
elseif languageCode == CS.msg.ELanguageCode.fr_FR then
suffix=14
elseif languageCode == CS.msg.ELanguageCode.it_IT then
suffix=15
elseif languageCode == CS.msg.ELanguageCode.ja_JP then
suffix=16
elseif languageCode == CS.msg.ELanguageCode.es_ES then
suffix=17
elseif languageCode == CS.msg.ELanguageCode.ru_RU then
suffix=18
elseif languageCode == CS.msg.ELanguageCode.tr_TR then
suffix=19
else
suffix=13
end
elseif CS.GameDefine.IsIMSDKGarenaSA then
if languageCode == CS.msg.ELanguageCode.zh_TW then
suffix=0
elseif languageCode == CS.msg.ELanguageCode.en_SG then
suffix=1
elseif languageCode == CS.msg.ELanguageCode.in_ID then
suffix=2
elseif languageCode == CS.msg.ELanguageCode.th_TH then
suffix=3
else
suffix=1
end
elseif CS.GameDefine.IsIMSDKKorea then
suffix=30
elseif CS.GameDefine.IsIMSDKVNG then
suffix=20
end
--CS.GameEngine.Log.GeneralError("{0}",suffix)
self.m_PlaylistId=self.m_PlaylistId-self.m_PlaylistId%100+suffix
--CS.GameEngine.Log.GeneralError("{0}",self.m_PlaylistId)
self:OnVideoIntroductionBtnClick()
self.m_PlaylistId=temp
--CS.GameEngine.Log.GeneralError("{0}",self.m_PlaylistId)
end)
require 'xlua.util'.hotfix_ex(CS.GameUI.Room.PlaylistSelectorController,'SetDetailInfo',function(self, playlistType, playlistId, detailType, enableTutorialVideo)
if CS.GameDefine.IsMobileIOS and CS.GameDefine.IsIMSDKVNG then
enableTutorialVideo = false
end
self:SetDetailInfo(playlistType, playlistId, detailType, enableTutorialVideo)
end)
-- WWL5.0\#03
--------------------------------------------------------------------------------
-- krisstian: Fix settlement "MORE" localization. V5.0#3
--------------------------------------------------------------------------------
--local GeneralError = CS.GameEngine.Log.GeneralError
require 'xlua.util'.hotfix_ex(CS.Settlement.BRSettlementDetailWindowController, 'UpdateView', function(self)
--GeneralError("HotFix BRSettlementDetailWindowController UpdateView")
self:UpdateView()
if self.m_View ~= nil and self.m_View.BtnMoreMedal ~= nil
then
local label = self.m_View.BtnMoreMedal.transform:GetComponentInChildren(typeof(CS.UILabel))
if label ~= nil
then
CS.GameUI.UICommonTools.SafeSetLabel(label,CS.LanguageUtility.Translate('LOC_RANK_MORE'))
end
end
end)
-- WWL5.0\#04
--------------------------------------------------------------------------------
-- steekwu: Fix Final Repaly
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.PVP.DeadReplayManager, 'WaitingForFinalKillReplayTimeOut', function(self, time)
time = 5
self:WaitingForFinalKillReplayTimeOut(time)
end)
-- WWL5.0\#05
--------------------------------------------------------------------------------
-- hehehe: fix PVPOpenSceneHUD
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameUI.PVPOpenSceneHUD, 'Awake', function(self)
self:Awake()
self.Skip.width = 60
local label = self.Skip.gameObject:GetComponent(typeof(CS.UILabel))
if label ~= nil then
label.text = CS.LanguageUtility.Translate('LOC_BATTLEPASS_SEASONVIDEOVIEW_SKIPBTN')
end
end)
-- WWL5.0\#06
--------------------------------------------------------------------------------
-- smartzhu: fix BRTutorialView localization #6
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.Tutorial.BRTutorialController,'Init',function(self)
self:Init()
local tp = self.m_View.NewsToggle.transform:Find('TAG(BG)')
if tp ~= nil then
local t = tp:Find('Label')
if t ~= nil then
local label = t:GetComponent(typeof(CS.UILabel))
if label ~= nil then
label.modifier = CS.UILabel.Modifier.Localization
label.locID = 'LOC_FTUE_TAG_NEW'
end
end
end
end)
-- WWL5.0\#07
--------------------------------------------------------------------------------
-- smartzhu: fix BRTutorialView localization #6
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.PVP.Team.INFGame.InfectGameTipHUD,'RegisterDelegates',function(self)
self:RegisterDelegates()
local labelT = self.countDownTipsRoot.transform:Find('Label')
if labelT ~= nil then
local label = labelT:GetComponent(typeof(CS.UILabel))
if label ~= nil then
label.modifier = CS.UILabel.Modifier.Localization
label.locID = 'LOC_PREFAB_INFECTED_OR'
end
end
end)
-- WWL5.0\#08
--------------------------------------------------------------------------------
-- v_wenlliang: fix VNG 18+ tips
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.FrontEnd.LobbyMapTopBarView, 'ConfigureStyle', function(self,style,param)
self:ConfigureStyle(style,param)
if style == CS.FrontEnd.ELobbyMapTopBarStyle.OnlyBack then
if CS.GameEngine.DataStoreManager.Instance.GlobalDataStore.Enable18ProhibitedLogo and CS.GameDefine.IsIMSDKVNG then
local uiScene=CS.GameUI.GUIManager.Instance.UISceneObject
if(uiScene ~=nil) then
if uiScene:GetType():ToString() == 'FrontEnd.FrontEndUIScene' then
local currentCtrl = uiScene.CurrentNaviUIController
if nil ~= currentCtrl then
if currentCtrl:GetType():ToString() == 'PersonalInfoHistorySettlementNavController' then
CS.GameUI.UICommonTools.SafeSetActive(self.VNG_18, false)
end
end
end
end
end
end
end)
-- WWL5.0\#09
--------------------------------------------------------------------------------
-- allenmo fix BuffEffect_DroneInterfere crash
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameBase.BuffEffect_DroneInterfere, 'TriggerEffectImpl', function(self)
local PlayEffectCallBack = function (effect)
--CS.UnityEngine.Debug.LogError(self)
--CS.UnityEngine.Debug.LogError(effect)
if self.m_Buff == nil then
return
end
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Buff.Target) == true then
return
end
if self.m_Buff.Target:IsDestroyed() == true then
return
end
if self.m_Buff.Target.ThirdPersonModelSocket == nil then
return
end
self.m_Effect = effect
--CS.UnityEngine.Debug.LogError(self.m_Effect)
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Effect) == false then
local socketTransform = self.m_Buff.Target.ThirdPersonModelSocket:FindWithName("Bip01", true)
if socketTransform ~= nil then
--CS.UnityEngine.Debug.LogError("PlayEffect")
self.m_Effect.transform.parent = socketTransform
self.m_Effect.transform.localPosition = CS.UnityEngine.Vector3.zero
self.m_Effect.transform.localRotation = CS.UnityEngine.Quaternion.identity
self.m_Effect.transform.localScale = CS.UnityEngine.Vector3.one
self.m_Effect:PlayEffect()
end
end
end
--CS.UnityEngine.Debug.LogError("TriggerEffectImpl")
if self.m_Buff ~= nil and CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Buff.Target) == false then
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Effect) == true then
--CS.UnityEngine.Debug.LogError("step 1")
if self.m_Buff.Target.ViewType == CS.GameEngine.EActorViewType.ThirdPerson and self.m_Buff.Target.ThirdPersonModelSocket ~= nil then
--CS.UnityEngine.Debug.LogError("step 2")
local socketTransform = self.m_Buff.Target.ThirdPersonModelSocket:FindWithName("Bip01", true)
if socketTransform ~= nil then
--CS.UnityEngine.Debug.LogError("step 3")
local spawnEffectGeneric = xlua.get_generic_method(CS.GameEngine.EffectManager, "SpawnEffect")
local spawnEffect = spawnEffectGeneric(CS.GameEngine.ParticleEffect)
spawnEffect(310000156, socketTransform.position, socketTransform.rotation, 0, PlayEffectCallBack)
end
end
end
if self.m_Buff.Target.IsInterferedByDrone == false then
self.m_Buff.Target.IsInterferedByDrone = true
self.m_Buff.Target:CheckBlind()
end
if self.m_Buff.Target == CS.GameEngine.GamePlay.LocalOrViewTargetPawn and CS.GameEngine.GamePlay.SafeSpectInfo.IsMatchObserver == false then
self.m_IsLocalPlayerInInterferedState = true
self.m_BeginInInterferedStateTime = CS.UnityEngine.Time.realtimeSinceStartup
CS.GameBase.GameHudStateManager.Instance:AddState(CS.GameBase.GameHudState.GHS_InterferedByDrone)
if self.m_Buff.Target.IsSpectated == false then
self.m_Buff.Target:CloseAimAndResetData()
end
CS.GameEngine.GamePlay.SetLockPawnState(CS.GameEngine.EPawnStateLock.LockADS, true)
CS.GameEngine.AudioSystem.PlaySound("Play_wpn_br_uav_noise", CS.Audio.Defs.AudioGameObjects.SFX)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020441, false)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020187, false)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020463, true)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020182, false)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020181, true)
CS.GameEngine.EventManager.Instance:SendUIEvent(1020199, false)
end
end
end)
-- WWL5.0\#10
--------------------------------------------------------------------------------
-- seanoopdeng fix cloth crash
--------------------------------------------------------------------------------
local function LuaOverride_IsLowQualitySetting(self)
return true
end
require 'xlua.util'.hotfix_ex(CS.FrontEnd.AvatarItemBase, 'IsLowQualitySetting', LuaOverride_IsLowQualitySetting)
--------------------------------------------------------------------------------
-- hehehe: fix CTFFlag cloth crash
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.PVP.Team.CTFGame.CTFFlag, 'SetCamp', function(self,camp)
self:SetCamp(camp)
local flag = self.ModelInst.transform:FindWithName("PVP_Ctf_Flag_3P_BR_lod0", true)
if flag ~= nil then
local cloth = flag:GetComponent(typeof(CS.UnityEngine.Cloth))
if cloth ~= nil then
CS.UnityEngine.Debug.LogError("find cloth")
cloth.enabled = false
end
end
end)
require 'xlua.util'.hotfix_ex(CS.PVP.Team.CTFGame.SwitchRoleComponent_CTFGamePlayerPawn, 'OnLoadFlagCompletes', function(self,assetID,CallBackData)
self:OnLoadFlagCompletes(assetID,CallBackData)
local flag = self.FlagObj.transform:FindWithName("PVP_Ctf_Flag_3P_BR_lod0", true)
if flag ~= nil then
local cloth = flag:GetComponent(typeof(CS.UnityEngine.Cloth))
if cloth ~= nil then
CS.UnityEngine.Debug.LogError("find cloth")
cloth.enabled = false
end
end
if CS.GameBase.PoolSystemService.Instance == nil then
return
end
if CS.GameBase.PoolSystemService.Instance.GeneralPool == nil then
return
end
local prefabGo = CS.GameBase.PoolSystemService.Instance.GeneralPool:FindInstanceTemplate(assetID)
if CS.GameCommon.LuaUtility.IsNullInCSharp( prefabGo ) == false then
local flagTrans = prefabGo.transform:FindWithName("PVP_Ctf_Flag_3P_BR_lod0", true)
if CS.GameCommon.LuaUtility.IsNullInCSharp( flagTrans ) == false then
local cloth = flagTrans:GetComponent(typeof(CS.UnityEngine.Cloth))
if cloth ~= nil then
CS.UnityEngine.Debug.LogError("find cloth in prefab")
cloth.enabled = false
end
end
end
end)
-- WWL5.0\#11
-- date: 20200429
-- reason: 【ID77997877】【WWL5.0v】
-- target version: WWL 5.0
--修复索引溢出 monsterfang
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarLoadOP, 'InstanceUIRoleEquip', function( inAvatar,inEquipAssetIDs)
if CS.GameCommon.LuaUtility.IsNullInCSharp(inAvatar) == true then
CS.GameEngine.Log.GeneralError('[InstanceUIRoleEquip] is Fialed . inAvatar is null ')
return
end
if inEquipAssetIDs == nil then
CS.GameEngine.Log.GeneralError('[InstanceUIRoleEquip] is Fialed . inEquipAssetIDs is null ')
return
end
CS.GameEngine.AvatarLoadOP.InstanceUIRoleEquip(inAvatar,inEquipAssetIDs)
end)
--[[require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarComposer, 'UpdateBones', function(self, renderers,targetBones,offset,add,inResetBone)
if renderers == nil then
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Pawn) == true then
CS.GameEngine.Log.GeneralError('[UpdateBones] is Fialed . m_Pawn is null ')
return false
end
if self.m_Pawn.PlayerInfo == nil then
CS.GameEngine.Log.GeneralError('[UpdateBones] is Fialed . PlayerInfo is null ')
return false
end
end
self:UpdateBones(renderers,targetBones,offset,add,inResetBone)
end)]]
-- WWL5.0\#12
--------------------------------------------------------------------------------
-- v_xinywen:新版本客户端屏蔽至新赛季开放3天以后
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.RankGame.RankView, 'AddSeasonOffTips', function(self)
end)
require 'xlua.util'.hotfix_ex(CS.GameUI.Home.HomeMainController, 'RefreshRankMatchTopRight_Logo', function(self,isLock)
self:RefreshRankActvAdd()
CS.GameEngine.Log.GeneralError("RefreshRankMatchTopRight_Logo")
self:RefreshRankMatchTopRight_Logo(isLock)
end)
-- WWL5.0\#13
--------------------------------------------------------------------------------
-- maodai: close mesh combine cache
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameBase.BaseGame, 'CreateGameComponents', function(self)
self:CreateGameComponents()
local temp = self.ModelOptimizer
if temp ~= nil then
temp.UICacheOptimizedMesh = false
end
end)
-- WWL5.0\#14
--------------------------------------------------------------------------------
-- corgizhou: 载具车轮破碎崩溃
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameBase.NZWheeledVehicleMovementComponent, 'ClearInput', function(self)
if self.gameObject.activeSelf then
self:ClearInput()
end
end)
require 'xlua.util'.hotfix_ex(CS.GameBase.NZWheeledTankMovementComponent, 'ClearInput', function(self)
if self.gameObject.activeSelf then
self:ClearInput()
end
end)
-- WWL5.0\#15
--------------------------------------------------------------------------------
-- marcusli: BR角色Culling距离
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.FrontEnd.FrontEndUIScene, 'InitGVoice', function(self)
self:InitGVoice()
CS.GameEngine.SwitchRoleComponent.LOD3Params[2] = 0.008
CS.GameEngine.SwitchRoleComponent.LOD2Params[1] = 0.008
end)
-- WWL5.0\#16
--------------------------------------------------------------------------------
-- kekezhao: dom map domimation point id error.
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.PVP.Team.DominationGame.DOMObjectiveVolume, 'Awake', function(self)
self:Awake()
local gameInfoDS = CS.GameEngine.DataStoreManager.Instance.GameInfoDataStore
local MapID = gameInfoDS.ActualMapId;
if (MapID == 0x10030005) then
CS.GameEngine.Log.GeneralError("map find");
if self.ObjectiveID == 0 then
self.ObjectiveID = 1
elseif self.ObjectiveID == 1 then
self.ObjectiveID = 2
elseif self.ObjectiveID == 2 then
self.ObjectiveID = 0
end
end
end)
require 'xlua.util'.hotfix_ex(CS.GameBase.GameEventChannel, 'OnSyncDomArea', function(self, Msg)
local gameInfoDS = CS.GameEngine.DataStoreManager.Instance.GameInfoDataStore
local MapID = gameInfoDS.ActualMapId;
if (MapID == 0x10030005) then
cast(Msg, typeof(CS.Network.SyncDomareaMsg))
local ct = Msg.Content;
if ct ~= nil and self.m_Game.DomAreaManager ~= nil then
if ct.AreaId == 0 then
ct.AreaId = 1
elseif ct.AreaId == 1 then
ct.AreaId = 2
elseif ct.AreaId == 2 then
ct.AreaId = 0
end
end
end
self:OnSyncDomArea(Msg)
end)
-- WWL5.0\#17
--------------------------------------------------------------------------------
-- v_wenlliang: 排位加成和排位不掉分活动局内显示
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.LobbyRankPointBuffDataStore, 'GetIsNotDropValid', function(self,serverTime,bAdd)
if bAdd then
if self.mRankedMatchAddInfoList~=nil then
if self.mRankedMatchAddInfoList.Count >0 then
local GameInfoDS=CS.GameEngine.DataStoreManager.Instance.GameInfoDataStore
if(GameInfoDS~=nil) then
local ServiceModule=GameInfoDS.MatchServiceModule
if ServiceModule==4 or ServiceModule==2 then
for i=0, self.mRankedMatchAddInfoList.Count-1, 1 do
local e = self.mRankedMatchAddInfoList[i]
if(e~=nil) then
if(e.Data~=nil) then
if (e.Data.ranked_match_type==5 and ServiceModule==2) or (e.Data.ranked_match_type==6 and ServiceModule==4) then
if e:IsRankBuffValid(serverTime) and e:IsRankRestriction() then
return true
end
end
end
end
end
end
end
end
end
return false
else
return self:GetIsNotDropValid(serverTime,bAdd)
end
end)
-- WWL5.0\#18
--------------------------------------------------------------------------------
-- shifengzhou: RenderMultMaterialManager RefreshRound idiv0
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.RenderMultMaterialManager, 'RefreshRound', function(self)
if self.SubMeshNum == 0 then
else
return self:RefreshRound()
end
end)
-- WWL5.0\#19
--------------------------------------------------------------------------------
-- corgizhou: 坦克视角切换和子弹数展示问题
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameEngine.TankHUD, 'Awake', function(self)
self:Awake()
self.m_AmmoCount = 100
end)
require 'xlua.util'.hotfix_ex(CS.BattleRoyale.BRVehicleComponent, 'GetOnVehicle', function(self, vehicle, seat)
local preSeatIdx = self.CurrentSeatIndex
local viewType = self.mLastViewType
self:GetOnVehicle(vehicle, seat)
if preSeatIdx == CS.GameEngine.EVehicleSeatIndex.SEAT_DRIVER then
self.mLastViewType = viewType
end
end)
-- WWL5.0\#20
--[[
coreygao:1
]]--
xlua.private_accessible(CS.Chat.ChatQTFilterCell)
require 'xlua.util'.hotfix_ex(CS.Chat.ChatQTFilterCell, "ConfigureFilterCell", function(self, mode, cutPanel)
self:ConfigureFilterCell(mode, cutPanel)
if self.PlayerFrame then
local ladderLv, ladderType = 0, CS.GameUI.Room.ELadderType.ENone
if CS.GameEngine.MapStoreHelper.IsBRGameMode(CS.GameEngine.EGameMode.__CastFrom(mode.ModeID)) then
ladderLv, ladderType = mode.BRLadderLevel, CS.GameUI.Room.ELadderType.EBr
else
ladderLv, ladderType = mode.LadderLevel, CS.GameUI.Room.ELadderType.ESpvp
end
self.PlayerFrame:SetData(mode.PictureInfo, mode.Name, mode.PeakLevel, mode.Level, ladderLv, ladderType)
end
end)
-- WWL5.0\#21
--------------------------------------------------------------------------------
-- paulqu: 回流任务累积奖励获取时,不会播放获取动画
-- http://tapd.oa.com/codm/bugtrace/bugs/view/1110125091078725232
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameUI.SoldierReturn.SoldierReturnReturnTrainingController, 'OnNotifyCommonReceiveItemClose', function(self, message)
self:OnNotifyCommonReceiveItemClose(message)
if self._taskController ~= nil then
self._taskController:OnUIEvent(message)
end
end)
-- WWL5.0\#22
--[[
coreygao:
]]--
xlua.private_accessible(CS.Chat.ChatQTFilterController)
xlua.hotfix(CS.Chat.ChatQTFilterController, "ValidateLanguage", function(self, info)
if not self.m_FilterData.IsSameLanguage then
return true
else
return CS.msg.ELanguageCode.__CastFrom(info.LanguageCode) == CS.LanguageManager.CurrentELanguageCode
end
end)
-- WWL5.0\#23
-- date: 2020年6月17日10:38:27
-- 修复BR偶现的可破坏物消失
-- huiyicui
require 'xlua.util'.hotfix_ex(CS.BattleRoyale.BRDestructibleObj, 'Init', function(self, actorId, levelObj)
self.m_IsBroken = false;
self:Init(actorId, levelObj);
end)
-- WWL5.0\#24
--------------------------------------------------------------------------------
-- wenlliang: 低配机广告
--------------------------------------------------------------------------------
local function CheckADAvailable()
--CS.UnityEngine.Debug.LogError(CS.GameEngine.SystemSetting.Instance.EnableBackupLowMemStrategy)
--CS.UnityEngine.Debug.LogError(CS.GameEngine.SystemSetting.Instance:IsAndroidDangerousOS())
if CS.GameEngine.SystemSetting.Instance.EnableBackupLowMemStrategy or
CS.GameEngine.SystemSetting.Instance:IsAndroidDangerousOS() then
return false
end
return true
end
require 'xlua.util'.hotfix_ex(CS.AdvertisingDataStore, 'CheckLobbyADShow', function(self)
self:CheckLobbyADShow()
if self.m_IsADShowLobby then
self.m_IsADShowLobby=CheckADAvailable()
end
end)
-- WWL5.0\#25
-- WWL5.0\#25
--------------------------------------------------------------------------------
-- petejiang: fix MP playlist filter switch and tip overlap
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameUI.Room.RoomSpvpPlaylistSelectorWindowController, 'OnBtnMapClick', function(self)
self:OnBtnMapClick()
if self.m_View ~= nil and self.m_View.LabelCantNotSelectMapTip ~= nil then
self.m_View.LabelCantNotSelectMapTip.gameObject:SetActive(false)
end
end)
-- WWL5.0\#26
-- WWL5.0\#26
--------------------------------------------------------------------------------
-- rayqiu: 删除接收好友组队弹窗协议后,商城弹窗的特殊处理
-- 玩家接收到好友组队弹窗,关闭后会卡死在宝箱展示界面
-- http://tapd.oa.com/codm/bugtrace/bugs/view?bug_id=1110125091078791532
require 'xlua.util'.hotfix_ex(CS.GameUI.UILuckyBoxAwardsController, 'CloseWindow', function(self)
--CS.GameEngine.Log.GeneralError("Hotfix [UILuckyBoxAwardsController] CloseWindow");
end)
require 'xlua.util'.hotfix_ex(CS.GameShop.ShopPaymentConfirmPopupWindowController, 'CloseWindow', function(self)
--CS.GameEngine.Log.GeneralError("Hotfix [ShopPaymentConfirmPopupWindowController] CloseWindow");
end)
-- WWL5.0\#27
--------------------------------------------------------------------------------
-- vivinliu: Filter out the Prop Type(EInventoryItemType.Temporary) .#27
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.LiveOps.LiveOpsActivitySystemAssist, 'LiveOpsItemIdGoDetails', function(self,ItemId)
local curtype = CS.GameBase.ItemConfigHelper.GetInventoryType(ItemId);
if curtype == CS.GameBase.EInventoryItemType.Temporary then
return;
end;
self:LiveOpsItemIdGoDetails(ItemId);
end)
-- WWL5.0\#28
--------------------------------------------------------------------------------
-- rayqiu: 由于人物背包、帽子、衣服都增加了换皮功能改为用道具id判断是否需要重新加载
-- http://tapd.oa.com/codm/bugtrace/bugs/view/1110125091078818510
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.FrontEnd.CommonAvatarView, 'CheckToBeChanged', function(self, param)
-- CS.GameEngine.Log.GeneralError("Hotfix [CheckToBeChanged] CheckToBeChanged")
--先走一遍原函数
local changed = self:CheckToBeChanged(param)
-- if changed then
-- CS.GameEngine.Log.GeneralError("Hotfix [CheckToBeChanged]origin changed: true" )
-- else
-- CS.GameEngine.Log.GeneralError("Hotfix [CheckToBeChanged]origin changed: false" )
-- end
-- 对于role Type重新求一遍
if param.commonAvatarId == self.mAvatarParameter.commonAvatarId and
param.commonAvatarType == self.mAvatarParameter.commonAvatarType then
if param.commonAvatarType == CS.FrontEnd.CommonAvatarType.Role then
if param.roleHatId == self.mAvatarParameter.roleHatId and
param.roleBagId == self.mAvatarParameter.roleBagId and
param.roleClothId == self.mAvatarParameter.roleClothId and
param.roleAction == self.mAvatarParameter.roleAction and
(not self:HasEntranceAni(param)) and
(param.roleAction == nil or param.roleAction == "") then
changed = false
else
changed = true
end
end
end
-- if changed then
-- CS.GameEngine.Log.GeneralError("Hotfix [CheckToBeChanged]return changed: true" )
-- else
-- CS.GameEngine.Log.GeneralError("Hotfix [CheckToBeChanged]return changed: false" )
-- end
return changed
end)
-- WWL5.0\#29,30
--------------------------------------------------------------------------------
-- steekwu: 局外喷漆更新显示
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.FrontEnd.AvatarTextureChangeDynamic, 'ChangeMainTexture', function(self, textureName, itemType, itemId)
local useNew = false
local newAssetID = 0
--CS.UnityEngine.Debug.LogError(textureName)
--itemType = CS.GameBase.EInventoryItemType.HeadFramePic
--textureName = "Icon_Frame_122_Latched_Models"
if itemType == CS.GameBase.EInventoryItemType.HeadAvatarPic then
local strID = string.sub(textureName, 13, 15)
--CS.UnityEngine.Debug.LogError(itemType)
--CS.UnityEngine.Debug.LogError(strID)
local numID = tonumber(strID)
useNew = numID >= 121 and numID <= 138
newAssetID = 411000050
end
if itemType == CS.GameBase.EInventoryItemType.HeadFramePic then
local strID = string.sub(textureName, 12, 14)
--CS.UnityEngine.Debug.LogError(itemType)
--CS.UnityEngine.Debug.LogError(strID)
local numID = tonumber(strID)
useNew = numID >= 111 and numID <= 126
newAssetID = 411000051
end
if itemType == CS.GameBase.EInventoryItemType.IndividuationLacquer then
useNew = itemId >= 250200116 and itemId <= 250200135
newAssetID = 408001015
end
if not useNew then
self:ChangeMainTexture(textureName, itemType, itemId)
return
end
self:Init()
self.m_TextureName = textureName;
--CS.UnityEngine.Debug.LogError("UseNew");
local assetGO = CS.GameEngine.AssetManager.Instance:InstantiateAsset(newAssetID);
if assetGO ~= nil then
--CS.UnityEngine.Debug.LogError("1");
local set = assetGO:GetComponent(typeof(CS.FrontEnd.PerkTextureSet));
if set ~= nil then
--CS.UnityEngine.Debug.LogError("2");
local tex = set:GetTexture(self.m_TextureName, itemId);
if tex ~= nil and self.m_Material ~= nil then
--CS.UnityEngine.Debug.LogError("3");
self.m_Material.mainTexture = tex;
end
if tex ~= nil and self.m_Material_Low ~= nil then
--CS.UnityEngine.Debug.LogError("4");
self.m_Material_Low.mainTexture = tex;
end
end
CS.UnityEngine.GameObject.Destroy(assetGO);
end
end)
-- WWL5.0\#31
local SimulatedJumpingSpeedFactor = 0.6
local SimulatedJumpingMinSpeed = 1.5
local SimulatedJumpingMaxSpeed = 10
local function LuaOverride_SimulatedDoJump(self, jumpMoveData)
self:SimulatedDoJump(jumpMoveData)
if self.CurClimbType ~= CS.GameBase.Pawn.ClimbType.None then
return
end
local pendingMoveDataCount = self.m_MoveHelper.SimulateMoveDataList.Count + self.MoveSyncModule.SimulateMoveDataList.Count;
if pendingMoveDataCount == 0 then
return
end
self.m_SimulatedJumpingSpeedScale = pendingMoveDataCount * SimulatedJumpingSpeedFactor
if self.m_SimulatedJumpingSpeedScale < SimulatedJumpingMinSpeed then
self.m_SimulatedJumpingSpeedScale = SimulatedJumpingMinSpeed
end
if self.m_SimulatedJumpingSpeedScale > SimulatedJumpingMaxSpeed then
self.m_SimulatedJumpingSpeedScale = SimulatedJumpingMaxSpeed
end
--CS.GameEngine.Log.GeneralError("SimulatedDoJump is jump pendingMoveDataCount:{0} m_SimulatedJumpingSpeedScale:{1}", pendingMoveDataCount, self.m_SimulatedJumpingSpeedScale)
end
require 'xlua.util'.hotfix_ex(CS.GameBase.PlayerPawn, 'SimulatedDoJump', LuaOverride_SimulatedDoJump)
local function LuaOverride_IsWaitJumpLand(self)
return false
end
require 'xlua.util'.hotfix_ex(CS.GameBase.PlayerPawn, 'IsWaitJumpLand', LuaOverride_IsWaitJumpLand)
local function LuaOverride_CalcSimulatedFallingHorizontalVelocity(self, deltaTime)
end
require 'xlua.util'.hotfix_ex(CS.GameBase.PlayerPawn, 'CalcSimulatedFallingHorizontalVelocity', LuaOverride_CalcSimulatedFallingHorizontalVelocity)
-- WWL5.0\#32
require 'xlua.util'.hotfix_ex(CS.GameUI.Room.SpvpPlaylistDetailWindowController, 'UpdateView', function(self, detailType)
self:UpdateView(detailType)
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_View) == false then
local trans = self.m_View.transform
if trans ~= nil then
local trans2 = trans:FindWithName('Widget(shootout)', true)
if trans2 ~= nil then
local shootoutGo = trans2.gameObject
if shootoutGo ~= nil then
if detailType == 10 then
shootoutGo:SetActive(true)
else
shootoutGo:SetActive(false)
end
end
end
end
end
end)
-- WWL5.0\#33
-- date: 20200429
-- reason: 【ID77997877】【WWL5.0v】
-- target version: WWL 5.0
--表格中的背包资源:局内显示错误:低画质 背包资源全部显示280200132背包资源高画质背包资源全部显示280200131 monsterfang
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarComposer, 'ChangeDetailTexture', function(self, inType,inTex)
local index = CS.System.Convert.ToInt32(inType)
if self.mAvatarMesh[index] ~= nil and self.mAvatarMesh[index].MeshObjs ~= nil then
if self.mAvatarMesh[index].isGUPSink == false then
for i = 1, self.mAvatarMesh[index].MeshObjs.Length do
local obj = self.mAvatarMesh[index].MeshObjs[i -1]
if CS.GameCommon.LuaUtility.IsNullInCSharp(obj) == false then
local _r = obj:GetComponent(typeof(CS.UnityEngine.Renderer))
if CS.GameCommon.LuaUtility.IsNullInCSharp(_r) == false then
CS.GameEngine.MaterialCamoHelper.EnableDetailLerp(_r.material, inTex)
end
end
end
end
end
end)
-- WWL5.0\#34
-- date: 20200429
-- reason: 【ID77997877】【WWL5.0v】
-- target version: WWL 5.0
--710000468 背部未显示 monsterfang
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarLoadOP, 'InstanceUIRole', function( inEquipAssetIDs)
if inEquipAssetIDs == nil then
CS.GameEngine.Log.GeneralError('[InstanceUIRole] is Fialed . inEquipAssetIDs is null ')
return nil
end
local rv = CS.GameEngine.AvatarLoadOP.InstanceUIRole(inEquipAssetIDs)
if inEquipAssetIDs[0] == 710000468 then
if CS.GameCommon.LuaUtility.IsNullInCSharp(rv) == false then
local _renderers = rv:GetComponentsInChildren(typeof(CS.UnityEngine.SkinnedMeshRenderer),true)
for i = 1, _renderers.Length do
if CS.GameCommon.LuaUtility.IsNullInCSharp(_renderers[i -1]) == false then
if _renderers[i -1].gameObject.activeSelf == false then
_renderers[i -1].gameObject:SetActive(true)
end
end
end
end
end
return rv
end)
-- WWL5.0\#35
-- date: 20200706
-- reason: 【ID78882894】【WWL5.0v2】
-- target version: WWL 5.0v2
--78882894 【BR-载具】坦克皮肤Wrecked未覆盖炮台corgizhou
require 'xlua.util'.hotfix_ex(CS.GameEngine.PhysicsVehicle, 'ChangeMaterial', function( self, mats)
if mats ~= nil and mats.Length > 0 then
local _array = {}
for i = 0, self.weaponInfos.Length - 1 do
local w = self.weaponInfos[i]
if w.weaponMeshOriginal ~= nil then
for j =0, w.weaponMeshOriginal.Length - 1 do
local v = w.weaponMeshOriginal[j]
self:ChangeMaterial(v, mats, _array)
end
end
end
end
self:ChangeMaterial(mats)
end)
-- date: 20200706
-- reason: 【ID78884834】【WWL5.0v2】
-- target version: WWL 5.0v2
--78884834 【BR-载具】突击车皮肤Stream未覆盖机枪板总单corgizhou
require 'xlua.util'.hotfix_ex(CS.GameEngine.PhysicsVehicle, 'LoadTexture', function( self, inTexID)
self:LoadTexture(inTexID)
local loadAssetSync_generic = xlua.get_generic_method(CS.GameEngine.AssetManager, 'LoadAssetSync')
local loadAssetSync = loadAssetSync_generic(CS.UnityEngine.Texture2D)
local _tex = loadAssetSync(CS.GameEngine.AssetManager.Instance, inTexID)
if _tex ~= nil then
for i = 0, self.weaponInfos.Length - 1 do
local w = self.weaponInfos[i]
if w.weaponMeshOriginal ~= nil then
for j =0, w.weaponMeshOriginal.Length - 1 do
local r = w.weaponMeshOriginal[j]
if r ~= nil then
local mats = r.materials
for v = 0, mats.Length - 1 do
local m = mats[v]
if m ~= nil then
CS.GameEngine.MaterialCamoHelper.EnableDetailLerp(m, _tex)
end
end
end
end
end
end
end
end)
-- WWL5.0\#36
--------------------------------------------------------------------------------
-- 【【WWL5.0v2】【GA预发布】【andriod】【必现】【武器皮肤】【局外】【PVP/BR】【ID 10106060】AK117 - SnakeBite枪身蛇头缺少动态效果】
-- http://tapd.oa.com/codm/bugtrace/bugs/view?bug_id=1010125091080692985
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.ModelOptimizer, 'OptimizeUIWeapon', function(self, model, type1, assetIDs, excludeObjList)
if model ~= nil then
local excludeObj = model.transform:FindWithName("SnakeBite_UI_lod0", true)
if excludeObj ~= nil then
excludeObjList:Add(excludeObj.gameObject)
end
end
return self:OptimizeUIWeapon(model, type1, assetIDs, excludeObjList)
end)
-- WWL5.0\#37
--------------------------------------------------------------------------------
-- author: moonlin
-- 音频配置表格热更优化
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameEngine.WeaponSoundConfigManager, 'SearchConfig', function(Key)
-- local log = 'HotFix' .. 'SearchConfig'
-- GeneralError(log)
if(Key ~= 0) then
if (Key == 200000627) then
return CS.GameEngine.WeaponSoundConfigManager.SearchConfig(200000481)
elseif (Key == 200000628) then
return CS.GameEngine.WeaponSoundConfigManager.SearchConfig(200000482)
elseif (Key == 200000629 or Key == 200000631) then
local weaponSoundConfigItem = CS.GameEngine.WeaponSoundConfigManager.SearchConfig(200000126)
-- MainWeapon_080_AK117_1p
weaponSoundConfigItem.RaiseSound = 'Play_weapon_core_ar_scar_raise_1p'
weaponSoundConfigItem.ClipOutAsset = 'Play_weapon_core_ar_scar_clipout_1p'
weaponSoundConfigItem.ClipInAsset = 'Play_weapon_core_ar_scar_clipin_1p'
weaponSoundConfigItem.WeaponBank1 = '205.bnk'
weaponSoundConfigItem.PlantOKSound = 'Play_weapon_core_ar_scar_down_1p'
weaponSoundConfigItem.FireSound_Compressor = 'Play_weapon_core_ar_scar_silence_fire_1p'
weaponSoundConfigItem.FirstBulletSound = 'Play_weapon_core_ar_scar_fire_1p'
weaponSoundConfigItem.FirstBulletSoundSilencer = 'Play_weapon_core_ar_scar_silence_fire_1p'
weaponSoundConfigItem.FireStopSound = 'Play_weapon_core_ar_scar_firestop_1p'
return weaponSoundConfigItem
elseif (Key == 200000630 or Key == 200000632) then
local weaponSoundConfigItem = CS.GameEngine.WeaponSoundConfigManager.SearchConfig(200000520)
-- MainWeapon_080_AK117_3p
if(CS.GameEngine.GamePlay.GameInfo ~= nil and CS.GameEngine.GamePlay.GameInfo:IsBRGame()) then
weaponSoundConfigItem.RaiseSound = 'Play_weapon_core_ar_scar_raise_3p_br'
weaponSoundConfigItem.ClipOutAsset = 'Play_weapon_core_ar_scar_clipout_3p_br'
weaponSoundConfigItem.ClipInAsset = 'Play_weapon_core_ar_scar_clipin_3p_br'
weaponSoundConfigItem.WeaponBank1 = '205.bnk'
weaponSoundConfigItem.PlantOKSound = 'Play_weapon_core_ar_scar_down_3p_br'
weaponSoundConfigItem.FireSound_Compressor = 'Play_weapon_core_ar_scar_silence_fire_3p_br'
weaponSoundConfigItem.FirstBulletSound = 'Play_weapon_core_ar_scar_fire_3p_br'
weaponSoundConfigItem.FirstBulletSoundSilencer = 'Play_weapon_core_ar_scar_silence_fire_3p_br'
weaponSoundConfigItem.FireStopSound = 'Play_weapon_core_ar_scar_firestop_3p_br'
else
weaponSoundConfigItem.RaiseSound = 'Play_weapon_core_ar_scar_raise_3p'
weaponSoundConfigItem.ClipOutAsset = 'Play_weapon_core_ar_scar_clipout_3p'
weaponSoundConfigItem.ClipInAsset = 'Play_weapon_core_ar_scar_clipin_3p'
weaponSoundConfigItem.WeaponBank1 = '205.bnk'
weaponSoundConfigItem.PlantOKSound = 'Play_weapon_core_ar_scar_down_3p'
weaponSoundConfigItem.FireSound_Compressor = 'Play_weapon_core_ar_scar_silence_fire_3p'
weaponSoundConfigItem.FirstBulletSound = 'Play_weapon_core_ar_scar_fire_3p'
weaponSoundConfigItem.FirstBulletSoundSilencer = 'Play_weapon_core_ar_scar_silence_fire_3p'
weaponSoundConfigItem.FireStopSound = 'Play_weapon_core_ar_scar_firestop_3p'
end
return weaponSoundConfigItem
else
return CS.GameEngine.WeaponSoundConfigManager.SearchConfig(Key)
end
end
return nil
end)
-- WWL5.0\#39
-- date: 20200429
-- reason: 【ID77997877】【WWL5.0v】
-- target version: WWL 5.0
--710000468 背部未显示 monsterfang
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarLoadOP, 'Despawn', function( inAvatar,inObj)
CS.UnityEngine.GameObject.Destroy(inObj)
end)
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarComposer, 'ChangeEquip', function( self,toMeshGO,show,inMaterialIDs)
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Pawn) == false then
CS.GameEngine.Log.GeneralError('[AvatarComposer] ChangeEquip. PlayerID:{0} name {1} ',self.m_Pawn.PlayerID,toMeshGO.name)
end
return self:ChangeEquip(toMeshGO,show,inMaterialIDs)
end)
require 'xlua.util'.hotfix_ex(CS.GameEngine.AvatarComposer, '_Unequip', function( self,refOPMesh,inType)
if self:GetShow(1) == false then
if self.mAvatarDefMesh[6].enable then
self.mAvatarDefMesh[6]:SetShow(true, self.m_Pawn)
end
end
if CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Pawn) == false then
CS.GameEngine.Log.GeneralError('[AvatarComposer] _Unequip. PlayerID:{0} type {1} ',self.m_Pawn.PlayerID,inType)
end
return self:_Unequip(refOPMesh,inType)
end)
-- WWL5.0\#40
--------------------------------------------------------------------------------
-- smartzhu: fix AvatarView_Character GetWeaponCommerialAnimator
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.FrontEnd.AvatarView_Character,'GetWeaponCommerialAnimator',function(self,type)
local weaponAnimator = self:GetWeaponCommerialAnimator(type)
if self.WEASPON_ID == 10305042 then
local parent = self.OrangeLMGWeaponRoleAnimator.gameObject
if parent ~= nil then
local RPDAnimatorTrans = parent.transform:Find('RPDAnimator')
if RPDAnimatorTrans ~= nil then
weaponAnimator = RPDAnimatorTrans:GetComponent(typeof(CS.UnityEngine.Animator))
else
local obj = CS.GameEngine.AssetManager.Instance:InstantiateAsset(200029001)
if obj ~= nil then
obj.name = 'RPDAnimator'
obj.transform.parent = self.OrangeLMGWeaponRoleAnimator.transform
weaponAnimator = obj.transform:GetComponent(typeof(CS.UnityEngine.Animator))
end
end
end
end
return weaponAnimator
end)
-- WWL5.0\#41
---------------------------------------------------------------------------------
-- seanoopdeng
-- fix: 调用CrossFade 需要带参数 time 避免初始化失败
---------------------------------------------------------------------------------
local function LuaOverride_SetAnimatorToInit( self )
if not CS.GameCommon.LuaUtility.IsNullInCSharp(self.m_Animator) then
self:ResetAllTrigger()
self.m_Animator:CrossFade("Alive", 0, self.BaseLayer,0)
self.m_Animator:CrossFade("Idle", 0, self.UpperBodyOverrideLayer,0)
self.m_Animator:CrossFade("Idle", 0, self.UpperBodyLayer,0)
end
end
require 'xlua.util'.hotfix_ex(CS.GameEngine.PawnAnimationComponent, 'SetAnimatorToInit', LuaOverride_SetAnimatorToInit)
-- WWL5.0\#42
-- date: 2020/04/13
-- reason:
-- target version: 5.0
--------------------------------------------------------------------------------
--- Fix: luckydraw奖池增加"owned”标签逻辑
require 'xlua.util'.hotfix_ex(CS.LuckyDrawRewardsMgr, 'SetRewards', function(self, prop_list)
self:SetRewards(prop_list)
local squadDS = CS.GameEngine.DataStoreManager.Instance.SquadInventoryDataStore;
local minCount = CS.System.Math.Min(self.views.Count,prop_list.Count)
for i = 0, minCount-1, 1 do
local item = prop_list[i]
local view = self.views[i]
if item.allow_lottery_flag == 0 then
view.Get.gameObject:SetActive(true)
view.GetLabel.text = CS.LanguageUtility.Translate("LOC_SHOP_LUCKYDRAW_RECEIVED")
else
view.Get.gameObject:SetActive(false)
local itemList = squadDS:GetAllSameIdItem(item.prop_id)
for k,v in pairs(itemList) do
if v.TimeType == CS.msg.ITEMDURATIONTYPE.ENM_IDT_TIME_FOREVER then
if view.GetLabel ~= nil then
view.Get.gameObject:SetActive(true)
view.GetLabel.text = CS.LanguageUtility.Translate("LOC_LUCKYBOARD_EXCHANGESHOP_ALREADYOWNED")
end
end
end
end
end
end)
-- WWL5.0\#43
--------------------------------------------------------------------------------
-- vivinliu: modify the time to UTC .#43
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.LiveOps.MatchJumpClient, 'IsValid', function(self,serverTime)
local globalDS=CS.GameEngine.DataStoreManager.Instance.GlobalDataStore
if globalDS == nil then
return false;
end
local serverTime = globalDS:GetServerTime();
local curtime1 = CS.GameEngine.DateTimeUtil.ConvertTimeStampToUTCDateTime(serverTime);
if curtime1 ~= nil then
local curtimeint = curtime1.Year * 10000 + curtime1.Month * 100 + curtime1.Day;
if curtimeint >= self.m_BeginDate and curtimeint <= self.m_EndDate then
if self.m_seqId == 1 then
CS.GameEngine.Log.GeneralWarning('[MatchJumpClient] IsValid. curtime: {0}-{1}-{2} {3}:{4}:{5}, m_seqId={6}, m_BeginDate = {7}, m_EndDate = {8}',curtime1.Year,curtime1.Month,curtime1.Day,curtime1.Hour,curtime1.Minute,curtime1.Second,self.m_seqId,self.m_BeginDate,self.m_EndDate);
end
return true;
end
end
return false;
end)
require 'xlua.util'.hotfix_ex(CS.LiveOps.LiveOpsMatchJumpItemView_CA, '_RefreshRemainTime', function(self,endTime)
local globalDS=CS.GameEngine.DataStoreManager.Instance.GlobalDataStore
if globalDS == nil then
return;
end
local dateTimestr = CS.System.String.Format('{0}-{1}-{2} 23:59:59',math.floor(endTime / 10000), math.floor((endTime % 10000) / 100), endTime % 100);
local tempTime = CS.System.Convert.ToDateTime(dateTimestr);
local timeUtc = CS.System.DateTime.SpecifyKind(tempTime, CS.System.DateTimeKind.Utc);
local endTime_stamp = CS.GameEngine.DateTimeUtil.ConvertDateTimeToTimeStamp(timeUtc);
local remainTime = endTime_stamp - globalDS:GetServerTime();
CS.GameEngine.Log.GeneralWarning('[LiveOpsMatchJumpItemView_CA] _RefreshRemainTime. endtime = {0}, remainTime = {1}, endtime = {2}-{3}-{4} {5}:{6}:{7}',dateTimestr, remainTime,tempTime.Year,tempTime.Month,tempTime.Day,tempTime.Hour,tempTime.Minute,tempTime.Second);
if remainTime < 0 then
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeBlack, false);
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeRed, false);
elseif remainTime <= 3600 then
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeRed, true);
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeBlack, false);
CS.GameUI.UICommonTools.SafeSetLabel(self.LabelRemainTimeRed, CS.GameBase.ItemConfigHelper.GetTimeString(math.floor(remainTime), CS.GameBase.ETimeUnit.ESecond));
else
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeRed, false);
CS.GameUI.UICommonTools.SafeSetActive(self.LabelRemainTimeBlack, true);
CS.GameUI.UICommonTools.SafeSetLabel(self.LabelRemainTimeBlack, CS.GameBase.ItemConfigHelper.GetTimeString(math.floor(remainTime), CS.GameBase.ETimeUnit.ESecond));
end
end)
-- WWL5.0\#44
--------------------------------------------------------------------------------
-- petejiang: turn on filter by default #44
-- select all playlists when player open selector for the first time after hotfix
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.GameUI.Room.RoomSpvpPlaylistSelectorWindowController, 'InitView', function(self, matchType)
self:InitView(matchType)
local roomDS = CS.GameEngine.DataStoreManager.Instance.RoomDataStore
local spvpDS = CS.GameEngine.DataStoreManager.Instance.SpvpDataStore
if roomDS == nil or spvpDS == nil then
return
end
local playlistInfo = spvpDS:GetPlaylistInfoByPlaylistId(roomDS.PlaylistId)
if playlistInfo ~= nil and playlistInfo.bIncludedInFilter == false then
CS.GameEngine.Log.GeneralWarning("current playlist is not in filter. do nothing!")
return
end
local playerPrefs = CS.PlayerPrefsManager.Instance
if playerPrefs == nil then
return
end
if spvpDS.IsMPMultipleChooseAllowed and matchType == CS.msg.EMatchServiceModule.kMatchMaking then
local filterKey = "filter_switch_open"
if not playerPrefs:HasCurrentPlayerKey(filterKey) then
self:SetAllPlaylistSelect(true)
playerPrefs:SetCurrentPlayerInt(filterKey, 0)
end
spvpDS.MPModeSelectType = 1
local selectNum = 0
local isSelectAll = false
isSelectAll, selectNum = self:IsSelectAll(selectNum)
self:OnBtnPlaylistClick()
self:RefreshSelectAllBtnState()
self:RefreshTimer()
end
end)
-- WWL5.0\#45
--------------------------------------------------------------------------------
-- moonlin: fix AK Default Pool OOM #45
-- Expand AK DefaultPoolSize before first Instantiate AKInitializer
--------------------------------------------------------------------------------
require 'xlua.util'.hotfix_ex(CS.Audio.Utils.AudioResourcesLoaderProxy, 'Load', function(strPath)
if strPath == nil then
return nil
elseif string.find(strPath,'Audio/Configs/WwiseInitializer/WWiseInitializer_') ~= nil then
local wwiseInitializerGO = CS.GameEngine.AssetManager.LoadAudioGameObject(strPath)
if wwiseInitializerGO ~= nil then
local akInitializer = wwiseInitializerGO:GetComponent("AkInitializer");
akInitializer.defaultPoolSize = 1024 * 15
akInitializer.lowMem_defaultPoolSize = 1024 * 10
end
end
return CS.GameEngine.AssetManager.LoadAudioGameObject(strPath)
end)