Merge remote-tracking branch 'origin/feature/hp_interact_npc_merge' into implement_task_UI
This commit is contained in:
@@ -1,5 +1,106 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &2486392142327362049
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3233441867675090637}
|
||||
- component: {fileID: 7894129013412138377}
|
||||
- component: {fileID: 1184637750286334292}
|
||||
- component: {fileID: 7240944814921333938}
|
||||
m_Layer: 0
|
||||
m_Name: Canvas
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3233441867675090637
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2486392142327362049}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0, y: 0, z: 0}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 2780428059708698453}
|
||||
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: 0}
|
||||
--- !u!223 &7894129013412138377
|
||||
Canvas:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2486392142327362049}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_RenderMode: 0
|
||||
m_Camera: {fileID: 0}
|
||||
m_PlaneDistance: 100
|
||||
m_PixelPerfect: 0
|
||||
m_ReceivesEvents: 1
|
||||
m_OverrideSorting: 0
|
||||
m_OverridePixelPerfect: 0
|
||||
m_SortingBucketNormalizedSize: 0
|
||||
m_VertexColorAlwaysGammaSpace: 0
|
||||
m_AdditionalShaderChannelsFlag: 0
|
||||
m_UpdateRectTransformForStandalone: 0
|
||||
m_SortingLayerID: 0
|
||||
m_SortingOrder: 100
|
||||
m_TargetDisplay: 0
|
||||
--- !u!114 &1184637750286334292
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2486392142327362049}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_UiScaleMode: 1
|
||||
m_ReferencePixelsPerUnit: 100
|
||||
m_ScaleFactor: 1
|
||||
m_ReferenceResolution: {x: 1920, y: 1080}
|
||||
m_ScreenMatchMode: 0
|
||||
m_MatchWidthOrHeight: 1
|
||||
m_PhysicalUnit: 3
|
||||
m_FallbackScreenDPI: 96
|
||||
m_DefaultSpriteDPI: 96
|
||||
m_DynamicPixelsPerUnit: 1
|
||||
m_PresetInfoIsWorld: 0
|
||||
--- !u!114 &7240944814921333938
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2486392142327362049}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_IgnoreReversedGraphics: 1
|
||||
m_BlockingObjects: 0
|
||||
m_BlockingMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
--- !u!1 &6950113420985123515
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -30,7 +131,8 @@ Transform:
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Children:
|
||||
- {fileID: 3233441867675090637}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1890210201668811196
|
||||
@@ -49,6 +151,8 @@ MonoBehaviour:
|
||||
uiPrefabs: []
|
||||
npsUI: {fileID: 0}
|
||||
currentTargetNPCID: 0
|
||||
dialogResouce: {fileID: 11400000, guid: 540bc8e61556ba4479407a2d68e17580, type: 2}
|
||||
canvasDlg: {fileID: 7894129013412138377}
|
||||
--- !u!114 &6919949516443544071
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3b5ec8ff401272d4ebb5be4f47b02464, type: 3}
|
||||
m_Name: DialogScriptTableObject
|
||||
m_EditorClassIdentifier:
|
||||
lstPrefabDialog:
|
||||
- id: DialogNPC
|
||||
prefab: {fileID: 8237288432181259026, guid: 7653e7e64393ec24c903f0606499b8c4, type: 3}
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 540bc8e61556ba4479407a2d68e17580
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8da53776c0d93a4cb3248d89be94d91
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fb2f2f58be45f6e4890e85cc00b0bcc9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 76 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6d3e1de5b0b9eec47930f9f2dc926d84
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 208d836ca21070845bd58e58b10c8de9
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50648e5dab4e12f44bbbdac9313e24a4
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 0
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 1
|
||||
wrapV: 1
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -251,5 +251,10 @@ namespace BrewMonster.Common
|
||||
GetNextToken(bCrossLine);
|
||||
return int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(m_szToken));
|
||||
}
|
||||
|
||||
// Reach end of file ?
|
||||
public bool IsEnd() { return m_Script.pCurIndex >= m_Script.pFileBuf.Length; }
|
||||
// Get current line
|
||||
public int GetCurLine() { return m_Script.iLine; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Common
|
||||
{
|
||||
public class CECTimeSafeChecker
|
||||
{
|
||||
uint m_dwBeginTick;
|
||||
uint m_dwTimeLength;
|
||||
|
||||
public CECTimeSafeChecker()
|
||||
{
|
||||
m_dwBeginTick = 0;
|
||||
m_dwTimeLength = 0;
|
||||
}
|
||||
|
||||
void Reset(uint dwCurrentTickCount, uint dwTimeLength)
|
||||
{
|
||||
m_dwBeginTick = dwCurrentTickCount;
|
||||
m_dwTimeLength = dwTimeLength;
|
||||
}
|
||||
|
||||
void Reset(uint dwTimeLength)
|
||||
{
|
||||
Reset((uint)Time.realtimeSinceStartupAsDouble, dwTimeLength);
|
||||
}
|
||||
|
||||
public void Reset()
|
||||
{
|
||||
Reset((uint)Time.realtimeSinceStartupAsDouble, m_dwTimeLength);
|
||||
}
|
||||
|
||||
public bool IsTimeArrived()
|
||||
{
|
||||
return IsTimeArrived((uint)Time.realtimeSinceStartupAsDouble);
|
||||
|
||||
}
|
||||
|
||||
bool IsTimeArrived(uint dwCurrentTickCount)
|
||||
{
|
||||
return ElapsedTime(dwCurrentTickCount) >= TimeLength();
|
||||
}
|
||||
|
||||
uint ElapsedTime(uint dwEndTickCount, uint dwBeginTickCount)
|
||||
{
|
||||
return (dwEndTickCount >= dwBeginTickCount) ? (dwEndTickCount - dwBeginTickCount) : 0;
|
||||
}
|
||||
|
||||
uint ElapsedTime(uint dwCurrentTickCount)
|
||||
{
|
||||
return ElapsedTime(dwCurrentTickCount, m_dwBeginTick);
|
||||
}
|
||||
|
||||
uint ElapsedTimeFor(uint dwBeginTickCount)
|
||||
{
|
||||
return ElapsedTime((uint)Time.realtimeSinceStartupAsDouble, dwBeginTickCount);
|
||||
}
|
||||
|
||||
uint ElapsedTime()
|
||||
{
|
||||
return ElapsedTime((uint)Time.realtimeSinceStartupAsDouble);
|
||||
}
|
||||
|
||||
uint TimeLength()
|
||||
{
|
||||
return m_dwTimeLength;
|
||||
}
|
||||
|
||||
uint LeftTime(uint dwCurrentTickCount)
|
||||
{
|
||||
|
||||
uint result = 0;
|
||||
uint dwElapsedTime = ElapsedTime(dwCurrentTickCount);
|
||||
if (dwElapsedTime<TimeLength()){
|
||||
result = TimeLength() - dwElapsedTime;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public uint LeftTime(){
|
||||
return LeftTime((uint)Time.realtimeSinceStartupAsDouble);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 962cbd73730e4564bbf5b94ef1ab1b27
|
||||
@@ -0,0 +1,25 @@
|
||||
using NUnit.Framework;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
[CreateAssetMenu(fileName = "DialogScriptTableObject", menuName = "Scriptable Objects/DialogScriptTableObject")]
|
||||
public class DialogScriptTableObject : ScriptableObject
|
||||
{
|
||||
public List<DialogResouce> lstPrefabDialog;
|
||||
|
||||
public GameObject GetPrefabDialog(string id)
|
||||
{
|
||||
return lstPrefabDialog.Find(x => x.id.Equals(id)).prefab;
|
||||
}
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public struct DialogResouce
|
||||
{
|
||||
public string id;
|
||||
public GameObject prefab;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3b5ec8ff401272d4ebb5be4f47b02464
|
||||
@@ -0,0 +1,30 @@
|
||||
using BrewMonster.Common;
|
||||
using DG.Tweening;
|
||||
using NUnit.Framework;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Common
|
||||
{
|
||||
public class CECStubbornFactionInfoSender
|
||||
{
|
||||
CECTimeSafeChecker m_timer;
|
||||
List<int> m_factionIDs;
|
||||
|
||||
public void Add(int iNumFaction, int[] aFactionIDs)
|
||||
{
|
||||
if (iNumFaction <= 0 || aFactionIDs == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < iNumFaction; ++i)
|
||||
{
|
||||
int idFaction = aFactionIDs[i];
|
||||
if (idFaction > 0 && !m_factionIDs.Contains(idFaction))
|
||||
{
|
||||
m_factionIDs.Add(idFaction);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c2856691c4dd1e948914ea59c1d2e443
|
||||
@@ -1,10 +1,11 @@
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using BrewMonster.Scripts.Task;
|
||||
using UnityEngine;
|
||||
using BrewMonster;
|
||||
using BrewMonster.Scripts.Task;
|
||||
using CSNetwork;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using CSNetwork;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Network
|
||||
{
|
||||
@@ -12,6 +13,8 @@ namespace BrewMonster.Network
|
||||
{
|
||||
#region Fields
|
||||
|
||||
private static CECFactionMan m_pFactionMan; // Faction manager
|
||||
public static bool g_bEnableFortressDeclareWar = false;
|
||||
private static ATaskTemplMan m_pTaskMan; // Task template manager
|
||||
private static elementdataman m_pElementDataMan; // global element templates manager
|
||||
private static CECGameRun m_pGameRun; // Game running object
|
||||
@@ -41,6 +44,7 @@ namespace BrewMonster.Network
|
||||
}
|
||||
|
||||
// String table getters
|
||||
public static CECFactionMan GetFactionMan() { return m_pFactionMan; }
|
||||
public static BrewMonster.CECStringTab GetFixedMsgs()
|
||||
{
|
||||
return m_FixedMsgs;
|
||||
@@ -251,6 +255,12 @@ namespace BrewMonster.Network
|
||||
return iOldCursor;
|
||||
}
|
||||
|
||||
// Get server GMT(UTC) time
|
||||
public static int GetServerGMTTime()
|
||||
{
|
||||
long unixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
|
||||
return (int)unixTime + m_iTimeError;
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
using BrewMonster.Network;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
public class Faction_Info
|
||||
{
|
||||
public uint m_id;
|
||||
public string m_szName;
|
||||
public int m_nLev;
|
||||
public int m_nMemNum;
|
||||
|
||||
public int GetLevel() { return m_nLev; }
|
||||
}
|
||||
|
||||
public class CECFactionMan
|
||||
{
|
||||
Dictionary<uint, Faction_Info> m_FactionMap;
|
||||
|
||||
public Faction_Info GetFaction(uint uId, bool bRequestFromServer)
|
||||
{
|
||||
if (!m_FactionMap.TryGetValue(uId, out var it))
|
||||
{
|
||||
if (bRequestFromServer)
|
||||
UnityGameSession.Instance.GetFactionInfo(1, new int[] { (int)uId });
|
||||
return null;
|
||||
}
|
||||
|
||||
return it;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f317e7b8bfb4c1e45b5cb1a2c4af9e82
|
||||
@@ -17,6 +17,7 @@ using TMPro;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
using BrewMonster.Network;
|
||||
|
||||
public abstract partial class CECPlayer : CECObject
|
||||
{
|
||||
@@ -60,6 +61,14 @@ public abstract partial class CECPlayer : CECObject
|
||||
protected int NUM_WEAPON_TYPE = 15;
|
||||
public static readonly int[] m_sciStateIDForStateAction = { 117 };
|
||||
|
||||
protected int m_iBoothState = 0; // Booth state. 0, none; 1, prepare; 2, open booth; 3, visite other's booth
|
||||
public int m_idFRole = GNETRoles._R_UNMEMBER; // ID of player's faction role
|
||||
protected int m_idCountry = 0; // ¹úÕ½ÕóÓª id
|
||||
public static int MAX_REINCARNATION = 2;
|
||||
protected List<int> m_aCurEffects = new List<int>(); // Current effects
|
||||
byte m_ReincarnationCount = 0;
|
||||
string m_strName; // Player name
|
||||
|
||||
public MOVECONST m_MoveConst; // Const used when moving control
|
||||
public Move_Mode m_MoveMode;
|
||||
public MOVECONST[] aMoveConsts = new MOVECONST[PROFESSION.NUM_PROFESSION * GENDER.NUM_GENDER]
|
||||
@@ -131,7 +140,12 @@ public abstract partial class CECPlayer : CECObject
|
||||
new A3DVECTOR3(0.3f, 0.85f, 0.3f),
|
||||
};
|
||||
|
||||
public static class Effect_type
|
||||
{
|
||||
public const int EFF_FACEPILL = 1;
|
||||
}
|
||||
private BaseVfxObject _levelUpVfx;
|
||||
|
||||
protected void Awake()
|
||||
{
|
||||
m_PlayerActions = _default_actions;
|
||||
@@ -1216,6 +1230,42 @@ public abstract partial class CECPlayer : CECObject
|
||||
BMLogger.LogError($"Failed to load level up effect prefab at: {path}");
|
||||
}
|
||||
}
|
||||
|
||||
// Get booth state
|
||||
public int GetBoothState() { return m_iBoothState; }
|
||||
|
||||
// Check whether player has effect of specified type
|
||||
public bool HasEffectType(int iEffType)
|
||||
{
|
||||
int i;
|
||||
|
||||
switch (iEffType)
|
||||
{
|
||||
case Effect_type.EFF_FACEPILL:
|
||||
{
|
||||
elementdataman pDataMan = EC_Game.GetElementDataMan();
|
||||
|
||||
// Get item data type
|
||||
for (i = 0; i < m_aCurEffects.Count; i++)
|
||||
{
|
||||
DATA_TYPE DataType = pDataMan.get_data_type((uint)m_aCurEffects[i], ID_SPACE.ID_SPACE_ESSENCE);
|
||||
if (DataType == DATA_TYPE.DT_FACEPILL_ESSENCE)
|
||||
return true;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public byte GetReincarnationCount() { return m_ReincarnationCount; }
|
||||
|
||||
public string GetName()
|
||||
{
|
||||
return m_strName;
|
||||
}
|
||||
}
|
||||
|
||||
public struct PlayActionEvent
|
||||
|
||||
@@ -13,7 +13,7 @@ public class CECNPCServer : CECNPC
|
||||
public override void SetUpCECNPC(CECNPCMan pNPCMan)
|
||||
{
|
||||
base.SetUpCECNPC(pNPCMan);
|
||||
m_iCID = (int)Class_ID.OCID_MONSTER;
|
||||
m_iCID = (int)Class_ID.OCID_SERVER;
|
||||
m_pDBEssence = null;
|
||||
}
|
||||
public override bool Init(int tid, in info_npc info, ReadOnlySpan<byte> packet, int infoOffset)
|
||||
@@ -58,4 +58,17 @@ public class CECNPCServer : CECNPC
|
||||
StartWork((int)WorkType.WT_NOTHING, (int)WorkID.WORK_STAND);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Get way point ID bound with this NPC
|
||||
public uint? GetWayPointID()
|
||||
{
|
||||
uint? dwID = 0;
|
||||
if ((m_pDBEssence?.combined_services & 0x08) != 0)
|
||||
dwID = m_pDBEssence?.id_to_discover;
|
||||
|
||||
return dwID;
|
||||
}
|
||||
|
||||
// Get essence data in database
|
||||
public NPC_ESSENCE? GetDBEssence() { return m_pDBEssence; }
|
||||
}
|
||||
|
||||
@@ -1359,6 +1359,12 @@ namespace CSNetwork.S2CCommand
|
||||
{
|
||||
public int id;
|
||||
};
|
||||
|
||||
public struct cmd_sevnpc_serve
|
||||
{
|
||||
public int service_type;
|
||||
public uint len;
|
||||
};
|
||||
}
|
||||
|
||||
// Player and NPC state
|
||||
@@ -503,5 +503,15 @@ namespace CSNetwork.C2SCommand
|
||||
{
|
||||
return SerializeCommand(iCmd);
|
||||
}
|
||||
|
||||
public static Octets CreateNPCSevWaypointCmd(int serviceType, uint len)
|
||||
{
|
||||
var cmd = new cmd_sevnpc_serve
|
||||
{
|
||||
service_type = serviceType,
|
||||
len = len
|
||||
};
|
||||
return SerializeCommand(CommandID.SEVNPC_SERVE, cmd);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -111,5 +111,72 @@ namespace CSNetwork.Common
|
||||
}
|
||||
}
|
||||
|
||||
public enum SERVICE_TYPE : int
|
||||
{
|
||||
// ½»Ì¸·þÎñ
|
||||
NPC_TALK = int.MinValue,
|
||||
// ³öÊÛÉÌÆ·µÄ·þÎñ
|
||||
NPC_SELL,
|
||||
// ÊÕ¹ºÉÌÆ·µÄ·þÎñ
|
||||
NPC_BUY,
|
||||
// ÐÞÀíÉÌÆ·µÄ·þÎñ
|
||||
NPC_REPAIR,
|
||||
// ÏâǶ·þÎñ
|
||||
NPC_INSTALL,
|
||||
// ²ð³ý·þÎñ
|
||||
NPC_UNINSTALL,
|
||||
// ÈÎÎñÏà¹Ø·þÎñ,·Ö·¢ÈÎÎñºÍÍê³ÉÈÎÎñÒÔ¼°·¢·ÅÈÎÎñÎïÆ·
|
||||
NPC_GIVE_TASK,
|
||||
NPC_COMPLETE_TASK,
|
||||
NPC_GIVE_TASK_MATTER,
|
||||
// ½ÌÊÚÏà¹Ø·þÎñ
|
||||
NPC_SKILL,
|
||||
// ÖÎÁÆ·þÎñ
|
||||
NPC_HEAL,
|
||||
// ´«ËÍ·þÎñ
|
||||
NPC_TRANSMIT,
|
||||
// ÔËÊä·þÎñ
|
||||
NPC_TRANSPORT,
|
||||
// ´úÊÛ·þÎñ
|
||||
NPC_PROXY,
|
||||
// ´æ´¢ÎïÆ·¡¢½ðÇ®
|
||||
NPC_STORAGE,
|
||||
// Éú²ú·þÎñ
|
||||
NPC_MAKE,
|
||||
// ·Ö½â·þÎñ
|
||||
NPC_DECOMPOSE,
|
||||
// TALK·µ»Ø
|
||||
TALK_RETURN,
|
||||
// ½áÊø¶Ô»°
|
||||
TALK_EXIT,
|
||||
// ²Ö¿âÃÜÂë
|
||||
NPC_STORAGE_PASSWORD,
|
||||
// ¼ø¶¨·þÎñ
|
||||
NPC_IDENTIFY,
|
||||
// ·ÅÆúÈÎÎñ
|
||||
TALK_GIVEUP_TASK,
|
||||
// ³ÇÕ½ÅÚËþ½¨Ôì·þÎñ
|
||||
NPC_WAR_TOWERBUILD,
|
||||
// Ï´µã·þÎñ
|
||||
NPC_RESETPROP,
|
||||
// ³èÎï¸ÄÃû·þÎñ
|
||||
NPC_PETNAME,
|
||||
// ³èÎïѧϰ¼¼ÄÜ·þÎñ
|
||||
NPC_PETLEARNSKILL,
|
||||
// ³èÎïÒÅÍü¼¼ÄÜ·þÎñ
|
||||
NPC_PETFORGETSKILL,
|
||||
// ×°±¸°ó¶¨·þÎñ
|
||||
NPC_EQUIPBIND,
|
||||
// ×°±¸Ïú»Ù·þÎñ
|
||||
NPC_EQUIPDESTROY,
|
||||
// ×°±¸½â³ýÏú»Ù·þÎñ
|
||||
NPC_EQUIPUNDESTROY,
|
||||
// ÕʺŲֿâ
|
||||
NPC_ACCOUNT_STORAGE,
|
||||
// ïÔ¿Ì·þÎñ
|
||||
NPC_ENGRAVE,
|
||||
// ×°±¸ÖØÖý£¨Ëæ»úÊôÐÔ£©
|
||||
NPC_RANDPROP,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -518,6 +518,126 @@ namespace CSNetwork.GPDataType
|
||||
public const int PRAY_DISTANCE_CHANGE = 396; // Ò÷³ª¾àÀë²ÎÊý
|
||||
}
|
||||
|
||||
// NPC service type
|
||||
public static class NPC_service_type
|
||||
{
|
||||
public const int GP_NPCSEV_SELL = 1, // 1, NPC sell to player
|
||||
GP_NPCSEV_BUY = 2, // 2, NPC buy from player
|
||||
GP_NPCSEV_REPAIR = 3, // 3
|
||||
GP_NPCSEV_HEAL = 4, // 4
|
||||
GP_NPCSEV_TRANSMIT = 5, // 5, Transmit to somewhere
|
||||
|
||||
GP_NPCSEV_TASK_RETURN = 6, // 6, Return task
|
||||
GP_NPCSEV_TASK_ACCEPT = 7, // 7, Accept task
|
||||
GP_NPCSEV_TASK_MATTER = 8, // 8, Task matter
|
||||
GP_NPCSEV_LEARN = 9, // 9, Learn skill
|
||||
GP_NPCSEV_EMBED = 10, // 10, Embed stone
|
||||
|
||||
GP_NPCSEV_CLEAR_TESSERA = 11, // 11, Clear tessear
|
||||
GP_NPCSEV_MAKEITEM = 12, // 12
|
||||
GP_NPCSEV_BREAKITEM = 13, // 13
|
||||
GP_NPCSEV_TRASHPSW = 14, // 14, Change trash password
|
||||
GP_NPCSEV_OPENTRASH = 15, // 15, Open trash
|
||||
|
||||
GP_NPCSEV_RESERVED = 16, // 16
|
||||
GP_NPCSEV_IDENTIFY = 17, // 17, Identify item
|
||||
GP_NPCSEV_FACTION = 18, // 18, About faction
|
||||
GP_NPCSEV_BOOTHSELL = 19, // 19, Player booth sell
|
||||
GP_NPCSEV_TRAVEL = 20, // 20, Travel
|
||||
|
||||
GP_NPCSEV_BOOTHBUY = 21, // 21, Player booth buy
|
||||
GP_NPCSEV_WAYPOINT = 22, // 22
|
||||
GP_NPCSEV_FORGETSKILL = 23, // 23
|
||||
GP_NPCSEV_FACECHANGE = 24, // 24
|
||||
GP_NPCSEV_MAIL = 25, // 25
|
||||
|
||||
GP_NPCSEV_VENDUE = 26, // 26
|
||||
GP_NPCSEV_DBLEXPTIME = 27, // 27
|
||||
GP_NPCSEV_HATCHPET = 28, // 28
|
||||
GP_NPCSEV_RESTOREPET = 29, // 29
|
||||
GP_NPCSEV_BATTLE = 30, // 30
|
||||
|
||||
GP_NPCSEV_BUILDTOWER = 31, // 31
|
||||
GP_NPCSEV_LEAVEBATTLE = 32, // 32
|
||||
GP_NPCSEV_RETURNSTATUSPT = 33, // 33
|
||||
GP_NPCSEV_ACCOUNTPOINT = 34, // 34
|
||||
GP_NPCSEV_REFINE = 35, // 35
|
||||
|
||||
GP_NPCSEV_PETNAME = 36, // 36, change pet name
|
||||
GP_NPCSEV_PETSKILL_DEL = 37, // 37, Delete pet skill
|
||||
GP_NPCSEV_PETSKILL_LEARN = 38, // 38, Learn pet skill
|
||||
GP_NPCSEV_BIND_ITEM = 39, // 39, Bind item
|
||||
GP_NPCSEV_DESTROY_BIND = 40, // 40, Destroy bind item
|
||||
|
||||
CP_NPCSEV_CANCEL_DESTROY = 41, // 41, Cancel destroy bind item
|
||||
GP_NPCSEV_STOCK_TRANSACTION = 42,// 42
|
||||
GP_NPCSEV_STOCK_OPERATION = 43, // 43
|
||||
GP_NPCSEV_DYE = 44, // 44
|
||||
GP_NPCSEV_REFINE_TRANS = 45, // 45
|
||||
|
||||
GP_NPCSEV_COMPOSE = 46, // 46
|
||||
GP_NPCSEV_MAKE_SLOT = 47, // 47
|
||||
GP_NPCSEV_GOBLIN_RETURNSTATUSPT = 48, // 48, Return goblin status point
|
||||
GP_NPCSEV_GOBLIN_RETURNGENIUSPT = 49, // 49, Return goblin genius point
|
||||
GP_NPCSEV_GOBLINSKILL_LEARN = 50, // 50, Learn goblin skill
|
||||
|
||||
GP_NPCSEV_GOBLINSKILL_DEL = 51, // 51, delete goblin skill
|
||||
GP_NPCSEV_GOBLIN_REFINE = 52, // 52, Refine goblin
|
||||
GP_NPCSEV_GOBLIN_REFINETRANSFER = 53, // 53, Transfer refine level
|
||||
GP_NPCSEV_GOBLIN_DESTROY = 54, // 54, Destroy goblin
|
||||
GP_NPCSEV_GOBLINEQUIP_DESTROY = 55, // 55, Destroy goblin's equipment
|
||||
|
||||
GP_NPCSEV_DYE_BY_SUIT = 56, // 56, Dye by suit
|
||||
GP_NPCSEV_REPAIR_DESTROYING_ITEM = 57, // 57, Repair destroying item
|
||||
GP_NPCSEV_LEVELUP_PRODUCE = 58, // 58, Level up produce
|
||||
GP_NPCSEV_OPEN_ACCOUNT_BOX = 59, // 59, Open account box
|
||||
GP_NPCSEV_WEBTRADE = 60, // 60, Web trade
|
||||
|
||||
GP_NPCSEV_GODEVILCONVERT = 61, // 61, Convert between god and evil
|
||||
GP_NPCSEV_WEDDING_BOOK = 62, // 62
|
||||
GP_NPCSEV_WEDDING_INVITE = 63, // 63
|
||||
GP_NPCSEV_FACTION_FORTRESS_SERVICE_1 = 64, // 64
|
||||
GP_NPCSEV_FACTION_FORTRESS_SERVICE_2 = 65, // 65
|
||||
|
||||
GP_NPCSEV_FACTION_FORTRESS_SERVICE_3 = 66, // 66
|
||||
GP_NPCSEV_PET_DYE = 67, // 67
|
||||
GP_NPCSEV_VIEW_TRASHBOX = 68, // 68, check the trash box without password
|
||||
GP_NPCSEV_ENGRAVE = 69, // 69
|
||||
GP_NCPSEV_DPS_DPH_RANK = 70, // 70
|
||||
|
||||
GP_NPCSEV_ADDONREGEN = 71, // 71
|
||||
GP_NPCSEV_FORCE = 72, // 72
|
||||
GP_NPCSEV_TRANSMIT_DIRECT = 73, // 73
|
||||
GP_NPCSEV_PREVIEW_PRODUCE = 74, // 74
|
||||
GP_NPCSEV_COUNTRY_JOINLEAVE = 75,// 75
|
||||
|
||||
GP_NPCSEV_COUNTRY_LEAVEWAR = 76, // 76
|
||||
GP_NPCSEV_MARK = 77, // 77
|
||||
GP_NPCSEV_CROSSSERVER_GETIN = 78,// 78
|
||||
GP_NPCSEV_CROSSSERVER_GETOUT = 79,// 79
|
||||
|
||||
GP_NPCSEV_PLAYER_RENAME = 80, // 80
|
||||
GP_NPCSEV_STONE_TRANSFER = 81, // 81
|
||||
GP_NPCSEV_STONE_REPLACE = 82, // 82
|
||||
GP_NPCSEV_KINGSEV = 83, // 83
|
||||
GP_NPCSEV_SPLIT_FASHION = 84, // 84
|
||||
|
||||
GP_NPCSEV_OFFLINESHOP = 85, // 85
|
||||
GP_NPCSEV_REINCARNATION = 86, // 86
|
||||
GP_NPCSEV_GIFTCARD = 87, // 87
|
||||
|
||||
GP_NPCSEV_TRICKBATTLE = 88, // 88
|
||||
GP_NPCSEV_CARDRESPAWN = 89, // 89
|
||||
GP_NPCSEV_FLYSWORDIMPROVE = 90, // 90
|
||||
GP_NPCSEV_OPEN_FACTION_PVP = 91, // 91
|
||||
|
||||
GP_NPCSEV_ADVANCED_PRODUCE = 92, // 92
|
||||
GP_NPCSEV_GOLD_SHOP = 93, // 93
|
||||
GP_NPCSEV_DIVIDEND_GOLD_SHOP = 94, // 94
|
||||
GP_NPCSEV_PLAYER_CHANGE_GENDER = 95; // 95
|
||||
}
|
||||
|
||||
|
||||
// Constants used in moving control
|
||||
public struct MOVECONST
|
||||
{
|
||||
@@ -1465,7 +1585,27 @@ namespace CSNetwork.GPDataType
|
||||
{
|
||||
public byte type;
|
||||
};
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct cmd_npc_greeting
|
||||
{
|
||||
public int idObject; // ID of NPC or player
|
||||
};
|
||||
|
||||
public struct cmd_activate_waypoint
|
||||
{
|
||||
public ushort waypoint;
|
||||
};
|
||||
|
||||
public static class GNETRoles
|
||||
{
|
||||
public const int _R_UNMEMBER = 0,
|
||||
_R_SYSTEM = 1,
|
||||
_R_MASTER = 2,
|
||||
_R_VICEMASTER = 3,
|
||||
_R_BODYGUARD = 4,
|
||||
_R_POINEER = 5,
|
||||
_R_MEMBER = 6;
|
||||
}; //end of Roles
|
||||
public struct cmd_server_time
|
||||
{
|
||||
public int time;
|
||||
|
||||
@@ -395,7 +395,7 @@ namespace CSNetwork
|
||||
}
|
||||
#endif
|
||||
int iHostID = _selectedRole.roleid;
|
||||
|
||||
BMLogger.LogError($"### GameDataSend: CMDID {pCmdHeader}");
|
||||
switch (pCmdHeader)
|
||||
{
|
||||
case CommandID.PLAYER_INFO_2:
|
||||
@@ -654,6 +654,16 @@ namespace CSNetwork
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_INFO00, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf,
|
||||
pCmdHeader);
|
||||
break;
|
||||
case CommandID.NPC_GREETING:
|
||||
{
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_NPCGREETING, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
||||
break;
|
||||
}
|
||||
case CommandID.ACTIVATE_WAYPOINT:
|
||||
case CommandID.WAYPOINT_LIST:
|
||||
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_WAYPOINT, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
|
||||
break;
|
||||
case CommandID.SERVER_TIME:
|
||||
{
|
||||
cmd_server_time pcmd_server_time = GPDataTypeHelper.FromBytes<cmd_server_time>(pDataBuf);
|
||||
@@ -1052,6 +1062,12 @@ namespace CSNetwork
|
||||
}
|
||||
}
|
||||
|
||||
public void c2s_SendCmdNPCSevWaypoint()
|
||||
{
|
||||
gamedatasend gamedatasend = new gamedatasend();
|
||||
gamedatasend.Data = C2SCommandFactory.CreateNPCSevWaypointCmd(NPC_service_type.GP_NPCSEV_WAYPOINT, 0);
|
||||
SendProtocol(gamedatasend);
|
||||
}
|
||||
public void GetRoleBaseInfo(int iNumRole, List<int> aRoleIDs)
|
||||
{
|
||||
int iNumLimit = 128;
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using BrewMonster;
|
||||
using BrewMonster.Common;
|
||||
using CSNetwork;
|
||||
using CSNetwork.C2SCommand;
|
||||
using CSNetwork.Protocols;
|
||||
@@ -29,6 +30,8 @@ namespace BrewMonster.Network
|
||||
private string _username = "";
|
||||
private string _password = "";
|
||||
|
||||
CECStubbornFactionInfoSender m_stubbornFactionInfoSender;
|
||||
|
||||
#if UNITY_EDITOR
|
||||
public bool isDebg;
|
||||
private bool lastDebug;
|
||||
@@ -257,6 +260,15 @@ namespace BrewMonster.Network
|
||||
{
|
||||
Instance._gameSession.c2s_CmdSelectTarget(idTarget);
|
||||
}
|
||||
public static void c2s_CmdNPCSevWaypoint()
|
||||
{
|
||||
Instance._gameSession.c2s_SendCmdNPCSevWaypoint();
|
||||
}
|
||||
|
||||
public void GetFactionInfo(int iNumFaction, int[] aFactinoIDs)
|
||||
{
|
||||
m_stubbornFactionInfoSender.Add(iNumFaction, aFactinoIDs);
|
||||
}
|
||||
public static void c2s_CmdSendEnterPKPrecinct()
|
||||
{
|
||||
Instance._gameSession.c2s_CmdSendEnterPKPrecinctint();
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts.Player;
|
||||
using CSNetwork.GPDataType;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using CSNetwork.GPDataType;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Scripts.Task
|
||||
@@ -1150,7 +1151,18 @@ namespace BrewMonster.Scripts.Task
|
||||
// use this to avoid task hack by changing the system time
|
||||
return (uint)EC_Game.GetServerAbsTime();
|
||||
}
|
||||
}
|
||||
|
||||
private const string SYMBOL_HOSTNAME = "$name";
|
||||
|
||||
public string FormatTaskTalk(string taskTalk)
|
||||
{
|
||||
string ret = taskTalk ?? string.Empty;
|
||||
if (taskTalk == null) return ret;
|
||||
|
||||
string strName = m_pHost.GetName(); // assumes string; use ToString() if needed
|
||||
return ret.Replace(SYMBOL_HOSTNAME, $"&{strName}&");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 072fe2eeccf3b7c4a98f9474ad26f60c
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,115 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
public class AUIListBox : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private RectTransform content;
|
||||
[SerializeField] private ScrollView scrollView;
|
||||
[SerializeField] private ItemUIListBox prefabItemUIListBox;
|
||||
[SerializeField] private float heightItem = 100f;
|
||||
[SerializeField] private float paddingY = 10f;
|
||||
|
||||
List<ItemUIListBox> m_Item = new List<ItemUIListBox>();
|
||||
int m_nCurSel = 0;
|
||||
|
||||
const uint AUILISTBOX_ERROR = 0xFFFFFFFF; // same as -1 for uint
|
||||
public void ResetContent()
|
||||
{
|
||||
foreach(var item in m_Item)
|
||||
{
|
||||
Destroy(item.gameObject);
|
||||
}
|
||||
m_Item.Clear();
|
||||
content.anchoredPosition = Vector2.zero;
|
||||
content.sizeDelta = Vector2.zero;
|
||||
}
|
||||
|
||||
public void AddString(string pszString)
|
||||
{
|
||||
ItemUIListBox item = Instantiate(prefabItemUIListBox, content);
|
||||
item.SetText(pszString);
|
||||
item.gameObject.SetActive(true);
|
||||
m_Item.Add(item);
|
||||
Vector2 size = content.sizeDelta;
|
||||
size.y = heightItem * m_Item.Count + m_Item.Count * paddingY;
|
||||
content.sizeDelta = size;
|
||||
}
|
||||
|
||||
public int SetItemData(int nIndex, uint dwItemData, int nSubIndex = 0, string strName = "")
|
||||
{
|
||||
if (nIndex < 0 || nIndex >= (m_Item.Count))
|
||||
return -1;
|
||||
if (nSubIndex < 0 || nSubIndex >= 20) // #define AUILISTBOX_DATA_NUM AUILISTBOX_MAX_COLUMN 20
|
||||
return -1;
|
||||
m_Item[nIndex].strDataName[nSubIndex] = strName;
|
||||
m_Item[nIndex].dwData[nSubIndex] = dwItemData;
|
||||
return nIndex;
|
||||
}
|
||||
|
||||
public int SetItemDataPtr(int nIndex, object pData, int nSubIndex = 0, string strName = "")
|
||||
{
|
||||
if (nIndex < 0 || nIndex >= (m_Item.Count))
|
||||
return -1;
|
||||
if (nSubIndex < 0 || nSubIndex >= 20) // #define AUILISTBOX_DATA_NUM AUILISTBOX_MAX_COLUMN 20
|
||||
return -1;
|
||||
|
||||
m_Item[nIndex].strDataPtrName[nSubIndex] = strName;
|
||||
m_Item[nIndex].pvData[nSubIndex] = pData;
|
||||
return nIndex;
|
||||
}
|
||||
|
||||
public int GetCount()
|
||||
{
|
||||
return m_Item.Count;
|
||||
}
|
||||
|
||||
public object GetItemDataPtr(int nIndex, int nSubIndex, string strName)
|
||||
{
|
||||
if (nIndex < 0 || nIndex >= m_Item.Count)
|
||||
return null;
|
||||
if (nSubIndex < 0 || nSubIndex >= 20) // #define AUILISTBOX_DATA_NUM AUILISTBOX_MAX_COLUMN 20
|
||||
return null;
|
||||
|
||||
//if (0 != m_Item[nIndex].pvData[nSubIndex] && strName != m_Item[nIndex].strDataPtrName[nSubIndex])
|
||||
// AUI_ReportError(__LINE__, 1, "AUIListBox::GetItemDataPtr(), data name not match");
|
||||
return m_Item[nIndex].pvData[nSubIndex];
|
||||
}
|
||||
|
||||
public uint GetItemData(int nIndex, int nSubIndex, string strName)
|
||||
{
|
||||
if (nIndex < 0 || nIndex >= m_Item.Count)
|
||||
return AUILISTBOX_ERROR;
|
||||
if (nSubIndex < 0 || nSubIndex >= 20)
|
||||
return AUILISTBOX_ERROR;
|
||||
|
||||
//if (0 != m_Item[nIndex].dwData[nSubIndex] && strName != m_Item[nIndex].strDataName[nSubIndex])
|
||||
// AUI_ReportError(__LINE__, 1, "AUIListBox::GetItemData(), data name not match");
|
||||
return m_Item[nIndex].dwData[nSubIndex];
|
||||
}
|
||||
|
||||
public void SetCurSel(int nIndex)
|
||||
{
|
||||
//if (nIndex != m_nCurSel)
|
||||
// UpdateRenderTarget();
|
||||
|
||||
m_nCurSel = nIndex;
|
||||
}
|
||||
|
||||
public int GetCurSel()
|
||||
{
|
||||
return m_nCurSel;
|
||||
}
|
||||
|
||||
public string GetText(int nIndex)
|
||||
{
|
||||
if (nIndex < 0 || nIndex >= (m_Item.Count))
|
||||
return "";
|
||||
else
|
||||
return m_Item[nIndex].strText;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e94504b96a4532444acf89e50910d8e1
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1a69ae0024fdd744f8481223fa2dc85c
|
||||
@@ -0,0 +1,23 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster
|
||||
{
|
||||
public class ItemUIListBox : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private TextMeshProUGUI txtItem;
|
||||
|
||||
public string[] strDataName = new string[20];
|
||||
public string[] strDataPtrName = new string[20];
|
||||
public uint[] dwData = new uint[20];
|
||||
public object[] pvData = new object[20];
|
||||
|
||||
public string strText;
|
||||
|
||||
public void SetText(string txt)
|
||||
{
|
||||
strText = txt;
|
||||
txtItem.text = txt;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ce1dfcc5e6936e547a2a2b7d112ebea1
|
||||
@@ -0,0 +1,306 @@
|
||||
using BrewMonster.Common;
|
||||
using BrewMonster.Managers;
|
||||
using BrewMonster.Network;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
public class CECGameUIMan
|
||||
{
|
||||
DlgNPC m_pDlgNPC;
|
||||
public NPC_ESSENCE? m_pCurNPCEssence;
|
||||
private DialogScriptTableObject m_dialogResouce;
|
||||
private Canvas m_canvas;
|
||||
Dictionary<int, string> m_StringTable = new Dictionary<int, string>();
|
||||
Dictionary<int, string> m_auiDialog_stringTable = new Dictionary<int, string>();
|
||||
|
||||
public static bool TALKPROC_IS_TERMINAL(uint id)
|
||||
{
|
||||
return ((id & 0x80000000u) != 0) && ((id & 0x40000000u) != 0);
|
||||
}
|
||||
|
||||
public static bool TALKPROC_IS_FUNCTION(uint id)
|
||||
{
|
||||
return ((id) & 0x80000000) != 0;
|
||||
}
|
||||
|
||||
public static uint TALKPROC_GET_FUNCTION_ID(uint id)
|
||||
{
|
||||
return ((id) & 0x7FFFFFFF);
|
||||
}
|
||||
|
||||
public string GetStringFromTable(int idString)
|
||||
{
|
||||
if (m_StringTable.TryGetValue(idString, out var str))
|
||||
return str;
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public string GetStringFromAuiDialogTable(int idString)
|
||||
{
|
||||
if (m_auiDialog_stringTable.TryGetValue(idString, out var str))
|
||||
return str;
|
||||
return null;
|
||||
}
|
||||
|
||||
public void SetDependency(DialogScriptTableObject resouce, Canvas canvas)
|
||||
{
|
||||
m_dialogResouce = resouce;
|
||||
m_canvas = canvas;
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
ImportStringTable("ingame.stf");
|
||||
ImportAuiDialogStringTable("msgbox.stf");
|
||||
}
|
||||
|
||||
public string Translate(ushort[] str)
|
||||
{
|
||||
if (str == null || str.Length == 0)
|
||||
return null;
|
||||
string m_AWString = "";
|
||||
string input = new string(str.Where(c => c != 0).Select(c => (char)c).ToArray());
|
||||
m_AWString = input;
|
||||
|
||||
var result = new System.Text.StringBuilder();
|
||||
|
||||
int i = 0;
|
||||
while (i < input.Length)
|
||||
{
|
||||
char c = input[i];
|
||||
|
||||
if (c != '\\')
|
||||
{
|
||||
result.Append(c);
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
|
||||
i++;
|
||||
if (i >= input.Length)
|
||||
break;
|
||||
|
||||
char next = input[i];
|
||||
|
||||
switch (next)
|
||||
{
|
||||
case '\n':
|
||||
i++;
|
||||
break;
|
||||
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
{
|
||||
int value = 0;
|
||||
int count = 3;
|
||||
while (i < input.Length && input[i] >= '0' && input[i] <= '7' && count > 0)
|
||||
{
|
||||
count--;
|
||||
value = value * 8 + (input[i] - '0');
|
||||
i++;
|
||||
}
|
||||
if (value <= 255)
|
||||
result.Append((char)(value & 0xFF));
|
||||
break;
|
||||
}
|
||||
|
||||
case '"':
|
||||
case '\'':
|
||||
case '\\':
|
||||
result.Append(next);
|
||||
i++;
|
||||
break;
|
||||
|
||||
case 'n':
|
||||
result.Append('\n');
|
||||
i++;
|
||||
break;
|
||||
case 'r':
|
||||
result.Append('\r');
|
||||
i++;
|
||||
break;
|
||||
case 't':
|
||||
result.Append('\t');
|
||||
i++;
|
||||
break;
|
||||
case 'v':
|
||||
result.Append('\v');
|
||||
i++;
|
||||
break;
|
||||
|
||||
default:
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
m_AWString = result.ToString();
|
||||
return m_AWString;
|
||||
}
|
||||
|
||||
private bool ImportStringTable(string pszFilename)
|
||||
{
|
||||
//AWScriptFile s = new AWScriptFile();
|
||||
string szFilename = Path.Combine(Application.streamingAssetsPath, pszFilename);
|
||||
|
||||
foreach (var line in File.ReadLines(szFilename))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
continue;
|
||||
|
||||
var parts = line.Split('\t', StringSplitOptions.RemoveEmptyEntries);
|
||||
if (parts.Length < 2)
|
||||
continue;
|
||||
|
||||
if (int.TryParse(parts[0], out int key))
|
||||
{
|
||||
string value = parts[1].Trim();
|
||||
if (value.StartsWith("\"") && value.EndsWith("\""))
|
||||
value = value.Substring(1, value.Length - 2);
|
||||
|
||||
m_StringTable[key] = value;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
//bool bval = s.Open(szFilename);
|
||||
//if (!bval) return false;
|
||||
|
||||
//while (!s.IsEnd())
|
||||
//{
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) break; // End of file.
|
||||
// int idString = int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken));
|
||||
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) return false;
|
||||
// string str = (Translate(s.m_szToken));
|
||||
// m_StringTable[idString] = str;
|
||||
//}
|
||||
//s.Close();
|
||||
|
||||
//if (a_stricmp(GetStringFromTable(1), _AL("")) == 0) //1 ĬÈÏ×ÖÌå
|
||||
// m_StringTable[1] = _AL("·½ÕýϸºÚÒ»¼òÌå");
|
||||
//m_strDefaultFontName = GetStringFromTable(1);
|
||||
//if (a_stricmp(GetStringFromTable(2), _AL("")) == 0) //2 ĬÈÏ×ÖÌå´óС
|
||||
// m_StringTable[2] = _AL("10");
|
||||
//m_nDefaultFontSize = a_atoi(GetStringFromTable(2));
|
||||
//if (a_stricmp(GetStringFromTable(3), _AL("")) == 0) //3 ·ûºÅ '\t' Ï൱ÓÚ¶àÉÙ¸ö 'W'µÄ¿í¶È
|
||||
// m_StringTable[3] = _AL("30");
|
||||
//_tab_char = a_atoi(GetStringFromTable(3));
|
||||
//if (a_stricmp(GetStringFromTable(4), _AL("")) == 0) //4 m_FontImagePicture ×ÖÌå´óС
|
||||
// m_StringTable[4] = m_StringTable[2];
|
||||
//if (a_stricmp(GetStringFromTable(5), _AL("")) == 0) //5 MessageBox ×ÖÌå´óС
|
||||
// m_StringTable[5] = m_StringTable[2];
|
||||
//if (a_stricmp(GetStringFromTable(6), _AL("")) == 0) //6 MessageBox shadow
|
||||
// m_StringTable[6] = _AL("0");
|
||||
//if (a_stricmp(GetStringFromTable(7), _AL("")) == 0) //7 MessageBox outline
|
||||
// m_StringTable[7] = _AL("0");
|
||||
//if (a_stricmp(GetStringFromTable(8), _AL("")) == 0) //8 MessageBox outline color
|
||||
// m_StringTable[8] = _AL("0");
|
||||
|
||||
//m_FontHint.szFontName = GetStringFromTable(1);
|
||||
//m_FontHint.nFontSize = a_atoi(GetStringFromTable(2));
|
||||
//m_FontImagePicture.szFontName = GetStringFromTable(1);
|
||||
//m_FontImagePicture.nFontSize = a_atoi(GetStringFromTable(4));
|
||||
//m_FontImagePicture.nOutline = 1;
|
||||
//m_FontMessageBox.szFontName = GetStringFromTable(1);
|
||||
//m_FontMessageBox.nFontSize = a_atoi(GetStringFromTable(5));
|
||||
//m_FontMessageBox.nShadow = a_atoi(GetStringFromTable(6));
|
||||
//m_FontMessageBox.nOutline = a_atoi(GetStringFromTable(7));
|
||||
//return true;
|
||||
}
|
||||
|
||||
public bool ImportAuiDialogStringTable(string pszFilename)
|
||||
{
|
||||
|
||||
//bool bval;
|
||||
//int idString;
|
||||
//string str;
|
||||
//AWScriptFile s = new AWScriptFile();
|
||||
string szFilename = Path.Combine(Application.streamingAssetsPath, pszFilename);
|
||||
//bval = s.Open(szFilename);
|
||||
//if (!bval) return true; // Ignore error.
|
||||
//while (!s.IsEnd())
|
||||
//{
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) break; // End of file.
|
||||
// idString = int.Parse(ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken));
|
||||
|
||||
// bval = s.GetNextToken(true);
|
||||
// if (!bval) return false;
|
||||
|
||||
// str = ByteToStringUtils.UshortArrayToUnicodeString(s.m_szToken);
|
||||
// if(m_auiDialog_stringTable.TryGetValue(idString, out string value))
|
||||
// {
|
||||
// m_auiDialog_stringTable[idString] = str;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// m_auiDialog_stringTable.Add(idString, str);
|
||||
// }
|
||||
//}
|
||||
|
||||
//s.Close();
|
||||
foreach (var line in File.ReadLines(szFilename))
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(line))
|
||||
continue;
|
||||
|
||||
var parts = line.Split('\t', StringSplitOptions.RemoveEmptyEntries);
|
||||
if (parts.Length < 2)
|
||||
continue;
|
||||
|
||||
if (int.TryParse(parts[0], out int key))
|
||||
{
|
||||
string value = parts[1].Trim();
|
||||
if (value.StartsWith("\"") && value.EndsWith("\""))
|
||||
value = value.Substring(1, value.Length - 2);
|
||||
|
||||
m_auiDialog_stringTable[key] = value;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void PopupNPCDialog(NPC_ESSENCE pEssence)
|
||||
{
|
||||
if(m_pDlgNPC == null)
|
||||
{
|
||||
GameObject ob = m_dialogResouce.GetPrefabDialog("DialogNPC");
|
||||
m_pDlgNPC = GameObject.Instantiate(ob, m_canvas.transform).GetComponent<DlgNPC>();
|
||||
}
|
||||
m_pDlgNPC.PopupDialog(pEssence);
|
||||
}
|
||||
|
||||
public void PopupNPCDialog(talk_proc pTalk)
|
||||
{
|
||||
if(m_pDlgNPC == null)
|
||||
{
|
||||
GameObject ob = m_dialogResouce.GetPrefabDialog("DialogNPC");
|
||||
m_pDlgNPC = GameObject.Instantiate(ob, m_canvas.transform).GetComponent<DlgNPC>();
|
||||
}
|
||||
m_pDlgNPC.PopupNPCDialog(pTalk);
|
||||
}
|
||||
|
||||
public void EndNPCService()
|
||||
{
|
||||
m_pCurNPCEssence = null;
|
||||
//EC_Game.GetGameRun().GetHostPlayer().EndNPCService();
|
||||
EC_ManMessageMono.Instance.EC_ManPlayer.GetHostPlayer().EndNPCService();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 450eac8e68388db418e23a6896c839c1
|
||||
@@ -16,11 +16,13 @@ namespace BrewMonster
|
||||
}
|
||||
public void SetHealthImage(float health)
|
||||
{
|
||||
_healthImage.fillAmount = health;
|
||||
if(_healthImage != null)
|
||||
_healthImage.fillAmount = health;
|
||||
}
|
||||
public void SetHealthText(string healthText)
|
||||
{
|
||||
_healthText.text = healthText;
|
||||
if(_healthText != null)
|
||||
_healthText.text = healthText;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ GameObject:
|
||||
- component: {fileID: 5975684648087068252}
|
||||
- component: {fileID: 1882963580244400679}
|
||||
- component: {fileID: -5899287755522118344}
|
||||
- component: {fileID: 1637622316711963511}
|
||||
m_Layer: 0
|
||||
m_Name: NPCServer
|
||||
m_TagString: Untagged
|
||||
@@ -66,6 +67,29 @@ MonoBehaviour:
|
||||
m_npcUI: {fileID: 0}
|
||||
m_fMoveSpeed: 0
|
||||
_characterController: {fileID: 0}
|
||||
--- !u!136 &1637622316711963511
|
||||
CapsuleCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2426933851766496167}
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_IsTrigger: 1
|
||||
m_ProvidesContacts: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Radius: 0.5
|
||||
m_Height: 2
|
||||
m_Direction: 1
|
||||
m_Center: {x: 0, y: 1, z: 0}
|
||||
--- !u!1 &3297168817873124018
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -93,7 +117,7 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3297168817873124018}
|
||||
m_LocalRotation: {x: -0.002627404, y: 0.9181325, z: 0.3962182, w: 0.0060883234}
|
||||
m_LocalRotation: {x: 8.102368e-16, y: 1, z: 0.000000046460137, w: -0.000000017439397}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
@@ -255,7 +279,7 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6510845919681767284}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalRotation: {x: -0.015657494, y: 0.89469767, z: -0.03145985, w: -0.44528785}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7653e7e64393ec24c903f0606499b8c4
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,11 +1,12 @@
|
||||
using CSNetwork.GPDataType;
|
||||
using BrewMonster;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.World;
|
||||
using BrewMonster.UI;
|
||||
using CSNetwork;
|
||||
using CSNetwork.GPDataType;
|
||||
using CSNetwork.GPDataType;
|
||||
using CSNetwork.Protocols.RPCData;
|
||||
using System.Data;
|
||||
using BrewMonster.Network;
|
||||
using CSNetwork;
|
||||
using Unity.Cinemachine;
|
||||
using UnityEngine;
|
||||
|
||||
@@ -25,6 +26,8 @@ public partial class CECGameRun : MonoBehaviour, IMsgHandler
|
||||
public float rotateSpeedX = 300f; // tốc độ xoay ngang
|
||||
public float rotateSpeedY = 2f; // tốc độ xoay dọc
|
||||
private CECWorld m_pWorld;
|
||||
|
||||
protected CECUIManager m_pUIManager; // UI manager
|
||||
public CECWorld GetWorld() { return m_pWorld; }
|
||||
public bool StartGame(int idInst, Vector3 vHostPos)
|
||||
{
|
||||
@@ -160,4 +163,15 @@ public partial class CECGameRun : MonoBehaviour, IMsgHandler
|
||||
// freeLookCam.m_YAxis.m_MaxSpeed = 0;
|
||||
// }
|
||||
//}
|
||||
|
||||
|
||||
// Get UI manager
|
||||
public CECUIManager GetUIManager()
|
||||
{
|
||||
if(m_pUIManager == null)
|
||||
{
|
||||
m_pUIManager = CECUIManager.Instance;
|
||||
}
|
||||
return m_pUIManager;
|
||||
}
|
||||
}
|
||||
|
||||
+278
-40
@@ -1,6 +1,5 @@
|
||||
using BrewMonster;
|
||||
using BrewMonster.Assets.PerfectWorld.Scripts.Players;
|
||||
using BrewMonster.Assets.PerfectWorld.Scripts.Skills;
|
||||
using BrewMonster.Managers;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts;
|
||||
@@ -8,34 +7,21 @@ using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts.Player;
|
||||
using BrewMonster.Scripts.Skills;
|
||||
using CSNetwork;
|
||||
using CSNetwork.Common;
|
||||
using CSNetwork.GPDataType;
|
||||
using CSNetwork.Protocols;
|
||||
using CSNetwork.Protocols.RPCData;
|
||||
using NUnit.Framework;
|
||||
using PerfectWorld.Scripts.Managers;
|
||||
using PerfectWorld.Scripts.Managers.BrewMonster.Managers;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using PerfectWorld.Scripts.Player;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using BrewMonster.PerfectWorld.Scripts.Vfx;
|
||||
using TMPro;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEditor.Experimental.GraphView;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
using UnityEngine.UI;
|
||||
using static Unity.Burst.Intrinsics.X86.Avx;
|
||||
using static UnityEditor.PlayerSettings;
|
||||
using Scene = UnityEngine.SceneManagement.Scene;
|
||||
using Trace_reason = CECHPWorkTrace.Trace_reason;
|
||||
using Host_work_ID = BrewMonster.Scripts.CECHPWork.Host_work_ID;
|
||||
using BrewMonster.Scripts;
|
||||
using BrewMonster.Scripts.World;
|
||||
using PerfectWorld.Scripts.Managers;
|
||||
|
||||
public partial class CECHostPlayer : CECPlayer
|
||||
{
|
||||
@@ -86,6 +72,10 @@ public partial class CECHostPlayer : CECPlayer
|
||||
public GNDINFO m_GndInfo;
|
||||
private int m_idUCSelTarget; // Uncertificately selected object's ID
|
||||
public float m_fVertSpeed = 0f;
|
||||
int m_idSevNPC = 0; // Current service NPC
|
||||
bool m_bTalkWithNPC = false; // true, is talking with NPC
|
||||
List<ushort> m_aWayPoints = new List<ushort>(); // Active way points
|
||||
bool m_bIsInKingService = false; // ÊÇ·ñÕýÔÚ½øÐйúÍõ·þÎñ²Ù×÷
|
||||
CECActionSwitcherBase m_pActionSwitcher;
|
||||
|
||||
// ====== Ground cast config ======
|
||||
@@ -110,6 +100,8 @@ public partial class CECHostPlayer : CECPlayer
|
||||
float ccRadius, ccSkin;
|
||||
RaycastHit lastGroundHit;
|
||||
Camera mainCam;
|
||||
Ray ray;
|
||||
RaycastHit hit;
|
||||
|
||||
private BaseVfxObject m_pSelectedGFX;
|
||||
private BaseVfxObject m_pHoverGFX;
|
||||
@@ -230,14 +222,11 @@ public partial class CECHostPlayer : CECPlayer
|
||||
int iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_NONE;
|
||||
bool bWikiMonster = false;
|
||||
|
||||
Ray ray = mainCam.ScreenPointToRay(Input.mousePosition);
|
||||
RaycastHit hit;
|
||||
ray = mainCam.ScreenPointToRay(Input.mousePosition);
|
||||
|
||||
if (Physics.Raycast(ray, out hit))
|
||||
{
|
||||
CECObject clickedObject = hit.collider.gameObject.GetComponent<CECObject>();
|
||||
|
||||
if (clickedObject != null)
|
||||
if (hit.collider.gameObject.TryGetComponent<CECObject>(out CECObject clickedObject))
|
||||
{
|
||||
int idObject = CECObject.GetObjectID(clickedObject);
|
||||
if (idObject != 0)
|
||||
@@ -262,6 +251,36 @@ public partial class CECHostPlayer : CECPlayer
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// pCDS.m_RayTraceRt.iEntity == ECENT_PLAYER
|
||||
CECPlayer pPlayer = EC_ManMessageMono.Instance.EC_ManPlayer.GetPlayer(idObject);
|
||||
|
||||
// 1. Msg.dwParam4 is double click flag.
|
||||
// 2. Buddy player counld't be traced
|
||||
if (!pPlayer.IsDead() /*&& pPlayer.GetCharacterID() != m_iBuddyId*/ &&
|
||||
(m_idSelTarget == idObject /*|| (Msg.dwParam4 && m_idUCSelTarget == idObject)*/))
|
||||
{
|
||||
idTraceTarget = idObject;
|
||||
//bForceAttack = glb_GetForceAttackFlag(&Msg.dwParam3);
|
||||
|
||||
if (AttackableJudge(idObject, bForceAttack) == 1)
|
||||
iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_ATTACK;
|
||||
else if (pPlayer.GetBoothState() != 0)
|
||||
iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_TALK;
|
||||
}
|
||||
else
|
||||
{
|
||||
idSelTarget = idObject;
|
||||
}
|
||||
}
|
||||
|
||||
// cancel this action if not selectable
|
||||
if (!CanSelectTarget(idTraceTarget))
|
||||
{
|
||||
idTraceTarget = 0;
|
||||
//return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -281,6 +300,31 @@ public partial class CECHostPlayer : CECPlayer
|
||||
return;
|
||||
NormalAttackObject(idTraceTarget, bForceAttack);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!CanDo(ActionCanDo.CANDO_MOVETO))
|
||||
return;
|
||||
CECHPWork pWork;
|
||||
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_PICKUP)
|
||||
{
|
||||
//PickupObject(idTraceTarget, false);
|
||||
}
|
||||
else if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_GATHER)
|
||||
{
|
||||
//PickupObject(idTraceTarget, true);
|
||||
}
|
||||
else if ((pWork = m_pWorkMan.GetWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT)) != null)
|
||||
{
|
||||
CECHPWorkTrace pWorkTrace = (pWork) as CECHPWorkTrace;
|
||||
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
|
||||
}
|
||||
else if (m_pWorkMan.CanStartWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT) && !bWikiMonster)
|
||||
{
|
||||
CECHPWorkTrace pWorkTrace = (CECHPWorkTrace)m_pWorkMan.CreateWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT);
|
||||
pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
|
||||
m_pWorkMan.StartWork_p1(pWorkTrace);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
m_pWorkMan?.Tick(Time.deltaTime);
|
||||
@@ -428,6 +472,8 @@ public partial class CECHostPlayer : CECPlayer
|
||||
case int value when value == EC_MsgDef.MSG_HST_ATTACKED: OnMsgHstAttacked(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_HURTRESULT: OnMsgHstHurtResult(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_INFO00: OnMsgHstInfo00(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_NPCGREETING: OnMsgHstNPCGreeting(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_WAYPOINT: OnMsgHstWayPoint(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_SKILLDATA: OnMsgHstSkillData(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_DIED: OnMsgHstDied(Msg); break;
|
||||
case int value when value == EC_MsgDef.MSG_HST_GOTO: OnMsgHstGoto(Msg); break;
|
||||
@@ -548,24 +594,24 @@ public partial class CECHostPlayer : CECPlayer
|
||||
if (pCmd.iHP < m_BasicProps.iCurHP && m_BasicProps.iCurHP >= iLimit && pCmd.iHP < iLimit)
|
||||
{
|
||||
|
||||
/*if (CECUIHelper::GetGameUIMan()->IsShowLowHP()) {
|
||||
/*if (CECUIHelper::GetGameUIMan().IsShowLowHP()) {
|
||||
// ѪÁ¿µÍÓÚÁÙ½çÖµÔò²¥·ÅÌØÐ§
|
||||
const int GfxLastTime = 10000; // ³ÖÐøÊ±¼ä10Ãë
|
||||
CECUIHelper::GetGameUIMan()->GetScreenEffectMan()->StartEffect(CECScreenEffect::EFFECT_REDSPARK, GfxLastTime);
|
||||
CECUIHelper::GetGameUIMan().GetScreenEffectMan().StartEffect(CECScreenEffect::EFFECT_REDSPARK, GfxLastTime);
|
||||
}*/
|
||||
}
|
||||
|
||||
/*if (pCmd.iHP >= iLimit || pCmd.iHP <= 0) {
|
||||
// ѪÁ¿¸ßÓÚÁÙ½çÖµ»òËÀÍö£¬ÔòÍ£Ö¹²¥·ÅÌØÐ§
|
||||
CECUIHelper::GetGameUIMan()->GetScreenEffectMan()->FinishEffect(CECScreenEffect::EFFECT_REDSPARK);
|
||||
CECUIHelper::GetGameUIMan().GetScreenEffectMan().FinishEffect(CECScreenEffect::EFFECT_REDSPARK);
|
||||
}*/
|
||||
|
||||
/*iLimit = (int)(pCmd.iMaxMP * 0.2f);
|
||||
if (pCmd.iMP < m_BasicProps.iCurMP && m_BasicProps.iCurMP >= iLimit && pCmd.iMP < iLimit)
|
||||
BubbleText(BUBBLE_MPWARN, 0);*/
|
||||
|
||||
/*if (m_ExtProps.max_ap != pCmd->iMaxAP)
|
||||
g_pGame->GetGameRun()->AddFixedMessage(FIXMSG_ADDMAXAP, pCmd->iMaxAP - m_ExtProps.max_ap);*/
|
||||
/*if (m_ExtProps.max_ap != pCmd.iMaxAP)
|
||||
g_pGame.GetGameRun().AddFixedMessage(FIXMSG_ADDMAXAP, pCmd.iMaxAP - m_ExtProps.max_ap);*/
|
||||
}
|
||||
|
||||
m_BasicProps.iLevel = pCmd.sLevel;
|
||||
@@ -586,10 +632,10 @@ public partial class CECHostPlayer : CECPlayer
|
||||
|
||||
// UpdateGodEvilSprite();
|
||||
|
||||
/*CECGameUIMan* pGameUI = g_pGame->GetGameRun()->GetUIManager()->GetInGameUIMan();
|
||||
CDlgAutoHelp *pDlgHelp = dynamic_cast<CDlgAutoHelp *>(pGameUI->GetDialog("Win_WikiPop"));*/
|
||||
/*CECGameUIMan* pGameUI = g_pGame.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
CDlgAutoHelp *pDlgHelp = dynamic_cast<CDlgAutoHelp *>(pGameUI.GetDialog("Win_WikiPop"));*/
|
||||
/*if(pDlgHelp && m_bFight)
|
||||
pDlgHelp->SetAutoHelpState(false);*/
|
||||
pDlgHelp.SetAutoHelpState(false);*/
|
||||
}
|
||||
void SetLevel2(int level2, bool bFirstTime)
|
||||
{
|
||||
@@ -607,9 +653,9 @@ public partial class CECHostPlayer : CECPlayer
|
||||
if (pCmd.iDamage != 0 && (pCmd.cEquipment & 0x7f) != 0x7f)
|
||||
{
|
||||
/* char cEquip = (char)(pCmd.cEquipment & 0x7f);
|
||||
CECIvtrEquip pEquip = (CECIvtrEquip)m_pEquipPack->GetItem(cEquip);
|
||||
CECIvtrEquip pEquip = (CECIvtrEquip)m_pEquipPack.GetItem(cEquip);
|
||||
if (pEquip)
|
||||
pEquip->AddCurEndurance(ARMOR_RUIN_SPEED);*/
|
||||
pEquip.AddCurEndurance(ARMOR_RUIN_SPEED);*/
|
||||
}
|
||||
|
||||
// The host player is attacked, we should make an effect here
|
||||
@@ -674,7 +720,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
{
|
||||
cmd_be_hurt pCmd = (cmd_be_hurt)Msg.dwParam1;
|
||||
if (pCmd.damage != 0)
|
||||
Damaged(pCmd->damage);
|
||||
Damaged(pCmd.damage);
|
||||
}
|
||||
else if (cmd == CommandID.HURT_RESULT)
|
||||
{
|
||||
@@ -686,7 +732,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
{
|
||||
CECElsePlayer pTarget = m_pPlayerMan.GetElsePlayer(pCmd.target_id);
|
||||
if (pTarget)
|
||||
pTarget->Damaged(pCmd->damage);
|
||||
pTarget.Damaged(pCmd.damage);
|
||||
}
|
||||
else if (UnityGameSession.Instance.GameSession.ISNPCID(pCmd.target_id))
|
||||
{
|
||||
@@ -1368,8 +1414,8 @@ public partial class CECHostPlayer : CECPlayer
|
||||
CECNPC pNPC = (CECNPC)pObject;
|
||||
|
||||
// If this npc is host's pet, cannot be attacked
|
||||
//if (pNPC.GetMasterID() == m_PlayerInfo.cid)
|
||||
// return 0;
|
||||
if (pNPC.GetMasterID() == m_PlayerInfo.cid)
|
||||
return 0;
|
||||
|
||||
// If it's a pet and can not be attacked, pet can be attacked only if it's a fighting pet
|
||||
//if (pNPC.IsPetNPC() && !((CECPet)pNPC).CanBeAttacked())
|
||||
@@ -1597,7 +1643,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
return (m_dwLIES & mask) != 0;
|
||||
}
|
||||
|
||||
bool IsInFortress()
|
||||
public bool IsInFortress()
|
||||
{
|
||||
return m_fortressEnter.role_in_war != 0;
|
||||
}
|
||||
@@ -1608,7 +1654,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
}
|
||||
|
||||
// Get faction ID
|
||||
int GetFactionID()
|
||||
public int GetFactionID()
|
||||
{
|
||||
return m_idFaction;
|
||||
}
|
||||
@@ -2119,7 +2165,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
case ActionCanDo.CANDO_ASSISTSEL:
|
||||
|
||||
if (IsDead() || !GPDataTypeHelper.ISPLAYERID(m_idSelTarget) || m_idSelTarget == m_PlayerInfo.cid /*||
|
||||
!m_pTeam || !m_pTeam->GetMemberByID(m_idSelTarget) || m_iBuddyId || IsPassiveMove() ||
|
||||
!m_pTeam || !m_pTeam.GetMemberByID(m_idSelTarget) || m_iBuddyId || IsPassiveMove() ||
|
||||
m_playerLimits.test(PLAYER_LIMIT_NOCHANGESELECT)*/)
|
||||
bRet = false;
|
||||
|
||||
@@ -2249,7 +2295,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
|
||||
// if (IsDead() || IsAboutToDie() || IsTrading() || IsUsingTrashBox() || IsTalkingWithNPC() ||
|
||||
// IsJumping() || IsFlashMoving() || IsFalling() || IsChangingFace() || GetBoothState() != 0 || IsTakingOff() ||
|
||||
// m_pWorkMan->HasWorkRunningOnPriority(CECHPWorkMan::PRIORITY_2) ||
|
||||
// m_pWorkMan.HasWorkRunningOnPriority(CECHPWorkMan::PRIORITY_2) ||
|
||||
// m_iBuddyId || IsOperatingPet() || IsRebuildingPet() || IsUsingItem() || IsPassiveMove())
|
||||
// bRet = false;
|
||||
|
||||
@@ -2261,7 +2307,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
// IsMeleeing() || IsTrading() || IsUsingTrashBox() || IsTalkingWithNPC() ||
|
||||
// IsChangingFace() || IsReviving() || IsSpellingMagic() || IsPicking() ||
|
||||
// IsGathering() || IsRooting() || GetBoothState() != 0 ||
|
||||
// !m_pWorkMan->IsStanding() || m_iBuddyId ||
|
||||
// !m_pWorkMan.IsStanding() || m_iBuddyId ||
|
||||
// IsOperatingPet() || IsRebuildingPet() || IsUsingItem() || GetShapeType() == PLAYERMODEL_DUMMYTYPE2 || IsPassiveMove() ||
|
||||
// m_playerLimits.test(PLAYER_LIMIT_NOBIND))
|
||||
// bRet = false;
|
||||
@@ -2345,6 +2391,198 @@ public partial class CECHostPlayer : CECPlayer
|
||||
// }
|
||||
// return fSpeedSev;
|
||||
//}
|
||||
|
||||
private void OnMsgHstNPCGreeting(ECMSG Msg)
|
||||
{
|
||||
cmd_npc_greeting pCmd = GPDataTypeHelper.FromBytes<cmd_npc_greeting>((byte[])Msg.dwParam1);
|
||||
|
||||
if (GPDataTypeHelper.ISNPCID(pCmd.idObject))
|
||||
{
|
||||
// רÃÅ´¦Àíѧϰ¼¼ÄܵÄÒþ²ØNPC
|
||||
//if (CECHostSkillModel::Instance().IsSkillLearnNPC(pCmd.idObject))
|
||||
//{
|
||||
// CECGameUIMan* pGameUI = g_pGame.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
// //m_idSevNPC = pCmd.idObject;
|
||||
// //m_bTalkWithNPC = true;
|
||||
// //pGameUI.GetDialog("Win_SkillAction").Show(true);
|
||||
// //CDlgSkillAction* dlg = dynamic_cast<CDlgSkillAction*>(pGameUI.GetDialog("Win_SkillAction"));
|
||||
// //dlg.ForceShowDialog();
|
||||
// CDlgSkillAction* dlg = dynamic_cast<CDlgSkillAction*>(pGameUI.GetDialog("Win_SkillAction"));
|
||||
// dlg.SetReceivedNPCGreeting(true);
|
||||
// return;
|
||||
//}
|
||||
|
||||
CECNPC pNPC = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(pCmd.idObject);
|
||||
if (!pNPC || !pNPC.IsServerNPC())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Check distance again
|
||||
if (!CanTouchTarget(pNPC.GetPos(), pNPC.GetTouchRadius(), 3))
|
||||
return;
|
||||
|
||||
m_idSevNPC = pCmd.idObject;
|
||||
m_bTalkWithNPC = true;
|
||||
|
||||
// Check way point service on NPC
|
||||
var dwID = (pNPC as CECNPCServer).GetWayPointID();
|
||||
if (dwID != null && !HasWayPoint(dwID))
|
||||
UnityGameSession.c2s_CmdNPCSevWaypoint();
|
||||
//g_pGame.GetGameSession().c2s_CmdNPCSevWaypoint();
|
||||
|
||||
var pGameUI = EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
NPC_ESSENCE? result = (pNPC as CECNPCServer).GetDBEssence();
|
||||
if (result != null)
|
||||
{
|
||||
pGameUI.PopupNPCDialog(result.Value);
|
||||
}
|
||||
}
|
||||
//else if (GPDataTypeHelper.ISPLAYERID(pCmd.idObject))
|
||||
//{
|
||||
// EC_ElsePlayer pPlayer = m_pPlayerMan.GetElsePlayer(pCmd.idObject);
|
||||
|
||||
// // Check distance again
|
||||
// if (!pPlayer || !CanTouchTarget(pPlayer.GetPos(), 0.0f, 3))
|
||||
// return;
|
||||
|
||||
// m_idSevNPC = pCmd.idObject;
|
||||
// m_bTalkWithNPC = true;
|
||||
// m_iBoothState = 3;
|
||||
|
||||
// g_pGame.GetGameSession().c2s_CmdNPCSevGetContent(GP_NPCSEV_BOOTHSELL);
|
||||
|
||||
// m_pBuyPack.RemoveAllItems();
|
||||
// m_pSellPack.RemoveAllItems();
|
||||
// m_pEPBoothBPack.RemoveAllItems();
|
||||
// m_pEPBoothSPack.RemoveAllItems();
|
||||
|
||||
// CECGameUIMan* pGameUI = g_pGame.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
// pGameUI.PopupBoothDialog(true, false, pCmd.idObject);
|
||||
//}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Does host player have specified way point ?
|
||||
bool HasWayPoint(uint? wID)
|
||||
{
|
||||
if (wID == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < m_aWayPoints.Count; i++)
|
||||
{
|
||||
if (m_aWayPoints[i] == wID)
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void OnMsgHstWayPoint(ECMSG Msg)
|
||||
{
|
||||
//CECGameUIMan pGameUI = EC_Game.GetGameRun().GetUIManager().GetInGameUIMan();
|
||||
|
||||
//if (Convert.ToInt32(Msg.dwParam2) == CommandID.ACTIVATE_WAYPOINT)
|
||||
//{
|
||||
// cmd_activate_waypoint pCmd = GPDataTypeHelper.FromBytes<cmd_activate_waypoint>((byte[])Msg.dwParam1);
|
||||
// m_aWayPoints.Add(pCmd.waypoint);
|
||||
|
||||
// // add to waypoints array
|
||||
// pGameUI.GetMapDlgsMgr().UpdateWayPoints(&pCmd.waypoint, 1, false);
|
||||
|
||||
// // Print a notify message
|
||||
// const CECMapDlgsMgr::PointMap& aWayPoints = pGameUI.GetMapDlgsMgr().GetTransPoint();
|
||||
// CECMapDlgsMgr::PointMap::const_iterator itr = aWayPoints.find(pCmd.waypoint);
|
||||
// if(itr != aWayPoints.end())
|
||||
// {
|
||||
// g_pGame.GetGameRun().AddFixedMessage(FIXMSG_NEWWAYPOINT, (itr.second).strName);
|
||||
|
||||
// bool bCanPopUITips = true;
|
||||
// int count = CECUIConfig::Instance().GetGameUI().GetTaskIDDisableWayPointsUITipsCount();
|
||||
// // ¼ì²éÉíÉÏÊÇ·ñÓнûÖ¹µ¯³ötipsµÄÈÎÎñ
|
||||
// for (int i=0;i<count;i++){
|
||||
// int taskID = CECUIConfig::Instance().GetGameUI().GetTaskIDDisableWayPointsUITips(i);
|
||||
// if(GetTaskInterface() && GetTaskInterface().HasTask(taskID)){
|
||||
// bCanPopUITips = false;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// // µ¯³ötips
|
||||
// CECScriptMan* pScriptMan = g_pGame.GetGameRun().GetUIManager().GetScriptMan();
|
||||
// if (pScriptMan && bCanPopUITips)
|
||||
// {
|
||||
// pScriptMan.GetContext().GetUI().SetTipDialogTitleAndContent(AC2AS_CP(CP_UTF8, pGameUI.GetStringFromTable(11350)), AC2AS_CP(CP_UTF8, (itr.second).strName));
|
||||
// pScriptMan.GetContext().GetUI().ShowTip(500, 500, 5000, 300);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// else if (Msg.dwParam2 == WAYPOINT_LIST)
|
||||
// {
|
||||
// cmd_waypoint_list* pCmd = (cmd_waypoint_list*)Msg.dwParam1;
|
||||
|
||||
// m_aWayPoints.SetSize(pCmd.count, 16);
|
||||
// for (size_t i = 0; i < pCmd.count; i++)
|
||||
// m_aWayPoints[i] = pCmd.list[i];
|
||||
|
||||
// // update the whole list
|
||||
// pGameUI.GetMapDlgsMgr().UpdateWayPoints(pCmd.list, pCmd.count, true);
|
||||
// }
|
||||
}
|
||||
|
||||
// Get faction role
|
||||
public int GetFRoleID() { return m_idFRole; }
|
||||
|
||||
public FACTION_FORTRESS_CONFIG GetFactionFortressConfig()
|
||||
{
|
||||
elementdataman pDataMan = EC_Game.GetElementDataMan();
|
||||
DATA_TYPE dt = DATA_TYPE.DT_INVALID;
|
||||
var ob = pDataMan.get_data_ptr(854, ID_SPACE.ID_SPACE_CONFIG, ref dt);
|
||||
FACTION_FORTRESS_CONFIG pConfig = new FACTION_FORTRESS_CONFIG();
|
||||
if (ob == null || dt != DATA_TYPE.DT_FACTION_FORTRESS_CONFIG)
|
||||
{
|
||||
// ûÓлùµØÅäÖñí
|
||||
pConfig.require_level = int.MinValue;
|
||||
}
|
||||
else
|
||||
{
|
||||
pConfig = (FACTION_FORTRESS_CONFIG)ob;
|
||||
}
|
||||
return pConfig;
|
||||
}
|
||||
|
||||
public bool IsInFortressWar()
|
||||
{
|
||||
bool bInWar = false;
|
||||
if (IsInFortress())
|
||||
{
|
||||
int serverTime = EC_Game.GetServerGMTTime();
|
||||
if (m_fortressEnter.end_time > serverTime)
|
||||
bInWar = true;
|
||||
}
|
||||
return bInWar;
|
||||
}
|
||||
|
||||
public int GetCountry() { return m_idCountry; }
|
||||
|
||||
// Get battle info.
|
||||
//public BATTLEINFO GetBattleInfo() { return m_BattleInfo; }
|
||||
|
||||
//public bool IsInCountryWar() { return IsInBattle() && GetBattleInfo().IsCountryWar(); }
|
||||
|
||||
// End NPC service
|
||||
public void EndNPCService()
|
||||
{
|
||||
m_idSevNPC = 0;
|
||||
m_bTalkWithNPC = false;
|
||||
m_iBoothState = 0;
|
||||
m_bIsInKingService = false;
|
||||
//m_pOffShopCtrl.SetNPCSevFlag(COfflineShopCtrl::NPCSEV_NULL);
|
||||
}
|
||||
|
||||
void UpdateGFXs(float dwDeltaTime)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using BrewMonster;
|
||||
using BrewMonster.UI;
|
||||
using UnityEngine;
|
||||
|
||||
public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
@@ -13,7 +14,9 @@ public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
[SerializeField] private HUDNPC npsUI;
|
||||
|
||||
[SerializeField] private int currentTargetNPCID;
|
||||
|
||||
CECGameUIMan gameUI;
|
||||
[SerializeField] private DialogScriptTableObject dialogResouce;
|
||||
[SerializeField] private Canvas canvasDlg;
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
@@ -104,4 +107,15 @@ public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
kv.Value.SetActive(false);
|
||||
}
|
||||
}
|
||||
|
||||
public CECGameUIMan GetInGameUIMan()
|
||||
{
|
||||
if (gameUI == null)
|
||||
{
|
||||
gameUI = new CECGameUIMan();
|
||||
gameUI.SetDependency(dialogResouce, canvasDlg);
|
||||
gameUI.Init();
|
||||
}
|
||||
return gameUI;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 900c2b23089d0e1488dfae0059db9425
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de3ba170288dec647b1957bf1af29f86
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -773,7 +773,7 @@ PlayerSettings:
|
||||
webGLCloseOnQuit: 0
|
||||
webWasm2023: 0
|
||||
scriptingDefineSymbols:
|
||||
Android: DOTWEEN;TESTFAST
|
||||
Android: DOTWEEN;TESTFAST;_TASK_CLIENT
|
||||
EmbeddedLinux: DOTWEEN
|
||||
GameCoreScarlett: DOTWEEN
|
||||
GameCoreXboxOne: DOTWEEN
|
||||
|
||||
Reference in New Issue
Block a user