From d0926056513b3ab9e8610c4d95d7b47ca2f0589e Mon Sep 17 00:00:00 2001 From: VDH Date: Tue, 25 Nov 2025 12:10:43 +0700 Subject: [PATCH] done skill don't move after cast --- .../PerfectWorld/Prefab/UI/ButtonSkill.prefab | 303 +++++++++++++ .../Prefab/UI/ButtonSkill.prefab.meta | 7 + .../Prefab/UI/Canvas_Skill.prefab | 408 +++++------------- .../Scripts/Managers/CECAttacksMan.cs | 46 -- .../Scripts/Managers/CECManager.cs | 1 + .../Scripts/Managers/CECNPCMan.cs | 1 - .../Scripts/Managers/EC_HPWorkMove.cs | 18 +- .../Scripts/Managers/EC_HPWorkTrace.cs | 3 +- .../Scripts/Managers/EC_ManMatter.cs | 3 - Assets/PerfectWorld/Scripts/NPC/NPCVisual.cs | 1 - .../Scripts/Network/CSNetwork/GameSession.cs | 2 - .../PerfectWorld/Scripts/Objet/CECMatter.cs | 1 - .../Scripts/Players/EC_ElsePlayer.cs | 1 - .../Scripts/Task/CECTaskInterface.cs | 2 - .../Scripts/UI/GamePlay/AUIImagePicture.cs | 28 ++ .../Scripts/UI/GamePlay/CdlgQuickBar.cs | 18 +- Assets/Scenes/a61.unity | 4 +- Assets/Scripts/CECHostPlayer.cs | 96 +++-- .../LiberationSans SDF - Fallback.asset | 55 ++- 19 files changed, 557 insertions(+), 441 deletions(-) create mode 100644 Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab create mode 100644 Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab.meta diff --git a/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab b/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab new file mode 100644 index 0000000000..3881c81d86 --- /dev/null +++ b/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab @@ -0,0 +1,303 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &2086571401898927953 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 9054640569176155901} + - component: {fileID: 8133704939061976334} + - component: {fileID: 8375324328665448590} + m_Layer: 5 + m_Name: Image + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &9054640569176155901 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2086571401898927953} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7644618114629580485} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8133704939061976334 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2086571401898927953} + m_CullTransparentMesh: 1 +--- !u!114 &8375324328665448590 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2086571401898927953} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 1 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!1 &4284393271722921544 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5717981154351234976} + - component: {fileID: 2581817642771390274} + - component: {fileID: 1012268097730980895} + - component: {fileID: 3344986418137786462} + - component: {fileID: 6831872353885336647} + m_Layer: 5 + m_Name: ButtonSkill + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &5717981154351234976 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4284393271722921544} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 7644618114629580485} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: 318, y: -235} + m_SizeDelta: {x: 160, y: 155.1223} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &2581817642771390274 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4284393271722921544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3} + m_Name: + m_EditorClassIdentifier: + skillbutton: {fileID: 6831872353885336647} + skillImage: {fileID: 8375324328665448590} +--- !u!222 &1012268097730980895 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4284393271722921544} + m_CullTransparentMesh: 1 +--- !u!114 &3344986418137786462 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4284393271722921544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 0.16981131, g: 0.15619436, b: 0.15619436, a: 0.62352943} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &6831872353885336647 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4284393271722921544} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_WrapAround: 0 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 3344986418137786462} + m_OnClick: + m_PersistentCalls: + m_Calls: [] +--- !u!1 &8778325894701854072 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7644618114629580485} + - component: {fileID: 9038605487672809493} + - component: {fileID: 3723544104012087788} + - component: {fileID: 7278860515015932087} + m_Layer: 5 + m_Name: ImageBorder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7644618114629580485 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8778325894701854072} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 9054640569176155901} + m_Father: {fileID: 5717981154351234976} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0.5, y: 0.5} + m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchoredPosition: {x: -0.3055, y: 0} + m_SizeDelta: {x: 120, y: 120} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &9038605487672809493 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8778325894701854072} + m_CullTransparentMesh: 1 +--- !u!114 &3723544104012087788 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8778325894701854072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} + m_Type: 0 + m_PreserveAspect: 0 + m_FillCenter: 1 + m_FillMethod: 4 + m_FillAmount: 1 + m_FillClockwise: 1 + m_FillOrigin: 0 + m_UseSpriteMesh: 0 + m_PixelsPerUnitMultiplier: 1 +--- !u!114 &7278860515015932087 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8778325894701854072} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_ShowMaskGraphic: 1 diff --git a/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab.meta b/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab.meta new file mode 100644 index 0000000000..0669367de4 --- /dev/null +++ b/Assets/PerfectWorld/Prefab/UI/ButtonSkill.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 8586a375545487f43b57c6ffdce6fbfd +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PerfectWorld/Prefab/UI/Canvas_Skill.prefab b/Assets/PerfectWorld/Prefab/UI/Canvas_Skill.prefab index 4909a261be..6a995c5015 100644 --- a/Assets/PerfectWorld/Prefab/UI/Canvas_Skill.prefab +++ b/Assets/PerfectWorld/Prefab/UI/Canvas_Skill.prefab @@ -49,221 +49,8 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 1257634218941f746ada30ba51402249, type: 3} m_Name: m_EditorClassIdentifier: - m_aSkillImage: - - {fileID: 5871903045205723058} - m_aSkillButton: - - {fileID: 8901855160472089467} AUIImagePictureList: - {fileID: 473551792621656190} ---- !u!1 &2176128486288214388 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 7646065705685923996} - - component: {fileID: 473551792621656190} - - component: {fileID: 3119408872112532259} - - component: {fileID: 805536043562757986} - - component: {fileID: 8901855160472089467} - m_Layer: 5 - m_Name: ButtonSkill1 - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &7646065705685923996 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2176128486288214388} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 5715404391176745465} - m_Father: {fileID: 1608209508545832950} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: 318, y: -235} - m_SizeDelta: {x: 160, y: 155.1223} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!114 &473551792621656190 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2176128486288214388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3} - m_Name: - m_EditorClassIdentifier: ---- !u!222 &3119408872112532259 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2176128486288214388} - m_CullTransparentMesh: 1 ---- !u!114 &805536043562757986 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2176128486288214388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 0.16981131, g: 0.15619436, b: 0.15619436, a: 0.62352943} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &8901855160472089467 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2176128486288214388} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_WrapAround: 0 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 805536043562757986} - m_OnClick: - m_PersistentCalls: - m_Calls: [] ---- !u!1 &4157644949638324333 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 6408228854960939457} - - component: {fileID: 6171805209739532850} - - component: {fileID: 5871903045205723058} - m_Layer: 5 - m_Name: Image - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &6408228854960939457 -RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4157644949638324333} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: [] - m_Father: {fileID: 5715404391176745465} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 0, y: 0} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6171805209739532850 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4157644949638324333} - m_CullTransparentMesh: 1 ---- !u!114 &5871903045205723058 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4157644949638324333} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 1 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 --- !u!1 &5713000252331107611 GameObject: m_ObjectHideFlags: 0 @@ -366,93 +153,116 @@ MonoBehaviour: m_BlockingMask: serializedVersion: 2 m_Bits: 4294967295 ---- !u!1 &6671222254507797060 -GameObject: +--- !u!1001 &2685853672127006524 +PrefabInstance: m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1608209508545832950} + m_Modifications: + - target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_Name + value: ButtonSkill1 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchorMax.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchorMax.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchorMin.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchorMin.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_SizeDelta.x + value: 160 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_SizeDelta.y + value: 155.1223 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchoredPosition.x + value: 318 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_AnchoredPosition.y + value: -235 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} +--- !u!114 &473551792621656190 stripped +MonoBehaviour: + m_CorrespondingSourceObject: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + m_PrefabInstance: {fileID: 2685853672127006524} m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 5715404391176745465} - - component: {fileID: 6352752108150546217} - - component: {fileID: 1651341177853249232} - - component: {fileID: 4631288927685918603} - m_Layer: 5 - m_Name: ImageBorder - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!224 &5715404391176745465 + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!224 &7646065705685923996 stripped RectTransform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3} + m_PrefabInstance: {fileID: 2685853672127006524} m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6671222254507797060} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_ConstrainProportionsScale: 0 - m_Children: - - {fileID: 6408228854960939457} - m_Father: {fileID: 7646065705685923996} - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} - m_AnchoredPosition: {x: -0.3055, y: 0} - m_SizeDelta: {x: 120, y: 120} - m_Pivot: {x: 0.5, y: 0.5} ---- !u!222 &6352752108150546217 -CanvasRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6671222254507797060} - m_CullTransparentMesh: 1 ---- !u!114 &1651341177853249232 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6671222254507797060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_RaycastTarget: 1 - m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} - m_Maskable: 1 - m_OnCullStateChanged: - m_PersistentCalls: - m_Calls: [] - m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0} - m_Type: 0 - m_PreserveAspect: 0 - m_FillCenter: 1 - m_FillMethod: 4 - m_FillAmount: 1 - m_FillClockwise: 1 - m_FillOrigin: 0 - m_UseSpriteMesh: 0 - m_PixelsPerUnitMultiplier: 1 ---- !u!114 &4631288927685918603 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6671222254507797060} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3} - m_Name: - m_EditorClassIdentifier: - m_ShowMaskGraphic: 1 diff --git a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs index 1e98760ce3..26deb3234c 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs @@ -49,7 +49,6 @@ namespace BrewMonster else szSGCFile = $"{pszSGCFile}"; - BMLogger.LogError("" + szSGCFile); if (!m_pSkillGfxComposerMan.LoadOneComposer((int)idSkill, szSGCFile)) { // a_LogOutput(1, "CECAttacksMan::CECAttacksMan(), failed to load skill [%d]'s gfx composer [%s]", idSkill, szSGCFile); @@ -154,7 +153,6 @@ namespace BrewMonster } public CECAttackEvent AddSkillAttack(int idHost, int idCastTarget, int idTarget, int idWeapon, int idSkill, int nSkillLevel, uint dwModifier, int nDamage) { - BMLogger.Log($"[SKILL_GFX_FLOW] ===== NEW SKILL ATTACK EVENT CREATED ===== | SkillID: {idSkill}, HostID: {idHost}, TargetID: {idTarget}, CastTargetID: {idCastTarget}"); var newEvent = new CECAttackEvent( this, @@ -174,7 +172,6 @@ namespace BrewMonster if (m_AttackList.Count == 0) m_AttackList = m_targets.ToList(); #endif - BMLogger.Log($"[SKILL_GFX_FLOW] Attack event added to queue | Total events in queue: {m_targets.Count}"); newEvent.UpdateTargetFlag(); return m_targets.Last.Value; @@ -422,7 +419,6 @@ namespace BrewMonster /// public void Play(int nHostID, int nCastTargetID, List targets, bool bIsGoblinSkill = false) { - BMLogger.Log($"[SKILL_GFX_FLOW] >>>> A3DSkillGfxComposer.Play ENTERED | HostID: {nHostID}, CastTargetID: {nCastTargetID}, Targets: {targets?.Count ?? 0}, IsGoblin: {bIsGoblinSkill}, FlyTime: {m_dwFlyTime}ms"); bool bCastInTargets = false; /* char szFly = m_szFlyGfx[0] ? m_szFlyGfx : NULL; @@ -456,7 +452,6 @@ namespace BrewMonster } else { - BMLogger.LogError($"[SKILL_GFX_FLOW] >>>> No targets provided."); } if (nCastTargetID != 0 && !bCastInTargets) { @@ -467,7 +462,6 @@ namespace BrewMonster AddOneTarget(nCastTargetID, nHostID, ""/*szFly*/, ""/*szHit*/, tar, false, bIsGoblinSkill); } - BMLogger.LogError($"[SKILL_GFX_FLOW] >>>> This is where skill GFX should be spawned and played."); } public void AddOneTarget( int nCastTargetID, @@ -478,9 +472,6 @@ namespace BrewMonster bool bFirst, bool bIsGoblinSkill) { - BMLogger.Log($"[SKILL_GFX_FLOW] ======> AddOneTarget CALL"); - BMLogger.Log($"[SKILL_GFX_FLOW] ======> AddOneTarget ENTERED | FlyGfx: {szFly ?? "NULL"}, HitGfx: {szHit ?? "NULL"}"); - int _Host, _Target; float fScale; bool bReverse; @@ -496,13 +487,11 @@ namespace BrewMonster _Host = tar.idTarget; _Target = nHostID; bReverse = true; - BMLogger.Log($"[SKILL_GFX_FLOW] ======> TargetMode: REVERSE | FinalHost: {_Host}, FinalTarget: {_Target}"); break; default: _Host = nHostID; _Target = tar.idTarget; bReverse = false; - BMLogger.Log($"[SKILL_GFX_FLOW] ======> TargetMode: NORMAL | FinalHost: {_Host}, FinalTarget: {_Target}"); break; } @@ -519,17 +508,14 @@ namespace BrewMonster { if (m_AttFlyMode == GfxAttackMode.enumAttArea) { - BMLogger.Log($"[SKILL_GFX_FLOW] ======> Fly GFX removed (AttFlyMode=Area, not primary target)"); szFly = null; } if (m_AttHitMode == GfxAttackMode.enumAttArea) { - BMLogger.Log($"[SKILL_GFX_FLOW] ======> Hit GFX removed (AttHitMode=Area, not primary target)"); szHit = null; } } - BMLogger.Log($"[SKILL_GFX_FLOW] ======> *** CALLING AddSkillGfxEvent - THIS SPAWNS THE GFX! ***"); // 调用GFX管理器添加技能特效事件 / Call GFX manager to add skill GFX event m_pSkillGfxMan.AddSkillGfxEvent( @@ -553,7 +539,6 @@ namespace BrewMonster bReverse ); - BMLogger.Log($"[SKILL_GFX_FLOW] ======> AddSkillGfxEvent RETURNED - GFX SPAWNED!"); } } } @@ -606,7 +591,6 @@ public class CECAttackEvent { if (m_timeLived > 3500) { - BMLogger.LogWarning($"[SKILL_GFX_FLOW] Attack event timeout (>3500ms) | SkillID: {m_idSkill}, forcing DoFire and DoDamage"); m_bFinished = true; DoFire(); DoDamage(); @@ -620,7 +604,6 @@ public class CECAttackEvent { if (m_timeToBeFired <= dwDeltaTime) { - BMLogger.Log($"[SKILL_GFX_FLOW] === Fire Time Reached! === | SkillID: {m_idSkill}, TimeLived: {m_timeLived}ms"); m_timeToBeFired = 0; // Fire here @@ -633,7 +616,6 @@ public class CECAttackEvent { if (m_timeToDoDamage <= dwDeltaTime) { - BMLogger.Log($"[SKILL_GFX_FLOW] === Damage Time Reached! === | SkillID: {m_idSkill}, TimeLived: {m_timeLived}ms"); m_timeToDoDamage = 0; // Do damage here @@ -649,7 +631,6 @@ public class CECAttackEvent public void SetSkillSection(int nSection) { m_nSkillSection = nSection; } bool DoFire() { - BMLogger.Log($"[SKILL_GFX_FLOW] ===== DoFire START ===== | SkillID: {m_idSkill}, HostID: {m_idHost}, CastTargetID: {m_idCastTarget}, WeaponID: {m_idWeapon}, SkillSection: {m_nSkillSection}"); float vFlyScale = 1.0f; float vHitScale = 1.0f; @@ -657,61 +638,48 @@ public class CECAttackEvent if (GPDataTypeHelper.ISPLAYERID(m_idHost)) { - BMLogger.Log($"[SKILL_GFX_FLOW] Host is a PLAYER (ID: {m_idHost})"); if (m_idSkill != 0) { - BMLogger.Log($"[SKILL_GFX_FLOW] Skill attack detected | SkillID: {m_idSkill}, SkillLevel: {m_nSkillLevel}"); A3DSkillGfxComposer pComposer = null; // we use skill composed gfx to present the skill effect / 使用技能特效组合器来表现技能效果 if (m_nSkillSection > 0) // 多段技能 / Multi-section skill { - BMLogger.Log($"[SKILL_GFX_FLOW] Multi-section skill path | SkillSection: {m_nSkillSection}"); CECMultiSectionSkillMan pMan = m_pManager?.m_pMultiSkillGfxComposerMan; if (pMan != null) { bool isGoblin = ElementSkill.IsGoblinSkill((uint)m_idSkill); - BMLogger.Log($"[SKILL_GFX_FLOW] Calling CECMultiSectionSkillMan.Play | IsGoblinSkill: {isGoblin}, Targets: {m_targets?.Count ?? 0}"); pMan.Play(m_idSkill, m_nSkillSection, m_idHost, m_idCastTarget, m_targets, isGoblin); pComposer = pMan.GetSkillGfxComposer(m_idSkill, m_nSkillSection); - BMLogger.Log($"[SKILL_GFX_FLOW] Retrieved composer from multi-section: {(pComposer != null ? "SUCCESS" : "NULL")}"); } else { - BMLogger.LogError($"[SKILL_GFX_FLOW] Multi-section skill manager is NULL!"); } } else { - BMLogger.Log($"[SKILL_GFX_FLOW] Regular skill path (no section)"); bool isGoblin = ElementSkill.IsGoblinSkill((uint)m_idSkill); - BMLogger.Log($"[SKILL_GFX_FLOW] IsGoblinSkill: {isGoblin}, Targets: {m_targets?.Count ?? 0}"); // Get the composer manager var composerMan = m_pManager.GetSkillGfxComposerMan(); - BMLogger.Log($"[SKILL_GFX_FLOW] SkillGfxComposerMan retrieved: {(composerMan != null ? "SUCCESS" : "NULL")}"); if (composerMan != null) { - BMLogger.Log($"[SKILL_GFX_FLOW] Calling A3DSkillGfxComposerMan.Play | SkillID: {m_idSkill}"); if (isGoblin) composerMan.Play(m_idSkill, m_idHost, m_idCastTarget, m_targets, true); else composerMan.Play(m_idSkill, m_idHost, m_idCastTarget, m_targets); pComposer = composerMan.GetSkillGfxComposer(m_idSkill); - BMLogger.Log($"[SKILL_GFX_FLOW] Retrieved composer: {(pComposer != null ? "SUCCESS" : "NULL")}"); } else { - BMLogger.LogError($"[SKILL_GFX_FLOW] SkillGfxComposerMan is NULL!"); } } if (pComposer != null && pComposer.m_dwFlyTime == 0) // 技能gfx没有飞行实际,则马上头顶冒字 / Skill has no fly time, show damage immediately { - BMLogger.Log($"[SKILL_GFX_FLOW] Composer has NO fly time (m_dwFlyTime=0), damage will be immediate"); m_timeToDoDamage = 1; } else @@ -721,19 +689,15 @@ public class CECAttackEvent { float distance = (vecHost - vecTarget).magnitude; m_timeToDoDamage = (uint)Mathf.Max(distance / 20.0f * 1000.0f, 10.0f); - BMLogger.Log($"[SKILL_GFX_FLOW] Estimated damage time | Distance: {distance:F2}m, DamageTime: {m_timeToDoDamage}ms"); } else { - BMLogger.LogWarning($"[SKILL_GFX_FLOW] Could not calculate distance for damage time | Targets: {m_targets.Count}"); } } - BMLogger.Log($"[SKILL_GFX_FLOW] ===== DoFire END (Skill) ===== | Final m_timeToDoDamage: {m_timeToDoDamage}ms"); } else if (m_idWeapon != 0) { - BMLogger.Log($"[SKILL_GFX_FLOW] Weapon attack path | WeaponID: {m_idWeapon}"); // first determine gfx used / 首先确定使用的特效 string szFlyGFX = null; string szHitGFX = null; @@ -784,12 +748,10 @@ public class CECAttackEvent // TODO: Implement AddSkillGfxEvent // CECGameRun.Instance.GetWorld().GetSkillGfxMan().AddSkillGfxEvent(m_idHost, data.idTarget, // pszFlyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1, 0, null, vFlyScale, vHitScale, data.dwModifier); - BMLogger.Log($"TODO: AddSkillGfxEvent - Host:{m_idHost}, Target:{data.idTarget}, FlyGfx:{pszFlyGFX}, HitGfx:{pszHitGFX}"); } } else { - BMLogger.Log($"[SKILL_GFX_FLOW] No weapon attack path (bare hands/fist)"); // without weapon / 没有武器 // 使用拳套类的击中效果 / Use fist/glove hit effects DATA_TYPE dt = DATA_TYPE.DT_INVALID; @@ -828,11 +790,9 @@ public class CECAttackEvent } else if (GPDataTypeHelper.ISNPCID(m_idHost)) { - BMLogger.Log($"[SKILL_GFX_FLOW] Host is an NPC (ID: {m_idHost})"); if (m_idSkill != 0) { - BMLogger.Log($"[SKILL_GFX_FLOW] NPC Skill attack detected | SkillID: {m_idSkill}, SkillLevel: {m_nSkillLevel}"); A3DSkillGfxComposer pComposer = null; // we use skill composed gfx to present the skill effect / 使用技能特效组合器来表现技能效果 if (m_nSkillSection > 0) // 多段技能 / Multi-section skill @@ -849,7 +809,6 @@ public class CECAttackEvent // TODO: Implement SkillGfxComposerMan // m_pManager.GetSkillGfxComposerMan().Play(m_idSkill, m_idHost, m_idCastTarget, m_targets); // pComposer = m_pManager.GetSkillGfxComposerMan().GetSkillGfxComposer(m_idSkill); - BMLogger.LogWarning("SkillGfxComposerMan not yet implemented"); } if (pComposer != null && pComposer.m_dwFlyTime == 0) // 技能没有飞行时间,则直接头顶冒字 / Skill has no fly time, show damage immediately @@ -882,7 +841,6 @@ public class CECAttackEvent // szFlyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // skip gfx/ // string fullHitGfx = pEssence.file_gfx_short_hit; // szHitGFX = fullHitGfx.Length > 4 ? fullHitGfx.Substring(4) : string.Empty; // skip gfx/ - BMLogger.LogWarning("Monster essence not yet implemented"); } else if (pNPC.IsPetNPC()) { @@ -891,7 +849,6 @@ public class CECAttackEvent // string fullFlyGfx = pEssence.file_gfx_short; // szFlyGFX = fullFlyGfx.Length > 4 ? fullFlyGfx.Substring(4) : string.Empty; // szHitGFX = "策划联入\\怪物击中\\怪物肉搏击中.gfx"; // Planning link\Monster hit\Monster melee hit.gfx - BMLogger.LogWarning("Pet essence not yet implemented"); } else return false; @@ -927,17 +884,14 @@ public class CECAttackEvent // CECGameRun.Instance.GetWorld().GetSkillGfxMan().AddSkillGfxEvent(m_idHost, data.idTarget, // pszFlyGFX, pszHitGFX, m_timeToDoDamage, false, GfxMoveMode.enumLinearMove, 1, // 0, null, vFlyScale, vHitScale, data.dwModifier); - BMLogger.Log($"TODO: AddSkillGfxEvent - Host:{m_idHost}, Target:{data.idTarget}, FlyGfx:{pszFlyGFX}, HitGfx:{pszHitGFX}"); } } } else { - BMLogger.LogWarning($"[SKILL_GFX_FLOW] Host ID is neither PLAYER nor NPC | HostID: {m_idHost}"); return true; } - BMLogger.Log($"[SKILL_GFX_FLOW] ===== DoFire COMPLETE ====="); return true; } diff --git a/Assets/PerfectWorld/Scripts/Managers/CECManager.cs b/Assets/PerfectWorld/Scripts/Managers/CECManager.cs index b3883658b1..19b16ac1b8 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECManager.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECManager.cs @@ -111,3 +111,4 @@ namespace BrewMonster.Managers + diff --git a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs index 5089d333fe..fcb633d1eb 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECNPCMan.cs @@ -209,7 +209,6 @@ public class CECNPCMan : IMsgHandler var stateNPC = Convert.ToInt32(msg.dwParam2); var byteArray = (byte[])msg.dwParam1; - BMLogger.Log("HoangDev : OnMsgNPCDied " + stateNPC); if (stateNPC == CommandID.NPC_DIED) { diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs index 20a1ccd25c..a144e5807e 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs @@ -62,10 +62,10 @@ namespace BrewMonster.Scripts m_vMoveDest = vMoveDest; m_bHaveDest = true; m_bGliding = false; - //m_pHost.SetAdjustOrient(false); // 2014-9-10 ı CECHPWorkMove ʱ򶼻ô˺ᵼʱͨ SetDestDirAndUp öijʧЧ - // ַΪɡӽͷźϰס'A''D'ƶסţʩƫĿƶγԣ + //m_pHost.SetAdjustOrient(false); // 2014-9-10 ���ı��� CECHPWorkMove ������ʱ�򶼻���ô˺������ᵼ������ʱ��ͨ�� SetDestDirAndUp ���ö�����ij������ʧЧ�� + // ���ַ���Ϊ�����ɡ�����ӽ�������ͷź����ϰ�ס'A'��'D'���ƶ�������ס���ţ�����������ʩ������ƫ��Ŀ��������ƶ��������γ��ԣ� - //Ϣ + //���������Ϣ m_iTaskId = 0; m_iNPCTempleId = 0; ResetUseAutoPF(); @@ -97,7 +97,7 @@ namespace BrewMonster.Scripts //m_vCurDir.Normalize(); //if (m_bUseAutoMoveDialog) //{ - // // ˴ m_bUseAutoMoveDialog SetUseAutoMoveDialog ˵ + // // �˴����� m_bUseAutoMoveDialog���� SetUseAutoMoveDialog ��˵�� // m_bUseAutoMoveDialog = false; // m_bAutoLand = false; // m_fAutoHeight = -1.0f; @@ -134,12 +134,12 @@ namespace BrewMonster.Scripts //{ // if (CECIntelligentRoute::Instance().IsIdle()) // { - // // Ѱ·ģʽδɹʱȴ¸ Tick л DEST_2D ģʽ + // // ����Ѱ·ģʽδ�ɹ�ʱ���ȴ��¸� Tick �л��� DEST_2D ģʽ // return true; // } // if (m_pHost.IsFlying()) // { - // // ;лģʽʱл DEST_2D ģʽ + // // ��;�л�������ģʽʱ���л��� DEST_2D ģʽ // CECIntelligentRoute::Instance().ResetSearch(); // m_bSwitchTo2D = true; // return true; @@ -175,7 +175,7 @@ namespace BrewMonster.Scripts // pGameUI.AutoMoveShowDialog(false); //} - ////Ѱ·ҵNPCתΪWorkTrace״̬ + ////Ѱ·�������ҵ�NPC����תΪWorkTrace״̬ //if ((m_vMoveDest - m_pHost.GetPos()).MagnitudeH() <= 5.0f) //{ // if (m_iNPCTempleId) @@ -186,7 +186,7 @@ namespace BrewMonster.Scripts // CECHPWorkTrace pWork = m_pWorkMan.CreateNPCTraceWork(pNPC, m_iTaskId); // if (pWork) // { - // m_bAutoLand = false; //ֹ״̬Ѱ·תworktrace֮ǰԶ½workfall + // m_bAutoLand = false; //��ֹ����״̬Ѱ·������ת��worktrace֮ǰ�Զ���½������workfall�� // Finish(); // m_pWorkMan.SetPostTickCommand(new CECHPWorkPostTickRunWorkCommand(pWork, true)); // return true; @@ -297,7 +297,7 @@ namespace BrewMonster.Scripts m_bReachedHeight = true; } - //׷ + //�������׷������ m_iNPCTempleId = 0; m_iTaskId = 0; } diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs index 969c4c8eb7..5e90e07b3d 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs @@ -7,6 +7,7 @@ using PerfectWorld.Scripts.Player; using System; using System.Runtime.ConstrainedExecution; using UnityEngine; +using static CECPlayer; /////////////////////////////////////////////////////////////////////////// // @@ -619,7 +620,7 @@ public class CECHPWorkTrace : CECHPWork if (m_pHost.m_iMoveEnv == CECPlayer.Move_environment.MOVEENV_GROUND) { // Play appropriate actions - if (!m_pHost.IsJumping() && !m_pHost.IsPlayingAction((int)CECPlayer.PLAYER_ACTION_TYPE.ACT_TRICK_RUN) && + if (!m_pHost.IsJumping() && !m_pHost.IsPlayingAction((int)PLAYER_ACTION_TYPE.ACT_TRICK_RUN) && m_pHost.m_iMoveMode != (int)MoveMode.MOVE_SLIDE) { int iAction = m_pHost.GetMoveStandAction(true); diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs index 6ed1f6cb7b..1660fe6aa5 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_ManMatter.cs @@ -92,8 +92,6 @@ namespace PerfectWorld.Scripts.Managers ushort count = BitConverter.ToUInt16(data, offset); offset += sizeof(ushort); - Debug.Log($"MATTERINFO: Received {count} matter entries"); - // Parse each info_matter entry for (int i = 0; i < count; i++) { @@ -105,7 +103,6 @@ namespace PerfectWorld.Scripts.Managers // Store the matter data for later player access matterDataStorage[info.mid] = info; - Debug.Log($"Matter info - ID: {info.mid}, TID: {info.tid}, Position: {info.pos}, State: {info.state}"); await MatterEnter(info); } } diff --git a/Assets/PerfectWorld/Scripts/NPC/NPCVisual.cs b/Assets/PerfectWorld/Scripts/NPC/NPCVisual.cs index 863101c9b0..85cd833cac 100644 --- a/Assets/PerfectWorld/Scripts/NPC/NPCVisual.cs +++ b/Assets/PerfectWorld/Scripts/NPC/NPCVisual.cs @@ -93,7 +93,6 @@ public class NPCVisual : MonoBehaviour { if (namedAnimancer == null) return false; _animationQueue.Enqueue(@event.AnimationName); - BMLogger.LogError("HoangDev: EnqueueAnimation: " + _animationQueue.Peek()); return true; } diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs index 2844740835..527f2d8aba 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs @@ -575,7 +575,6 @@ namespace CSNetwork case CommandID.ERROR_MESSAGE: _logger.Info($"### GameDataSend: ERROR_MESSAGE: {BitConverter.ToInt32(pDataBuf, 0)}"); cmd_error_msg pCmd = GPDataTypeHelper.FromBytes(pDataBuf); - BMLogger.LogError("hOANGdEV : ERROR_MESSAGE pCmd.iMessage!=0 " + pCmd.iMessage); if (pCmd.iMessage != 0) { @@ -687,7 +686,6 @@ namespace CSNetwork case CommandID.OBJECT_CAST_INSTANT_SKILL: case CommandID.OBJECT_CAST_POS_SKILL: { - BMLogger.LogError("HoangDev: OBJECT_CAST_SKILL: " + pCmdHeader); cmd_object_cast_skill pCmd2 = GPDataTypeHelper.FromBytes(pDataBuf); if (ISPLAYERID(pCmd2.caster)) EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_CASTSKILL, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader); diff --git a/Assets/PerfectWorld/Scripts/Objet/CECMatter.cs b/Assets/PerfectWorld/Scripts/Objet/CECMatter.cs index b7b1b7baf7..6934487c26 100644 --- a/Assets/PerfectWorld/Scripts/Objet/CECMatter.cs +++ b/Assets/PerfectWorld/Scripts/Objet/CECMatter.cs @@ -33,7 +33,6 @@ namespace PerfectWorld.Scripts INFO matterInfo = new INFO(); matterInfo.mid = Info.mid; matterInfo.tid = Info.tid & 0x0000ffff; - BMLogger.Log($"CECMatter::Init():: tid: {matterInfo.tid}"); // get the matter template from elementdataman DATA_TYPE DataType = DATA_TYPE.DT_INVALID; var matterData = ElementDataManProvider.GetElementDataMan().get_data_ptr((uint)matterInfo.tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType); diff --git a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs index b12b96b249..845ec9e8b0 100644 --- a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs +++ b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs @@ -353,7 +353,6 @@ namespace PerfectWorld.Scripts.Player // Set server position public void SetServerPos(A3DVECTOR3 vPos) { - BrewMonster.BMLogger.Log("SetServerPos "); m_vServerPos = vPos; // If this player is a mule, change it's rider's server pos too. if (m_iBuddyId != 0 && !m_bHangerOn) diff --git a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs index 2001e565e3..e0a314c53d 100644 --- a/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs +++ b/Assets/PerfectWorld/Scripts/Task/CECTaskInterface.cs @@ -362,8 +362,6 @@ namespace BrewMonster.Scripts.Task return false; } - BMLogger.Log($"pActiveListBuf: {pActiveListBuf.Length} - {TaskInterfaceConstants.TASK_ACTIVE_LIST_BUF_SIZE}"); - // allocate internal buffers and copy; remaining bytes are zero-initialized in C# // m_pActiveListRawBuf = new byte[TaskInterfaceConstants.TASK_ACTIVE_LIST_BUF_SIZE]; // { diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs index 45acadd249..6ab132944d 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs @@ -1,16 +1,26 @@ using System; +using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Unity.VisualScripting; using UnityEngine; +using UnityEngine.UI; namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay { public class AUIImagePicture : MonoBehaviour { CECShortcut pSC; + [SerializeField] Button skillbutton; + [SerializeField] Image skillImage; + [SerializeField] int cooldownTime; + private void Awake() + { + skillbutton.onClick.AddListener(Execute); + } public void SetDataPtr(CECShortcut pvData, string strName) { pSC = pvData; @@ -20,7 +30,25 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay if (pSC != null) { pSC.Execute(); + // TODO: FIXlater - get cooldown time from skill data + StartCoroutine(CooldownRoutine()); } } + public void SetSkillImage(Sprite sprite) + { + skillImage.sprite = sprite; + } + private IEnumerator CooldownRoutine() + { + // Disable interaction + skillbutton.interactable = false; + // Set gray + skillImage.color = Color.gray; + // Wait + yield return new WaitForSeconds(cooldownTime); + // Restore + skillImage.color = Color.white; + skillbutton.interactable = true; + } } } diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs index feada8b897..2d36dddc57 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs @@ -19,21 +19,13 @@ namespace BrewMonster { public class CdlgQuickBar : MonoBehaviour { - [SerializeField] List m_aSkillImage = new List(); - [SerializeField] List