diff --git a/excel/Rune.xlsx b/excel/Rune.xlsx index 643ac3f..604add4 100644 Binary files a/excel/Rune.xlsx and b/excel/Rune.xlsx differ diff --git a/src/ServerStorage/Modules/Behaviours/Attack.luau b/src/ServerStorage/Modules/Behaviours/Attack.luau index c5d34df..4436bec 100644 --- a/src/ServerStorage/Modules/Behaviours/Attack.luau +++ b/src/ServerStorage/Modules/Behaviours/Attack.luau @@ -106,7 +106,6 @@ function Attack:Execute() -- 暴击判定走通用属性 local critCheckRate = self:GetAttributeValue("critRate") or 0 - critCheckRate = 100 local isCrit = Rng:RandomPercent(critCheckRate) local baseAttack = self.PlayerAI:GetBaseAttack() @@ -157,7 +156,6 @@ function Attack:Execute() }, function(processedData) damageData = processedData.damageData end) - print("damageData", damageData) DamageProxy:TakeDamage(self.Character, self.CheckData["ClosestCharacter"], damageData) -- 发送攻击后事件 diff --git a/src/ServerStorage/Modules/Runes/RuneWearElementAttack.luau b/src/ServerStorage/Modules/Runes/RuneWearElementAttack.luau index 44a46e1..20699c3 100644 --- a/src/ServerStorage/Modules/Runes/RuneWearElementAttack.luau +++ b/src/ServerStorage/Modules/Runes/RuneWearElementAttack.luau @@ -38,11 +38,11 @@ function RuneWearElementAttack:OnExecute(index: number, AttributesData: table, B for _, equipment in equipmentList do local equipmentWearing = equipment:GetAttribute("wearing") if equipmentWearing > 0 then - elementNumber = elementNumber + #equipment:FindFirstChild("Element"):GetAttributes() + elementNumber = elementNumber + Utils:GetTableLength(equipment:FindFirstChild("elements"):GetAttributes()) end end - local attackRate = math.floor((AttributesData.attackRate or 100) * elementNumber * 25 / 100) + local attackRate = math.floor((100 + AttributesData.attackRate or 0) * (elementNumber * 25 / 100)) Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate) return nil diff --git a/src/ServerStorage/Modules/Runes/RuneWearEmptySlot.luau b/src/ServerStorage/Modules/Runes/RuneWearEmptySlot.luau index 999744d..8b60d71 100644 --- a/src/ServerStorage/Modules/Runes/RuneWearEmptySlot.luau +++ b/src/ServerStorage/Modules/Runes/RuneWearEmptySlot.luau @@ -46,7 +46,7 @@ function RuneWearEmptySlot:OnExecute(index: number, AttributesData: table, Behav for _, equipment in equipmentList do local equipmentWearing = equipment:GetAttribute("wearing") if equipmentWearing > 0 then - maxRuneNumber = maxRuneNumber + 1 + maxRuneNumber = maxRuneNumber + equipment:GetAttribute("maxRuneNumber") table.insert(wearWeaponList, equipment.Name) end end @@ -60,7 +60,7 @@ function RuneWearEmptySlot:OnExecute(index: number, AttributesData: table, Behav end end - local attackRate = math.floor((AttributesData.attackRate or 100) * (maxRuneNumber - hasSlotNumber) * 25 / 100) + local attackRate = math.floor((100 + AttributesData.attackRate or 0) * ((maxRuneNumber - hasSlotNumber) * 25 / 100)) Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate) return nil diff --git a/src/ServerStorage/Modules/Runes/RuneWearFillSlot.luau b/src/ServerStorage/Modules/Runes/RuneWearFillSlot.luau index 521004d..a6103a4 100644 --- a/src/ServerStorage/Modules/Runes/RuneWearFillSlot.luau +++ b/src/ServerStorage/Modules/Runes/RuneWearFillSlot.luau @@ -59,8 +59,8 @@ function RuneWearFillSlot:OnExecute(index: number, AttributesData: table, Behavi end end end - - local attackRate = math.floor((AttributesData.attackRate or 100) * hasSlotNumber * 25 / 100) + + local attackRate = math.floor((100 + AttributesData.attackRate or 0) * (hasSlotNumber * 25 / 100)) Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate) return nil diff --git a/src/ServerStorage/Modules/Runes/RuneWearKnife.luau b/src/ServerStorage/Modules/Runes/RuneWearKnife.luau index 65e59c4..9ea3595 100644 --- a/src/ServerStorage/Modules/Runes/RuneWearKnife.luau +++ b/src/ServerStorage/Modules/Runes/RuneWearKnife.luau @@ -52,9 +52,7 @@ function RuneWearKnife:OnExecute(index: number, AttributesData: table, BehaviorN end local attackRate = math.floor(subTypeNumber * 25) - print("Before attackRate", attackRate) Utils:TableSafeAddValue(AttributesData, "attackRate", attackRate) - print("After attackRate", AttributesData.attackRate) return nil end diff --git a/src/ServerStorage/Proxy/PlayerFightProxy/PlayerAI.luau b/src/ServerStorage/Proxy/PlayerFightProxy/PlayerAI.luau index 430b610..50e9a18 100644 --- a/src/ServerStorage/Proxy/PlayerFightProxy/PlayerAI.luau +++ b/src/ServerStorage/Proxy/PlayerFightProxy/PlayerAI.luau @@ -119,8 +119,8 @@ end -- 触发所有符文初始化完成 function PlayerAI:TriggerAllRunesInitFinish() - for _, data in self.RuneList do - data.rune:InitFinish() + for _, rune in self.RuneList do + rune:InitFinish() end end diff --git a/src/ServerStorage/Proxy/RuneProxy/RuneCalculation.luau b/src/ServerStorage/Proxy/RuneProxy/RuneCalculation.luau index 191f97e..10a2f21 100644 --- a/src/ServerStorage/Proxy/RuneProxy/RuneCalculation.luau +++ b/src/ServerStorage/Proxy/RuneProxy/RuneCalculation.luau @@ -25,6 +25,9 @@ function RuneCalculation:GetRuneAttributes(Player: Player, PlayerAI: table, Attr PlayerAI:ClearSharedData() PlayerAI:ClearAllRune() for wearingSlot, runeName in wearingRuneName do PlayerAI:AddRune(runeName, wearingSlot) end + + -- 符文初始化完成 + PlayerAI:TriggerAllRunesInitFinish() -- 开始记录 for runeName, rune in pairs(PlayerAI.RuneList) do