diff --git a/excel/attribute.xlsx b/excel/attribute.xlsx index 1c5e8f9..141c8f2 100644 Binary files a/excel/attribute.xlsx and b/excel/attribute.xlsx differ diff --git a/src/ServerStorage/Proxy/EquipmentProxy.luau b/src/ServerStorage/Proxy/EquipmentProxy.luau index 1deab97..f60c482 100644 --- a/src/ServerStorage/Proxy/EquipmentProxy.luau +++ b/src/ServerStorage/Proxy/EquipmentProxy.luau @@ -71,7 +71,7 @@ function EquipmentProxy:InitPlayer(Player: Player) -- 初始化装备 for uniqueId, EquipmentData in ArchiveProxy.pData[Player.UserId][STORE_NAME] do - local config = Utils:CreateDataInstance(Player, uniqueId, EquipmentData, GetPlayerEquipmentFolder(Player)) + local config = Utils:CreateDataInstance(Player, tostring(uniqueId), EquipmentData, GetPlayerEquipmentFolder(Player)) end end @@ -85,7 +85,7 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number) local EquipmentData = Utils:GetIdDataFromJson(JsonEquipment, EquipmentId) if not EquipmentData then return end - local UniqueId = Utils:GenUniqueId(ArchiveProxy.pData[Player.UserId][STORE_NAME]) + local UniqueId = Utils:GenUniqueIdString(ArchiveProxy.pData[Player.UserId][STORE_NAME]) -- 配置表内容 local ResultData = {} for key, value in pairs(EquipmentData) do @@ -262,14 +262,16 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number) -- 随机生成符文数量 local RuneProxy = require(ServerStorage.Proxy.RuneProxy) - local maxRuneNumber = PlayerInfoProxy:GetPlayerInfo(Player).runeNumber or 0 + local maxRuneNumber = PlayerInfoProxy:GetPlayerInfo(Player)["AttributesUpgrade"]["15"] or 0 local runeNumber = rng:NextInteger(0, maxRuneNumber) ResultData.maxRuneNumber = runeNumber + ------------------------------------------------------------ ArchiveProxy.pData[Player.UserId][STORE_NAME][UniqueId] = ResultData local equipmentInstance = Utils:CreateDataInstance(Player, UniqueId, ResultData, GetPlayerEquipmentFolder(Player)) + print("生成装备符文孔数", equipmentInstance.Name, runeNumber, maxRuneNumber) ------------------------------------------------------------ -- 下面逻辑会找Instance实例,所以放在之后执行逻辑 @@ -316,7 +318,6 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number) end end end - ------------------------------------------------------------ -- 添加图鉴记录 @@ -493,7 +494,7 @@ end -- 获取装备数据 function EquipmentProxy:GetEquipmentData(Player: Player, EquipmentUniqueId: number) - local EquipmentData = ArchiveProxy.pData[Player.UserId][STORE_NAME][EquipmentUniqueId] + local EquipmentData = ArchiveProxy.pData[Player.UserId][STORE_NAME][tostring(EquipmentUniqueId)] return EquipmentData end diff --git a/src/ServerStorage/Proxy/RuneProxy/init.luau b/src/ServerStorage/Proxy/RuneProxy/init.luau index e0d43f2..e302b27 100644 --- a/src/ServerStorage/Proxy/RuneProxy/init.luau +++ b/src/ServerStorage/Proxy/RuneProxy/init.luau @@ -79,7 +79,7 @@ function RuneProxy:AddRune(Player: Player, RuneId: number) ResultData.id = UniqueId ResultData.orgId = RuneId -- 记录穿戴的装备UniqueId - ResultData.wearing = 0 + ResultData.wearing = "0" ResultData.wearingSlot = 0 ArchiveProxy.pData[Player.UserId][STORE_NAME][UniqueId] = ResultData @@ -167,6 +167,7 @@ function RuneProxy:WearRune(Player: Player, RuneUniqueId: number, EquipmentUniqu -- 获取装备数据 local EquipmentProxy = require(ServerStorage.Proxy.EquipmentProxy) local EquipmentData = EquipmentProxy:GetEquipmentData(Player, EquipmentUniqueId) + print(EquipmentData, EquipmentUniqueId) -- 遍历符文查看现在穿了几个 local wearingCount = 0 @@ -185,6 +186,7 @@ function RuneProxy:WearRune(Player: Player, RuneUniqueId: number, EquipmentUniqu end -- 检查槽位数量是否充足 + print(wearingCount, EquipmentData.maxRuneNumber) if wearingCount >= EquipmentData.maxRuneNumber then RE_PlayerTip:FireClient(Player, "装备已满符文槽位") return @@ -254,7 +256,7 @@ function RuneProxy:GetPlayerWearingRuneData(Player: Player) local EquipmentProxy = require(ServerStorage.Proxy.EquipmentProxy) local wearingEquipments = EquipmentProxy:GetPlayerWearingEquipmentUniqueId(Player) for _, RuneData in ArchiveProxy.pData[Player.UserId][STORE_NAME] do - if RuneData.wearing > 0 and table.find(wearingEquipments, RuneData.wearing) then + if tonumber(RuneData.wearing) > 0 and table.find(wearingEquipments, RuneData.wearing) then table.insert(wearingRuneUniqueId, RuneData.id) local RuneData = Utils:GetIdDataFromJson(JsonRune, RuneData.orgId) if RuneData.runeName then diff --git a/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/WearingShow.luau b/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/WearingShow.luau index 6883c94..3a07f2a 100644 --- a/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/WearingShow.luau +++ b/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/WearingShow.luau @@ -31,11 +31,13 @@ function WearingShow:Refresh() self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon) self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality) + self.Variables._imgIcon.Transparency = 0 self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId) self.Variables._imgIcon.Visible = true else self.Variables._imgIcon.Image = "" self.Variables._tmpName.Text = "" + self.Variables._imgIcon.Transparency = 1 self.Variables._imgIcon.Visible = false end end @@ -50,7 +52,6 @@ function WearingShow:OnInitFinish() end function WearingShow:Destroy() - print("Destroy WearingShow") for k, v in pairs(self) do self[k] = nil end diff --git a/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/init.luau b/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/init.luau index 74f51e1..3cfb008 100644 --- a/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/init.luau +++ b/src/StarterPlayerScripts/UI/Windows/CombineRuneWindow/init.luau @@ -269,7 +269,11 @@ function CombineRuneWindow:OnOpenWindow() -- TODO: 这里清除逻辑不清晰,之后优化 local key, parentName = self:RemoveInstanceData(child, self.Data) if parentName == "SelectRune" then - local removeIndex = self.Variables["__listRuneCombine"]:RemoveData(key) + local oldSlot = self.Variables["__listRuneCombine"]:RemoveData(key) + self.Data.SelectRune[key] = { + wearingSlot = tonumber(string.sub(key, -1)), + } + self.Variables["__listRuneCombine"]:AddData(key, self.Data.SelectRune[key]) else local removeIndex = self.Variables["__listRunePackage"]:RemoveData(key) end diff --git a/src/StarterPlayerScripts/UI/Windows/RuneWindow/PackageShow.luau b/src/StarterPlayerScripts/UI/Windows/RuneWindow/PackageShow.luau index e621cc5..7d27717 100644 --- a/src/StarterPlayerScripts/UI/Windows/RuneWindow/PackageShow.luau +++ b/src/StarterPlayerScripts/UI/Windows/RuneWindow/PackageShow.luau @@ -48,7 +48,7 @@ function PackageShow:OnInitFinish() local oldWearing = self.Data.wearing local newWearing = self.Data.instance:GetAttribute("wearing") if oldWearing ~= newWearing then - if newWearing > 0 then + if tonumber(newWearing) > 0 then self.TopUI:WearRefresh(self.Data) else self.TopUI:UnwearRefresh(self.Data) diff --git a/src/StarterPlayerScripts/UI/Windows/RuneWindow/WearingShow.luau b/src/StarterPlayerScripts/UI/Windows/RuneWindow/WearingShow.luau index 9f7c6bb..0422a97 100644 --- a/src/StarterPlayerScripts/UI/Windows/RuneWindow/WearingShow.luau +++ b/src/StarterPlayerScripts/UI/Windows/RuneWindow/WearingShow.luau @@ -25,27 +25,29 @@ function WearingShow:Init(data: table) end function WearingShow:Refresh() - if self.Data then + if self.Data.instance then local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId) local runeData = Utils:GetIdDataFromJson(JsonRune, self.Data.orgId) self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon) self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality) + self.Variables._imgIcon.Transparency = 0 self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId) self.Variables._imgIcon.Visible = true else self.Variables._imgIcon.Image = "" self.Variables._tmpName.Text = "" + self.Variables._imgIcon.Transparency = 1 self.Variables._imgIcon.Visible = false end end function WearingShow:OnInitFinish() local con = self.Variables._btnClick.MouseButton1Click:Connect(function() - if self.Data == {} then - -- TODO: 之后做提示弹窗 - else + if self.Data.instance then self.TopUI:ShowDetailData(self.Data.id) + else + -- TODO: 之后做提示弹窗 end end) table.insert(self.Connections, con) diff --git a/src/StarterPlayerScripts/UI/Windows/RuneWindow/init.luau b/src/StarterPlayerScripts/UI/Windows/RuneWindow/init.luau index 1d26773..e277be1 100644 --- a/src/StarterPlayerScripts/UI/Windows/RuneWindow/init.luau +++ b/src/StarterPlayerScripts/UI/Windows/RuneWindow/init.luau @@ -128,7 +128,7 @@ end function RuneWindow:InlayRune() if self.NowSelectRuneId and self.ShowEquipmentId then - RE_RuneInlay:FireClient(self.NowSelectRuneId, self.ShowEquipmentId) + RE_RuneInlay:FireServer(self.NowSelectRuneId, self.ShowEquipmentId) end end