done skill don't move after cast

This commit is contained in:
VDH
2025-11-25 12:10:43 +07:00
parent fc9a75f70a
commit d092605651
19 changed files with 557 additions and 441 deletions
@@ -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
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8586a375545487f43b57c6ffdce6fbfd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+109 -299
View File
@@ -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
@@ -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
/// </summary>
public void Play(int nHostID, int nCastTargetID, List<TARGET_DATA> 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;
}
@@ -111,3 +111,4 @@ namespace BrewMonster.Managers
@@ -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)
{
@@ -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 调用对人物的朝向调整失效。
// 重现方法为:月仙“望月咏”技能释放后、马上按住'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;
}
@@ -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);
@@ -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);
}
}
@@ -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;
}
@@ -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<cmd_error_msg>(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<cmd_object_cast_skill>(pDataBuf);
if (ISPLAYERID(pCmd2.caster))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_CASTSKILL, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader);
@@ -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);
@@ -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)
@@ -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];
// {
@@ -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;
}
}
}
@@ -19,21 +19,13 @@ namespace BrewMonster
{
public class CdlgQuickBar : MonoBehaviour
{
[SerializeField] List<Image> m_aSkillImage = new List<Image>();
[SerializeField] List<Button> m_aSkillButton = new List<Button>();
//[SerializeField] List<Image> m_aSkillImage = new List<Image>();
//[SerializeField] List<Button> m_aSkillButton = new List<Button>();
[SerializeField] List<AUIImagePicture> AUIImagePictureList = new List<AUIImagePicture>();
int m_nCurPanel1 = 1;
int m_nCurPanel2 = 1;
private void MappingAUIImagePicture()
{
for (int i = 0; i < m_aSkillButton.Count; i++)
{
int index = i; // QUAN TRỌNG: tránh capture biến i
m_aSkillButton[index].onClick.AddListener(() => AUIImagePictureList[index].Execute());
}
}
public bool UpdateShortcuts()
{
CECShortcut pSC;
@@ -59,9 +51,8 @@ namespace BrewMonster
/*CDlgQuickBar* pQuickBar = dynamic_cast<CDlgQuickBar*>(GetGameUIMan()->GetDialog(a_pszPanel[i]));
if (!pQuickBar || !pQuickBar->IsShow()) continue;*/
for (int j = 0; j < m_aSkillImage.Count; j++)
for (int j = 0; j < AUIImagePictureList.Count; j++)
{
skillImage = m_aSkillImage[j];
pCell = AUIImagePictureList[j];
pSC = a_pSCS[i].GetShortcut(j);
/* pClock = pCell->GetClockIcon();
@@ -210,7 +201,7 @@ namespace BrewMonster
{
var nameskill = ElementSkill.GetIcon((uint)pSkill.GetSkillID());
Sprite[] sprites = Resources.LoadAll<Sprite>("iconlist_skill_multisprite");
skillImage.sprite = sprites.First(s => s.name == nameskill);
pCell.SetSkillImage(sprites.FirstOrDefault(s => s.name == nameskill));
}
/*af_GetFileTitle(pSC->GetIconFile(), strFile);
strFile.MakeLower();
@@ -228,7 +219,6 @@ namespace BrewMonster
}
}
}
MappingAUIImagePicture();
return true;
}
private void GetQuickBarNameAndSC(CECHostPlayer pHost, List<string> pszPanel, List<CECShortcutSet> pSCS, int panel9, int panel8)
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:47b6a2b394be8a0fac501077ecb7f3f0e1bff990782cec400d2ef43a2bdd9746
size 530562327
oid sha256:70397ae06d68958d5d7a8662bf0440549968d4af7c5dd3ca110e953d9dcc4576
size 530559942
+51 -45
View File
@@ -85,6 +85,7 @@ namespace BrewMonster
private CECSkill m_pCurSkill;
private CECCounter m_IncantCnt;
private bool m_bMelee;
private float m_fPrayDistancePlus;
// ====== Ground cast config ======
[Header("Ground Cast")]
@@ -335,40 +336,40 @@ namespace BrewMonster
SelectTarget(m_idUCSelTarget);
}
if (idTraceTarget != 0)
{
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_ATTACK)
{
if (!CanDo(ActionCanDo.CANDO_MELEE))
return;
NormalAttackObject(idTraceTarget, bForceAttack);
}
else
{
if (!CanDo(ActionCanDo.CANDO_MOVETO))
return;
CECHPWork pWork;
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_PICKUP)
{
//PickupObject(idTraceTarget, false);
}
else if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_GATHER)
{
//PickupObject(idTraceTarget, true);
}
else if ((pWork = m_pWorkMan.GetWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT)) != null)
{
CECHPWorkTrace pWorkTrace = (pWork) as CECHPWorkTrace;
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
}
else if (m_pWorkMan.CanStartWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT) && !bWikiMonster)
{
CECHPWorkTrace pWorkTrace = (CECHPWorkTrace)m_pWorkMan.CreateWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT);
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
m_pWorkMan.StartWork_p1(pWorkTrace);
}
}
}
if (idTraceTarget != 0)
{
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_ATTACK)
{
if (!CanDo(ActionCanDo.CANDO_MELEE))
return;
NormalAttackObject(idTraceTarget, bForceAttack);
}
else
{
if (!CanDo(ActionCanDo.CANDO_MOVETO))
return;
CECHPWork pWork;
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_PICKUP)
{
//PickupObject(idTraceTarget, false);
}
else if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_GATHER)
{
//PickupObject(idTraceTarget, true);
}
else if ((pWork = m_pWorkMan.GetWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT)) != null)
{
CECHPWorkTrace pWorkTrace = (pWork) as CECHPWorkTrace;
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
}
else if (m_pWorkMan.CanStartWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT) && !bWikiMonster)
{
CECHPWorkTrace pWorkTrace = (CECHPWorkTrace)m_pWorkMan.CreateWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT);
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
m_pWorkMan.StartWork_p1(pWorkTrace);
}
}
}
}
m_pWorkMan?.Tick(Time.deltaTime);
@@ -1752,21 +1753,21 @@ namespace BrewMonster
break;
}
//case 2: // cast magic
//{
// if (m_pPrepSkill)
// {
// float fRange = m_pPrepSkill.GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
// if (fRange > 0.0f)
// if (m_pPrepSkill != null)
// {
// if (fDist - fTargetRad <= fRange)
// float fRange = m_pPrepSkill.GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
// if (fRange > 0.0f)
// {
// if (fDist - fTargetRad <= fRange)
// return true;
// }
// else
// return true;
// }
// else
// return true;
// }
// break;
//}
// break;
// }
case 3: // talk
{
if (fDist - fTargetRad <= 5.0f)
@@ -1822,13 +1823,17 @@ namespace BrewMonster
{
return m_pvp.bEnable;
}
public float GetPrayDistancePlus() { return m_fPrayDistancePlus; }
// Get faction ID
public int GetFactionID()
{
return m_idFaction;
}
public void SetPrayDistancePlus(float prayDistancePlus)
{
m_fPrayDistancePlus = prayDistancePlus;
}
public bool IsJumping()
{
return m_iJumpCount > 0;
@@ -2298,6 +2303,7 @@ namespace BrewMonster
{
byte byPVPMask = glb_BuildPVPMask(bForceAttack);
UnityGameSession.c2s_CmdCastSkill(m_pPrepSkill.GetSkillID(), byPVPMask, 1, idTarget);
PlayAction((int)PLAYER_ACTION_TYPE.ACT_STAND, false,300, false);
return true;
}
public bool UpdateEquipSkins()
File diff suppressed because one or more lines are too long