Merge remote-tracking branch 'origin/implement_task_UI' into feature/fix-dyn-tasks
This commit is contained in:
@@ -0,0 +1,397 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &111271885693053298
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 562642038236230410}
|
||||
- component: {fileID: 3682957078725161371}
|
||||
m_Layer: 5
|
||||
m_Name: EmotionWindow
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &562642038236230410
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 111271885693053298}
|
||||
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: 6149182975052679886}
|
||||
m_Father: {fileID: 0}
|
||||
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!114 &3682957078725161371
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 111271885693053298}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: e42ed2cbf208e60488b8bc1d63a3b1d7, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
slot: 0
|
||||
--- !u!1 &2171808091279523492
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 2795398590258317195}
|
||||
- component: {fileID: 659088020461764430}
|
||||
- component: {fileID: 8890278808492480577}
|
||||
- component: {fileID: 1984081446122729312}
|
||||
m_Layer: 5
|
||||
m_Name: Button
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &2795398590258317195
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2171808091279523492}
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 2.5381, y: 2.5381, z: 2.5381}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 3590330098133380806}
|
||||
m_Father: {fileID: 6149182975052679886}
|
||||
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: -435}
|
||||
m_SizeDelta: {x: 160, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &659088020461764430
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2171808091279523492}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8890278808492480577
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2171808091279523492}
|
||||
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 &1984081446122729312
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2171808091279523492}
|
||||
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: 8890278808492480577}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 3682957078725161371}
|
||||
m_TargetAssemblyTypeName: BrewMonster.UI.EmoteWindow, Assembly-CSharp
|
||||
m_MethodName: OnDragClick
|
||||
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 &4678669480211337198
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6149182975052679886}
|
||||
- component: {fileID: 3021640613906495181}
|
||||
- component: {fileID: 7003611699134334505}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6149182975052679886
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4678669480211337198}
|
||||
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: 2795398590258317195}
|
||||
m_Father: {fileID: 562642038236230410}
|
||||
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 &3021640613906495181
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4678669480211337198}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7003611699134334505
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4678669480211337198}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_Material: {fileID: 0}
|
||||
m_Color: {r: 0.8679245, g: 0.7242908, b: 0.1514774, a: 0.20392157}
|
||||
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 &6260694520480554099
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3590330098133380806}
|
||||
- component: {fileID: 7504965690579856955}
|
||||
- component: {fileID: 8982944209707270503}
|
||||
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 &3590330098133380806
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6260694520480554099}
|
||||
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: 2795398590258317195}
|
||||
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 &7504965690579856955
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6260694520480554099}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8982944209707270503
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6260694520480554099}
|
||||
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: WaveHand
|
||||
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: 0
|
||||
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}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: eb88919320b4229459c83b6b1f8f1e7b
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -21,3 +21,5 @@ MonoBehaviour:
|
||||
prefab: {fileID: 903595479696773158, guid: cf26d96ae7d984ba8a5b6cef44adffeb, type: 3}
|
||||
- id: Win_Task
|
||||
prefab: {fileID: 6999114045547682248, guid: 8027cada0ef5e4a9f827001b4747174d, type: 3}
|
||||
- id: Win_SkillSubAction
|
||||
prefab: {fileID: 111271885693053298, guid: eb88919320b4229459c83b6b1f8f1e7b, type: 3}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3c180e1658dbb5bd3b438f36770253ae8e04dff1d86b8b22e2bc279b683134d8
|
||||
size 10732
|
||||
oid sha256:305e74354eced472681f3a976c741e7e70d3ce8ba20714b215ac2e700299a956
|
||||
size 10892
|
||||
|
||||
@@ -750,6 +750,14 @@ namespace BrewMonster.Scripts
|
||||
{
|
||||
return IsWorkRunning(Host_work_ID.WORK_SIT);
|
||||
}
|
||||
public bool IsStanding()
|
||||
{
|
||||
return IsWorkRunning(Host_work_ID.WORK_STAND);
|
||||
}
|
||||
public bool IsBeingBound()
|
||||
{
|
||||
return IsWorkRunning(Host_work_ID.WORK_BEBOUND);
|
||||
}
|
||||
//todo: use this method
|
||||
public void FinishAllWork(bool bGotoStand)
|
||||
{
|
||||
|
||||
@@ -62,6 +62,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
case EC_MsgDef.MSG_PM_FACTION_PVP_MASK_MODIFY:
|
||||
case EC_MsgDef.MSG_PM_PLAYERATKRESULT:
|
||||
case EC_MsgDef.MSG_PM_CASTSKILL:
|
||||
case EC_MsgDef.MSG_PM_PLAYERDOEMOTE:
|
||||
TransmitMessage(Msg);
|
||||
break;
|
||||
case int value when value == EC_MsgDef.MSG_PM_PLAYERDIED:
|
||||
@@ -620,6 +621,18 @@ namespace PerfectWorld.Scripts.Managers
|
||||
case CommandID.PLAYER_CAST_RUNE_SKILL: cid = ((cmd_player_cast_rune_skill*)Msg.dwParam1).caster; break;
|
||||
case CommandID.PLAYER_CAST_RUNE_INSTANT_SKILL: cid = ((cmd_player_cast_rune_instant_skill*)Msg.dwParam1).caster; break;*/
|
||||
}
|
||||
break;
|
||||
case long value when value == EC_MsgDef.MSG_PM_PLAYERDOEMOTE:
|
||||
|
||||
if (Convert.ToInt32(Msg.dwParam2) == CommandID.OBJECT_DO_EMOTE)
|
||||
{
|
||||
cmd_object_do_emote pCmdDoEmote = GPDataTypeHelper.FromBytes<cmd_object_do_emote>((byte[])Msg.dwParam1);
|
||||
cid = pCmdDoEmote.id;
|
||||
}
|
||||
else // Msg.dwParam2 == OBJECT_EMOTE_RESTORE
|
||||
{
|
||||
// cid = ((cmd_object_emote_restore*)Msg.dwParam1)->id;
|
||||
}
|
||||
|
||||
break;
|
||||
// ⚠️ Các case khác cũng tương tự, chỉ việc lấy ra đúng trường id / caster / user ...
|
||||
|
||||
@@ -652,6 +652,14 @@ namespace CSNetwork.C2SCommand
|
||||
|
||||
return octets;
|
||||
}
|
||||
public static Octets CreateEmoteActionCmd(int wPose)
|
||||
{
|
||||
cmd_emote_action pCmd = new cmd_emote_action()
|
||||
{
|
||||
action = (ushort)wPose
|
||||
};
|
||||
return SerializeCommand(CommandID.EMOTE_ACTION, pCmd);
|
||||
}
|
||||
|
||||
// TODO: Check orginal C++ implementation
|
||||
public static Octets CreateTaskNotifyCmd(byte[] pData, uint dwDataSize)
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using System.Collections.Generic;
|
||||
using BrewMonster;
|
||||
|
||||
namespace CSNetwork
|
||||
{
|
||||
@@ -61,6 +62,11 @@ namespace CSNetwork
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
ECMSG msg = Instance.m_MsgList.Dequeue();
|
||||
if (!Instance.m_MsgHandlerList.ContainsKey(msg.iManager))
|
||||
{
|
||||
BMLogger.LogError("Did not find handler ID: " + msg.iManager);
|
||||
continue;
|
||||
}
|
||||
Instance.m_tempHandler = Instance.m_MsgHandlerList[msg.iManager];
|
||||
if (Instance.m_tempHandler != null)
|
||||
{
|
||||
|
||||
@@ -184,7 +184,7 @@ namespace CSNetwork
|
||||
public static int MSG_PM_PLAYERSITDOWN = 369; // Player sit down / stand up
|
||||
public const int MSG_PM_PLAYERATKRESULT = 370; // Player attack result
|
||||
public static int MSG_PM_PLAYEREXTSTATE = 371; // Player extend states changed
|
||||
public static int MSG_PM_PLAYERDOEMOTE = 372; // Player do emotion
|
||||
public const int MSG_PM_PLAYERDOEMOTE = 372; // Player do emotion
|
||||
public static int MSG_PM_PLAYERUSEITEM = 373; // Player use item
|
||||
public static int MSG_PM_PLAYERCUSTOM = 374; // Player custom data
|
||||
public static int MSG_PM_ENCHANTRESULT = 375; // Enchant result
|
||||
|
||||
@@ -1759,6 +1759,12 @@ namespace CSNetwork.GPDataType
|
||||
public ushort id;
|
||||
public int expiretime;
|
||||
public char flag;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct cmd_emote_action
|
||||
{
|
||||
public ushort action;
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
@@ -1826,6 +1832,13 @@ namespace CSNetwork.GPDataType
|
||||
public int op;
|
||||
public int goal_id;
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct cmd_object_do_emote
|
||||
{
|
||||
public int id;
|
||||
public ushort emotion;
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
struct cmd_task_deliver_item
|
||||
|
||||
@@ -733,6 +733,10 @@ namespace CSNetwork
|
||||
case CommandID.OWN_EXT_PROP:
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_OWNEXTPROP, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
||||
break;
|
||||
case CommandID.OBJECT_DO_EMOTE:
|
||||
case CommandID.OBJECT_EMOTE_RESTORE:
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_PLAYERDOEMOTE, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1286,7 +1290,12 @@ namespace CSNetwork
|
||||
iCount += iNumSend;
|
||||
}
|
||||
}
|
||||
|
||||
public void c2s_SendCmdEmoteAction(uint wPose)
|
||||
{
|
||||
gamedatasend gamedatasend = new gamedatasend();
|
||||
gamedatasend.Data = C2SCommandFactory.CreateEmoteActionCmd((int)wPose);
|
||||
SendProtocol(gamedatasend);
|
||||
}
|
||||
public void c2s_SendCmdTaskNotify(byte[] pData, uint dwDataSize)
|
||||
{
|
||||
gamedatasend gamedatasend = new gamedatasend();
|
||||
|
||||
@@ -329,6 +329,10 @@ namespace BrewMonster.Network
|
||||
Instance._gameSession.c2s_SendCmdGetAllData(byPack, byEquip, byTask);
|
||||
}
|
||||
|
||||
public static void c2s_CmdEmoteAction(uint wPose)
|
||||
{
|
||||
Instance._gameSession.c2s_SendCmdEmoteAction(wPose);
|
||||
}
|
||||
public static void c2s_CmdTaskNotify( byte[] pBuf, uint sz)
|
||||
{
|
||||
Instance._gameSession.c2s_SendCmdTaskNotify( pBuf, sz);
|
||||
|
||||
@@ -778,20 +778,154 @@ namespace BrewMonster
|
||||
{
|
||||
return m_iSCType;
|
||||
}
|
||||
//public abstract CECShortcut Clone();
|
||||
|
||||
public virtual CECShortcut Clone()
|
||||
{
|
||||
return new CECShortcut();
|
||||
}
|
||||
public virtual bool Execute() { return true; }
|
||||
}
|
||||
|
||||
/* public class CECSCCommand : CECShortcut
|
||||
{
|
||||
public const int CMD_PLAYPOSE = 1; // Example constant
|
||||
public override ShortcutType GetType() => ShortcutType.SCT_COMMAND;
|
||||
public override CECShortcut Clone() => null;
|
||||
public int GetCommandID() => 0;
|
||||
public int GetParam() => 0;
|
||||
}
|
||||
public class CECSCCommand : CECShortcut
|
||||
{
|
||||
private int m_iCommand; // Command ID
|
||||
private uint m_dwParam; // Parameter
|
||||
public enum CommandID
|
||||
{
|
||||
CMD_UNKNOWN = -1,
|
||||
CMD_SITDOWN = 0,
|
||||
CMD_WALKRUN,
|
||||
CMD_NORMALATTACK,
|
||||
CMD_FINDTARGET,
|
||||
CMD_ASSISTATTACK,
|
||||
CMD_INVITETOTEAM,
|
||||
CMD_LEAVETEAM,
|
||||
CMD_KICKTEAMMEM,
|
||||
CMD_FINDTEAM,
|
||||
CMD_STARTTRADE,
|
||||
CMD_SELLBOOTH,
|
||||
CMD_BUYBOOTH,
|
||||
CMD_PLAYPOSE,
|
||||
CMD_INVITETOFACTION,
|
||||
CMD_FLY,
|
||||
CMD_PICKUP,
|
||||
CMD_GATHER,
|
||||
CMD_RUSHFLY,
|
||||
CMD_BINDBUDDY,
|
||||
}
|
||||
public CECSCCommand(int iCommand)
|
||||
{
|
||||
m_iSCType = (int)ShortcutType.SCT_COMMAND;
|
||||
m_iCommand = iCommand;
|
||||
m_dwParam = 0;
|
||||
}
|
||||
|
||||
public class CECSCSkill : CECShortcut
|
||||
public CECSCCommand(CECSCCommand src)
|
||||
{
|
||||
m_iCommand = src.m_iCommand;
|
||||
m_dwParam = src.m_dwParam;
|
||||
}
|
||||
public const int CMD_PLAYPOSE = 1; // Example constant
|
||||
// public override ShortcutType GetType() => ShortcutType.SCT_COMMAND;
|
||||
public override CECShortcut Clone() => new CECSCCommand(this);
|
||||
public int GetCommandID() => 0;
|
||||
public int GetParam() => 0;
|
||||
|
||||
// Set / Get command parameter
|
||||
public void SetParam(uint dwParam) { m_dwParam = dwParam; }
|
||||
|
||||
// Execute shortcut
|
||||
public override bool Execute()
|
||||
{
|
||||
CECHostPlayer pHost = CECGameRun.Instance.GetHostPlayer();
|
||||
if (!pHost || !pHost.IsAllResReady())
|
||||
return false;
|
||||
|
||||
// if (GetCoolTime(0)>0)
|
||||
// {
|
||||
// bool bForbidCmd = true;
|
||||
// if (m_iCommand == CMD_RUSHFLY && pHost.GetRushFlyFlag())
|
||||
// bForbidCmd = false;
|
||||
//
|
||||
// if (bForbidCmd)
|
||||
// {
|
||||
// g_pGame->GetGameRun()->AddFixedMessage(FIXMSG_CMD_INCOOLTIME);
|
||||
// return false;
|
||||
// }
|
||||
// }
|
||||
switch (m_iCommand)
|
||||
{
|
||||
// case CMD_SITDOWN: pHost->CmdSitDown(!pHost->IsSitting()); break;
|
||||
// case CMD_WALKRUN: pHost->CmdWalkRun(!pHost->GetWalkRunFlag()); break;
|
||||
// case CMD_NORMALATTACK: pHost->CmdNormalAttack(); break;
|
||||
// case CMD_FINDTARGET: pHost->CmdFindTarget(); break;
|
||||
// case CMD_ASSISTATTACK: pHost->CmdAssistAttack(); break;
|
||||
// case CMD_INVITETOTEAM: pHost->CmdInviteToTeam(); break;
|
||||
// case CMD_LEAVETEAM: pHost->CmdLeaveTeam(); break;
|
||||
// case CMD_KICKTEAMMEM: pHost->CmdKickTeamMember(); break;
|
||||
// case CMD_FINDTEAM: pHost->CmdFindTeam(); break;
|
||||
// case CMD_STARTTRADE: pHost->CmdStartTrade(); break;
|
||||
// case CMD_SELLBOOTH: pHost->CmdSellBooth(); break;
|
||||
// case CMD_BUYBOOTH: pHost->CmdBuyBooth(); break;
|
||||
case (int)CommandID.CMD_PLAYPOSE: pHost.CmdStartPose((int)m_dwParam); break;
|
||||
// case CMD_INVITETOFACTION: pHost->CmdInviteToFaction(); break;
|
||||
// case CMD_FLY:
|
||||
// {
|
||||
// // Èç¹ûÆï³ËÒª·ÉÐУ¬ÔòÕâЩ action switcher£¬·ñÔò CmdFly
|
||||
// if (!pHost->GetActionSwitcher() || !pHost->GetActionSwitcher()->OnRideToFlyAction())
|
||||
// pHost->CmdFly();
|
||||
// break;
|
||||
// }
|
||||
// case CMD_PICKUP: pHost->CmdPickup(); break;
|
||||
// case CMD_GATHER: pHost->CmdGather(); break;
|
||||
// case CMD_RUSHFLY: pHost->CmdRushFly(); break;
|
||||
// case CMD_BINDBUDDY: pHost->CmdBindBuddy(pHost->GetSelectedTarget()); break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get item cool time
|
||||
int GetCoolTime(ref int piMax/* NULL */)
|
||||
{
|
||||
CECHostPlayer pHost = CECGameRun.Instance.GetHostPlayer();
|
||||
int iTime = 0;
|
||||
|
||||
switch ((CommandID)m_iCommand)
|
||||
{
|
||||
case CommandID.CMD_RUSHFLY:
|
||||
|
||||
// iTime = pHost.GetCoolTime(GP_CT_FLY_RUSH, piMax);
|
||||
break;
|
||||
|
||||
case CommandID.CMD_PLAYPOSE:
|
||||
// todo need to get cooldown here
|
||||
// iTime = pHost.GetCoolTime(GP_CT_EMOTE, piMax);
|
||||
break;
|
||||
|
||||
case CommandID.CMD_BINDBUDDY:
|
||||
{
|
||||
// CECCounter& cnt = pHost->GetBindCmdCoolCnt();
|
||||
// iTime = cnt.GetPeriod() - cnt.GetCounter();
|
||||
//
|
||||
// if (piMax)
|
||||
// *piMax = cnt.GetPeriod();
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
||||
// if (piMax) *piMax = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
return iTime;
|
||||
}
|
||||
}
|
||||
|
||||
/* public class CECSCSkill : CECShortcut
|
||||
{
|
||||
private CECSkill m_pSkill;
|
||||
public override ShortcutType GetType() => ShortcutType.SCT_SKILL;
|
||||
|
||||
@@ -332,7 +332,7 @@ namespace BrewMonster.Scripts.Task
|
||||
byte[] m_pFinishedCountListBuf;// Finished count list buffer
|
||||
byte[] m_pStorageTaskListBuf; // Storage tasks list buffer
|
||||
private Dictionary<int, bool> m_TasksToConfirm = new Dictionary<int, bool>();
|
||||
private readonly System.Collections.Generic.Dictionary<uint, bool> m_emotionTask = new System.Collections.Generic.Dictionary<uint, bool>();
|
||||
private readonly Dictionary<uint, bool> m_emotionTask = new System.Collections.Generic.Dictionary<uint, bool>();
|
||||
private bool m_bForceNavigateFinish;
|
||||
private int m_tmFinishDlgShown;
|
||||
public CECTaskInterface()
|
||||
@@ -1660,6 +1660,83 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
return m_pFinishedCountListBuf;
|
||||
}
|
||||
|
||||
#region Emote
|
||||
|
||||
public void SetEmotion(int emotion)
|
||||
{
|
||||
ActiveTaskList pList = GetActiveTaskList();
|
||||
List<ActiveTaskEntry> aEntries = new List<ActiveTaskEntry>(pList.m_TaskEntries);
|
||||
ATaskTempl pTempl;
|
||||
|
||||
if (emotion < (int)TaskInterface.CommandTaskAction.CMD_EMOTION_BINDBUDDY)// pTempl->m_uiEmotion ֵΪ0±íʾ²»¼ì²é£¬ËùÒÔËùÓбíÇéÐòºÅ¶¼ºóÒÆ1
|
||||
emotion += 1;
|
||||
|
||||
for (int i = 0; i < pList.m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry curEntry = aEntries[i];
|
||||
pTempl = curEntry.GetTempl();
|
||||
|
||||
if (pTempl != null &&
|
||||
pTempl.m_FixedData.m_enumMethod == (uint)TaskCompletionMethod.enumTMSimpleClientTask &&
|
||||
pTempl.m_FixedData.m_uiEmotion > 0)
|
||||
{
|
||||
uint id = pTempl.GetID();
|
||||
|
||||
// Check if map does not contain OR value == false
|
||||
if (!m_emotionTask.TryGetValue(id, out bool exists) || !exists)
|
||||
{
|
||||
m_emotionTask[id] = (pTempl.m_FixedData.m_uiEmotion == (uint)emotion);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// void CECTaskInterface::UpdateTaskEmotionAction(unsigned int task_id)
|
||||
// {
|
||||
// if (m_emotionTask.find(task_id)!=m_emotionTask.end())
|
||||
// {
|
||||
// m_emotionTask[task_id] = false;
|
||||
// }
|
||||
// }
|
||||
// void CECTaskInterface::UpdateEmotionDlg(unsigned int task)
|
||||
// {
|
||||
// ActiveTaskList* pList = static_cast<ActiveTaskList*>(GetActiveTaskList());
|
||||
// ActiveTaskEntry* aEntries = pList->m_TaskEntries;
|
||||
// unsigned char i;
|
||||
// const ATaskTempl* pTempl, *pTarget = NULL;
|
||||
// ActiveTaskEntry* pTargetEntry = NULL;
|
||||
//
|
||||
// for (i = 0; i < pList->m_uTaskCount; i++)
|
||||
// {
|
||||
// ActiveTaskEntry& CurEntry = aEntries[i];
|
||||
// pTempl = CurEntry.GetTempl();
|
||||
//
|
||||
// if (!pTempl || pTempl->GetID() == task)
|
||||
// continue;
|
||||
//
|
||||
// if (pTempl && pTempl->m_enumMethod==enumTMSimpleClientTask && pTempl->m_uiEmotion)
|
||||
// {
|
||||
// pTarget = pTempl;
|
||||
// pTargetEntry = &CurEntry;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// if (pTarget && pTargetEntry && !pTempl->CanFinishTask(this, pTargetEntry, GetCurTime()))
|
||||
// {
|
||||
// PopEmotionUI(pTarget->GetID(),pTarget->m_uiEmotion,true);
|
||||
// }
|
||||
// }
|
||||
// void TaskInterface::PopEmotionUI(unsigned int task_id,unsigned int uiEmotion,bool bShow)
|
||||
// {
|
||||
// CECGameUIMan* pGameUI = g_pGame->GetGameRun()->GetUIManager()->GetInGameUIMan();
|
||||
//
|
||||
// if (pGameUI)
|
||||
// {
|
||||
// pGameUI->PopTaskEmotionDlg(task_id,uiEmotion,bShow);
|
||||
// }
|
||||
// }
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,14 @@ namespace BrewMonster.Scripts.Task
|
||||
uint CanDeliverTask(uint ulTaskId);
|
||||
void UpdateTaskUI(uint idTask, int reason);
|
||||
#endif
|
||||
public enum CommandTaskAction
|
||||
{
|
||||
CMD_EMOTION_BINDBUDDY = 1024, // If there are other non-expression actions, they will be 1025, 1026...
|
||||
CMD_EMOTION_SITDOWN, // Sit down
|
||||
CMD_JUMP_TRICKACTION, // Jump and roll
|
||||
CMD_RUN_TRICKACTION, // Run and roll
|
||||
}
|
||||
|
||||
// bool HasTask(uint taskId);
|
||||
// bool CheckTaskForbid(uint taskId);
|
||||
long GetGlobalValue(long key);
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
using BrewMonster;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using System.Runtime.InteropServices;
|
||||
using BrewMonster.Scripts.Task.UI;
|
||||
using BrewMonster.Scripts.UI;
|
||||
using BrewMonster.UI;
|
||||
using CSNetwork.Common;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
using UnityEngine;
|
||||
@@ -59,6 +56,18 @@ namespace BrewMonster.Scripts.Task
|
||||
pAward.Show(false);
|
||||
}
|
||||
}
|
||||
if (Input.GetKeyDown(KeyCode.E))
|
||||
{
|
||||
var dlg = CECUIManager.Instance.GetInGameUIMan().GetDialog("Win_SkillSubAction");
|
||||
if (dlg && !dlg.gameObject.activeInHierarchy)
|
||||
{
|
||||
dlg.Show(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
dlg.Show(false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
|
||||
using BrewMonster.Network;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
public class EmoteWindow : AUIDialog
|
||||
{
|
||||
public override void Show(bool value)
|
||||
{
|
||||
base.Show(value);
|
||||
// int i, j;
|
||||
// char szName[40];
|
||||
// string strFile;
|
||||
// CECShortcut pSCThis;
|
||||
// PAUIIMAGEPICTURE pImage;
|
||||
// PAUILABEL pLabel;
|
||||
// CECGameRun pGameRun = EC_Game.GetGameRun();
|
||||
// CECShortcutSet[] a_pSC =
|
||||
// {
|
||||
// pGameRun.GetGenCmdShortcuts(),
|
||||
// pGameRun.GetTeamCmdShortcuts(),
|
||||
// pGameRun.GetTradeCmdShortcuts(),
|
||||
// pGameRun.GetPoseCmdShortcuts()
|
||||
// };
|
||||
// char *a_pszPrefix[] = { "BscCmd_", "TeamCmd_","TradeCmd_", "FaceCmd_" };
|
||||
// char *a_pszTxtPrefix[] = { "Txt_BscCmd", "Txt_TeamCmd", "Txt_TradeCmd", "Txt_FaceCmd" };
|
||||
// int objCount[] = { 9, 3, 3, 30 };
|
||||
//
|
||||
// a_LogOutput(1, "[Dat Emote] CDlgSkillSubAction::OnShowDialog");
|
||||
// a_LogOutput(1, "[Dat Emote] CDlgSkillSubAction::OnShowDialog szName: %s", szName);
|
||||
//
|
||||
// for( i = 0; i < sizeof(a_pSC) / sizeof(CECShortcutSet *); i++ )
|
||||
// {
|
||||
// for( j = 0; j < objCount[i]; j++ )
|
||||
// {
|
||||
// sprintf(szName, "%s%02d", a_pszPrefix[i], j + 1);
|
||||
// pImage = dynamic_cast<AUIImagePicture*>(GetDlgItem(szName));
|
||||
//
|
||||
// sprintf(szName, "%s%02d", a_pszTxtPrefix[i], j + 1);
|
||||
// pLabel = dynamic_cast<AUILabel*>(GetDlgItem(szName));
|
||||
//
|
||||
// if( !pImage ) break;
|
||||
//
|
||||
// if (j < a_pSC[i]->GetShortcutNum()) {
|
||||
// pSCThis = a_pSC[i]->GetShortcut(j);
|
||||
// pImage->SetDataPtr(pSCThis,"ptr_CECShortcut");
|
||||
//
|
||||
// af_GetFileTitle(pSCThis->GetIconFile(), strFile);
|
||||
// strFile.MakeLower();
|
||||
// pImage->SetCover(GetGameUIMan()->m_pA2DSpriteIcons[CECGameUIMan::ICONS_ACTION],
|
||||
// GetGameUIMan()->m_IconMap[CECGameUIMan::ICONS_ACTION][strFile]);
|
||||
//
|
||||
// pLabel->SetText(pSCThis->GetDesc());
|
||||
// } else {
|
||||
// pImage->Show(false);
|
||||
// pLabel->Show(false);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// ÔÚÇл»½çÃæ·ç¸ñµÄʱºò£¬´Ëʱ¿ÉÄܸ¸¶Ô»°¿òÖ¸ÕëΪ¿Õ
|
||||
// if (GetParentDlgControl()) {
|
||||
// SIZE size;
|
||||
// size.cx = 326;
|
||||
// size.cy = 720;
|
||||
// size.cx = (int)(size.cx * m_pAUIManager->GetWindowScale() + 0.5f);
|
||||
// size.cy = (int)(size.cy * m_pAUIManager->GetWindowScale() + 0.5f);
|
||||
//
|
||||
// if (!m_bSetVScroll) {
|
||||
// GetParentDlgControl()->SetSubDialogOrgSize(size.cx, size.cy);
|
||||
// m_bSetVScroll = true;
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
public int slot;
|
||||
[ContextMenu("Test")]
|
||||
public void OnDragClick() //PAUIDIALOG pDlgSrc, PAUIOBJECT pObjSrc, PAUIDIALOG pDlgOver, PAUIOBJECT pObjOver
|
||||
{
|
||||
// bool bInAutoMode = CECAutoPolicy::GetInstance().IsAutoPolicyEnabled();
|
||||
|
||||
// if (strstr(pDlgSrc->GetName(), "Win_Quickbar") ||
|
||||
// 0 == stricmp(pDlgSrc->GetName(), "Win_SkillSubAction")) // 20140708 ÐµĶ¯×÷½çÃæ
|
||||
// {
|
||||
// if (bInAutoMode) return;
|
||||
//todo: dummy call StartGame
|
||||
// EC_Game.GetGameRun().StartGame(0, Vector3.zero);
|
||||
if (EC_Game.GetGameRun().GetPoseCmdShortcuts() == null)
|
||||
{
|
||||
EC_Game.GetGameRun().StartGame(0, Vector3.zero);
|
||||
}
|
||||
CECShortcut pSC = EC_Game.GetGameRun().GetPoseCmdShortcuts().GetShortcut(slot);
|
||||
// if (CDlgAutoHelp::IsAutoHelp() && strstr(pDlgSrc->GetName(), "Win_Quickbar"))
|
||||
// {
|
||||
// a_LogOutput(1, "[Dat Emote] Win_Quickbar");
|
||||
// if (pSC->GetType() == CECShortcut::SCT_SKILL)
|
||||
// {
|
||||
// CECSCSkill* pSkillSC = dynamic_cast<CECSCSkill*>(pSC);
|
||||
// if (pSkillSC && pSkillSC->GetSkill())
|
||||
// CDlgWikiShortcut::PopSkillWiki(GetGameUIMan(), pSkillSC->GetSkill()->GetSkillID());
|
||||
//
|
||||
// }
|
||||
// else if (pSC->GetType() == CECShortcut::SCT_ITEM)
|
||||
// {
|
||||
// CECSCItem* pItemSC = dynamic_cast<CECSCItem*>(pSC);
|
||||
// CECIvtrItem* pItem = CECIvtrItem::CreateItem(pItemSC->GetItemTID(), 0, 1);
|
||||
// if (pItem)
|
||||
// {
|
||||
// CDlgWikiShortcut::PopItemWiki(GetGameUIMan(), pItem);
|
||||
// delete pItem;
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// GetGameUIMan()->MessageBox("", GetStringFromTable(10754), MB_OK,
|
||||
// A3DCOLORRGBA(255, 255, 255, 160));
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
if (pSC != null) // && pObjSrc->GetDataPtr("ptr_CECShortcut") == pSC
|
||||
{
|
||||
// a_LogOutput(1, "[Dat Emote] ptr_CECShortcut");
|
||||
pSC.Execute();
|
||||
}
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e42ed2cbf208e60488b8bc1d63a3b1d7
|
||||
@@ -17,6 +17,7 @@ namespace BrewMonster.UI
|
||||
public virtual void Show(bool value)
|
||||
{
|
||||
gameObject.SetActive(value);
|
||||
OnShowDialogue();
|
||||
}
|
||||
|
||||
public void SetData(uint dwData, string strName)
|
||||
@@ -99,6 +100,9 @@ namespace BrewMonster.UI
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public virtual void OnShowDialogue()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,6 +18,13 @@ public partial class CECGameRun
|
||||
private GameObject _playerPrefab;
|
||||
private GameObject _monsterPrefab;//CECMonster
|
||||
private GameObject _npcServerPrefab;//CECNPCServer
|
||||
|
||||
// CECTeamMan* m_pTeamMan; // Team manager
|
||||
private CECShortcutSet m_pNormalSCS; // Normal shortcut set
|
||||
private CECShortcutSet m_pTeamSCS; // Team shortcut set
|
||||
private CECShortcutSet m_pTradeSCS; // Trade shortcut set
|
||||
private CECShortcutSet m_pPoseSCS; // Pose shortcut set
|
||||
private CECShortcutSet m_pFactionSCS; // Faction shortcut set
|
||||
|
||||
// private GameRunConfig _gameRunConfig;
|
||||
//[SerializeField] private Transform ground;
|
||||
@@ -27,6 +34,12 @@ public partial class CECGameRun
|
||||
protected CECUIManager m_pUIManager; // UI manager
|
||||
|
||||
public CECWorld GetWorld() { return m_pWorld; }
|
||||
// Get shortcut sets
|
||||
public CECShortcutSet GetGenCmdShortcuts() { return m_pNormalSCS; }
|
||||
public CECShortcutSet GetTeamCmdShortcuts() { return m_pTeamSCS; }
|
||||
public CECShortcutSet GetTradeCmdShortcuts() { return m_pTradeSCS; }
|
||||
public CECShortcutSet GetPoseCmdShortcuts() { return m_pPoseSCS; }
|
||||
public CECShortcutSet GetFactionCmdShortcuts() { return m_pFactionSCS; }
|
||||
|
||||
private static Dictionary<int, CECInstance> m_InstTab = new Dictionary<int, CECInstance>();
|
||||
public void Init()
|
||||
@@ -50,6 +63,7 @@ public partial class CECGameRun
|
||||
//}
|
||||
m_InstTab.Add(161, new CECInstance());
|
||||
AddressableManager.Instance.OnDispose += Dispose;
|
||||
StartGame(0, Vector3.zero);
|
||||
}
|
||||
|
||||
private static void Dispose()
|
||||
@@ -66,13 +80,26 @@ public partial class CECGameRun
|
||||
_monsterPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.MonsterPrefab);
|
||||
_npcServerPrefab = await AddressableManager.Instance.LoadPrefabAsync(AddressResourceConfig.NpcServerPrefab);
|
||||
}
|
||||
|
||||
private bool init;
|
||||
public bool StartGame(int idInst, Vector3 vHostPos)
|
||||
{
|
||||
if (init)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// Create shortcuts
|
||||
if (!CreateShortcuts())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!JumpToInstance(idInst, vHostPos))
|
||||
{
|
||||
BMLogger.LogError("CECGameRun::StartGame, Failed to create game world.");
|
||||
return false;
|
||||
}
|
||||
|
||||
init = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -315,6 +342,76 @@ public partial class CECGameRun
|
||||
return true;
|
||||
}
|
||||
|
||||
// Create shortcuts
|
||||
public bool CreateShortcuts()
|
||||
{
|
||||
// // Normal command shortcut set
|
||||
m_pNormalSCS = new CECShortcutSet();
|
||||
m_pNormalSCS.Init(8);
|
||||
|
||||
CECSCCommand pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_SITDOWN);
|
||||
m_pNormalSCS.SetShortcut(0, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_WALKRUN);
|
||||
m_pNormalSCS.SetShortcut(1, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_NORMALATTACK);
|
||||
m_pNormalSCS.SetShortcut(2, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_FINDTARGET);
|
||||
m_pNormalSCS.SetShortcut(3, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_ASSISTATTACK);
|
||||
m_pNormalSCS.SetShortcut(3, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_FLY);
|
||||
m_pNormalSCS.SetShortcut(4, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_PICKUP);
|
||||
m_pNormalSCS.SetShortcut(5, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_GATHER);
|
||||
m_pNormalSCS.SetShortcut(6, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_RUSHFLY);
|
||||
m_pNormalSCS.SetShortcut(6, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_BINDBUDDY);
|
||||
m_pNormalSCS.SetShortcut(7, pSC);
|
||||
|
||||
// Team command shortcut set
|
||||
m_pTeamSCS = new CECShortcutSet();
|
||||
m_pTeamSCS.Init(2);
|
||||
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_INVITETOTEAM);
|
||||
m_pTeamSCS.SetShortcut(0, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_LEAVETEAM);
|
||||
m_pTeamSCS.SetShortcut(1, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_KICKTEAMMEM);
|
||||
m_pTeamSCS.SetShortcut(2, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_FINDTEAM);
|
||||
m_pTeamSCS.SetShortcut(2, pSC);
|
||||
|
||||
// Trade command shortcut set
|
||||
m_pTradeSCS = new CECShortcutSet();
|
||||
m_pTradeSCS.Init(2);
|
||||
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_STARTTRADE);
|
||||
m_pTradeSCS.SetShortcut(0, pSC);
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_SELLBOOTH);
|
||||
m_pTradeSCS.SetShortcut(1, pSC);
|
||||
|
||||
// Pose command shortcut set
|
||||
m_pPoseSCS = new CECShortcutSet();
|
||||
m_pPoseSCS.Init((int)RoleExpression.NUM_ROLEEXP);
|
||||
|
||||
for (int i = 0; i < (int)RoleExpression.NUM_ROLEEXP; i++)
|
||||
{
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_PLAYPOSE);
|
||||
pSC.SetParam((uint)i);
|
||||
m_pPoseSCS.SetShortcut(i, pSC);
|
||||
}
|
||||
|
||||
// Faction command shortcut set
|
||||
m_pFactionSCS = new CECShortcutSet();
|
||||
m_pFactionSCS.Init(1);
|
||||
|
||||
pSC = new CECSCCommand((int)CECSCCommand.CommandID.CMD_INVITETOFACTION);
|
||||
m_pFactionSCS.SetShortcut(0, pSC);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// Get UI manager
|
||||
|
||||
@@ -426,6 +426,7 @@ namespace BrewMonster
|
||||
case int value when value == EC_MsgDef.MSG_HST_STOPATTACK: OnMsgHstStopAttack(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_SKILLRESULT: OnMsgHstSkillResult(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_OWNEXTPROP: OnMsgHstExtProp(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_PM_PLAYERDOEMOTE: OnMsgPlayerDoEmote(Msg); break;
|
||||
}
|
||||
|
||||
|
||||
@@ -3652,6 +3653,148 @@ namespace BrewMonster
|
||||
m_BasicProps.iResilience = pCmd.resilience;
|
||||
m_BasicProps.iVigour = pCmd.vigour;
|
||||
}
|
||||
|
||||
private void OnMsgPlayerDoEmote(ECMSG Msg)
|
||||
{
|
||||
if (!m_pWorkMan.IsStanding() &&
|
||||
!m_pWorkMan.IsBeingBound())
|
||||
return;
|
||||
|
||||
int cmd = Convert.ToInt32(Msg.dwParam2);
|
||||
if (cmd == CommandID.OBJECT_DO_EMOTE)
|
||||
{
|
||||
cmd_object_do_emote pCmd = GPDataTypeHelper.FromBytes<cmd_object_do_emote>((byte[])Msg.dwParam1);
|
||||
|
||||
DoEmote(pCmd.emotion);
|
||||
|
||||
// if( m_iBuddyId )
|
||||
// {
|
||||
// CECPlayer pBuddy = m_pPlayerMan->GetPlayer(m_iBuddyId);
|
||||
// if (pBuddy)
|
||||
// pBuddy->DoEmote(pCmd->emotion);
|
||||
// }
|
||||
|
||||
GetTaskInterface().SetEmotion(pCmd.emotion);
|
||||
}
|
||||
else if (cmd == CommandID.OBJECT_EMOTE_RESTORE)
|
||||
{
|
||||
CECHPWork pWork = m_pWorkMan.GetRunningWork((int)WorkID.WORK_STAND);
|
||||
if (pWork!=null){
|
||||
((CECHPWorkStand)pWork).SetPoseAction((int)PLAYER_ACTION_TYPE.ACT_STAND, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Do emote action
|
||||
private bool DoEmote(int idEmote)
|
||||
{
|
||||
if (!m_pWorkMan.IsStanding())
|
||||
return false;
|
||||
|
||||
CECHPWorkStand pWork = m_pWorkMan.GetRunningWork(Host_work_ID.WORK_STAND) as CECHPWorkStand;
|
||||
if (pWork == null)
|
||||
{
|
||||
Debug.LogError("Null CECHPWorkStand");
|
||||
}
|
||||
|
||||
int iAction = (int)PLAYER_ACTION_TYPE.ACT_STAND;
|
||||
bool bSession = false;
|
||||
|
||||
// Select action according to pose
|
||||
switch (idEmote)
|
||||
{
|
||||
case (int)RoleExpression.ROLEEXP_WAVE: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_WAVE; break;
|
||||
case (int)RoleExpression.ROLEEXP_NOD: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_NOD; break;
|
||||
case (int)RoleExpression.ROLEEXP_SHAKEHEAD: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_SHAKEHEAD; break;
|
||||
case (int)RoleExpression.ROLEEXP_SHRUG: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_SHRUG; break;
|
||||
case (int)RoleExpression.ROLEEXP_LAUGH: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_LAUGH; break;
|
||||
case (int)RoleExpression.ROLEEXP_ANGRY: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ANGRY; break;
|
||||
case (int)RoleExpression.ROLEEXP_STUN: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_STUN; break;
|
||||
case (int)RoleExpression.ROLEEXP_DEPRESSED: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_DEPRESSED; break;
|
||||
case (int)RoleExpression.ROLEEXP_KISSHAND: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_KISSHAND; break;
|
||||
case (int)RoleExpression.ROLEEXP_SHY: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_SHY; break;
|
||||
case (int)RoleExpression.ROLEEXP_SALUTE: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_SALUTE; break;
|
||||
|
||||
case (int)RoleExpression.ROLEEXP_SITDOWN:
|
||||
|
||||
iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_SITDOWN;
|
||||
bSession = true;
|
||||
break;
|
||||
|
||||
case (int)RoleExpression.ROLEEXP_ASSAULT: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ASSAULT; break;
|
||||
case (int)RoleExpression.ROLEEXP_THINK: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_THINK; break;
|
||||
case (int)RoleExpression.ROLEEXP_DEFIANCE: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_DEFIANCE; break;
|
||||
case (int)RoleExpression.ROLEEXP_VICTORY: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_VICTORY; break;
|
||||
case (int)RoleExpression.ROLEEXP_GAPE: iAction = (int)PLAYER_ACTION_TYPE.ACT_GAPE; break;
|
||||
case (int)RoleExpression.ROLEEXP_KISS: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_KISS; break;
|
||||
case (int)RoleExpression.ROLEEXP_FIGHT: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_FIGHT; break;
|
||||
case (int)RoleExpression.ROLEEXP_ATTACK1: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ATTACK1; break;
|
||||
case (int)RoleExpression.ROLEEXP_ATTACK2: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ATTACK2; break;
|
||||
case (int)RoleExpression.ROLEEXP_ATTACK3: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ATTACK3; break;
|
||||
case (int)RoleExpression.ROLEEXP_ATTACK4: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_ATTACK4; break;
|
||||
case (int)RoleExpression.ROLEEXP_DEFENCE: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_DEFENCE; break;
|
||||
case (int)RoleExpression.ROLEEXP_FALL: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_FALL; break;
|
||||
case (int)RoleExpression.ROLEEXP_FALLONGROUND:
|
||||
iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_FALLONGROUND; break;
|
||||
case (int)RoleExpression.ROLEEXP_LOOKAROUND:
|
||||
iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_LOOKAROUND; break;
|
||||
case (int)RoleExpression.ROLEEXP_DANCE: iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_DANCE; break;
|
||||
case (int)RoleExpression.ROLEEXP_FASHIONWEAPON:
|
||||
iAction = (int)PLAYER_ACTION_TYPE.ACT_EXP_FASHIONWEAPON; break;
|
||||
case (int)RoleExpression.ROLEEXP_TWO_KISS: iAction = (int)PLAYER_ACTION_TYPE.ACT_TWO_KISS; break;
|
||||
case (int)RoleExpression.ROLEEXP_FIREWORK: iAction = (int)PLAYER_ACTION_TYPE.ACT_ATTACK_TOSS; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
pWork.SetPoseAction(iAction, bSession);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get cool time
|
||||
public int GetCoolTime(int iIndex,ref int piMax/* NULL */)
|
||||
{
|
||||
// if (iIndex >= 0 && iIndex < GP_CT_MAX)
|
||||
// {
|
||||
// if (piMax>0)
|
||||
// piMax = m_aCoolTimes[iIndex].iMaxTime;
|
||||
//
|
||||
// return m_aCoolTimes[iIndex].iCurTime;
|
||||
// }
|
||||
|
||||
return 0;
|
||||
}
|
||||
// Play a pose
|
||||
public bool CmdStartPose(int iPose)
|
||||
{
|
||||
// first of all see if we need to cancel sitdown work.
|
||||
if (m_pWorkMan.IsSitting())
|
||||
{
|
||||
UnityGameSession.c2s_CmdStandUp();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!CanDo(ActionCanDo.CANDO_PLAYPOSE))
|
||||
return false;
|
||||
|
||||
if (!m_pWorkMan.IsStanding())
|
||||
return false;
|
||||
|
||||
if (iPose == (int)RoleExpression.ROLEEXP_SITDOWN)
|
||||
{
|
||||
// UnityGameSession.c2s_CmdSessionEmote(iPose);
|
||||
}
|
||||
else if (iPose == (int)RoleExpression.ROLEEXP_KISS)
|
||||
{
|
||||
// if (GPDataTypeHelper.ISPLAYERID(m_idSelTarget))
|
||||
// UnityGameSession.c2s_CmdConEmoteRequest(RoleExpression.ROLEEXP_KISS, m_idSelTarget);
|
||||
}
|
||||
else
|
||||
UnityGameSession.c2s_CmdEmoteAction((uint)iPose);
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public enum StateAnim
|
||||
|
||||
Reference in New Issue
Block a user