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
@@ -19,6 +19,10 @@ GachaCoverCtrl_CharUp._mapNodeConfig = {
sComponentName = "TMP_Text",
sLanguageId = "GachaCover_GuaranteeRemainTip"
},
TMPFes = {
sComponentName = "TMP_Text",
sLanguageId = "Gacha_FesGacha"
},
TMPGuaranteeGetTip = {
sComponentName = "TMP_Text",
sLanguageId = "GachaCover_GuaranteeGetTip"
@@ -228,10 +232,10 @@ function GachaCoverCtrl_CharUp:RefreshGuaranteeReward()
elseif mapCfg.Type == GameEnum.itemType.Char then
local mapCfgData_Char = ConfigTable.GetData_Character(mapGachaData.GuaranteeTid)
local mapCfgData_Skin = ConfigTable.GetData_CharacterSkin(mapCfgData_Char.DefaultSkinId)
self:SetPngSprite(self._mapNode.imgGuaranteeCharHead, mapCfgData_Skin.Icon .. AllEnum.CharHeadIconSurfix.S)
self:SetPngSprite(self._mapNode.imgGuaranteeCharHead, mapCfgData_Skin.Icon, AllEnum.CharHeadIconSurfix.S)
elseif mapCfg.Type == GameEnum.itemType.CharacterSkin then
local mapCfgData_Skin = ConfigTable.GetData_CharacterSkin(mapGachaData.GuaranteeTid)
self:SetPngSprite(self._mapNode.imgGuaranteeCharHead, mapCfgData_Skin.Icon .. AllEnum.CharHeadIconSurfix.S)
self:SetPngSprite(self._mapNode.imgGuaranteeCharHead, mapCfgData_Skin.Icon, AllEnum.CharHeadIconSurfix.S)
end
self._mapNode.imgGuaranteeBg:SetActive(true)
if bGuaranteeReward then
@@ -5,6 +5,10 @@ GachaCoverCtrl_DiscUp._mapNodeConfig = {
sComponentName = "Transform"
},
imgTimeBg = {},
TMPFes = {
sComponentName = "TMP_Text",
sLanguageId = "Gacha_FesGacha"
},
TMPCountDown = {sComponentName = "TMP_Text"},
TMPRemianCount = {sComponentName = "TMP_Text"},
btnUpDiscDetail = {
+177 -22
View File
@@ -323,7 +323,21 @@ function GachaCtrl:RefreshCoin(mapGacha)
return
end
end
if #mapGachaStorage.OncePreferred > 0 then
local bShowSpecialOne = false
if mapGacha.SpecificTid > 0 then
local nCurCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
if nCurCount >= mapGacha.SpecificQty then
bShowSpecialOne = true
end
end
if bShowSpecialOne then
NovaAPI.SetTMPText(self._mapNode.TMP_gachaOneCost, mapGacha.SpecificQty)
local mapItemCfgData = ConfigTable.GetData_Item(mapGacha.SpecificTid)
if mapItemCfgData ~= nil then
self:SetPngSprite(self._mapNode.imgItemOne, mapItemCfgData.Icon2)
end
NovaAPI.SetImageNativeSize(self._mapNode.imgItemOne)
elseif #mapGachaStorage.OncePreferred > 0 then
for nIdx, mapCost in ipairs(mapGachaStorage.OncePreferred) do
local f = pairs(mapCost)
local sTid, nCount = f(mapCost)
@@ -351,7 +365,21 @@ function GachaCtrl:RefreshCoin(mapGacha)
NovaAPI.SetImageNativeSize(self._mapNode.imgItemOne)
end
end
if #mapGachaStorage.TenTimesPreferred > 0 then
local bShowSpecialTen = false
if mapGacha.SpecificTid > 0 then
local nCurCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
if nCurCount >= 10 * mapGacha.SpecificQty then
bShowSpecialTen = true
end
end
if bShowSpecialTen then
NovaAPI.SetTMPText(self._mapNode.TMP_gachaTenCost, 10 * mapGacha.SpecificQty)
local mapItemCfgData = ConfigTable.GetData_Item(mapGacha.SpecificTid)
if mapItemCfgData ~= nil then
self:SetPngSprite(self._mapNode.imgItemTen, mapItemCfgData.Icon2)
end
NovaAPI.SetImageNativeSize(self._mapNode.imgItemTen)
elseif #mapGachaStorage.TenTimesPreferred > 0 then
for nIdx, mapCost in ipairs(mapGachaStorage.TenTimesPreferred) do
local f = pairs(mapCost)
local sTid, nCount = f(mapCost)
@@ -408,8 +436,14 @@ function GachaCtrl:SetTabSelect(nGachaId, bSelect)
end
local gachaData = ConfigTable.GetData("Gacha", nGachaId)
local mapStorage = ConfigTable.GetData("GachaType", gachaData.GachaType)
self._mapNode.TopBar:CreateCoin(mapStorage.CoinItem)
self.tbCurTabCoin = mapStorage.CoinItem
if bSelect then
local tbCoin = clone(mapStorage.CoinItem)
if gachaData.SpecificTid > 0 then
table.insert(tbCoin, gachaData.SpecificTid)
end
self._mapNode.TopBar:CreateCoin(tbCoin)
self.tbCurTabCoin = tbCoin
end
local go = self.mapTab[nGachaId]
if go ~= nil then
go.transform:Find("AnimRoot/imgChoose").gameObject:SetActive(bSelect)
@@ -473,7 +507,7 @@ function GachaCtrl:GachaOneExchangeCoin(mapGacha)
local msg = {
nType = AllEnum.MessageBox.Confirm,
sContent = sTip,
callbackConfirm = func_confirm,
callbackConfirmAfterClose = func_confirm,
callbackCancel = cancelCallback,
callbackAgain = againKey ~= nil and againCallback or nil
}
@@ -491,10 +525,17 @@ function GachaCtrl:GachaOneExchangeCoin(mapGacha)
if mapGachaStorage == nil then
return
end
local bSpecial = false
if mapGacha.SpecificTid > 0 then
local nCurCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
if nCurCount >= mapGacha.SpecificQty then
bSpecial = true
end
end
local nDefaultCount = PlayerData.Item:GetItemCountByID(mapGachaStorage.DefaultId)
if nDefaultCount >= mapGachaStorage.DefaultQty then
if nDefaultCount >= mapGachaStorage.DefaultQty or bSpecial then
PlayerData.Gacha:SendGachaReq(self.curPoolId, 1, GachaCallback)
elseif mapGachaStorage.CostId > 0 then
elseif 0 < mapGachaStorage.CostId then
local nCostCount = PlayerData.Item:GetItemCountByID(mapGachaStorage.CostId)
local confirmCallback = function()
EventManager.Hit("TopRes", false, self.nTopBarId, self.tbCurTabCoin)
@@ -582,7 +623,7 @@ function GachaCtrl:GachaTenExchangeCoin(mapGacha)
local msg = {
nType = AllEnum.MessageBox.Confirm,
sContent = sTip,
callbackConfirm = func_confirm,
callbackConfirmAfterClose = func_confirm,
callbackCancel = cancelCallback,
callbackAgain = againKey ~= nil and againCallback or nil
}
@@ -601,17 +642,32 @@ function GachaCtrl:GachaTenExchangeCoin(mapGacha)
if mapGachaStorage == nil then
return
end
local bSpecial = false
local nSpecificCount = 0
local nSpecificGachaCount = 0
local nDefaultCount = PlayerData.Item:GetItemCountByID(mapGachaStorage.DefaultId)
if nDefaultCount >= mapGachaStorage.DefaultQty * 10 then
if 0 < mapGacha.SpecificTid then
nSpecificCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
if nSpecificCount >= 10 * mapGacha.SpecificQty then
bSpecial = true
else
nSpecificGachaCount = math.floor(nSpecificCount / mapGacha.SpecificQty)
local nDefaultGachaCount = math.floor(nDefaultCount / mapGachaStorage.DefaultQty)
if 10 <= nSpecificGachaCount + nDefaultGachaCount then
bSpecial = true
end
end
end
if nDefaultCount >= mapGachaStorage.DefaultQty * 10 or bSpecial then
PlayerData.Gacha:SendGachaReq(self.curPoolId, 2, GachaCallback)
elseif mapGachaStorage.CostId > 0 then
elseif 0 < mapGachaStorage.CostId then
local nCostCount = PlayerData.Item:GetItemCountByID(mapGachaStorage.CostId)
local confirmCallback = function()
EventManager.Hit("TopRes", false, self.nTopBarId, self.tbCurTabCoin)
if nCostCount >= mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * 10 - nDefaultCount) then
if nCostCount >= mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount) then
PlayerData.Gacha:SendGachaReq(self.curPoolId, 2, GachaCallback)
elseif mapGachaStorage.CostId == AllEnum.CoinItemId.Jade then
local nNeedCount = mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * 10 - nDefaultCount)
local nNeedCount = mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount)
local nJadeCount = PlayerData.Item:GetItemCountByID(AllEnum.CoinItemId.Jade)
nNeedCount = nNeedCount - nJadeCount
local mapCostCfgData = ConfigTable.GetData_Item(AllEnum.CoinItemId.STONE)
@@ -637,14 +693,18 @@ function GachaCtrl:GachaTenExchangeCoin(mapGacha)
EventManager.Hit(EventId.OpenMessageBox, ConfigTable.GetUIText("NotEnoughItem"))
end
end
local nNeedCount = mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * 10 - nDefaultCount)
local nNeedCount = mapGachaStorage.CostQty * (mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount)
local mapCostCfgData = ConfigTable.GetData_Item(mapGachaStorage.CostId)
local mapDefaultCfgData = ConfigTable.GetData_Item(mapGachaStorage.DefaultId)
local sTips
if 0 < nDefaultCount then
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_ExchangeGem"), nDefaultCount, mapDefaultCfgData.Id, nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * 10 - nDefaultCount, mapDefaultCfgData.Id)
if 0 < nDefaultCount and 0 < nSpecificCount then
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_ExchangeGem2"), nDefaultCount, mapDefaultCfgData.Id, nSpecificCount, mapGacha.SpecificTid, nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount, mapDefaultCfgData.Id)
elseif 0 < nDefaultCount then
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_ExchangeGem"), nDefaultCount, mapDefaultCfgData.Id, nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount, mapDefaultCfgData.Id)
elseif 0 < nSpecificCount then
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_ExchangeGem"), nSpecificCount, mapGacha.SpecificTid, nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount, mapDefaultCfgData.Id)
else
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * 10 - nDefaultCount, mapDefaultCfgData.Id)
sTips = orderedFormat(ConfigTable.GetUIText("Recruit_Exchange"), nNeedCount, mapCostCfgData.Id, mapGachaStorage.DefaultQty * (10 - nSpecificGachaCount) - nDefaultCount, mapDefaultCfgData.Id)
end
ConfirmPanel(sTips, confirmCallback, "GachaShowTicketExchange")
else
@@ -699,7 +759,16 @@ function GachaCtrl:OnBtnClick_One()
return
end
end
if 0 < #mapGachaStorage.OncePreferred then
local bSpecialOne = false
if 0 < mapGacha.SpecificTid then
local nCurCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
if 0 < nCurCount then
bSpecialOne = true
end
end
if bSpecialOne then
PlayerData.Gacha:SendGachaReq(self.curPoolId, 1, GachaCallback)
elseif 0 < #mapGachaStorage.OncePreferred then
for nIdx, mapCost in ipairs(mapGachaStorage.OncePreferred) do
local f = pairs(mapCost)
local sTid, nCount = f(mapCost)
@@ -749,11 +818,74 @@ function GachaCtrl:OnBtnClick_Ten()
mapGachaStorage.TenTimesPreferred = tbTen
else
mapGachaStorage.TenTimesPreferred = {}
printError("单抽消耗配置错误:" .. self.curPoolId)
printError("十连消耗配置错误:" .. self.curPoolId)
return
end
end
if 0 < #mapGachaStorage.TenTimesPreferred then
local nSpecialCount = 0
local nDefaultCurCount = PlayerData.Item:GetItemCountByID(mapGachaStorage.DefaultId)
local nDefaultGachaCount = math.floor(nDefaultCurCount / mapGachaStorage.DefaultQty)
if 0 < mapGacha.SpecificTid then
local nCurCount = PlayerData.Item:GetItemCountByID(mapGacha.SpecificTid)
nSpecialCount = math.floor(nCurCount / mapGacha.SpecificQty)
end
local specialGachaHint = function(Tid1, Tid2, nCount1, nCount2, againKey)
local confirmCallback = function()
EventManager.Hit("TopRes", false, self.nTopBarId, self.tbCurTabCoin)
PlayerData.Gacha:SendGachaReq(self.curPoolId, 2, GachaCallback)
end
if againKey ~= nil then
local TipsTime = LocalData.GetPlayerLocalData(againKey)
local _tipDay = 0
if TipsTime ~= nil then
_tipDay = tonumber(TipsTime)
end
local curTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone
local fixedTimeStamp = curTimeStamp - newDayTime * 3600
local nYear = tonumber(os.date("!%Y", fixedTimeStamp))
local nMonth = tonumber(os.date("!%m", fixedTimeStamp))
local nDay = tonumber(os.date("!%d", fixedTimeStamp))
local nowD = nYear * 366 + nMonth * 31 + nDay
if nowD == _tipDay then
confirmCallback()
return
end
end
local isSelectAgain = false
local func_confirm = function()
if againKey ~= nil and isSelectAgain then
local _curTimeStamp = CS.ClientManager.Instance.serverTimeStampWithTimeZone
local _fixedTimeStamp = _curTimeStamp - newDayTime * 3600
local _nYear = tonumber(os.date("!%Y", _fixedTimeStamp))
local _nMonth = tonumber(os.date("!%m", _fixedTimeStamp))
local _nDay = tonumber(os.date("!%d", _fixedTimeStamp))
local _nowD = _nYear * 366 + _nMonth * 31 + _nDay
LocalData.SetPlayerLocalData(againKey, tostring(_nowD))
end
confirmCallback()
end
local againCallback = function(isSelect)
isSelectAgain = isSelect
end
local cancelCallback = function()
EventManager.Hit("TopRes", false, self.nTopBarId, self.tbCurTabCoin)
end
local sTips = orderedFormat(ConfigTable.GetUIText("Recruit_ComboDrawTicket"), nCount1, Tid1, nCount2, Tid2)
local msg = {
nType = AllEnum.MessageBox.Confirm,
sContent = sTips,
callbackConfirmAfterClose = func_confirm,
callbackCancel = cancelCallback,
callbackAgain = againKey ~= nil and againCallback or nil
}
EventManager.Hit(EventId.OpenMessageBox, msg)
EventManager.Hit("TopRes", true, self.nTopBarId, {Tid1, Tid2})
end
if 10 <= nSpecialCount then
PlayerData.Gacha:SendGachaReq(self.curPoolId, 2, GachaCallback)
elseif 0 < nSpecialCount and 10 <= nDefaultGachaCount + nSpecialCount then
specialGachaHint(mapGacha.SpecificTid, mapGachaStorage.DefaultId, nSpecialCount * mapGacha.SpecificQty, (10 - nSpecialCount) * mapGachaStorage.DefaultQty, "RecruitComboDrawTicketHint")
elseif #mapGachaStorage.TenTimesPreferred > 0 then
for nIdx, mapCost in ipairs(mapGachaStorage.TenTimesPreferred) do
local f = pairs(mapCost)
local sTid, nCount = f(mapCost)
@@ -923,9 +1055,21 @@ function GachaCtrl:GetGachaItem(mapData, nStorageId, bGetFirstTenReward)
else
WwiseManger.Instance:SetState("recruit_rarity", "transition")
if nStorage == GameEnum.gachaStorageType.DiscCardPool or nStorage == GameEnum.gachaStorageType.DiscUpCardPool then
NovaAPI.PlayGachaDisc(self._mapNode.GachaOpenDoor, #mapData.Cards, rare)
local sup = math.random(0, 2) > 1
NovaAPI.PlayGachaDisc(self._mapNode.GachaOpenDoor, #mapData.Cards, rare, sup)
else
NovaAPI.PlayGachaOpenDoor(self._mapNode.GachaOpenDoor, rare)
local sup = math.random(0, 100)
local nType = 3
if sup <= 5 then
nType = 0
elseif sup <= 10 then
nType = 2
elseif sup <= 55 then
nType = 1
else
nType = 3
end
NovaAPI.PlayGachaOpenDoor(self._mapNode.GachaOpenDoor, rare, nType)
end
end
end
@@ -1056,7 +1200,18 @@ function GachaCtrl:GetGachaNewbieItem(mapData)
OnShowFinish()
else
WwiseManger.Instance:SetState("recruit_rarity", "transition")
NovaAPI.PlayGachaOpenDoor(self._mapNode.GachaOpenDoor, rare)
local sup = math.random(0, 100)
local nType = 3
if sup <= 5 then
nType = 0
elseif sup <= 10 then
nType = 2
elseif sup <= 55 then
nType = 1
else
nType = 3
end
NovaAPI.PlayGachaOpenDoor(self._mapNode.GachaOpenDoor, rare, nType)
end
end
function GachaCtrl:OnEvent_GachaNewbieSpin()
+2 -2
View File
@@ -32,7 +32,7 @@ function GachaGuaranteeCtrl:Refresh(nPoolId)
return
end
local nStrogeId = mapPoolCfgData.StorageId
local mapStorageTypeCfgData = ConfigTable.GetData("GachaType", nStrogeId)
local mapStorageTypeCfgData = ConfigTable.GetData("GachaType", mapPoolCfgData.GachaType)
local mapStorageCfgData = ConfigTable.GetData("GachaStorage", nStrogeId)
if mapStorageTypeCfgData == nil or mapStorageCfgData == nil then
self._mapNode.Content:SetActive(false)
@@ -133,7 +133,7 @@ function GachaGuaranteeCtrl:Refresh(nPoolId)
local imgElement = goGrid.transform:Find("AnimRoot/rtScaleRoot/tc_char_03/imgElement"):GetComponent("Image")
local TMPName = goGrid.transform:Find("AnimRoot/TMPName"):GetComponent("TMP_Text")
NovaAPI.SetTMPText(TMPName, mapCharCfgData.Title)
self:SetPngSprite(imgIcon, mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
self:SetPngSprite(imgIcon, mapCharSkin.Icon, AllEnum.CharHeadIconSurfix.XXL)
self:SetAtlasSprite(imgElement, "12_rare", AllEnum.Star_Element[mapCharCfg.EET].icon)
self:SetAtlasSprite(imgRare, "12_rare", sFrame)
local btnGrid = goGrid:GetComponent("UIButton")
+1 -1
View File
@@ -136,7 +136,7 @@ function GachaInfoCtrl:Refresh(nGachaId)
local imgElement = goGrid.transform:Find("AnimRoot/rtScaleRoot/tc_char_03/imgElement"):GetComponent("Image")
local TMPName = goGrid.transform:Find("AnimRoot/TMPName"):GetComponent("TMP_Text")
NovaAPI.SetTMPText(TMPName, mapCharCfgData.Title)
self:SetPngSprite(imgIcon, mapCharSkin.Icon .. AllEnum.CharHeadIconSurfix.XXL)
self:SetPngSprite(imgIcon, mapCharSkin.Icon, AllEnum.CharHeadIconSurfix.XXL)
self:SetAtlasSprite(imgElement, "12_rare", AllEnum.Star_Element[mapCharCfg.EET].icon)
self:SetAtlasSprite(imgRare, "12_rare", sFrame)
local btnGrid = goGrid:GetComponent("UIButton")