diff --git a/Assets/PerfectWorld/Prefab/UIManager.prefab b/Assets/PerfectWorld/Prefab/UIManager.prefab index 9e0b387e49..b445272f96 100644 --- a/Assets/PerfectWorld/Prefab/UIManager.prefab +++ b/Assets/PerfectWorld/Prefab/UIManager.prefab @@ -218,6 +218,81 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &175836796530984983 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4270554191894319769} + - component: {fileID: 5046527081681750466} + - component: {fileID: 4479934072679882571} + m_Layer: 5 + m_Name: hitbox + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4270554191894319769 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175836796530984983} + 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: 7592287337898200118} + 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: 3.4105263, y: 3.4105263} + m_SizeDelta: {x: 106.8, y: 70.421} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &5046527081681750466 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175836796530984983} + m_CullTransparentMesh: 1 +--- !u!114 &4479934072679882571 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 175836796530984983} + 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: 0.003921569} + 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: 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!1 &335905991743982376 GameObject: m_ObjectHideFlags: 0 @@ -250,11 +325,12 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 3145908486618148274} + - {fileID: 8257803607116725528} m_Father: {fileID: 3483809415181351540} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 0} - m_AnchoredPosition: {x: -718.8898, y: 36.854492} + m_AnchoredPosition: {x: -836.66, y: 36.854492} m_SizeDelta: {x: 50, y: 50} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &6524368999182548347 @@ -278,7 +354,7 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_Material: {fileID: 0} - m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Color: {r: 0.14122522, g: 1, b: 0, a: 1} m_RaycastTarget: 1 m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} m_Maskable: 1 @@ -698,6 +774,142 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &649076494997171084 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8257803607116725528} + - component: {fileID: 395061354651865565} + - component: {fileID: 4774016234956462677} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &8257803607116725528 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649076494997171084} + 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: 1572942396405590444} + 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, y: -25} + m_SizeDelta: {x: 135.5798, y: 17.8015} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &395061354651865565 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649076494997171084} + m_CullTransparentMesh: 1 +--- !u!114 &4774016234956462677 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 649076494997171084} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Change (!combo) + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292542463 + m_fontColor: {r: 1, g: 1, b: 0.85490197, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 17.02 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 17.02 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &806379414455135824 GameObject: m_ObjectHideFlags: 0 @@ -2085,6 +2297,8 @@ RectTransform: - {fileID: 7749074831901819156} - {fileID: 5949267495910746152} - {fileID: 4633732041680916750} + - {fileID: 3045057319077202999} + - {fileID: 1801315025016986229} - {fileID: 6551985120193569788} m_Father: {fileID: 2780428059708698453} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -2469,6 +2683,144 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &2697130145581150145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4003332200156938686} + - component: {fileID: 4074076591324235108} + - component: {fileID: 5717971096408508686} + m_Layer: 0 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &4003332200156938686 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2697130145581150145} + 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: 3045057319077202999} + 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 &4074076591324235108 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2697130145581150145} + m_CullTransparentMesh: 1 +--- !u!114 &5717971096408508686 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2697130145581150145} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, 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_text: 'TeamList + +' + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4281479730 + m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 21.28 + m_fontSizeBase: 21.28 + m_fontWeight: 400 + m_enableAutoSizing: 0 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 1 + m_HorizontalAlignment: 2 + m_VerticalAlignment: 512 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &2776183232214485049 GameObject: m_ObjectHideFlags: 0 @@ -4805,6 +5157,7 @@ RectTransform: - {fileID: 8510105846984656271} - {fileID: 4139081827044063170} - {fileID: 7693611257239889377} + - {fileID: 7592287337898200118} m_Father: {fileID: 3233441867675090637} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0} @@ -4835,6 +5188,12 @@ MonoBehaviour: - {fileID: 2971821658315981769} - {fileID: 452969679978752531} - {fileID: 3647934876571221831} + m_nCurPanel1: 1 + m_nCurPanel2: 1 + m_bShowAll1: 0 + m_bShowAll2: 0 + m_nDisplayPanels1: 0 + m_nDisplayPanels2: 0 --- !u!1 &5525441299837637062 GameObject: m_ObjectHideFlags: 0 @@ -5974,6 +6333,139 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: m_ShowMaskGraphic: 1 +--- !u!1 &6325511248940727398 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3045057319077202999} + - component: {fileID: 162626341667579305} + - component: {fileID: 8499852562167418146} + - component: {fileID: 1152087078303231916} + m_Layer: 0 + m_Name: team_list_btn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &3045057319077202999 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6325511248940727398} + 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: 4003332200156938686} + m_Father: {fileID: 3233441867675090637} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0.5} + m_AnchorMax: {x: 0, y: 0.5} + m_AnchoredPosition: {x: 63.289795, y: 128.1304} + m_SizeDelta: {x: 101.855, y: 57.3622} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &162626341667579305 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6325511248940727398} + m_CullTransparentMesh: 1 +--- !u!114 &8499852562167418146 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6325511248940727398} + 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: 10905, 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!114 &1152087078303231916 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6325511248940727398} + 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: 8499852562167418146} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 1890210201668811196} + m_TargetAssemblyTypeName: CECUIManager, Assembly-CSharp + m_MethodName: ShowUI + m_Mode: 5 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: Win_TeamMain + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &6470418459643444397 GameObject: m_ObjectHideFlags: 0 @@ -6094,6 +6586,142 @@ MonoBehaviour: m_OnClick: m_PersistentCalls: m_Calls: [] +--- !u!1 &6476292694509891894 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 884968717674151123} + - component: {fileID: 8951219508660711815} + - component: {fileID: 8940304115795854860} + m_Layer: 5 + m_Name: Label + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &884968717674151123 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6476292694509891894} + 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: 7592287337898200118} + 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, y: -26.2} + m_SizeDelta: {x: 55.28, y: 14} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8951219508660711815 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6476292694509891894} + m_CullTransparentMesh: 1 +--- !u!114 &8940304115795854860 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6476292694509891894} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 0 + m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0} + m_Maskable: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_text: Rotate + m_isRightToLeft: 0 + m_fontAsset: {fileID: 11400000, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_sharedMaterial: {fileID: 2180264, guid: 8f586378b4e144a9851e7b34d9b748ee, type: 2} + m_fontSharedMaterials: [] + m_fontMaterial: {fileID: 0} + m_fontMaterials: [] + m_fontColor32: + serializedVersion: 2 + rgba: 4292542463 + m_fontColor: {r: 1, g: 1, b: 0.85490197, a: 1} + m_enableVertexGradient: 0 + m_colorMode: 3 + m_fontColorGradient: + topLeft: {r: 1, g: 1, b: 1, a: 1} + topRight: {r: 1, g: 1, b: 1, a: 1} + bottomLeft: {r: 1, g: 1, b: 1, a: 1} + bottomRight: {r: 1, g: 1, b: 1, a: 1} + m_fontColorGradientPreset: {fileID: 0} + m_spriteAsset: {fileID: 0} + m_tintAllSprites: 0 + m_StyleSheet: {fileID: 0} + m_TextStyleHashCode: -1183493901 + m_overrideHtmlColors: 0 + m_faceColor: + serializedVersion: 2 + rgba: 4294967295 + m_fontSize: 18 + m_fontSizeBase: 36 + m_fontWeight: 400 + m_enableAutoSizing: 1 + m_fontSizeMin: 18 + m_fontSizeMax: 72 + m_fontStyle: 0 + m_HorizontalAlignment: 1 + m_VerticalAlignment: 256 + m_textAlignment: 65535 + m_characterSpacing: 0 + m_wordSpacing: 0 + m_lineSpacing: 0 + m_lineSpacingMax: 0 + m_paragraphSpacing: 0 + m_charWidthMaxAdj: 0 + m_TextWrappingMode: 1 + m_wordWrappingRatios: 0.4 + m_overflowMode: 0 + m_linkedTextComponent: {fileID: 0} + parentLinkedComponent: {fileID: 0} + m_enableKerning: 0 + m_ActiveFontFeatures: 6e72656b + m_enableExtraPadding: 0 + checkPaddingRequired: 0 + m_isRichText: 1 + m_EmojiFallbackSupport: 1 + m_parseCtrlCharacters: 1 + m_isOrthographic: 1 + m_isCullingEnabled: 0 + m_horizontalMapping: 0 + m_verticalMapping: 0 + m_uvLineOffset: 0 + m_geometrySortingOrder: 0 + m_IsTextObjectScaleStatic: 0 + m_VertexBufferAutoSizeReduction: 0 + m_useMaxVisibleDescender: 1 + m_pageToDisplay: 1 + m_margin: {x: 0, y: 0, z: 0, w: 0} + m_isUsingLegacyAnimationComponent: 0 + m_isVolumetricText: 0 + m_hasFontAssetChanged: 0 + m_baseMaterial: {fileID: 0} + m_maskOffset: {x: 0, y: 0, z: 0, w: 0} --- !u!1 &6647846787028180792 GameObject: m_ObjectHideFlags: 0 @@ -6353,8 +6981,9 @@ MonoBehaviour: canvasDlg: {fileID: 7894129013412138377} btnSecondClick: {fileID: 1330222957695115484} m_pDlgQuickBar1: {fileID: 8338623026378970694} + ChangeSkillShortcutButton: {fileID: 335905991743982376} m_pDlgSkillSubOther: {fileID: 2431558109419737109} - m_pDlgSkillAction: {fileID: 0} + m_pDlgSkillAction: {fileID: 6678802354138057098} --- !u!114 &6678802354138057098 MonoBehaviour: m_ObjectHideFlags: 0 @@ -7205,6 +7834,140 @@ MonoBehaviour: m_StringArgument: DlgTask m_BoolArgument: 0 m_CallState: 2 +--- !u!1 &7824439570513712673 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7592287337898200118} + - component: {fileID: 8339095543112921278} + - component: {fileID: 5430388067458422668} + - component: {fileID: 2963982413772552151} + m_Layer: 5 + m_Name: ChangeSkillBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &7592287337898200118 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7824439570513712673} + 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: 4270554191894319769} + - {fileID: 884968717674151123} + m_Father: {fileID: 9056141770234008732} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 0} + m_AnchorMax: {x: 1, y: 0} + m_AnchoredPosition: {x: -718.8895, y: 36.854477} + m_SizeDelta: {x: 50, y: 50} + m_Pivot: {x: 0.5, y: 0.5} +--- !u!222 &8339095543112921278 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7824439570513712673} + m_CullTransparentMesh: 1 +--- !u!114 &5430388067458422668 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7824439570513712673} + 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: 21300000, guid: f0f6993d8df90de429f182e7d49a89f7, type: 3} + 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 &2963982413772552151 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7824439570513712673} + 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: 5430388067458422668} + m_OnClick: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 8338623026378970694} + m_TargetAssemblyTypeName: BrewMonster.CDlgQuickBar, Assembly-CSharp + m_MethodName: SwitchShowSkillShortcut + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &8053295555211033310 GameObject: m_ObjectHideFlags: 0 @@ -7467,6 +8230,12 @@ MonoBehaviour: - {fileID: 445184971459596056} - {fileID: 3804662600613272361} - {fileID: 1774515210692260948} + m_nCurPanel1: 1 + m_nCurPanel2: 1 + m_bShowAll1: 0 + m_bShowAll2: 0 + m_nDisplayPanels1: 0 + m_nDisplayPanels2: 0 --- !u!1 &8644839137304674498 GameObject: m_ObjectHideFlags: 0 @@ -14343,6 +15112,14 @@ PrefabInstance: propertyPath: m_btnOpenCharacter value: objectReference: {fileID: 3803409312124193147} + - target: {fileID: 3414706020273276291, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} + propertyPath: m_Type + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 3414706020273276291, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} + propertyPath: m_FillMethod + value: 0 + objectReference: {fileID: 0} - target: {fileID: 3450976418008317958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} propertyPath: m_AnchoredPosition.x value: 3.0769196 @@ -14367,6 +15144,14 @@ PrefabInstance: propertyPath: m_Name value: HUDPlayer objectReference: {fileID: 0} + - target: {fileID: 5335503683694560306, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} + propertyPath: m_Type + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 5335503683694560306, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} + propertyPath: m_FillMethod + value: 0 + objectReference: {fileID: 0} - target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3} propertyPath: m_Pivot.x value: 0 @@ -14524,6 +15309,116 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1001 &8823639301883745784 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 3233441867675090637} + m_Modifications: + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_Pivot.x + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_Pivot.y + value: 0.5 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchorMax.x + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchorMax.y + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchorMin.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchorMin.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_SizeDelta.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_SizeDelta.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchoredPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_AnchoredPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7292124547459743165, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_SizeDelta.x + value: 6.26355 + objectReference: {fileID: 0} + - target: {fileID: 9152579472324007262, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_Name + value: Win_TeamMain + objectReference: {fileID: 0} + - target: {fileID: 9152579472324007262, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + propertyPath: m_IsActive + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} +--- !u!224 &1801315025016986229 stripped +RectTransform: + m_CorrespondingSourceObject: {fileID: 7101142292773392269, guid: 2060bbc2e61f6db4590ab041243b6294, type: 3} + m_PrefabInstance: {fileID: 8823639301883745784} + m_PrefabAsset: {fileID: 0} --- !u!1001 &8966214373927126746 PrefabInstance: m_ObjectHideFlags: 0 diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs index 81c2970bf6..e280198877 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/generate_item_temp.cs @@ -1611,19 +1611,5 @@ public static class generate_item_temp } #endregion - private static void PrintData(byte[] buf, int offset, int size) - { - for(int i = offset; i < offset + size; i++) - { - BMLogger.Log("[thn]PrintData: buf[" + i + "]: " + buf[i]); - } - } - private static void PrintPreData(byte[] buf, int offset, int size) - { - for(int i = offset-1; i >= offset - size; i--) - { - BMLogger.Log("[thn]PrintPreData: buf[" + i + "]: " + buf[i]); - } - } } diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs index 2a74d52b7f..110003574c 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/itemdataman.cs @@ -505,7 +505,6 @@ namespace BrewMonster ret = -1; break; } - //Debug.Log("[THN]return_item_for_sell: ret:" + ret + " size:" + size + " datatype:" + datatype + " id:" + id); if (ret == 0 && size != 0) { sale_item_ptr_array.Add(item); diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs index e10ad41ffb..ad6a54d52b 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMove.cs @@ -1312,14 +1312,14 @@ namespace BrewMonster.Scripts { if (CECUIManager.Instance != null) { - string message = $"Please deactive the fly mode to start the path finding."; + // string message = $"Please deactive the fly mode to start the path finding."; - CECUIManager.Instance.ShowMessageBox( - "Fly Mode", // 飞行模式 - message, // 消息 - BrewMonster.MessageBoxType.YesButton - ); - Finish(); + // CECUIManager.Instance.ShowMessageBox( + // "Fly Mode", // 飞行模式 + // message, // 消息 + // BrewMonster.MessageBoxType.YesButton + // ); + // Finish(); //return; } break; diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_ManPlayer.cs b/Assets/PerfectWorld/Scripts/Managers/EC_ManPlayer.cs index 02b1458ec8..370dc5ff35 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_ManPlayer.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_ManPlayer.cs @@ -212,9 +212,18 @@ namespace PerfectWorld.Scripts.Managers { info_player_1 info_Player_1 = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); EC_ElsePlayer pPlayer = ElsePlayerEnter(info_Player_1, commandID); - if (pPlayer != null && !pPlayer.m_bBaseInfoReady) + if (pPlayer != null) { - UnityGameSession.GetRoleBaseInfo(1, new List { info_Player_1.cid }); + if (!pPlayer.m_bBaseInfoReady) + { + UnityGameSession.GetRoleBaseInfo(1, new List { info_Player_1.cid }); + } + + //Is equipment data ready + if (!pPlayer.IsEquipDataReady()) + { + UnityGameSession.c2s_CmdGetOtherEquip(1, new List { info_Player_1.cid }); + } } } break; @@ -370,7 +379,7 @@ namespace PerfectWorld.Scripts.Managers UnityGameSession.GetRoleBaseInfo(a2.Count, a2); if (a1.Count > 0) - UnityGameSession.GetRoleEquipData(a1.Count, a1); + UnityGameSession.c2s_CmdGetOtherEquip(a1.Count, a1); // Only get custom data if (a3.Count > 0) @@ -623,6 +632,7 @@ namespace PerfectWorld.Scripts.Managers switch (Msg.dwMsg) { + case EC_MsgDef.MSG_PM_PLAYEREQUIPDATA: var param2 = Convert.ToInt32(Msg.dwParam2); if (param2 == CommandID.EQUIP_DATA) @@ -639,7 +649,7 @@ namespace PerfectWorld.Scripts.Managers Array.Copy((byte[])Msg.dwParam1, 2, buffer, 0, 4); cid = BitConverter.ToInt32(buffer, 0); } - + break; case EC_MsgDef.MSG_PM_PLAYERBASEINFO: @@ -648,17 +658,17 @@ namespace PerfectWorld.Scripts.Managers UnityGameSession.Instance.GetC2SCmdCache().RemovePlayerBaseInfo(cid); break; - /*case long value when value == EC_MsgDef.MSG_PM_PLAYERCUSTOM: - cid = ((GetCustomData_Re)msg.dwParam1).cus_roleid; - break; + //case long value when value == EC_MsgDef.MSG_PM_PLAYERCUSTOM: + // cid = ((GetCustomData_Re)msg.dwParam1).cus_roleid; + // break; case long value when value == EC_MsgDef.MSG_PM_PLAYERFLY: - if (msg.dwParam2 == S2C.OBJECT_TAKEOFF) - cid = ((cmd_object_takeoff)msg.dwParam1).object_id; + if (Convert.ToInt32(Msg.dwParam2) == CommandID.OBJECT_TAKEOFF) + cid = (GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1)).object_id; else - cid = ((cmd_object_landing)msg.dwParam1).object_id; - break;*/ - case EC_MsgDef.MSG_PM_PLAYERATKRESULT: + cid = (GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1)).object_id; + break; + case long value when value == EC_MsgDef.MSG_PM_PLAYERATKRESULT: cmd_object_atk_result pCmdAtk = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); cid = pCmdAtk.attacker_id; break; diff --git a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs index ea170c506f..2f50b604d3 100644 --- a/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs +++ b/Assets/PerfectWorld/Scripts/Move/CECPlayer.cs @@ -19,6 +19,7 @@ using CSNetwork; using ModelRenderer.Scripts.Common; using Unity.VisualScripting; using DG.Tweening.Plugins; +using PerfectWorld.Scripts.Managers; namespace BrewMonster { @@ -2925,6 +2926,72 @@ namespace BrewMonster } m_pActionController.Bind(this, m_pPlayerCECModel); } + + protected bool ShouldUseModel() + { + if (!IsElsePlayer()){ + return true; + } + bool result = (true); + //switch (m_iMemUsage){ + //case CECMemSimplify::MEMUSAGE_NOMODEL: + // result = g_pGame->GetGameRun()->GetMemSimplify()->IsMostImportant(this); + // break; + //case CECMemSimplify::MEMUSAGE_NOMODEL_UNIMPORTANT: + // result = g_pGame->GetGameRun()->GetMemSimplify()->IsImportant(this); + // break; + //} + return result; + } + + protected bool LoadPlayerSkeleton(bool bAtOnce) + { + EC_PLAYERLOADRESULT Ret = default; + if (bAtOnce /*|| !IsLoadThreadReady()*/) + { + // Under normal circumstances, only HostPlayer can reach here + /* if (!LoadPlayerModel(m_iProfession, m_iGender, m_CustomizeData.bodyID, aEquips, szPetPath, Ret, false, false)) + { + a_LogOutput(1, "CECPlayer::Init, failed to call LoadPlayerModel() !"); + return false; + }*/ + + SetPlayerLoadedResult(Ret); + + /* if (IsShapeChanged() && !QueueLoadDummyModel(m_iShape, true)) + { + // ignore the dummy model loading failure + a_LogOutput(1, "CECPlayer::Init, failed to call QueueLoadDummyModel() !"); + }*/ + } + + return true; + } + + protected bool SetPlayerLoadedResult(EC_PLAYERLOADRESULT ret) + { + OnAllResourceReady(); + return true; + } + + protected void OnAllResourceReady() + { + CECHostSkillModel.Instance.Initialize(); + } + + // Is resources ready ? + protected bool IsSkeletonReady() { return (m_dwResFlags & (uint)PlayerResourcesReadyFlag.RESFG_SKELETON) != 0 ? true : false; } + + // Set resources ready flag + protected void SetResReadyFlag(uint dwFlag, bool bSet) + { + if (bSet) + { + m_dwResFlags |= dwFlag; + } + else + m_dwResFlags &= ~dwFlag; + } } public struct PlayActionEvent diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs index 8fb7db980a..d6d1719eec 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommand.cs @@ -1645,6 +1645,13 @@ namespace CSNetwork.S2CCommand { public int iPetIdx; }; + + [StructLayout(LayoutKind.Sequential, Pack = 1)] + public struct cmd_get_other_equip + { + public ushort size; + public int[] idlist; + }; } // Player and NPC state \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs index 62a8caef96..6f544b78f2 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/C2SCommand/C2SCommandFactory.cs @@ -1132,5 +1132,15 @@ namespace CSNetwork.C2SCommand }; return SerializeCommand(CommandID.SEVNPC_SERVE, cmd, content); } + + public static Octets CreateGetOtherEquipCmd(ushort _size, int[] _idlist) + { + var cmd = new cmd_get_other_equip + { + size = _size, + idlist = _idlist + }; + return SerializeCommand(CommandID.GET_OTHER_EQUIP, cmd); + } } } diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta b/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta deleted file mode 100644 index 333a9b1482..0000000000 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/CSNetwork.csproj.meta +++ /dev/null @@ -1,7 +0,0 @@ -fileFormatVersion: 2 -guid: d0c06c588e2a6442488a3542551fb243 -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs index a8ad0cd69e..e0d9bce34c 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GPDataType.cs @@ -766,24 +766,51 @@ namespace CSNetwork.GPDataType public int idPlayer; public long mask_add; public long mask_del; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] public int[] data_add; //0 ~ 29 - - public bool CheckValid(uint buf_size, uint sz) + + public static cmd_equip_data_changed FromBytes(byte[] buffer) { - // sz = sizeof(*this) - sizeof(data_add); + cmd_equip_data_changed cmd = new cmd_equip_data_changed(); + + if (buffer.Length > 0) + { + byte[] tempBuf = new byte[2]; + Array.Copy(buffer, 0, tempBuf, 0, 2); + cmd.crc = BitConverter.ToUInt16(tempBuf, 0); + tempBuf = new byte[4]; + Array.Copy(buffer, 2, tempBuf, 0, 4); + cmd.idPlayer = BitConverter.ToInt32(tempBuf, 0); + tempBuf = new byte[8]; + Array.Copy(buffer, 6, tempBuf, 0, 8); + cmd.mask_add = BitConverter.ToInt64(tempBuf, 0); + tempBuf = new byte[8]; + Array.Copy(buffer, 14, tempBuf, 0, 8); + cmd.mask_del = BitConverter.ToInt64(tempBuf, 0); - // if (buf_size < sz) - // return false; + // calculate the size of the data_add array base on the bits in the mask_add + int sz = 0; + for (int i = 0; i < 32; i++) + { + if ((cmd.mask_add & (1L << i)) != 0) + sz += 4; + } - // for (int i = 0; i < 32; i++) - // { - // if (mask_add & (1 << i)) - // sz += sizeof(int); - // } + if (buffer.Length < sz) + { + cmd.crc = ushort.MaxValue; + return cmd; + } + + + cmd.data_add = new int[sz / 4]; + for (int i = 0; i < cmd.data_add.Length; i++) + { + Array.Copy(buffer, 22 + i * 4, tempBuf, 0, 4); + cmd.data_add[i] = BitConverter.ToInt32(tempBuf, 0); + } + } - // return buf_size >= sz; - return true; + return cmd; } } diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs index a8bd66659d..2b39d0e647 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs @@ -1212,8 +1212,6 @@ namespace CSNetwork // Post MSG_HST_PRODUCEITEM message with command ID as parameter (matches C++ behavior) EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_PRODUCEITEM, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader); break; - - case CommandID.LEARN_SKILL: BMLogger.LogError("### GameDataSend: LEARN_SKILL"); EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_LEARNSKILL, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader); @@ -1878,7 +1876,6 @@ namespace CSNetwork } } - public void c2s_SendCmdGetOtherEquip(int iNumID, List aIDs) { // using namespace C2S; diff --git a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs index 936d79cfda..ae80abe037 100644 --- a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs @@ -655,7 +655,7 @@ namespace BrewMonster.Network Instance._gameSession.GetRoleBaseInfo(iNumRole, aRoleIDs); } - public static void GetRoleEquipData(int iNumRole, List aRoleIDs) + public static void c2s_CmdGetOtherEquip(int iNumRole, List aRoleIDs) { Instance._gameSession.c2s_SendCmdGetOtherEquip(iNumRole, aRoleIDs); } diff --git a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs index 7376e6d17c..25fdf4a58b 100644 --- a/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs +++ b/Assets/PerfectWorld/Scripts/Players/EC_ElsePlayer.cs @@ -16,6 +16,7 @@ using Cysharp.Threading.Tasks; using PerfectWorld.Scripts; using PerfectWorld.Scripts.Managers; using UnityEngine; +using BrewMonster.Scripts.Managers; using System.Collections.Generic; namespace BrewMonster @@ -32,12 +33,12 @@ namespace BrewMonster public A3DVECTOR3 m_vServerPos; // Player's real position on server A3DVECTOR3 m_vStopDir; // The direction when player stop moving // 是否是依附者 = Is it a dependent/attacher? - bool m_bHangerOn; + //bool m_bHangerOn; // 依附者或被依附者id = The ID of the attacher (dependent) or the attached target. - int m_iBuddyId; + //int m_iBuddyId; bool m_bStopMove; // Stop move flag public const float MAX_LAGDIST = 10.0f; // Maximum lag distance - A3DVECTOR3 g_vAxisY = new A3DVECTOR3(0.0f, 1.0f, 0.0f); + //A3DVECTOR3 g_vAxisY = new A3DVECTOR3(0.0f, 1.0f, 0.0f); long m_dwLastMoveTime = 0; // Last move command arrived time float m_fMoveSpeed; // Move speed OtherPlayer_Move_Info m_cdr = new OtherPlayer_Move_Info(); @@ -47,10 +48,11 @@ namespace BrewMonster public CECCounter m_FightCnt; CECEPWorkMan m_pEPWorkMan; private CECEPWork _workStand; + bool m_bLoadingModel = false; // Model loading flag + bool m_bUseHintModel = false; // true, use hint model + long m_i64NewEqpMask; // New equipment mask + int[] m_aNewEquips = new int[InventoryConst.SIZE_ALL_EQUIPIVTR]; // New equipment item ID array CECHostPlayer pHost => EC_ManMessageMono.Instance?.GetECManPlayer?.GetHostPlayer(); - - public int[] m_aNewEquips = new int[InventoryConst.SIZE_ALL_EQUIPIVTR]; // New equipment item ID array - public long m_i64NewEqpMask; // New equipment mask public void Init(info_player_1 Info, int iAppearFlag) { @@ -326,13 +328,13 @@ namespace BrewMonster A3DVECTOR3 vDelta = m_cdr.t * m_cdr.vVelocity; m_cdr.vCenter += vDelta; - m_cdr.vecGroundNormal = g_vAxisY; + m_cdr.vecGroundNormal = EC_Utility.ToA3DVECTOR3(g_vAxisY); if (m_cdr.bTraceGround) SetGroundNormal(m_cdr.vecGroundNormal); else - SetGroundNormal(g_vAxisY); + SetGroundNormal(EC_Utility.ToA3DVECTOR3(g_vAxisY)); - return m_cdr.vCenter - g_vAxisY * m_cdr.vExts.y; + return m_cdr.vCenter - EC_Utility.ToA3DVECTOR3(g_vAxisY) * m_cdr.vExts.y; } void OtherPlayerMove(OtherPlayer_Move_Info OPMoveInfo) @@ -340,7 +342,7 @@ namespace BrewMonster A3DVECTOR3 vDelta = OPMoveInfo.t * OPMoveInfo.vVelocity; OPMoveInfo.vCenter += vDelta; - OPMoveInfo.vecGroundNormal = g_vAxisY; + OPMoveInfo.vecGroundNormal = EC_Utility.ToA3DVECTOR3(g_vAxisY); A3DVECTOR3 vGroundPos, vNormal; // Now, we directly interpolate the pos, and we don't use bTraceGround @@ -392,6 +394,20 @@ namespace BrewMonster protected override void Update() { base.Update(); + + //bool bSelected = pHost.GetSelectedTarget() == GetPlayerInfo().cid; + //if (!m_pPlayerModel && !m_bLoadingModel && IsBaseInfoReady() && IsCustomDataReady() && IsEquipDataReady()) + //{ + // if ((!m_bUseHintModel && m_iBoothState != 2) || bSelected) + // { + // // prepared equip info + // //memcpy(m_aEquips, m_aNewEquips, sizeof(m_aEquips)); + // if (ShouldUseModel()) + // LoadPlayerSkeleton(false); + // m_bLoadingModel = true; + // } + //} + MovingTo(Time.deltaTime); if (pHost != null /*&& pHost.IsSkeletonReady()*/) @@ -432,6 +448,7 @@ namespace BrewMonster { switch (Msg.dwMsg) { + case EC_MsgDef.MSG_PM_PLAYERFLY: OnMsgPlayerFly(Msg); break; case EC_MsgDef.MSG_PM_PLAYERBASEINFO: OnMsgPlayerBaseInfo(Msg); break; case EC_MsgDef.MSG_PM_PLAYEREQUIPDATA: OnMsgPlayerEquipData(Msg); break; case EC_MsgDef.MSG_PM_PLAYERATKRESULT: OnMsgPlayerAtkResult(Msg); break; @@ -499,17 +516,16 @@ namespace BrewMonster iDelMask = 0; aAdded = pCmd.data; } - // else // Msg.dwParam2 == EQUIP_DATA_CHANGED - // { - // cmd_equip_data_changed* pCmd = (cmd_equip_data_changed*)Msg.dwParam1; - // ASSERT(pCmd); + else // Msg.dwParam2 == EQUIP_DATA_CHANGED + { + cmd_equip_data_changed pCmd = cmd_equip_data_changed.FromBytes((byte[])Msg.dwParam1); - // bReset = false; - // crc = pCmd->crc; - // iAddMask = pCmd->mask_add; - // iDelMask = pCmd->mask_del; - // aAdded = iAddMask ? pCmd->data_add : NULL; - // } + bReset = false; + crc = pCmd.crc; + iAddMask = pCmd.mask_add; + iDelMask = pCmd.mask_del; + aAdded = pCmd.data_add; + } // // Change equipment ChangeEquipments(bReset, crc, iAddMask, iDelMask, aAdded); @@ -798,7 +814,7 @@ namespace BrewMonster public void LevelUp() { // if (m_pLevelUpGFX) -// m_pLevelUpGFX->Start(true); +// m_pLevelUpGFX.Start(true); // PlayGfx(EC_Resource.res_GFXFile((int)GfxResourceType.RES_GFX_LEVELUP), null, 1f,1);//PLAYERMODEL_TYPEALL } @@ -818,9 +834,9 @@ namespace BrewMonster // if( m_iBuddyId ) // { - // CECPlayer pBuddy = m_pPlayerMan->GetPlayer(m_iBuddyId); + // CECPlayer pBuddy = m_pPlayerMan.GetPlayer(m_iBuddyId); // if (pBuddy) - // pBuddy->DoEmote(pCmd->emotion); + // pBuddy.DoEmote(pCmd.emotion); // } } else if (cmd == CommandID.OBJECT_EMOTE_RESTORE) @@ -899,11 +915,11 @@ namespace BrewMonster if (cmd == CommandID.PLAYER_GATHER_START) { cmd_player_gather_start pCmd =GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); - EC_ManMatter pMatterMan = EC_ManMessageMono.Instance.GetECManMatter;//g_pGame->GetGameRun()->GetWorld()->GetMatterMan(); + EC_ManMatter pMatterMan = EC_ManMessageMono.Instance.GetECManMatter;//g_pGame.GetGameRun().GetWorld().GetMatterMan(); CECMatter pMatter = pMatterMan.GetMatter(pCmd.mid); - // if (pMatter && pMatter->IsMonsterSpiritMine()) { - // StartMonsterSpiritConnectGfx(pCmd->mid, pMatter->GetPos()); - // m_pEPWorkMan->StartNormalWork(new CECEPWorkPickUp(m_pEPWorkMan, pCmd->use_time * 1000, CECEPWorkPickUp::GATHER_MONSTER_SPIRIT)); + // if (pMatter && pMatter.IsMonsterSpiritMine()) { + // StartMonsterSpiritConnectGfx(pCmd.mid, pMatter.GetPos()); + // m_pEPWorkMan.StartNormalWork(new CECEPWorkPickUp(m_pEPWorkMan, pCmd.use_time * 1000, CECEPWorkPickUp::GATHER_MONSTER_SPIRIT)); // } else { m_pEPWorkMan.StartNormalWork(new CECEPWorkPickUp(m_pEPWorkMan, 0, CECEPWorkPickUp.PickUpType.GATHER_ITEM, pMatter ? pMatter.GetTemplateID() : 0)); // } @@ -912,16 +928,56 @@ namespace BrewMonster { cmd_player_gather_stop pCmd = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); m_pEPWorkMan.FinishWork(CECEPWork.EP_work_ID.WORK_PICKUP); - // m_pEPWorkMan->FinishWork(CECEPWork::WORK_PICKUP); + // m_pEPWorkMan.FinishWork(CECEPWork::WORK_PICKUP); // StopMonsterSpiritConnectGfx(); } else if (cmd == CommandID.MINE_GATHERED) { cmd_mine_gathered pCmd = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1); - // ASSERT(pCmd && pCmd->player_id == m_PlayerInfo.cid); + // ASSERT(pCmd && pCmd.player_id == m_PlayerInfo.cid); // StartMonsterSpiritBallGfx(); } } + + // Is base info ready ? + bool IsBaseInfoReady() { return m_bBaseInfoReady; } + // Is customized data ready ? + bool IsCustomDataReady() { return m_bCustomReady; } + // Is equipment data ready ? + public bool IsEquipDataReady() { return m_bEquipReady; } + + void OnMsgPlayerFly(ECMSG Msg) + { + if (IsAllResReady()) + { + if (Convert.ToInt32(Msg.dwParam2) == CommandID.OBJECT_LANDING) + ShowWing(false); + else // OBJECT_TAKEOFF + ShowWing(true); + } + + if (Convert.ToInt32(Msg.dwParam2) == CommandID.OBJECT_LANDING) + m_dwStates &= ~(uint)PlayerNPCState.GP_STATE_FLY; + else + m_dwStates |= (uint)PlayerNPCState.GP_STATE_FLY; + } + + // Load player equipments + bool LoadPlayerEquipments() + { + ShowEquipments(m_aNewEquips, false, false); + SetResReadyFlag((uint)PlayerResourcesReadyFlag.RESFG_SKIN, true); + + if (m_pPlayerModel) + { + // If weapon changed, action index may be changed, so update here + int iCurAction = GetLowerBodyAction(); + if (IsValidAction(iCurAction)) + PlayAction(iCurAction, false); + } + + return true; + } } // Player appear flag diff --git a/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs b/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs index 39d8402f47..a0a41ef180 100644 --- a/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs +++ b/Assets/PerfectWorld/Scripts/Skills/CECSCSkill.cs @@ -58,6 +58,7 @@ namespace BrewMonster } public CECSkill GetSkill() { return m_pSkill; } public void SetSkill(CECSkill pSkill) { m_pSkill = pSkill; } + public override string GetDesc() { return m_pSkill.GetSkillID().ToString(); } } } diff --git a/Assets/PerfectWorld/Scripts/Task/UI/DlgTaskTrace.cs b/Assets/PerfectWorld/Scripts/Task/UI/DlgTaskTrace.cs index d39953991f..dec24c1cd7 100644 --- a/Assets/PerfectWorld/Scripts/Task/UI/DlgTaskTrace.cs +++ b/Assets/PerfectWorld/Scripts/Task/UI/DlgTaskTrace.cs @@ -274,7 +274,6 @@ namespace BrewMonster.Scripts.Task.UI A3DVECTOR3 vPos = instCoord[0].vPos; strName = FormatFromTable(9393, ((int)vPos.x+4000)/10, ((int)vPos.z+5500)/10); - Debug.Log($"[DlgTaskTrace] AppendCommand: strName {strName}"); strName = string.Format("{0}", strName); //FormatFromTable(9393, ((int)vPos.x+4000)/10, ((int)vPos.z+5500)/10); diff --git a/Assets/PerfectWorld/Scripts/UI/Dialogs/CDlgSkillAction.cs b/Assets/PerfectWorld/Scripts/UI/Dialogs/CDlgSkillAction.cs index f31d3608b8..9db5c6f4df 100644 --- a/Assets/PerfectWorld/Scripts/UI/Dialogs/CDlgSkillAction.cs +++ b/Assets/PerfectWorld/Scripts/UI/Dialogs/CDlgSkillAction.cs @@ -13,17 +13,20 @@ namespace BrewMonster [SerializeField] private SkillUI skillUI; bool m_bOpenAction; - bool m_bReceivedNCPGreeting; // ǷյNPCGreeting + bool m_bReceivedNCPGreeting; // �Ƿ��յ���NPC��Greeting public override void Awake() { base.Awake(); uiSkillButton.onClick.RemoveAllListeners(); uiSkillButton.onClick.AddListener(OnSkillButtonClicked); - EventBus.Unsubscribe(OnOpenSkillUIEvent); EventBus.Subscribe(OnOpenSkillUIEvent); } - + public void OnDestroy() + { + EventBus.Unsubscribe(OnOpenSkillUIEvent); + } + private void OnOpenSkillUIEvent(OpenSkillUIEvent @event) { TryOpenDialog(false); @@ -35,6 +38,10 @@ namespace BrewMonster } public void TryOpenDialog(bool bAction) { + if(skillUI == null) + { + return; + } var boolll = skillUI.gameObject.activeInHierarchy; if (boolll) { diff --git a/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs b/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs index 866835936f..9726cdbd83 100644 --- a/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs +++ b/Assets/PerfectWorld/Scripts/UI/Dialogs/DlgNPC.cs @@ -3827,7 +3827,12 @@ namespace BrewMonster.UI var dlg2 = CECUIManager.Instance.ShowUI(dialogue2); } } - CloseDialogue(); + // CloseDialogue(); + // use for case dont do any thing just close popup : example: click to Thank you in NPC selection + if (idFunction < 0) + { + CloseDialogue(); + } return true; } diff --git a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs index b82fa0425f..965c66e850 100644 --- a/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs +++ b/Assets/PerfectWorld/Scripts/UI/DlgAward/CDlgAward.cs @@ -174,7 +174,6 @@ namespace BrewMonster.Scripts.UI string strDesc = pItem.GetDesc(); pImage.SetHint(strDesc); // TODO pImage.SetOnClick(OnAwardItemClicked); - //Debug.Log("[THN]CDlgAward: pItem.GetDesc():" + pItem.GetDesc()); // af_GetFileTitle(pItem.GetIconFile(), strFile); // TODO strFile.ToLower(); // TODO: Set the image cover here diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs index 786d055af6..ab532883b0 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/AUIImagePicture.cs @@ -5,6 +5,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; @@ -44,6 +45,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay public void SetDataPtr(CECShortcut pvData, string strName = null) { pSC = pvData; + } public void SetInteract(bool isInteract) { @@ -141,6 +143,15 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay { return m_hintText; } + public void Clear() + { + // BMLogger.Log("Clear AUIImagePicture with name: " + name) ; + pSC = null; + this.SetDataPtr(null); + borderImage.SetActive(false); + m_ClockCounter.SetProgressRange(0, 1); + m_ClockCounter.SetProgressPos(1); + } } public struct OpenSkillUIEvent { diff --git a/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs b/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs index f8a1b1c6cd..cc73699cdc 100644 --- a/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs +++ b/Assets/PerfectWorld/Scripts/UI/GamePlay/CdlgQuickBar.cs @@ -23,7 +23,7 @@ namespace BrewMonster public int m_nCurPanel1 = 1; public int m_nCurPanel2 = 1; - int m_CurrentShortcutOffset = 0; + int currentListIndex = 0; /// /// Apply for a license remove later /// @@ -40,7 +40,7 @@ namespace BrewMonster [ContextMenu("SwitchShowSkillShortcut")] public void SwitchShowSkillShortcut() { - m_CurrentShortcutOffset += AUIImagePictureList.Count; + currentListIndex += 1; UpdateShortcuts(); } public bool UpdateShortcuts() @@ -54,7 +54,6 @@ namespace BrewMonster int nCurPanel9 = GetCurPanel1(); int nCurPanel8 = GetCurPanel2(); - int countOffset = 0; CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer(); if (pHost == null) return false; var a_pSCS = new List(); @@ -62,43 +61,17 @@ namespace BrewMonster GetQuickBarNameAndSC(pHost, a_pszPanel, a_pSCS, nCurPanel9, nCurPanel8); if (a_pSCS == null || a_pSCS.Count < 2) return false; -#if LICENSE_VERSION - - int slotIndex = 0; -#endif - if(m_CurrentShortcutOffset >( a_pSCS.Count * 9)){ - m_CurrentShortcutOffset = 0; - } - for (int i = 0; i < a_pSCS.Count; i++) + + if(currentListIndex >= a_pSCS.Count ) { - if (a_pSCS[i] == null) - continue; - - //*//*CDlgQuickBar* pQuickBar = dynamic_cast(GetGameUIMan()->GetDialog(a_pszPanel[i])); - //if (!pQuickBar || !pQuickBar->IsShow()) continue;*//* - -#if LICENSE_VERSION - - for (int j = 0; j < AUIImagePictureList.Count /*a_pSCS.Count*/; j++) - { -#else - int nSlots = Mathf.Min(a_pSCS[i].GetShortcutNum(), AUIImagePictureList.Count); + currentListIndex = 0; + } + int nSlots = Mathf.Min(a_pSCS[currentListIndex].GetShortcutNum(), AUIImagePictureList.Count); for (int j = 0; j < nSlots; j++) { -#endif -#if LICENSE_VERSION - if (slotIndex >= AUIImagePictureList.Count) break; - pCell = AUIImagePictureList[slotIndex]; -#else pCell = AUIImagePictureList[j]; -#endif if (pCell == null || !pCell.gameObject.activeInHierarchy) continue; - if(m_CurrentShortcutOffset > countOffset) - { - countOffset++; - continue; - } - pSC = a_pSCS[i].GetShortcut(j); + pSC = a_pSCS[currentListIndex].GetShortcut(j); pClock = pCell.GetClockIcon(); pClock.SetProgressRange(0, 1); pClock.SetProgressPos(1); @@ -361,9 +334,6 @@ namespace BrewMonster if (pSC != null) { -#if LICENSE_VERSION - slotIndex++; -#endif if (pCell.GetDataPtr() == pSC) { continue; @@ -400,9 +370,10 @@ namespace BrewMonster pCell->SetText(_AL("")); pCell->SetDataPtr(NULL); pCell->SetColor(A3DCOLORRGB(255, 255, 255)); */ + pCell.Clear(); } } - } + return true; } private void GetQuickBarNameAndSC(CECHostPlayer pHost, List pszPanel, List pSCS, int panel9, int panel8) diff --git a/Assets/Scripts/CECHostPlayer.Skill.cs b/Assets/Scripts/CECHostPlayer.Skill.cs index 543c087e6a..9ef7f1257c 100644 --- a/Assets/Scripts/CECHostPlayer.Skill.cs +++ b/Assets/Scripts/CECHostPlayer.Skill.cs @@ -72,6 +72,7 @@ namespace BrewMonster int offset = sizeof(uint); int skillSize = Marshal.SizeOf(); pCmd.skill_list = new cmd_skill_data.SKILL[pCmd.skill_count]; + BMLogger.LogError("OnMsgHstSkillData: skill_count= " + pCmd.skill_count); for (int i = 0; i < pCmd.skill_count; i++) { pCmd.skill_list[i] = GPDataTypeHelper.FromBytes((byte[])Msg.dwParam1, offset); @@ -1818,7 +1819,7 @@ namespace BrewMonster /// /// Cycles through learned skills by removing all shortcuts and adding 8 new skills to slots 0-7. - /// If m_startingSkillID is set (>0), uses that specific skill ID and the next 7 (ID+1 to ID+7). + /// If m_startingSkillID is set (>0), uses that specific skill ID and the next 7 (ID+1 through ID+7). /// Otherwise, cycles through all learned skills in groups of 8. /// #if UNITY_EDITOR @@ -1834,56 +1835,39 @@ namespace BrewMonster // Remove all shortcuts pSCS.RemoveAllShortcuts(); - const int skillsPerCycle = 8; - // If starting skill ID is configured, cycle through groups of 8 starting from that ID + // If starting skill ID is configured, cycle through pairs starting from that ID if (m_startingSkillID > 0) { // Calculate the current skill IDs based on cycle index - // First press: startingID + 0 to startingID + 7 (e.g., 5-12) - // Second press: startingID + 8 to startingID + 15 (e.g., 13-20) - // Third press: startingID + 16 to startingID + 23 (e.g., 21-28) - int baseSkillID = m_startingSkillID + (m_currentSkillCycleIndex * skillsPerCycle); - BMLogger.LogError($"CycleSkillShortcuts: Trying to add skills {baseSkillID} to {baseSkillID + skillsPerCycle - 1}"); - - // Add 8 skills to slots 0-7 - for (int slot = 0; slot < skillsPerCycle; slot++) + // First press: startingID + 0, startingID + 1 (e.g., 5, 6) + // Second press: startingID + 2, startingID + 3 (e.g., 7, 8) + // Third press: startingID + 4, startingID + 5 (e.g., 9, 10) + int firstIndex = m_startingSkillID + (m_currentSkillCycleIndex * 8); + List skillIDs = new List(); + for (int i = 0; i < 8; i++) { - int currentSkillID = baseSkillID + slot; - CECSkill pSkill = GetPositiveSkillByID(currentSkillID); - + skillIDs.Add(firstIndex + i); + } + string skillIDsString = string.Join(", ", skillIDs); + BMLogger.LogError($"CycleSkillShortcuts: Trying to add skills {skillIDsString}"); + for (int i = 0; i < skillIDs.Count; i++) + { + int skillID = skillIDs[i]; + CECSkill pSkill = GetPositiveSkillByID(skillID); if (pSkill != null) { - pSCS.CreateSkillShortcut(slot, pSkill); - Debug.LogError($"CycleSkillShortcuts: Added skill ID {currentSkillID} to slot {slot}"); + pSCS.CreateSkillShortcut(i, pSkill); } else { - Debug.LogError($"CycleSkillShortcuts: Skill with ID {currentSkillID} not found in learned skills"); - // Try to find a valid skill by incrementing starting ID - int find = 1; - while (pSkill == null && find < 100) - { - m_startingSkillID++; - Debug.LogError($"CycleSkillShortcuts: m_startingSkillID {m_startingSkillID}"); - currentSkillID = m_startingSkillID + (m_currentSkillCycleIndex * skillsPerCycle) + slot; - pSkill = GetPositiveSkillByID(currentSkillID); - find++; - } - - if (pSkill != null) - { - pSCS.CreateSkillShortcut(slot, pSkill); - } - else - { - Debug.LogError($"CycleSkillShortcuts: Failed to find skill for slot {slot} after {find} attempts"); - } + Debug.LogError($"CycleSkillShortcuts: Skill with ID {skillID} not found in learned skills"); + break; } } // Increment cycle index for next press - m_currentSkillCycleIndex++; + ++m_currentSkillCycleIndex; // Update UI CDlgQuickBar cDlgQuickBar2 = CECUIManager.Instance?.GetCDlgQuickBar(); @@ -1905,7 +1889,7 @@ namespace BrewMonster } // Calculate how many groups of 8 we can make - int maxGroups = (skillCount + skillsPerCycle - 1) / skillsPerCycle; // Round up division + int maxGroups = (skillCount + 7) / 8; // Round up division // Wrap around if we've reached the end if (m_currentSkillCycleIndex >= maxGroups) @@ -1913,19 +1897,19 @@ namespace BrewMonster m_currentSkillCycleIndex = 0; } - // Calculate skill indices for this cycle - int baseSkillIndex = m_currentSkillCycleIndex * skillsPerCycle; + // Calculate starting skill index for this cycle + int startSkillIndex = m_currentSkillCycleIndex * 8; - // Add up to 8 skills to slots 0-7 - for (int slot = 0; slot < skillsPerCycle; slot++) + // Fill all 8 shortcut slots + for (int slotIndex = 0; slotIndex < 8; slotIndex++) { - int skillIndex = baseSkillIndex + slot; + int skillIndex = startSkillIndex + slotIndex; if (skillIndex < skillCount) { CECSkill pSkill = GetPositiveSkillByIndex(skillIndex); if (pSkill != null) { - pSCS.CreateSkillShortcut(slot, pSkill); + pSCS.CreateSkillShortcut(slotIndex, pSkill); } } } diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 2f68be2bf8..0e0169866b 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -351,41 +351,6 @@ namespace BrewMonster return true; } - private bool LoadPlayerSkeleton(bool bAtOnce) - { - EC_PLAYERLOADRESULT Ret = default; - if (bAtOnce /*|| !IsLoadThreadReady()*/) - { - // Under normal circumstances, only HostPlayer can reach here - /* if (!LoadPlayerModel(m_iProfession, m_iGender, m_CustomizeData.bodyID, aEquips, szPetPath, Ret, false, false)) - { - a_LogOutput(1, "CECPlayer::Init, failed to call LoadPlayerModel() !"); - return false; - }*/ - - SetPlayerLoadedResult(Ret); - - /* if (IsShapeChanged() && !QueueLoadDummyModel(m_iShape, true)) - { - // ignore the dummy model loading failure - a_LogOutput(1, "CECPlayer::Init, failed to call QueueLoadDummyModel() !"); - }*/ - } - - return true; - } - - private bool SetPlayerLoadedResult(EC_PLAYERLOADRESULT ret) - { - OnAllResourceReady(); - return true; - } - - private void OnAllResourceReady() - { - CECHostSkillModel.Instance.Initialize(); - } - private void Start() { mainCam = Camera.main; diff --git a/Assets/Scripts/CECUIManager.cs b/Assets/Scripts/CECUIManager.cs index 17c9527bae..2b19bf3a7a 100644 --- a/Assets/Scripts/CECUIManager.cs +++ b/Assets/Scripts/CECUIManager.cs @@ -31,6 +31,7 @@ public class CECUIManager : MonoSingleton [SerializeField] private UnityEngine.UI.Button btnSecondClick; [SerializeField] CDlgQuickBar m_pDlgQuickBar1; + [SerializeField] GameObject ChangeSkillShortcutButton; public CDlgSkillSubOther m_pDlgSkillSubOther; CDlgMessageBox m_pDlgMessageBox; public CDlgSkillAction m_pDlgSkillAction; @@ -61,6 +62,11 @@ public class CECUIManager : MonoSingleton } ShowUI("Win_Hpmpxp"); + #if UNITY_EDITOR + ChangeSkillShortcutButton.SetActive(true); + #else + ChangeSkillShortcutButton.SetActive(false); + #endif } private void Update()