From 7509724f1838bb64271712d655c9be1ad6e96882 Mon Sep 17 00:00:00 2001 From: VuNgocHaiC7 Date: Thu, 7 May 2026 15:03:07 +0700 Subject: [PATCH 1/5] show button pets bag on display --- Assets/PerfectWorld/Prefab/UIManager.prefab | 269 ++++++++++++++++++ .../Scripts/UI/HUDMainGamePlay.cs | 10 +- 2 files changed, 278 insertions(+), 1 deletion(-) diff --git a/Assets/PerfectWorld/Prefab/UIManager.prefab b/Assets/PerfectWorld/Prefab/UIManager.prefab index 28c13383f3..c75c8eb48b 100644 --- a/Assets/PerfectWorld/Prefab/UIManager.prefab +++ b/Assets/PerfectWorld/Prefab/UIManager.prefab @@ -5279,6 +5279,7 @@ RectTransform: m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7020286574697807252} + - {fileID: 2986444586062603990} - {fileID: 7009781864899289290} - {fileID: 306866035769036868} - {fileID: 7749074831901819156} @@ -6730,6 +6731,11 @@ MonoBehaviour: m_EditorClassIdentifier: inputField: {fileID: 9217902013627304316} chatSystem: {fileID: 0} + typingPreview: + typingPreviewRoot: {fileID: 0} + typingPreviewText: {fileID: 0} + typingPreviewRect: {fileID: 0} + previewVerticalOffset: 8 _spriteMap: {fileID: 0} channelButtons: [] recentWhisperDropdown: {fileID: 0} @@ -9300,6 +9306,7 @@ MonoBehaviour: m_EditorClassIdentifier: skillNameText: {fileID: 0} imageProgress: {fileID: 0} + btnCancel: {fileID: 0} AUIImagePictureList: - {fileID: 2554621538146193444} - {fileID: 453489490841355523} @@ -11486,6 +11493,7 @@ MonoBehaviour: m_EditorClassIdentifier: skillNameText: {fileID: 0} imageProgress: {fileID: 0} + btnCancel: {fileID: 0} uiSkillButton: {fileID: 1484158212461992110} uiAssignSkillButton: {fileID: 3134606437297610210} skillUI: {fileID: 5226149676194325592} @@ -11504,6 +11512,7 @@ MonoBehaviour: m_EditorClassIdentifier: skillNameText: {fileID: 0} imageProgress: {fileID: 0} + btnCancel: {fileID: 0} --- !u!114 &3162833025978482600 MonoBehaviour: m_ObjectHideFlags: 0 @@ -11530,6 +11539,7 @@ MonoBehaviour: m_EditorClassIdentifier: skillNameText: {fileID: 0} imageProgress: {fileID: 0} + btnCancel: {fileID: 0} m_comboSkillImages: [] m_fixedImgPics: [] m_fixedTxts: [] @@ -11554,6 +11564,142 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 01a97b889c107814eb3c4957c683c0b4, type: 3} m_Name: m_EditorClassIdentifier: +--- !u!1 &7074520118473636777 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 241237157041429321} + - component: {fileID: 270969581052521031} + - component: {fileID: 4350240862534366165} + m_Layer: 5 + m_Name: Text (TMP) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &241237157041429321 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074520118473636777} + 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: 2986444586062603990} + 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 &270969581052521031 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074520118473636777} + m_CullTransparentMesh: 1 +--- !u!114 &4350240862534366165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7074520118473636777} + 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: Pets Bag + 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: 24 + m_fontSizeBase: 24 + 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 &7085407906379676811 GameObject: m_ObjectHideFlags: 0 @@ -12179,6 +12325,127 @@ MonoBehaviour: m_hasFontAssetChanged: 0 m_baseMaterial: {fileID: 0} m_maskOffset: {x: 0, y: 0, z: 0, w: 0} +--- !u!1 &7225530504037035146 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2986444586062603990} + - component: {fileID: 6978431260668590831} + - component: {fileID: 4263386157695161978} + - component: {fileID: 2284650751748751962} + m_Layer: 5 + m_Name: PetBagsBtn + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &2986444586062603990 +RectTransform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7225530504037035146} + 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: 241237157041429321} + m_Father: {fileID: 7304194108989414091} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 1} +--- !u!222 &6978431260668590831 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7225530504037035146} + m_CullTransparentMesh: 1 +--- !u!114 &4263386157695161978 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7225530504037035146} + 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 &2284650751748751962 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7225530504037035146} + 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: 4263386157695161978} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &7311465216184143602 GameObject: m_ObjectHideFlags: 0 @@ -12258,6 +12525,7 @@ MonoBehaviour: _btnTaskTrace: {fileID: 3253955040536933532} _taskTraceParent: {fileID: 2578159539417438268} _btnTeamList: {fileID: 540188344648694736} + _btnPetBags: {fileID: 2284650751748751962} --- !u!1 &7352847439676120744 GameObject: m_ObjectHideFlags: 0 @@ -13974,6 +14242,7 @@ MonoBehaviour: m_EditorClassIdentifier: skillNameText: {fileID: 0} imageProgress: {fileID: 0} + btnCancel: {fileID: 0} AUIImagePictureList: - {fileID: 445184971459596056} - {fileID: 3804662600613272361} diff --git a/Assets/PerfectWorld/Scripts/UI/HUDMainGamePlay.cs b/Assets/PerfectWorld/Scripts/UI/HUDMainGamePlay.cs index 4d323a8fb3..e8ff08fd61 100644 --- a/Assets/PerfectWorld/Scripts/UI/HUDMainGamePlay.cs +++ b/Assets/PerfectWorld/Scripts/UI/HUDMainGamePlay.cs @@ -17,6 +17,7 @@ namespace BrewMonster [SerializeField]private Toggle _btnTaskTrace; [SerializeField]private Transform _taskTraceParent; [SerializeField]private Button _btnTeamList; + [SerializeField]private Button _btnPetBags; public const int AUIPROGRESS_MAX = 100; private DlgWinPrgs2 _dlgWinPrgs; @@ -32,6 +33,7 @@ namespace BrewMonster _btnTeam.onValueChanged.AddListener(OnTeamClicked); _btnTaskTrace.onValueChanged.AddListener(OnTaskTraceClicked); _btnTeamList.onClick.AddListener(OnTeamListClicked); + _btnPetBags.onClick.AddListener(OnCallPetBagsClicked); EventBus.Unsubscribe(OnUIEvent); EventBus.Subscribe(OnUIEvent); } @@ -44,6 +46,7 @@ namespace BrewMonster _btnTeam.onValueChanged.RemoveListener(OnTeamClicked); _btnTaskTrace.onValueChanged.RemoveListener(OnTaskTraceClicked); _btnTeamList.onClick.RemoveListener(OnTeamListClicked); + _btnPetBags.onClick.RemoveListener(OnCallPetBagsClicked); EventBus.Unsubscribe(OnUIEvent); } @@ -145,9 +148,14 @@ namespace BrewMonster } } + private void OnCallPetBagsClicked() + { + EC_Game.GetGameRun().GetUIManager().GetInGameUIMan().PopupPetListDialog(); + } + #region Progress Bar - public void RefreshStatusBar() + public void RefreshStatusBar() { bool bActive = true; // if( GetGameUIMan()->GetActiveDialog() && From f93c2a0984c3c77791d93a4f3f18445ef8897b55 Mon Sep 17 00:00:00 2001 From: vuong dinh hoang Date: Thu, 7 May 2026 15:13:44 +0700 Subject: [PATCH 2/5] skill hoa roi cua phat --- .../Materials/Skill/Wu yinfu/toutou222.mat | 22 ++++++++++++++++++- .../Materials/Skill/Wu yinfu/yuanhuanblu.mat | 22 ++++++++++++++++++- .../Materials/Skill/Wuse fu/flare010.mat | 22 ++++++++++++++++++- .../Jianghu/Materials/Skill/Wuse fu/zsj6.mat | 22 ++++++++++++++++++- .../Materials/Skill/Wuse fu/粉色光.mat | 22 ++++++++++++++++++- .../Jianghu/Materials/Skill/Yu jian/羽毛.mat | 22 ++++++++++++++++++- .../Fa gong fu ji zhong 2/pattern014.mat | 22 ++++++++++++++++++- Assets/Resources/DebugCmdHistory.json | 14 ++++++------ 8 files changed, 154 insertions(+), 14 deletions(-) diff --git a/Assets/Jianghu/Materials/Skill/Wu yinfu/toutou222.mat b/Assets/Jianghu/Materials/Skill/Wu yinfu/toutou222.mat index a64098fb1a..e739921fcf 100755 --- a/Assets/Jianghu/Materials/Skill/Wu yinfu/toutou222.mat +++ b/Assets/Jianghu/Materials/Skill/Wu yinfu/toutou222.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Skill/Wu yinfu/yuanhuanblu.mat b/Assets/Jianghu/Materials/Skill/Wu yinfu/yuanhuanblu.mat index 14fe50600e..226e64ebd4 100755 --- a/Assets/Jianghu/Materials/Skill/Wu yinfu/yuanhuanblu.mat +++ b/Assets/Jianghu/Materials/Skill/Wu yinfu/yuanhuanblu.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Skill/Wuse fu/flare010.mat b/Assets/Jianghu/Materials/Skill/Wuse fu/flare010.mat index 39ffdb0c29..7ecf1cc487 100755 --- a/Assets/Jianghu/Materials/Skill/Wuse fu/flare010.mat +++ b/Assets/Jianghu/Materials/Skill/Wuse fu/flare010.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Skill/Wuse fu/zsj6.mat b/Assets/Jianghu/Materials/Skill/Wuse fu/zsj6.mat index acc06921ea..9b79bb4fbf 100755 --- a/Assets/Jianghu/Materials/Skill/Wuse fu/zsj6.mat +++ b/Assets/Jianghu/Materials/Skill/Wuse fu/zsj6.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Skill/Wuse fu/粉色光.mat b/Assets/Jianghu/Materials/Skill/Wuse fu/粉色光.mat index 3d50806aad..5adb336ab7 100755 --- a/Assets/Jianghu/Materials/Skill/Wuse fu/粉色光.mat +++ b/Assets/Jianghu/Materials/Skill/Wuse fu/粉色光.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Skill/Yu jian/羽毛.mat b/Assets/Jianghu/Materials/Skill/Yu jian/羽毛.mat index e304e31714..f7506f4307 100755 --- a/Assets/Jianghu/Materials/Skill/Yu jian/羽毛.mat +++ b/Assets/Jianghu/Materials/Skill/Yu jian/羽毛.mat @@ -24,7 +24,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -131,7 +135,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -139,7 +147,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -157,10 +169,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Jianghu/Materials/Weapon/Fa gong fu ji zhong 2/pattern014.mat b/Assets/Jianghu/Materials/Weapon/Fa gong fu ji zhong 2/pattern014.mat index b7f76849b7..5f15a5249d 100644 --- a/Assets/Jianghu/Materials/Weapon/Fa gong fu ji zhong 2/pattern014.mat +++ b/Assets/Jianghu/Materials/Weapon/Fa gong fu ji zhong 2/pattern014.mat @@ -11,7 +11,11 @@ Material: m_Shader: {fileID: 4800000, guid: 0a016a83287664641b867743f19faf14, type: 3} m_Parent: {fileID: 0} m_ModifiedSerializedProperties: 0 - m_ValidKeywords: [] + m_ValidKeywords: + - _DISSOLVETEXUVS_NORMAL + - _DISTORTTEXUVS_NORMAL + - _MAINTEXUVS_NORMAL + - _MASKTEXUVS_NORMAL m_InvalidKeywords: - _DISSOLVETEXAR_ON - _DISTORTTEXAR_ON @@ -118,7 +122,11 @@ Material: - _DissolveFactor: 0 - _DissolveSoft: 0.1 - _DissolveTexAR: 1 + - _DissolveTexClampU: 0 + - _DissolveTexClampV: 0 + - _DissolveTexRotate: 0 - _DissolveTexUSpeed: 0 + - _DissolveTexUVS: 0 - _DissolveTexVSpeed: 0 - _DissolveWide: 0.05 - _DistortDissolveTex: 0 @@ -126,7 +134,11 @@ Material: - _DistortMainTex: 0 - _DistortMaskTex: 0 - _DistortTexAR: 1 + - _DistortTexClampU: 0 + - _DistortTexClampV: 0 + - _DistortTexRotate: 0 - _DistortTexUSpeed: 0 + - _DistortTexUVS: 0 - _DistortTexVSpeed: 0 - _Dst: 1 - _DstBlend: 0 @@ -144,10 +156,18 @@ Material: - _GlossyReflections: 0 - _MainAlpha: 1 - _MainTexAR: 0 + - _MainTexClampU: 0 + - _MainTexClampV: 0 + - _MainTexRotate: 0 - _MainTexUSpeed: 0 + - _MainTexUVS: 0 - _MainTexVSpeed: 0 - _MaskTexAR: 1 + - _MaskTexClampU: 0 + - _MaskTexClampV: 0 + - _MaskTexRotate: 0 - _MaskTexUSpeed: 0 + - _MaskTexUVS: 0 - _MaskTexVSpeed: 0 - _Metallic: 0 - _OcclusionStrength: 1 diff --git a/Assets/Resources/DebugCmdHistory.json b/Assets/Resources/DebugCmdHistory.json index b2a75db2d7..49637133fb 100644 --- a/Assets/Resources/DebugCmdHistory.json +++ b/Assets/Resources/DebugCmdHistory.json @@ -1,5 +1,12 @@ { "items": [ + { + "header": 8903, + "param": 73125, + "hasParam": true, + "describe": "NoCooldown", + "lastUsedUtcTicks": 639137253458330904 + }, { "header": 2000, "param": 0, @@ -14,13 +21,6 @@ "describe": "Buff rage", "lastUsedUtcTicks": 639136573213427110 }, - { - "header": 8903, - "param": 73125, - "hasParam": true, - "describe": "NoCooldown", - "lastUsedUtcTicks": 639136557491801533 - }, { "header": 1988, "param": 0, From 925f2cf562bf90b0cdf6f629e434db1c1c54fada Mon Sep 17 00:00:00 2001 From: HungDK <> Date: Thu, 7 May 2026 15:51:33 +0700 Subject: [PATCH 3/5] Fix logout flow, reentry instead half logout because sdk only except that --- .../Scripts/Network/CSNetwork/GameSession.cs | 7 +-- .../Scripts/Network/UnityGameSession.cs | 7 ++- .../Scripts/UI/Login/LoginScreenUI.cs | 46 ++++++++++++++++--- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs index 4bcd7bb5a8..2f91fcde21 100644 --- a/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs @@ -830,11 +830,8 @@ namespace CSNetwork // a_LogOutput(1, "CECGameSession::OnPrtcPlayerLogout, LogoutFlag=1 replaced by 2."); // g_pGame->GetGameRun()->SetLogoutFlag(2); // } - if (!IsConnected && EC_Game.GetGameRun().GetLogoutFlag() == 1) - { - // _logger.Log(LogType.Log, "CECGameSession::OnPrtcPlayerLogout, LogoutFlag=1 replaced by 2."); - EC_Game.GetGameRun().SetLogoutFlag(2); - } + // Keep half logout as role-select even if the server closes the socket. + // LoginScene will reconnect with saved credentials if needed. } /// Format parsed PLAYER_EQUIP_DETAIL with real game data: slot names and item names from element data. diff --git a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs index ddc7c0b716..03dc90ee87 100644 --- a/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs +++ b/Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs @@ -264,8 +264,11 @@ namespace BrewMonster.Network // Force the login UI to refresh to the correct entry state immediately. ApplyLoginEntryToUI(entryTarget); - // now we have to logout from Tech3C SDK - Tech3CSDKWrapper.Instance.Logout(); + if (entryTarget == LogoutFlowState.LoginEntryTarget.LoginUI) + { + // Account logout only; half logout keeps SDK credentials so LoginScene can reopen role select. + Tech3CSDKWrapper.Instance.Logout(); + } } private static void ApplyLoginEntryToUI(LogoutFlowState.LoginEntryTarget entryTarget) diff --git a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs index 5cbde28ad9..c6e873bc5c 100644 --- a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs +++ b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs @@ -84,11 +84,8 @@ namespace BrewMonster.UI _passwordInputField.text = PlayerPrefs.GetString("password", ""); #endif - // Default: login UI first, select-role hidden until login succeeds. - if (_selectCharacterScreen != null) - _selectCharacterScreen.gameObject.SetActive(false); - - // ApplyLoginEntry(LogoutFlowState.ConsumeNextLoginEntry()); + // Default is login UI, unless a logout flow asked us to return directly to role select. + ApplyLoginEntry(LogoutFlowState.ConsumeNextLoginEntry()); } private AudioClip PickLoginBGM() @@ -181,8 +178,43 @@ namespace BrewMonster.UI await UnityGameSession.Login(username, password, OnLoginComplete); } - // NOTE: Previously had an ApplyLoginEntry helper that referenced LogoutFlowState. - // It was unused and caused build/lint issues on some platforms, so it's been removed. + public async void ApplyLoginEntry(LogoutFlowState.LoginEntryTarget entryTarget) + { + if (entryTarget != LogoutFlowState.LoginEntryTarget.SelectRole) + { + if (_selectCharacterScreen != null) + _selectCharacterScreen.gameObject.SetActive(false); + + _loginInProgress = false; + if (_loginButton != null) + _loginButton.interactable = true; + return; + } + + if (_selectCharacterScreen != null) + _selectCharacterScreen.gameObject.SetActive(true); + + _loginInProgress = true; + if (_loginButton != null) + _loginButton.interactable = false; + + var session = UnityGameSession.Instance?.GameSession; + if (session != null && session.IsConnected) + { + UnityGameSession.GetRoleListAsync(OnGetRoleListComplete); + return; + } + + string username = PlayerPrefs.GetString("username", ""); + string password = PlayerPrefs.GetString("password", ""); + if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password)) + { + await BeginGameLoginAsync(username, password); + return; + } + + OnExitCharacterSelect(); + } /// /// Callback when the login is complete. From 496856930c1da42350aabcb39a466e0bca0dacdb Mon Sep 17 00:00:00 2001 From: vuong dinh hoang Date: Thu, 7 May 2026 16:57:15 +0700 Subject: [PATCH 4/5] remove log --- Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs index da1bf05bf2..328005ceeb 100644 --- a/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs +++ b/Assets/PerfectWorld/Scripts/Managers/CECAttacksMan.cs @@ -575,7 +575,7 @@ namespace BrewMonster m_szHitGfx = string.IsNullOrEmpty(hitGfxName) ? null : await AddressableManager.Instance.LoadPrefabAsync("gfx/" + hitGfxName); m_szHitGrndGfx = string.IsNullOrEmpty(hitGrdGfxName) ? null : await AddressableManager.Instance.LoadPrefabAsync("gfx/" + hitGrdGfxName); - BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + hitGfxName); + // BMLogger.LogError("HoangDev: Load A3DSkillGfxComposer GFX name: " + hitGfxName); if (m_szFlyGfx == null && !string.IsNullOrEmpty(flyGfxName)) { m_szFlyGfx = Resources.Load("GFX/" + "PlaceHolder"); From 02971cbb0827af0c49619c91cc1950d95db80d98 Mon Sep 17 00:00:00 2001 From: CuongNV <> Date: Thu, 7 May 2026 17:29:15 +0700 Subject: [PATCH 5/5] fix reset camera show face when logout --- .../Scripts/UI/HostPlayerPortraitCapture.cs | 35 +++++++++++++++++++ .../Scripts/UI/Login/LoginScreenUI.cs | 1 + Assets/Scripts/SelecScreenCharacter.cs | 8 +++++ 3 files changed, 44 insertions(+) diff --git a/Assets/PerfectWorld/Scripts/UI/HostPlayerPortraitCapture.cs b/Assets/PerfectWorld/Scripts/UI/HostPlayerPortraitCapture.cs index c14e8747fa..479cd09743 100644 --- a/Assets/PerfectWorld/Scripts/UI/HostPlayerPortraitCapture.cs +++ b/Assets/PerfectWorld/Scripts/UI/HostPlayerPortraitCapture.cs @@ -74,6 +74,7 @@ namespace BrewMonster private readonly List _portraitMaterialInstances = new(); private readonly List _previewMaterialRestore = new(); + private readonly List _previewLayerRestore = new(); // Stored while waiting for async model load; -1 means no pending request private int _pendingRoleId = -1; @@ -84,6 +85,12 @@ namespace BrewMonster public Material[] SharedMaterials; } + private struct TransformLayerSnapshot + { + public Transform Transform; + public int Layer; + } + public RenderTexture OutputTexture => outputTexture; // ────────────────────────────────────────────────────────────────────────────── @@ -122,6 +129,7 @@ namespace BrewMonster { UnsubscribeModelReady(); RestorePreviewMaterials(); + RestorePreviewLayers(); DetachCamera(); if (PlayerModelPreview.Instance == null) @@ -144,6 +152,7 @@ namespace BrewMonster public void SetHostPlayer(Transform hostPlayerRoot) { RestorePreviewMaterials(); + RestorePreviewLayers(); DetachCamera(); if (hostPlayerRoot == null) return; _modelTransform = hostPlayerRoot; @@ -158,6 +167,7 @@ namespace BrewMonster { UnsubscribeModelReady(); RestorePreviewMaterials(); + RestorePreviewLayers(); DetachCamera(); _modelTransform = null; _headBone = null; @@ -258,6 +268,7 @@ namespace BrewMonster } // Move model to portrait layer so the dedicated camera can render it + CaptureLayersForRestore(_modelTransform.gameObject); PortraitCaptureUtils.SetLayerRecursive(_modelTransform.gameObject, portraitLayer); // Find head bone — primary target for camera attachment @@ -312,6 +323,30 @@ namespace BrewMonster } } + private void CaptureLayersForRestore(GameObject root) + { + if (root == null) return; + + var transforms = root.GetComponentsInChildren(true); + for (int i = 0; i < transforms.Length; i++) + { + var t = transforms[i]; + if (t == null) continue; + _previewLayerRestore.Add(new TransformLayerSnapshot { Transform = t, Layer = t.gameObject.layer }); + } + } + + private void RestorePreviewLayers() + { + for (int i = 0; i < _previewLayerRestore.Count; i++) + { + var snap = _previewLayerRestore[i]; + if (snap.Transform != null) + snap.Transform.gameObject.layer = snap.Layer; + } + _previewLayerRestore.Clear(); + } + /// /// Parents the portrait camera to "Bip01 Head" and sets its initial position /// directly in front of the face. diff --git a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs index c6e873bc5c..ecfa569367 100644 --- a/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs +++ b/Assets/PerfectWorld/Scripts/UI/Login/LoginScreenUI.cs @@ -56,6 +56,7 @@ namespace BrewMonster.UI { Tech3CSDKWrapper.Instance.SetLoginCallback(OnLoginCallback); Tech3CSDKWrapper.Instance.SetLogoutCallback(OnLogoutCallback); + HostPlayerPortraitCapture.Instance?.ClearPortrait(); if(PlayerModelPreview.Instance != null) { diff --git a/Assets/Scripts/SelecScreenCharacter.cs b/Assets/Scripts/SelecScreenCharacter.cs index 3a2ee8006d..c2d5f588ac 100644 --- a/Assets/Scripts/SelecScreenCharacter.cs +++ b/Assets/Scripts/SelecScreenCharacter.cs @@ -53,6 +53,13 @@ namespace BrewMonster.UI private void OnDisable() { _btnEnterGame.onClick.RemoveListener(OnClickedEnterGame); + if (_showModelReadyCoroutine != null) + { + StopCoroutine(_showModelReadyCoroutine); + _showModelReadyCoroutine = null; + } + _pendingShowModelRoleId = -1; + HostPlayerPortraitCapture.Instance?.ClearPortrait(); _selectingCharacterItemUI = null; } @@ -242,6 +249,7 @@ namespace BrewMonster.UI private void OnClickedExit() { + HostPlayerPortraitCapture.Instance?.ClearPortrait(); _onExit?.Invoke(); gameObject.SetActive(false);