This commit is contained in:
gechangfu 2025-08-15 19:24:17 +08:00
parent 2d0690f24f
commit fdc6ee6a6e
8 changed files with 25 additions and 15 deletions

Binary file not shown.

View File

@ -71,7 +71,7 @@ function EquipmentProxy:InitPlayer(Player: Player)
-- 初始化装备 -- 初始化装备
for uniqueId, EquipmentData in ArchiveProxy.pData[Player.UserId][STORE_NAME] do 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
end end
@ -85,7 +85,7 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number)
local EquipmentData = Utils:GetIdDataFromJson(JsonEquipment, EquipmentId) local EquipmentData = Utils:GetIdDataFromJson(JsonEquipment, EquipmentId)
if not EquipmentData then return end 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 = {} local ResultData = {}
for key, value in pairs(EquipmentData) do 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 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) local runeNumber = rng:NextInteger(0, maxRuneNumber)
ResultData.maxRuneNumber = runeNumber ResultData.maxRuneNumber = runeNumber
------------------------------------------------------------ ------------------------------------------------------------
ArchiveProxy.pData[Player.UserId][STORE_NAME][UniqueId] = ResultData ArchiveProxy.pData[Player.UserId][STORE_NAME][UniqueId] = ResultData
local equipmentInstance = Utils:CreateDataInstance(Player, UniqueId, ResultData, GetPlayerEquipmentFolder(Player)) local equipmentInstance = Utils:CreateDataInstance(Player, UniqueId, ResultData, GetPlayerEquipmentFolder(Player))
print("生成装备符文孔数", equipmentInstance.Name, runeNumber, maxRuneNumber)
------------------------------------------------------------ ------------------------------------------------------------
-- 下面逻辑会找Instance实例所以放在之后执行逻辑 -- 下面逻辑会找Instance实例所以放在之后执行逻辑
@ -316,7 +318,6 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number)
end end
end end
end end
------------------------------------------------------------ ------------------------------------------------------------
-- 添加图鉴记录 -- 添加图鉴记录
@ -493,7 +494,7 @@ end
-- 获取装备数据 -- 获取装备数据
function EquipmentProxy:GetEquipmentData(Player: Player, EquipmentUniqueId: number) 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 return EquipmentData
end end

View File

@ -79,7 +79,7 @@ function RuneProxy:AddRune(Player: Player, RuneId: number)
ResultData.id = UniqueId ResultData.id = UniqueId
ResultData.orgId = RuneId ResultData.orgId = RuneId
-- 记录穿戴的装备UniqueId -- 记录穿戴的装备UniqueId
ResultData.wearing = 0 ResultData.wearing = "0"
ResultData.wearingSlot = 0 ResultData.wearingSlot = 0
ArchiveProxy.pData[Player.UserId][STORE_NAME][UniqueId] = ResultData 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 EquipmentProxy = require(ServerStorage.Proxy.EquipmentProxy)
local EquipmentData = EquipmentProxy:GetEquipmentData(Player, EquipmentUniqueId) local EquipmentData = EquipmentProxy:GetEquipmentData(Player, EquipmentUniqueId)
print(EquipmentData, EquipmentUniqueId)
-- 遍历符文查看现在穿了几个 -- 遍历符文查看现在穿了几个
local wearingCount = 0 local wearingCount = 0
@ -185,6 +186,7 @@ function RuneProxy:WearRune(Player: Player, RuneUniqueId: number, EquipmentUniqu
end end
-- 检查槽位数量是否充足 -- 检查槽位数量是否充足
print(wearingCount, EquipmentData.maxRuneNumber)
if wearingCount >= EquipmentData.maxRuneNumber then if wearingCount >= EquipmentData.maxRuneNumber then
RE_PlayerTip:FireClient(Player, "装备已满符文槽位") RE_PlayerTip:FireClient(Player, "装备已满符文槽位")
return return
@ -254,7 +256,7 @@ function RuneProxy:GetPlayerWearingRuneData(Player: Player)
local EquipmentProxy = require(ServerStorage.Proxy.EquipmentProxy) local EquipmentProxy = require(ServerStorage.Proxy.EquipmentProxy)
local wearingEquipments = EquipmentProxy:GetPlayerWearingEquipmentUniqueId(Player) local wearingEquipments = EquipmentProxy:GetPlayerWearingEquipmentUniqueId(Player)
for _, RuneData in ArchiveProxy.pData[Player.UserId][STORE_NAME] do 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) table.insert(wearingRuneUniqueId, RuneData.id)
local RuneData = Utils:GetIdDataFromJson(JsonRune, RuneData.orgId) local RuneData = Utils:GetIdDataFromJson(JsonRune, RuneData.orgId)
if RuneData.runeName then if RuneData.runeName then

View File

@ -31,11 +31,13 @@ function WearingShow:Refresh()
self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon) self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon)
self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality) self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality)
self.Variables._imgIcon.Transparency = 0
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId) self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
self.Variables._imgIcon.Visible = true self.Variables._imgIcon.Visible = true
else else
self.Variables._imgIcon.Image = "" self.Variables._imgIcon.Image = ""
self.Variables._tmpName.Text = "" self.Variables._tmpName.Text = ""
self.Variables._imgIcon.Transparency = 1
self.Variables._imgIcon.Visible = false self.Variables._imgIcon.Visible = false
end end
end end
@ -50,7 +52,6 @@ function WearingShow:OnInitFinish()
end end
function WearingShow:Destroy() function WearingShow:Destroy()
print("Destroy WearingShow")
for k, v in pairs(self) do for k, v in pairs(self) do
self[k] = nil self[k] = nil
end end

View File

@ -269,7 +269,11 @@ function CombineRuneWindow:OnOpenWindow()
-- TODO: 这里清除逻辑不清晰,之后优化 -- TODO: 这里清除逻辑不清晰,之后优化
local key, parentName = self:RemoveInstanceData(child, self.Data) local key, parentName = self:RemoveInstanceData(child, self.Data)
if parentName == "SelectRune" then 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 else
local removeIndex = self.Variables["__listRunePackage"]:RemoveData(key) local removeIndex = self.Variables["__listRunePackage"]:RemoveData(key)
end end

View File

@ -48,7 +48,7 @@ function PackageShow:OnInitFinish()
local oldWearing = self.Data.wearing local oldWearing = self.Data.wearing
local newWearing = self.Data.instance:GetAttribute("wearing") local newWearing = self.Data.instance:GetAttribute("wearing")
if oldWearing ~= newWearing then if oldWearing ~= newWearing then
if newWearing > 0 then if tonumber(newWearing) > 0 then
self.TopUI:WearRefresh(self.Data) self.TopUI:WearRefresh(self.Data)
else else
self.TopUI:UnwearRefresh(self.Data) self.TopUI:UnwearRefresh(self.Data)

View File

@ -25,27 +25,29 @@ function WearingShow:Init(data: table)
end end
function WearingShow:Refresh() function WearingShow:Refresh()
if self.Data then if self.Data.instance then
local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId) local itemData = Utils:GetIdDataFromJson(JsonItemProp, self.Data.orgId)
local runeData = Utils:GetIdDataFromJson(JsonRune, self.Data.orgId) local runeData = Utils:GetIdDataFromJson(JsonRune, self.Data.orgId)
self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon) self.Variables._imgIcon.Image = Localization:GetImageData(runeData.icon)
self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality) self.Variables._imgIcon.BackgroundColor3 = Localization:GetRuneQualityBgColor(runeData.quality)
self.Variables._imgIcon.Transparency = 0
self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId) self.Variables._tmpName.Text = Localization:GetLanguageData(itemData.nameId)
self.Variables._imgIcon.Visible = true self.Variables._imgIcon.Visible = true
else else
self.Variables._imgIcon.Image = "" self.Variables._imgIcon.Image = ""
self.Variables._tmpName.Text = "" self.Variables._tmpName.Text = ""
self.Variables._imgIcon.Transparency = 1
self.Variables._imgIcon.Visible = false self.Variables._imgIcon.Visible = false
end end
end end
function WearingShow:OnInitFinish() function WearingShow:OnInitFinish()
local con = self.Variables._btnClick.MouseButton1Click:Connect(function() local con = self.Variables._btnClick.MouseButton1Click:Connect(function()
if self.Data == {} then if self.Data.instance then
-- TODO: 之后做提示弹窗
else
self.TopUI:ShowDetailData(self.Data.id) self.TopUI:ShowDetailData(self.Data.id)
else
-- TODO: 之后做提示弹窗
end end
end) end)
table.insert(self.Connections, con) table.insert(self.Connections, con)

View File

@ -128,7 +128,7 @@ end
function RuneWindow:InlayRune() function RuneWindow:InlayRune()
if self.NowSelectRuneId and self.ShowEquipmentId then if self.NowSelectRuneId and self.ShowEquipmentId then
RE_RuneInlay:FireClient(self.NowSelectRuneId, self.ShowEquipmentId) RE_RuneInlay:FireServer(self.NowSelectRuneId, self.ShowEquipmentId)
end end
end end