Merge remote-tracking branch 'origin/develop' into feature/add-vfx
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: dfcf99e0d0f5f4460989aafc79d64b82
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: fbe0894d8bb02420b91603e804090540
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8027cada0ef5e4a9f827001b4747174d
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,314 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &700152255263326765
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5053903421260846465}
|
||||
- component: {fileID: 4314770845850481090}
|
||||
m_Layer: 5
|
||||
m_Name: TreeViewItem
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &5053903421260846465
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 700152255263326765}
|
||||
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: 3882154025378162395}
|
||||
- {fileID: 5827054231092576763}
|
||||
m_Father: {fileID: 0}
|
||||
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: 250, y: 80}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!114 &4314770845850481090
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 700152255263326765}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3428dd2e9dd644e0b0cb408bd3202f21, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_text: {fileID: 1383932928540251694}
|
||||
m_Button: {fileID: 1762532130762754577}
|
||||
m_uItemData: 0
|
||||
OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &2040002976300010419
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 3882154025378162395}
|
||||
- component: {fileID: 2230410216357545400}
|
||||
- component: {fileID: 9062463037674165507}
|
||||
- component: {fileID: 1762532130762754577}
|
||||
m_Layer: 5
|
||||
m_Name: Image
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &3882154025378162395
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2040002976300010419}
|
||||
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: 5053903421260846465}
|
||||
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 &2230410216357545400
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2040002976300010419}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &9062463037674165507
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2040002976300010419}
|
||||
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: 0}
|
||||
m_Type: 0
|
||||
m_PreserveAspect: 0
|
||||
m_FillCenter: 1
|
||||
m_FillMethod: 4
|
||||
m_FillAmount: 1
|
||||
m_FillClockwise: 1
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!114 &1762532130762754577
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2040002976300010419}
|
||||
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: 9062463037674165507}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &2916175606199835458
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5827054231092576763}
|
||||
- component: {fileID: 5842649278580849339}
|
||||
- component: {fileID: 1383932928540251694}
|
||||
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 &5827054231092576763
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2916175606199835458}
|
||||
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: 5053903421260846465}
|
||||
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 &5842649278580849339
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2916175606199835458}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &1383932928540251694
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 2916175606199835458}
|
||||
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: New Text
|
||||
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: 4278190080
|
||||
m_fontColor: {r: 0, g: 0, b: 0, 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: 61.25
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 1
|
||||
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: 8752f9e95e4124abfb0d46a2cbe805e4
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 32f72ac9a8ef64a2ebb76719571780c1
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac46beb7dcb944fc78a3e09d50be3a8a
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.6 MiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 123746285331b4b27a5ca0293f881a6c
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 1.6 MiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8690caffb21524eba944b517f4964558
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 3.4 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 18b0178edf1b14a1e9a19b2230e0e270
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 5.6 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 01b79c3dc401e4fdfb17b72d677f9fbd
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 950 B |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 00976b2e066af4e1f85ff5f3c94b5d48
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 400 B |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f9eb4327d68ef4ce281200cbbdff3f96
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 339 B |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4b9078f8552646528dc61807b96dce2
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 314 B |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef3296c82b3934a24b288ac6309eb7a7
|
||||
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: 3, y: 3, z: 3, w: 3}
|
||||
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: 512
|
||||
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: WebGL
|
||||
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: 1537655665
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 429873f63148845839a3ecfe5aa4ed07
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 582 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4744752b0496d42d0b1c52fcb705e044
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 42074c4f5f76b4cbc9043df8f430af5f
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 817 B |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9de07872267c5419b9fa9c849eb45858
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9d4b52827a31d42438c5b84e7f9729a0
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3391972be9854a8fa42de37bb973f08
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8f24853d9cfea43389e8fb3101ffaae1
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c2cc7625a1f3a4f569a5be891f29df19
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 73873399fec964578b62204f20c40517
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e09a5d2cb3c3f4c858754a1e90a44abd
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b545f49a479374ffaaec0c8f123b0c5f
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
@@ -0,0 +1,130 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38df93573cefb49559326bf3e14ec118
|
||||
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: 512
|
||||
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: WebGL
|
||||
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:
|
||||
@@ -1,3 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2aa98a02adb67b6e2d5b55a5619691e4e19904987941d3656b4245e369b5891c
|
||||
size 4784
|
||||
oid sha256:3c602a4daacba2ea32dd2bdda69ac81ef5613c2afec5fde068ca6d58fe03ae4a
|
||||
size 22217
|
||||
|
||||
@@ -7,6 +7,9 @@ using Unity.VisualScripting;
|
||||
|
||||
namespace ModelRenderer.Scripts.GameData
|
||||
{
|
||||
/// <summary>
|
||||
/// config data of Inventory, Shop, NPC Shop, ...
|
||||
/// </summary>
|
||||
public class elementdataman
|
||||
{
|
||||
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
using UnityEngine;
|
||||
using System;
|
||||
|
||||
namespace BrewMonster.Network
|
||||
{
|
||||
public partial class EC_Game
|
||||
{
|
||||
private static uint m_AbsTickStart;
|
||||
private static int m_AbsTimeStart;
|
||||
private static int m_iTimeError; // 服务器与本机时间差(秒) // Time error in seconds
|
||||
private static int m_iTimeZoneBias; // 服务器时区偏移(秒) // Server timezone bias in seconds
|
||||
|
||||
// 设置时间误差 // Set time error
|
||||
public static void SetServerTime(int iSevTime, int iTimeZoneBias)
|
||||
{
|
||||
Debug.Log($"SetServerTime, iSevTime = {iSevTime}, iTimeZoneBias = {iTimeZoneBias}");
|
||||
int iOldTimeError = m_iTimeError;
|
||||
int nowUnix = (int)DateTimeOffset.UtcNow.ToUnixTimeSeconds();
|
||||
m_iTimeError = iSevTime - nowUnix; // 记录与本机的时间差 // store delta with local
|
||||
m_iTimeZoneBias = iTimeZoneBias; // 记录服务器时区偏移 // store server timezone bias
|
||||
|
||||
// 计算服务器本地时间并设置昼夜 // Compute server local time and set time of day
|
||||
var serverLocal = DateTimeOffset.FromUnixTimeSeconds((long)iSevTime + iTimeZoneBias);
|
||||
int nTimeInDay = serverLocal.Hour * 3600 + serverLocal.Minute * 60 + serverLocal.Second;
|
||||
// GetGameRun()->GetWorld()->GetSunMoon()->SetTimeOfTheDay(nTimeInDay / (4.0f * 3600.0f));
|
||||
// 设置昼夜时间(原逻辑保留为注释) // Set time of day (original call left commented)
|
||||
|
||||
// 防沉迷时长修正 // Anti-wallow playtime adjust
|
||||
// S2C::player_wallow_info wallowinfo = GetGameRun()->GetWallowInfo();
|
||||
// if (wallowinfo.anti_wallow_active)
|
||||
// {
|
||||
// wallowinfo.play_time += m_iTimeError - iOldTimeError;
|
||||
// GetGameRun()->SetWallowInfo(wallowinfo);
|
||||
// }
|
||||
|
||||
// 初始化绝对时间参考点 // Initialize absolute time reference
|
||||
m_AbsTimeStart = iSevTime;
|
||||
m_AbsTickStart = (uint)(Time.realtimeSinceStartup * 1000.0f);
|
||||
Debug.Log($"timeGetTime(), TickStart = {m_AbsTickStart}");
|
||||
}
|
||||
|
||||
public static int GetServerAbsTime()
|
||||
{
|
||||
uint curTick = (uint)(Time.realtimeSinceStartup * 1000.0f);
|
||||
|
||||
if (curTick < m_AbsTickStart)
|
||||
{
|
||||
// if player run this game more than 49.71 days...
|
||||
uint sec = (((uint)~0u - m_AbsTickStart + 1u) + curTick) / 1000u;
|
||||
m_AbsTickStart = curTick;
|
||||
m_AbsTimeStart += (int)sec;
|
||||
return m_AbsTimeStart;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint sec = (curTick - m_AbsTickStart) / 1000u;
|
||||
return m_AbsTimeStart + (int)sec;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public float timeGetTime()
|
||||
{
|
||||
return Time.time;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8a2ddad1f3474e129d674cb1626ee925
|
||||
timeCreated: 1762332519
|
||||
@@ -4,9 +4,11 @@ using UnityEngine;
|
||||
using BrewMonster;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using CSNetwork;
|
||||
|
||||
namespace BrewMonster.Network
|
||||
{
|
||||
public class EC_Game
|
||||
public partial class EC_Game
|
||||
{
|
||||
#region Fields
|
||||
private static ATaskTemplMan m_pTaskMan; // Task template manager
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
partial class CECPlayer
|
||||
{
|
||||
protected int m_iMoneyCnt; // Amount of money the player has
|
||||
public int GetMoneyAmount(){ return m_iMoneyCnt; }
|
||||
|
||||
public byte GetShapeMask()
|
||||
{
|
||||
// restore the original data from 8~15 bit
|
||||
return (byte)((m_iShape & 0xff00) >> 8);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 374bbbec130949df8eabff08a278da8b
|
||||
timeCreated: 1762416128
|
||||
@@ -16,7 +16,7 @@ using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public abstract class CECPlayer : CECObject
|
||||
public abstract partial class CECPlayer : CECObject
|
||||
{
|
||||
[SerializeField] protected Transform parentModel;
|
||||
[SerializeField] protected TextMeshProUGUI txtName;
|
||||
|
||||
@@ -1451,5 +1451,12 @@ namespace CSNetwork.GPDataType
|
||||
{
|
||||
public byte type;
|
||||
};
|
||||
|
||||
public struct cmd_server_time
|
||||
{
|
||||
public int time;
|
||||
public int timebias;
|
||||
public int lua_version;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -651,6 +651,12 @@ namespace CSNetwork
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_INFO00, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf,
|
||||
pCmdHeader);
|
||||
break;
|
||||
case CommandID.SERVER_TIME:
|
||||
{
|
||||
cmd_server_time pcmd_server_time = GPDataTypeHelper.FromBytes<cmd_server_time>(pDataBuf);
|
||||
EC_ManMessage.PostMessage(EC_MsgDef.MSG_SERVERTIME, -1, 0, pcmd_server_time.time, pcmd_server_time.timebias);
|
||||
break;
|
||||
}
|
||||
case CommandID.SCENE_SERVICE_NPC_LIST:
|
||||
{
|
||||
CECHostSkillModel.Instance.RecvNPCServiceList(protocol.Data);
|
||||
|
||||
@@ -6,13 +6,17 @@ using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
/// <summary>
|
||||
/// contains and manages all task templates
|
||||
/// init in EC_Game
|
||||
/// </summary>
|
||||
public class ATaskTemplMan
|
||||
{
|
||||
public const ulong TASK_PACK_MAGIC = 0x93858361;
|
||||
public const ulong _task_templ_cur_version = 121;
|
||||
|
||||
|
||||
private ulong g_ulNewCount = 0;// do we need this?
|
||||
private ulong g_ulNewCount = 0;// do we need this? // MH: I think not, it look like a debug counter
|
||||
private Dictionary<ulong, ATaskTempl> m_TaskTemplMap = new Dictionary<ulong, ATaskTempl>();
|
||||
private Dictionary<ulong, ATaskTempl> m_AllTemplMap = new Dictionary<ulong, ATaskTempl>();
|
||||
private Dictionary<ulong, ATaskTempl> m_DynTaskMap = new Dictionary<ulong, ATaskTempl>();
|
||||
@@ -29,6 +33,7 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
private List<ATaskTempl> m_SkillTaskLst = new List<ATaskTempl>();
|
||||
private List<ATaskTempl> m_TmLmtChkLst = new List<ATaskTempl>();
|
||||
private List<ATaskTempl> m_TasksCanSeekOut = new List<ATaskTempl>();
|
||||
|
||||
private elementdataman m_pEleDataMan;
|
||||
|
||||
@@ -70,18 +75,20 @@ namespace BrewMonster.Scripts.Task
|
||||
// read File and prepare offset array before loading tasks
|
||||
pOffs = AAssit.ReadArrayFromBinary<uint>(fs, (int)tph.item_count, ref readBytes);
|
||||
|
||||
//Debug.Log((int)tph.item_count);
|
||||
Debug.Log((int)tph.item_count);
|
||||
//BMLogger.Log($" [MH] Task File Lenght: {fs.Length}");
|
||||
for (int i = 874; i < 875; i++) //TODO: tph.item_count
|
||||
// for (int i = 2058; i < 2059; i++) //TODO: tph.item_count
|
||||
Debug.Log($" Starting to load {tph.item_count} task templates...");
|
||||
for (int i = 0; i < tph.item_count; i++)
|
||||
{
|
||||
// mvoe file pointer to task offset
|
||||
fs.Seek(pOffs[i], SeekOrigin.Begin);
|
||||
BMLogger.Log(" [MH] Loading Task Templ at offset: " + pOffs[i]);
|
||||
// BMLogger.Log(" [MH] Loading Task Templ at offset: " + pOffs[i]);
|
||||
|
||||
ATaskTempl pTempl = new ATaskTempl();
|
||||
g_ulNewCount++;
|
||||
|
||||
Debug.Log($"Task Index {i}: Attempting to load task template...");
|
||||
// Debug.Log($"Task Index {i}: Attempting to load task template...");
|
||||
if (!pTempl.LoadFromBinFile(fs))
|
||||
{
|
||||
CECTaskInterface.WriteLog(0, (int)pTempl.m_FixedData.m_ID, 0, "Cant Load Task");
|
||||
@@ -92,6 +99,8 @@ namespace BrewMonster.Scripts.Task
|
||||
AddOneTaskTempl(pTempl);
|
||||
// TaskInterface::WriteLog(0, pTempl->m_ID, 2, "LoadTask");
|
||||
}
|
||||
|
||||
Debug.Log($" Finished loading {m_TaskTemplMap.Count} task templates.");
|
||||
|
||||
// // char log[1024];
|
||||
// // sprintf(log, "LoadTask, Count = %d", m_TaskTemplMap.size());
|
||||
@@ -136,11 +145,37 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public ATaskTempl GetTopTaskByID(uint ulID)
|
||||
{
|
||||
if (m_TaskTemplMap.TryGetValue(ulID, out ATaskTempl task))
|
||||
{
|
||||
return task;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public ATaskTempl GetTaskTemplByID(uint ulID)
|
||||
{
|
||||
if (m_TaskTemplMap.TryGetValue((uint)ulID, out ATaskTempl task))
|
||||
{
|
||||
return task;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public bool CanGiveUpTask(uint ulTaskId)
|
||||
{
|
||||
var pTempl = GetTaskTemplByID(ulTaskId);
|
||||
if (pTempl == null) return false;
|
||||
pTempl = pTempl.GetTopTask();
|
||||
return pTempl.m_FixedData.m_bCanGiveUp;
|
||||
}
|
||||
|
||||
private void AddOneTaskTempl(ATaskTempl pTask)
|
||||
{
|
||||
//todo: recheck - wrong logic
|
||||
if (m_AllTemplMap.ContainsKey(pTask.m_FixedData.m_ID))
|
||||
|
||||
if (m_TaskTemplMap.ContainsKey(pTask.m_FixedData.m_ID))
|
||||
{
|
||||
CECTaskInterface.WriteLog(0, (int)pTask.m_FixedData.m_ID, 0, "Dup Task Found");
|
||||
// Optionally log duplicate task found, e.g.:
|
||||
@@ -172,10 +207,10 @@ namespace BrewMonster.Scripts.Task
|
||||
if (pTask.m_FixedData.m_bAutoDeliver && pTask.m_FixedData.m_bDisplayInExclusiveUI)
|
||||
m_ExlusiveAwardTaskMap[pTask.m_FixedData.m_ID] = pTask;
|
||||
|
||||
//#if _TASK_CLIENT
|
||||
// if (pTask.m_ulDelvNPC != 0 && pTask.m_bCanSeekOut)
|
||||
// m_TasksCanSeekOut.Add(pTask);
|
||||
//#endif
|
||||
#if _TASK_CLIENT
|
||||
if (pTask.m_FixedData.m_ulDelvNPC != 0 && pTask.m_FixedData.m_bCanSeekOut)
|
||||
m_TasksCanSeekOut.Add(pTask);
|
||||
#endif
|
||||
|
||||
AddTaskToMap(pTask);
|
||||
}
|
||||
@@ -262,5 +297,19 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#if _TASK_CLIENT
|
||||
|
||||
public bool IsTaskToPush(int id)
|
||||
{
|
||||
// TODO: Implement this method properly
|
||||
// int count = m_TasksToPush.size();
|
||||
// for (size_t i = 0; i < count; ++i) {
|
||||
// ATaskTempl pTempl = m_TasksToPush[i].task;
|
||||
// if (pTempl && (int)pTempl->m_ID == id) return true;
|
||||
// }
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,160 @@
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.Player;
|
||||
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
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public class Kill_Player_Requirements
|
||||
{
|
||||
public const uint MAX_OCCPU_MASK = ((uint)1 << TaskInterfaceConstants.MAX_OCCUPATIONS) - 1u;
|
||||
|
||||
public uint m_ulOccupations;
|
||||
public int m_iMinLevel;
|
||||
public int m_iMaxLevel;
|
||||
public int m_iGender;
|
||||
public int m_iForce;
|
||||
|
||||
public Kill_Player_Requirements()
|
||||
{
|
||||
m_iMinLevel = 10;
|
||||
m_iMaxLevel = 100;
|
||||
m_iGender = 0;
|
||||
m_iForce = 0;
|
||||
m_ulOccupations = MAX_OCCPU_MASK;
|
||||
}
|
||||
|
||||
public bool IsMeetAllOccupation()
|
||||
{
|
||||
return m_ulOccupations == MAX_OCCPU_MASK;
|
||||
}
|
||||
|
||||
public bool CheckRequirements(int iOccupation, int iLevel, bool bGender, int iForce)
|
||||
{
|
||||
bool bForce = false;
|
||||
// �༭����1Ϊ�У�2ΪŮ // In editor: 1 is male, 2 is female
|
||||
int iGender = bGender ? 2 : 1;
|
||||
// �༭����0����û������Ҫ�� // In editor: 0 means no force requirement
|
||||
if (m_iForce == 0)
|
||||
{
|
||||
bForce = true;
|
||||
}
|
||||
// �����ʾ������Ҫ�� // Otherwise indicates there is a force requirement
|
||||
else
|
||||
{
|
||||
// �༭���ﻪ�⡢�����ͻ�ҹ�ֱ��õ�һ����������������λ��ʾ // Map force ids to bit positions
|
||||
int iForceMask = 0;
|
||||
if (iForce == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
else if (iForce == 1004)
|
||||
{
|
||||
iForceMask = 1 << 0;
|
||||
}
|
||||
else if (iForce == 1005)
|
||||
{
|
||||
iForceMask = 1 << 1;
|
||||
}
|
||||
else if (iForce == 1006)
|
||||
{
|
||||
iForceMask = 1 << 2;
|
||||
}
|
||||
bForce = (m_iForce & iForceMask) != 0;
|
||||
}
|
||||
return ((m_ulOccupations & (1u << iOccupation)) != 0)
|
||||
&& m_iMinLevel <= iLevel
|
||||
&& m_iMaxLevel >= iLevel
|
||||
&& (m_iGender != 0 ? m_iGender == iGender : true)
|
||||
&& bForce;
|
||||
}
|
||||
}
|
||||
|
||||
#if _TASK_CLIENT
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct Task_State_info
|
||||
{
|
||||
public uint m_ulTimeLimit;
|
||||
public uint m_ulTimePassed;
|
||||
public uint m_ulNPCToProtect;
|
||||
public uint m_ulProtectTime;
|
||||
public uint m_ulWaitTime;
|
||||
public uint m_ulErrCode;
|
||||
public uint m_ulGoldWanted;
|
||||
public uint m_ulReachLevel;
|
||||
public uint m_ulReachReincarnation;
|
||||
public uint m_ulReachRealm;
|
||||
public uint m_ulPremLevelMin;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct m_MonsterWanted_s
|
||||
{
|
||||
public uint m_ulMonsterId;
|
||||
public uint m_ulMonstersToKill;
|
||||
public uint m_ulMonstersKilled;
|
||||
}
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskInterfaceConstants.MAX_MONSTER_WANTED)]
|
||||
public m_MonsterWanted_s[] m_MonsterWanted;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct m_ItemsWanted_s
|
||||
{
|
||||
public uint m_ulItemId;
|
||||
public uint m_ulItemsToGet;
|
||||
public uint m_ulItemsGained;
|
||||
public uint m_ulMonsterId;
|
||||
}
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskInterfaceConstants.MAX_ITEM_WANTED)]
|
||||
public m_ItemsWanted_s[] m_ItemsWanted;
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct TASK_INFO_PLAYER
|
||||
{
|
||||
public uint m_ulPlayersToKill;
|
||||
public uint m_ulPlayersKilled;
|
||||
public Kill_Player_Requirements m_Requirements;
|
||||
}
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskInterfaceConstants.MAX_PLAYER_WANTED)]
|
||||
public TASK_INFO_PLAYER[] m_PlayerWanted;
|
||||
|
||||
// abase::vector<wchar_t*> m_TaskCharArr (assumed 3 pointers: start, finish, end_of_storage; 32-bit layout)
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct abase_vector_wchar_t_ptr
|
||||
{
|
||||
public uint _start;
|
||||
public uint _finish;
|
||||
public uint _end_of_storage;
|
||||
}
|
||||
public abase_vector_wchar_t_ptr m_TaskCharArr;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct Task_Award_Preview
|
||||
{
|
||||
public uint m_ulGold;
|
||||
public uint m_ulExp;
|
||||
public uint m_ulRealmExp;
|
||||
public uint m_ulSP;
|
||||
public bool m_bHasItem;
|
||||
public bool m_bItemKnown;
|
||||
public uint m_ulItemTypes;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskInterfaceConstants.MAX_ITEM_AWARD)]
|
||||
public uint[] m_ItemsId;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = TaskInterfaceConstants.MAX_ITEM_AWARD)]
|
||||
public uint[] m_ItemsNum;
|
||||
public int m_iForceActivity;
|
||||
public int m_iForceContrib;
|
||||
public int m_iForceRepu;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
public class TaskInterfaceConstants
|
||||
{
|
||||
// Task Prerequisite Error Code
|
||||
@@ -157,8 +306,6 @@ namespace BrewMonster.Scripts.Task
|
||||
public const int TASK_WORLD_CONTRIBUTION_SPEND_PER_DAY = 30; // 免费玩家每日消费贡献度上限 // Daily contribution spend cap for free players
|
||||
|
||||
}
|
||||
|
||||
|
||||
public class CECTaskInterface : TaskInterface
|
||||
{
|
||||
public const int TASK_MAX_DELIVER_COUNT = 5;
|
||||
@@ -179,11 +326,14 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
CECHostPlayer m_pHost;
|
||||
ActiveTaskList m_pActiveListBuf; // Active task list buffer
|
||||
object[] m_pFinishedListBuf; // Finished task list buffer
|
||||
object[] m_pFinishedTimeListBuf; // Finished time list buffer
|
||||
object[] m_pFinishedCountListBuf;// Finished count list buffer
|
||||
object[] m_pStorageTaskListBuf; // Storage tasks list buffer
|
||||
// private byte[] m_pActiveListRawBuf; // raw buffer backing for active list (converted from C++)
|
||||
byte[] m_pFinishedListBuf; // Finished task list buffer
|
||||
byte[] m_pFinishedTimeListBuf; // Finished time list buffer
|
||||
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 bool m_bForceNavigateFinish;
|
||||
|
||||
public CECTaskInterface()
|
||||
{
|
||||
@@ -200,88 +350,70 @@ namespace BrewMonster.Scripts.Task
|
||||
m_pStorageTaskListBuf = null;
|
||||
}
|
||||
|
||||
public bool Init(object[] pActiveListBuf, int iActiveListLen, object[] pFinishedListBuf, int iFinishedListLen, object[] pFinishedTimeListBuf, int iFinishedTimeListLen, object[] pFinishedCountListBuf, int iFinishedCountListLen, object[] pStorageTaskListBuf, int iStorageTaskListLen)
|
||||
{
|
||||
// if (!(m_pActiveListBuf = a_malloc(TASK_ACTIVE_LIST_BUF_SIZE)))
|
||||
// {
|
||||
// glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__);
|
||||
// return false;
|
||||
// }
|
||||
// Initialize object
|
||||
public bool Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
int iFinishedListLen, byte[] pFinishedTimeListBuf, int iFinishedTimeListLen,
|
||||
byte[] pFinishedCountListBuf, int iFinishedCountListLen, byte[] pStorageTaskListBuf, int iStorageTaskListLen)
|
||||
{
|
||||
// basic argument check (converted from ASSERT)
|
||||
if (pActiveListBuf == null || pFinishedListBuf == null || pFinishedTimeListBuf == null || pFinishedCountListBuf == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//if (!(m_pFinishedListBuf = a_malloc(TASK_FINISHED_LIST_BUF_SIZE)))
|
||||
//{
|
||||
// a_free(m_pActiveListBuf);
|
||||
// m_pFinishedListBuf = NULL;
|
||||
// glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__);
|
||||
// return false;
|
||||
//}
|
||||
BMLogger.Log($"pActiveListBuf: {pActiveListBuf.Length} - {TaskInterfaceConstants.TASK_ACTIVE_LIST_BUF_SIZE}");
|
||||
|
||||
// allocate internal buffers and copy; remaining bytes are zero-initialized in C#
|
||||
// m_pActiveListRawBuf = new byte[TaskInterfaceConstants.TASK_ACTIVE_LIST_BUF_SIZE];
|
||||
// {
|
||||
// int copy = Mathf.Min(iActiveListLen, TaskInterfaceConstants.TASK_ACTIVE_LIST_BUF_SIZE);
|
||||
// if (copy > 0) System.Buffer.BlockCopy(pActiveListBuf, 0, m_pActiveListRawBuf, 0, copy);
|
||||
// }
|
||||
m_pActiveListBuf = new ActiveTaskList();
|
||||
m_pActiveListBuf.ReadFromBuffer(pActiveListBuf);
|
||||
|
||||
|
||||
//if (!(m_pFinishedTimeListBuf = a_malloc(TASK_FINISH_TIME_LIST_BUF_SIZE)))
|
||||
//{
|
||||
// a_free(m_pActiveListBuf);
|
||||
// a_free(m_pFinishedListBuf);
|
||||
// glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__);
|
||||
// return false;
|
||||
//}
|
||||
m_pFinishedListBuf = new byte[TaskInterfaceConstants.TASK_FINISHED_LIST_BUF_SIZE];
|
||||
{
|
||||
int copy = Mathf.Min(iFinishedListLen, TaskInterfaceConstants.TASK_FINISHED_LIST_BUF_SIZE);
|
||||
if (copy > 0) System.Buffer.BlockCopy(pFinishedListBuf, 0, m_pFinishedListBuf, 0, copy);
|
||||
}
|
||||
|
||||
//if (!(m_pFinishedCountListBuf = a_malloc(TASK_FINISH_COUNT_LIST_BUF_SIZE)))
|
||||
//{
|
||||
// a_free(m_pActiveListBuf);
|
||||
// a_free(m_pFinishedListBuf);
|
||||
// a_free(m_pFinishedCountListBuf);
|
||||
// glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__);
|
||||
// return false;
|
||||
//}
|
||||
m_pFinishedTimeListBuf = new byte[TaskInterfaceConstants.TASK_FINISH_TIME_LIST_BUF_SIZE];
|
||||
{
|
||||
int copy = Mathf.Min(iFinishedTimeListLen, TaskInterfaceConstants.TASK_FINISH_TIME_LIST_BUF_SIZE);
|
||||
if (copy > 0) System.Buffer.BlockCopy(pFinishedTimeListBuf, 0, m_pFinishedTimeListBuf, 0, copy);
|
||||
}
|
||||
|
||||
//if (!(m_pStorageTaskListBuf = a_malloc(TASK_STORAGE_LIST_BUF_SIZE)))
|
||||
//{
|
||||
// a_free(m_pActiveListBuf);
|
||||
// a_free(m_pFinishedListBuf);
|
||||
// a_free(m_pFinishedCountListBuf);
|
||||
// a_free(m_pStorageTaskListBuf);
|
||||
// glb_ErrorOutput(ECERR_NOTENOUGHMEMORY, "CECTaskInterface::Init", __LINE__);
|
||||
// return false;
|
||||
//}
|
||||
//ASSERT(pActiveListBuf && pFinishedListBuf && pFinishedTimeListBuf && pFinishedCountListBuf);
|
||||
//memcpy(m_pActiveListBuf, pActiveListBuf, iActiveListLen);
|
||||
//memcpy(m_pFinishedListBuf, pFinishedListBuf, iFinishedListLen);
|
||||
//memcpy(m_pFinishedTimeListBuf, pFinishedTimeListBuf, iFinishedTimeListLen);
|
||||
//memcpy(m_pFinishedCountListBuf, pFinishedCountListBuf, iFinishedCountListLen);
|
||||
//memcpy(m_pStorageTaskListBuf, pStorageTaskListBuf, iStorageTaskListLen);
|
||||
m_pFinishedCountListBuf = new byte[TaskInterfaceConstants.TASK_FINISH_COUNT_LIST_BUF_SIZE];
|
||||
{
|
||||
int copy = Mathf.Min(iFinishedCountListLen, TaskInterfaceConstants.TASK_FINISH_COUNT_LIST_BUF_SIZE);
|
||||
if (copy > 0) System.Buffer.BlockCopy(pFinishedCountListBuf, 0, m_pFinishedCountListBuf, 0, copy);
|
||||
}
|
||||
|
||||
//// Clear rest buffer
|
||||
//if (iActiveListLen < TASK_ACTIVE_LIST_BUF_SIZE)
|
||||
// memset((BYTE*)m_pActiveListBuf + iActiveListLen, 0, TASK_ACTIVE_LIST_BUF_SIZE - iActiveListLen);
|
||||
m_pStorageTaskListBuf = new byte[TaskInterfaceConstants.TASK_STORAGE_LIST_BUF_SIZE];
|
||||
{
|
||||
int copy = Mathf.Min(iStorageTaskListLen, TaskInterfaceConstants.TASK_STORAGE_LIST_BUF_SIZE);
|
||||
if (copy > 0) System.Buffer.BlockCopy(pStorageTaskListBuf, 0, m_pStorageTaskListBuf, 0, copy);
|
||||
}
|
||||
|
||||
//if (iFinishedListLen < TASK_FINISHED_LIST_BUF_SIZE)
|
||||
// memset((BYTE*)m_pFinishedListBuf + iFinishedListLen, 0, TASK_FINISHED_LIST_BUF_SIZE - iFinishedListLen);
|
||||
// Clear rest buffer // 清理剩余缓冲区
|
||||
// No-op in C# because arrays are zero-initialized.
|
||||
|
||||
//if (iFinishedTimeListLen < TASK_FINISH_TIME_LIST_BUF_SIZE)
|
||||
// memset((BYTE*)m_pFinishedTimeListBuf + iFinishedTimeListLen, 0, TASK_FINISH_TIME_LIST_BUF_SIZE - iFinishedTimeListLen);
|
||||
ATaskTemplMan pTaskMan = GetTaskTemplMan();
|
||||
pTaskMan.Release();
|
||||
|
||||
string task_data_path = Path.Combine(Application.streamingAssetsPath, "data/tasks.data");
|
||||
pTaskMan.LoadTasksFromPack(task_data_path, true);
|
||||
|
||||
pTaskMan.LoadNPCInfoFromPack("data\\task_npc.data");
|
||||
pTaskMan.VerifyDynTasksPack("userdata\\dyn_tasks.data");
|
||||
InitActiveTaskList();
|
||||
|
||||
//if (iFinishedCountListLen < TASK_FINISH_COUNT_LIST_BUF_SIZE)
|
||||
// memset((BYTE*)m_pFinishedCountListBuf + iFinishedCountListLen, 0, TASK_FINISH_COUNT_LIST_BUF_SIZE - iFinishedCountListLen);
|
||||
m_bForceNavigateFinish = false;
|
||||
|
||||
//if (iStorageTaskListLen < TASK_STORAGE_LIST_BUF_SIZE)
|
||||
// memset((BYTE*)m_pStorageTaskListBuf + iStorageTaskListLen, 0, TASK_STORAGE_LIST_BUF_SIZE - iStorageTaskListLen);
|
||||
|
||||
Debug.Log("[Dat]- Init GetTaskTemplMan");
|
||||
ATaskTemplMan pTaskMan = GetTaskTemplMan();
|
||||
if (pTaskMan == null)
|
||||
{
|
||||
Debug.LogError("[Dat]- fail to create ATaskTemplMan");
|
||||
return false;
|
||||
}
|
||||
pTaskMan.Release();
|
||||
// pTaskMan.LoadTasksFromPack("data\\tasks.data", true);
|
||||
// pTaskMan.LoadNPCInfoFromPack("data\\task_npc.data");
|
||||
// pTaskMan.VerifyDynTasksPack("userdata\\dyn_tasks.data");
|
||||
// InitActiveTaskList();
|
||||
|
||||
//m_bForceNavigateFinish = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void CheckPQEnterWorldInit()
|
||||
{
|
||||
@@ -309,6 +441,31 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
//do something?
|
||||
}
|
||||
|
||||
public bool IsDeliverLegal()
|
||||
{
|
||||
// return !m_pHost->IsTrading() && m_pHost->GetBoothState() == 0 && !m_pHost->IsDead();
|
||||
return m_pHost.IsTrading() && m_pHost.GetBoothState() == 0 && !m_pHost.IsDead();
|
||||
}
|
||||
|
||||
public int GetCommonItemCount(uint ulCommonItem)
|
||||
{
|
||||
// CECInventory pPack = m_pHost.GetPack();
|
||||
//EC_Inventory pPack = m_pHost.GetPack();
|
||||
|
||||
// return pPack != null ? EC_Inventory.GetItemTotalNum( 0, (int)ulCommonItem) : 0;
|
||||
|
||||
// paramater 1 to get type inventory (0:inventoty, 1:equip,...)
|
||||
return EC_Inventory.GetItemTotalNum(EC_Inventory.IVTRTYPE_PACK, (int)ulCommonItem);
|
||||
}
|
||||
|
||||
public int GetTaskItemCount(uint ulTaskItem)
|
||||
{
|
||||
// CECInventory* pPack = m_pHost->GetTaskPack();
|
||||
// return pPack ? pPack->GetItemTotalNum((int)ulTaskItem) : 0;
|
||||
|
||||
return EC_Inventory.GetItemTotalNum(EC_Inventory.IVTRTYPE_TASKPACK, (int)ulTaskItem);
|
||||
}
|
||||
|
||||
private ATaskTemplMan GetTaskTemplMan()
|
||||
{
|
||||
@@ -317,6 +474,518 @@ namespace BrewMonster.Scripts.Task
|
||||
private ActiveTaskList GetActiveTaskList()
|
||||
{
|
||||
return m_pActiveListBuf;
|
||||
}
|
||||
|
||||
private void InitActiveTaskList()
|
||||
{
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
if (pLst == null) return;
|
||||
|
||||
ATaskTemplMan pMan = GetTaskTemplMan();
|
||||
if (pMan == null) return;
|
||||
|
||||
// reset counters
|
||||
pLst.m_uTopShowTaskCount = 0;
|
||||
pLst.m_uTopHideTaskCount = 0;
|
||||
pLst.m_uTitleTaskCount = 0;
|
||||
|
||||
byte i = 0;
|
||||
while (i < pLst.m_uTaskCount)
|
||||
{
|
||||
ActiveTaskEntry entry = pLst.m_TaskEntries[i];
|
||||
if (entry == null)
|
||||
{
|
||||
i++;
|
||||
continue;
|
||||
}
|
||||
|
||||
// repair sibling linkage
|
||||
if (entry.m_NextSblIndex != (char)0xff)
|
||||
{
|
||||
ActiveTaskEntry entryNextSbl = pLst.m_TaskEntries[entry.m_NextSblIndex];
|
||||
if (entryNextSbl == null || entryNextSbl.m_PrevSblIndex != (char)i)
|
||||
{
|
||||
entry.m_NextSblIndex = (char)0xff;
|
||||
}
|
||||
}
|
||||
|
||||
// resolve template for top-level entries; children left unresolved in C#
|
||||
if (entry.m_ParentIndex == (char)0xff)
|
||||
{
|
||||
entry.m_ulTemplAddr = 0u;
|
||||
|
||||
ATaskTempl topTempl = pMan.GetTopTaskByID(entry.m_ID);
|
||||
if (topTempl != null)
|
||||
{
|
||||
if (topTempl.m_FixedData.m_bHidden)
|
||||
pLst.m_uTopHideTaskCount++;
|
||||
else if (topTempl.m_FixedData.m_bDisplayInTitleTaskUI)
|
||||
pLst.m_uTitleTaskCount++;
|
||||
else
|
||||
pLst.m_uTopShowTaskCount++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.m_ulTemplAddr = 0u;
|
||||
}
|
||||
|
||||
// cap template best-effort (no pointer in managed)
|
||||
if (entry.m_uCapTaskId != 0)
|
||||
{
|
||||
ATaskTempl cap = pMan.GetTopTaskByID(entry.m_uCapTaskId);
|
||||
entry.m_ulCapTemplAddr = 0u;
|
||||
if (cap == null)
|
||||
{
|
||||
entry.m_uCapTaskId = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
entry.m_ulCapTemplAddr = 0u;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
// approximate used count
|
||||
pLst.m_uUsedCount = pLst.m_uTaskCount;
|
||||
}
|
||||
|
||||
public bool CheckTaskForbid(uint task_id){ return false; }
|
||||
|
||||
public bool IsAtCrossServer()
|
||||
{
|
||||
// TODO: cross server
|
||||
// return CECCrossServer.Instance().IsOnSpecialServer();
|
||||
return false;
|
||||
}
|
||||
|
||||
public uint GetPlayerLevel()
|
||||
{
|
||||
return (uint)m_pHost.GetBasicProps().iLevel;
|
||||
}
|
||||
|
||||
public uint GetGoldNum()
|
||||
{
|
||||
return (uint)m_pHost.GetMoneyAmount();
|
||||
}
|
||||
|
||||
public int GetGlobalValue(int lKey)
|
||||
{
|
||||
return EC_Game.GetGameRun().GetCommonData(lKey);
|
||||
}
|
||||
|
||||
public byte GetShapeMask()
|
||||
{
|
||||
return m_pHost.GetShapeMask();
|
||||
}
|
||||
|
||||
public int GetPos(float[] pos)
|
||||
{
|
||||
A3DVECTOR3 vPos = m_pHost.GetPos();
|
||||
if (pos != null && pos.Length >= 3)
|
||||
{
|
||||
pos[0] = vPos.x;
|
||||
pos[1] = vPos.y;
|
||||
pos[2] = vPos.z;
|
||||
}
|
||||
var world = World.CECWorld.Instance;
|
||||
return world != null ? world.GetInstanceID() : 0;
|
||||
}
|
||||
|
||||
public bool CheckSimpleTaskFinshConditon(uint task_id)
|
||||
{
|
||||
ATaskTempl pTempl = GetTaskTemplMan().GetTaskTemplByID(task_id);
|
||||
if (pTempl == null) return false;
|
||||
|
||||
if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMSimpleClientTask && pTempl.m_FixedData.m_uiEmotion != 0)
|
||||
{
|
||||
if (m_emotionTask != null && m_emotionTask.TryGetValue(task_id, out bool finished))
|
||||
return finished;
|
||||
return false;
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMSimpleClientTaskForceNavi)
|
||||
{
|
||||
return GetForceNavigateFinishFlag();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public int GetFactionConsumeContrib()
|
||||
{
|
||||
return m_pHost.GetContribInfo().consume_contrib;
|
||||
}
|
||||
|
||||
public int GetFactionExpContrib()
|
||||
{
|
||||
return m_pHost.GetContribInfo().exp_contrib;
|
||||
}
|
||||
|
||||
public bool HasTask(uint ulTaskId)
|
||||
{
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
if (pLst == null) return false;
|
||||
for (int i = 0; i < pLst.m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry entry = pLst.m_TaskEntries[i];
|
||||
if ((uint)entry.m_ID == ulTaskId && entry.GetTempl() != null)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#if _TASK_CLIENT
|
||||
// Prepare award preview based on task and state
|
||||
public void GetTaskAwardPreview(uint ulTaskId, ref Task_Award_Preview p, bool bActiveTask=true)
|
||||
{
|
||||
// Zero and init output
|
||||
p = default;
|
||||
if (p.m_ItemsId == null) p.m_ItemsId = new uint[TaskInterfaceConstants.MAX_ITEM_AWARD];
|
||||
if (p.m_ItemsNum == null) p.m_ItemsNum = new uint[TaskInterfaceConstants.MAX_ITEM_AWARD];
|
||||
|
||||
// Gather context
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
uint ulCurTime = GetCurTime();
|
||||
ATaskTempl pTempl = null;
|
||||
AWARD_DATA ad = default;
|
||||
uint ulMulti = 1u;
|
||||
|
||||
// Resolve template and dynamic award when active
|
||||
if (bActiveTask && pLst != null)
|
||||
{
|
||||
for (int i = 0; i < pLst.m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry CurEntry = pLst.m_TaskEntries[i];
|
||||
if (CurEntry.m_ID != ulTaskId || CurEntry.m_ulTemplAddr == 0) continue;
|
||||
|
||||
pTempl = CurEntry.GetTempl();
|
||||
|
||||
// TODO: CalcAwardData/CalcAwardMulti not implemented yet in C#; use fixed success award and multiplier 1
|
||||
if (pTempl != null)
|
||||
{
|
||||
ad = pTempl.m_FixedData.m_Award_S;
|
||||
ulMulti = 1u;
|
||||
}
|
||||
|
||||
if (ulMulti == 0u) return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// Fallback to top template when inactive
|
||||
else
|
||||
{
|
||||
pTempl = GetTaskTemplMan().GetTopTaskByID(ulTaskId);
|
||||
if (pTempl == null) return;
|
||||
ad = pTempl.m_FixedData.m_Award_S;
|
||||
}
|
||||
|
||||
// Fill basic award fields
|
||||
unchecked
|
||||
{
|
||||
p.m_ulGold = ad.m_ulGoldNum * ulMulti;
|
||||
p.m_ulExp = ad.m_ulExp * ulMulti;
|
||||
p.m_ulSP = ad.m_ulSP * ulMulti;
|
||||
}
|
||||
p.m_iForceActivity = ad.m_iForceActivity;
|
||||
p.m_iForceContrib = ad.m_iForceContribution;
|
||||
p.m_iForceRepu = ad.m_iForceReputation;
|
||||
p.m_ulRealmExp = ad.m_ulRealmExp;
|
||||
|
||||
// Apply level coefficient if configured (coefficient table not available; skip scaling)
|
||||
if (ad.m_bUseLevCo)
|
||||
{
|
||||
uint ulLev = GetPlayerLevel();
|
||||
if (ulLev == 0) ulLev = 1;
|
||||
|
||||
uint ulUpper = 0;
|
||||
if (pTempl != null && pTempl.GetTopTask() != null)
|
||||
ulUpper = pTempl.GetTopTask().m_FixedData.m_ulPremise_Lev_Max;
|
||||
if (ulUpper != 0 && ulLev > ulUpper) ulLev = ulUpper;
|
||||
|
||||
// NOTE: Original code multiplies by _lev_co[ulLev-1]. Not available here; keep as-is.
|
||||
}
|
||||
|
||||
// Candidate items handling
|
||||
if (ad.m_ulCandItems == 1 && ad.m_CandItems != null && ad.m_CandItems.Length > 0)
|
||||
{
|
||||
p.m_bHasItem = true;
|
||||
p.m_bItemKnown = true;
|
||||
|
||||
AWARD_ITEMS_CAND ic = ad.m_CandItems[0];
|
||||
if (ic.m_bRandChoose)
|
||||
{
|
||||
p.m_bItemKnown = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (int j = 0; j < ic.m_ulAwardItems; j++)
|
||||
{
|
||||
ITEM_WANTED wi = ic.m_AwardItems[j];
|
||||
if (!wi.m_bCommonItem) continue;
|
||||
else if (wi.m_fProb != 1.0f)
|
||||
{
|
||||
p.m_bItemKnown = false;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Period conversion not implemented; assume valid
|
||||
if (p.m_ulItemTypes < TaskInterfaceConstants.MAX_ITEM_AWARD)
|
||||
{
|
||||
p.m_ItemsId[p.m_ulItemTypes] = wi.m_ulItemTemplId;
|
||||
p.m_ItemsNum[p.m_ulItemTypes] = wi.m_ulItemNum;
|
||||
p.m_ulItemTypes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (ad.m_ulCandItems > 1)
|
||||
{
|
||||
p.m_bHasItem = true;
|
||||
}
|
||||
|
||||
// Done
|
||||
return;
|
||||
}
|
||||
|
||||
public uint GetTaskCount()
|
||||
{
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
uint ulCount = 0;
|
||||
|
||||
if (pLst == null) return 0u;
|
||||
|
||||
for (int i = 0; i < pLst.m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry CurEntry = pLst.m_TaskEntries[i];
|
||||
ATaskTempl pTempl = CurEntry.GetTempl();
|
||||
|
||||
if (pTempl != null
|
||||
&& !pTempl.m_FixedData.m_bDisplayInTitleTaskUI
|
||||
&& CurEntry.m_ParentIndex == (char)0xff)
|
||||
{
|
||||
if (!pTempl.m_FixedData.m_bHidden || pTempl.m_FixedData.m_bShowPrompt)
|
||||
{
|
||||
ulCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ulCount;
|
||||
}
|
||||
|
||||
public uint GetTaskId(uint ulIndex)
|
||||
{
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
byte uTopCount = 0;
|
||||
int uCount = 0;
|
||||
if (pLst == null) return 0u;
|
||||
|
||||
while (uCount < pLst.m_uTaskCount)
|
||||
{
|
||||
ActiveTaskEntry CurEntry = pLst.m_TaskEntries[uCount];
|
||||
ATaskTempl pTempl = CurEntry.GetTempl();
|
||||
|
||||
if (pTempl != null
|
||||
&& !pTempl.m_FixedData.m_bDisplayInTitleTaskUI
|
||||
&& CurEntry.m_ParentIndex == (char)0xff)
|
||||
{
|
||||
if (!pTempl.m_FixedData.m_bHidden || pTempl.m_FixedData.m_bShowPrompt)
|
||||
{
|
||||
if (ulIndex == uTopCount)
|
||||
return CurEntry.m_ID;
|
||||
else
|
||||
uTopCount++;
|
||||
}
|
||||
}
|
||||
|
||||
uCount++;
|
||||
}
|
||||
|
||||
return 0u;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
private bool GetForceNavigateFinishFlag()
|
||||
{
|
||||
return m_bForceNavigateFinish;
|
||||
}
|
||||
|
||||
public void GetTaskStateInfo(uint ulTaskId, ref Task_State_info pInfo, bool bActiveTask=true)
|
||||
{
|
||||
// 清零并准备输出结构 // Zero and prepare output struct
|
||||
pInfo = default;
|
||||
if (pInfo.m_MonsterWanted == null)
|
||||
pInfo.m_MonsterWanted = new Task_State_info.m_MonsterWanted_s[TaskInterfaceConstants.MAX_MONSTER_WANTED];
|
||||
if (pInfo.m_ItemsWanted == null)
|
||||
pInfo.m_ItemsWanted = new Task_State_info.m_ItemsWanted_s[TaskInterfaceConstants.MAX_ITEM_WANTED];
|
||||
if (pInfo.m_PlayerWanted == null)
|
||||
pInfo.m_PlayerWanted = new Task_State_info.TASK_INFO_PLAYER[TaskInterfaceConstants.MAX_PLAYER_WANTED];
|
||||
|
||||
ActiveTaskList pLst = GetActiveTaskList();
|
||||
uint ulCurTime = GetCurTime(); // 当前时间 // current time
|
||||
ATaskTempl pTempl = null;
|
||||
ActiveTaskEntry foundEntry = default;
|
||||
bool hasFoundEntry = false;
|
||||
|
||||
if (bActiveTask)
|
||||
{
|
||||
// 在激活任务列表中查找 // Search in active task list
|
||||
for (int i = 0; i < pLst.m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry CurEntry = pLst.m_TaskEntries[i];
|
||||
if (CurEntry.m_ID != ulTaskId || CurEntry.m_ulTemplAddr == 0) continue;
|
||||
|
||||
pTempl = CurEntry.GetTempl();
|
||||
foundEntry = CurEntry;
|
||||
hasFoundEntry = true;
|
||||
|
||||
// 检查任务是否可以完成 // Check if task can be completed
|
||||
if (pTempl != null && pTempl.CanFinishTask(this, CurEntry, ulCurTime))
|
||||
{
|
||||
pInfo.m_ulErrCode = pTempl.RecursiveCheckAward(this, pLst, CurEntry, ulCurTime, -1);
|
||||
if (pInfo.m_ulErrCode == TaskInterfaceConstants.TASK_AWARD_FAIL_LEVEL_CHECK)
|
||||
{
|
||||
ATaskTempl pParent = pTempl;
|
||||
while (pParent != null && pParent.m_FixedData.m_ulPremise_Lev_Min == 0)
|
||||
pParent = pParent.m_pParent;
|
||||
if (pParent != null)
|
||||
pInfo.m_ulPremLevelMin = pParent.m_FixedData.m_ulPremise_Lev_Min;
|
||||
}
|
||||
}
|
||||
|
||||
pInfo.m_ulTimePassed = ulCurTime > CurEntry.m_ulTaskTime ? (ulCurTime - CurEntry.m_ulTaskTime) : 0;
|
||||
|
||||
if (pTempl != null && pTempl.m_FixedData.m_ulPremise_Lev_Min != 0)
|
||||
{
|
||||
if (pTempl.m_FixedData.m_bPremCheckMaxHistoryLevel != 0 && GetPlayerLevel() < pTempl.m_FixedData.m_ulPremise_Lev_Min)
|
||||
{
|
||||
pInfo.m_ulErrCode = TaskInterfaceConstants.TASK_AWARD_FAIL_LEVEL_CHECK;
|
||||
pInfo.m_ulPremLevelMin = pTempl.m_FixedData.m_ulPremise_Lev_Min;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pTempl = GetTaskTemplMan().GetTopTaskByID(ulTaskId);
|
||||
}
|
||||
|
||||
if (pTempl == null)
|
||||
return;
|
||||
|
||||
// 基本任务要求 // Basic task requirements
|
||||
if (pTempl.m_FixedData.m_ulTimeLimit != 0) pInfo.m_ulTimeLimit = pTempl.m_FixedData.m_ulTimeLimit;
|
||||
if (pTempl.m_FixedData.m_ulGoldWanted != 0) pInfo.m_ulGoldWanted = pTempl.m_FixedData.m_ulGoldWanted;
|
||||
|
||||
// 任务类型分支 // Task method branches
|
||||
if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMCollectNumArticle)
|
||||
{
|
||||
for (int j = 0; j < pTempl.m_FixedData.m_ulItemsWanted; j++)
|
||||
{
|
||||
var iw = pTempl.m_FixedData.m_ItemsWanted[j];
|
||||
pInfo.m_ItemsWanted[j].m_ulItemId = iw.m_ulItemTemplId;
|
||||
pInfo.m_ItemsWanted[j].m_ulItemsToGet = iw.m_ulItemNum;
|
||||
pInfo.m_ItemsWanted[j].m_ulItemsGained = ATaskTempl._get_item_count(this, iw.m_ulItemTemplId, iw.m_bCommonItem);
|
||||
}
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMKillNumMonster)
|
||||
{
|
||||
int ulItemCount = 0;
|
||||
int ulMonsterCount = 0;
|
||||
|
||||
for (int j = 0; j < pTempl.m_FixedData.m_ulMonsterWanted; j++)
|
||||
{
|
||||
var mw = pTempl.m_FixedData.m_MonsterWanted[j];
|
||||
|
||||
if (mw.m_ulDropItemId != 0)
|
||||
{
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulMonsterId = mw.m_ulMonsterTemplId;
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemId = mw.m_ulDropItemId;
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemsToGet = mw.m_ulDropItemCount;
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemsGained = ATaskTempl._get_item_count(this, mw.m_ulDropItemId, mw.m_bDropCmnItem);
|
||||
ulItemCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
pInfo.m_MonsterWanted[ulMonsterCount].m_ulMonsterId = mw.m_ulMonsterTemplId;
|
||||
pInfo.m_MonsterWanted[ulMonsterCount].m_ulMonstersToKill = mw.m_ulMonsterNum;
|
||||
|
||||
if (bActiveTask && hasFoundEntry)
|
||||
{
|
||||
pInfo.m_MonsterWanted[ulMonsterCount].m_ulMonstersKilled = foundEntry.m_wMonsterNum[j];
|
||||
}
|
||||
|
||||
ulMonsterCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMKillPlayer)
|
||||
{
|
||||
int ulItemCount = 0;
|
||||
int ulPlayerCount = 0;
|
||||
|
||||
for (int j = 0; j < pTempl.m_FixedData.m_ulPlayerWanted; j++)
|
||||
{
|
||||
var pw = pTempl.m_FixedData.m_PlayerWanted[j];
|
||||
|
||||
if (pw.m_ulDropItemId != 0)
|
||||
{
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemId = pw.m_ulDropItemId;
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemsToGet = pw.m_ulDropItemCount;
|
||||
pInfo.m_ItemsWanted[ulItemCount].m_ulItemsGained = ATaskTempl._get_item_count(this, pw.m_ulDropItemId, pw.m_bDropCmnItem);
|
||||
ulItemCount++;
|
||||
}
|
||||
else
|
||||
{
|
||||
pInfo.m_PlayerWanted[ulPlayerCount].m_ulPlayersToKill = pw.m_ulPlayerNum;
|
||||
|
||||
if (bActiveTask && hasFoundEntry)
|
||||
{
|
||||
pInfo.m_PlayerWanted[ulPlayerCount].m_ulPlayersKilled = foundEntry.m_wMonsterNum[j];
|
||||
}
|
||||
|
||||
pInfo.m_PlayerWanted[ulPlayerCount].m_Requirements = pw.m_Requirements;
|
||||
|
||||
ulPlayerCount++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMProtectNPC)
|
||||
{
|
||||
pInfo.m_ulNPCToProtect = pTempl.m_FixedData.m_ulNPCToProtect;
|
||||
pInfo.m_ulProtectTime = pTempl.m_FixedData.m_ulProtectTimeLen;
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMWaitTime)
|
||||
{
|
||||
pInfo.m_ulWaitTime = pTempl.m_FixedData.m_ulWaitTime;
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMGlobalValOK)
|
||||
{
|
||||
pTempl.GetGlobalTaskChar(this, pInfo.m_TaskCharArr);
|
||||
}
|
||||
else if (pTempl.m_FixedData.m_enumMethod == (uint)TaskMethod.enumTMReachLevel)
|
||||
{
|
||||
pInfo.m_ulReachLevel = pTempl.m_FixedData.m_ulReachLevel;
|
||||
pInfo.m_ulReachReincarnation = pTempl.m_FixedData.m_ulReachReincarnationCount;
|
||||
pInfo.m_ulReachRealm = pTempl.m_FixedData.m_ulReachRealmLevel;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
private uint GetCurTime()
|
||||
{
|
||||
// use this to avoid task hack by changing the system time
|
||||
return (uint)EC_Game.GetServerAbsTime();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 51efd16502ff14aba89b11b4a0a50acd
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c4d0bbc7b1d74528bf58ca8c5e1de34
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,232 @@
|
||||
### Unity UI Structure for Quest/Task System
|
||||
|
||||
This document outlines a high-level Unity UI structure that mirrors the legacy C++ dialogs: `DlgTask`, `DlgTaskList`, `DlgTaskTrace`, `DlgTaskConfirm`, and the hint popup in `DlgTaskConfirm`. It provides an overview diagram, scene hierarchy, and per-GameObject component lists.
|
||||
|
||||
---
|
||||
|
||||
### Diagram: UI Surfaces and Controllers
|
||||
|
||||
```mermaid
|
||||
flowchart TD
|
||||
Canvas[(Canvas)]
|
||||
subgraph Windows
|
||||
QuestWin[QuestWindow (DlgTask)]
|
||||
TaskListWin[TaskListWindow (DlgTaskList)]
|
||||
TaskConfirmWin[TaskConfirmWindow (CDlgTaskConfirm)]
|
||||
TaskHintPop[TaskHintPopup (CDlgTaskHintPop)]
|
||||
QuestTraceMinion[QuestTraceMinion (DlgTaskTrace)]
|
||||
end
|
||||
|
||||
Canvas --> QuestWin
|
||||
Canvas --> TaskListWin
|
||||
Canvas --> TaskConfirmWin
|
||||
Canvas --> TaskHintPop
|
||||
Canvas --> QuestTraceMinion
|
||||
|
||||
subgraph Systems
|
||||
TaskService[TaskService]
|
||||
TaskTemplateRepo[TaskTemplateRepository]
|
||||
ElementDataService[ElementDataService]
|
||||
end
|
||||
|
||||
TaskService --> QuestWin
|
||||
TaskService --> TaskListWin
|
||||
TaskService --> QuestTraceMinion
|
||||
TaskService --> TaskConfirmWin
|
||||
TaskService --> TaskHintPop
|
||||
TaskTemplateRepo --> QuestWin
|
||||
TaskTemplateRepo --> TaskListWin
|
||||
TaskTemplateRepo --> QuestTraceMinion
|
||||
ElementDataService --> QuestWin
|
||||
ElementDataService --> QuestTraceMinion
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### UI Hierarchy (Scene)
|
||||
|
||||
```text
|
||||
Canvas
|
||||
├── QuestWindow (DlgTask)
|
||||
│ ├── Header
|
||||
│ │ ├── TitleText
|
||||
│ │ └── CloseButton
|
||||
│ ├── TopTabs
|
||||
│ │ ├── HaveQuestToggle
|
||||
│ │ └── SearchQuestToggle
|
||||
│ ├── Body
|
||||
│ │ ├── LeftPane
|
||||
│ │ │ └── QuestTreeView (ScrollView)
|
||||
│ │ └── RightPane
|
||||
│ │ ├── Description (TextArea/ScrollView)
|
||||
│ │ ├── ItemsAndAwards
|
||||
│ │ │ ├── AwardItemsGrid
|
||||
│ │ │ └── BaseAwardLabel
|
||||
│ │ ├── ActionRow
|
||||
│ │ │ ├── AbandonButton
|
||||
│ │ │ ├── FinishTaskButton
|
||||
│ │ │ └── GotoNPCButton
|
||||
│ │ └── TraceRow
|
||||
│ │ ├── ShowTraceToggle
|
||||
│ │ └── TraceLabel
|
||||
│ └── Footer
|
||||
│ └── QuestCountLabel
|
||||
├── TaskListWindow (DlgTaskList)
|
||||
│ ├── Header (Title + Close)
|
||||
│ ├── StorageInfo
|
||||
│ │ ├── RefreshItemIcon
|
||||
│ │ ├── RefreshRemainingLabel
|
||||
│ │ └── DailyDeliverRemainingLabel
|
||||
│ ├── TaskList (ScrollView)
|
||||
│ └── Footer
|
||||
│ ├── AcceptButton
|
||||
│ └── RefreshButton
|
||||
├── TaskConfirmWindow (CDlgTaskConfirm)
|
||||
│ ├── Header (Title + MinimizeButton)
|
||||
│ └── Content
|
||||
│ ├── TaskRow[1..N]
|
||||
│ │ ├── TaskNameLabel
|
||||
│ │ └── DoneButton
|
||||
│ └── AutoSizer
|
||||
├── TaskHintPopup (CDlgTaskHintPop)
|
||||
│ ├── Body
|
||||
│ │ ├── MessageText
|
||||
│ │ └── ShowTasksToConfirmButton (flashing)
|
||||
│ └── CloseButton
|
||||
└── QuestTraceMinion (DlgTaskTrace)
|
||||
├── Header
|
||||
│ ├── Title
|
||||
│ ├── CollapseCheckbox
|
||||
│ └── ModeTabs (Traced | Titles | Contribution)
|
||||
├── TraceText (TextArea/ScrollView + name-links)
|
||||
└── InlineButtons (positioned near hovered line)
|
||||
├── UntraceButton
|
||||
├── MapButton
|
||||
├── ChatButton
|
||||
└── FinishByContributionButton
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Components per GameObject
|
||||
|
||||
- Canvas
|
||||
- Components: Canvas, Canvas Scaler, Graphic Raycaster
|
||||
- Notes: Screen Space - Overlay (default) or Camera; match reference resolution for DPI scaling
|
||||
|
||||
- QuestWindow (DlgTask)
|
||||
- Components: RectTransform, CanvasRenderer, Image
|
||||
- Scripts: QuestWindowController (maps to `DlgTask` behaviors)
|
||||
- Children and key components:
|
||||
- Header: HorizontalLayoutGroup, Image
|
||||
- TitleText: TextMeshProUGUI
|
||||
- CloseButton: Button, Image
|
||||
- TopTabs: HorizontalLayoutGroup
|
||||
- HaveQuestToggle: Toggle (ToggleGroup), Image, TextMeshProUGUI
|
||||
- SearchQuestToggle: Toggle (ToggleGroup), Image, TextMeshProUGUI
|
||||
- Body: HorizontalLayoutGroup
|
||||
- LeftPane
|
||||
- QuestTreeView: ScrollRect, Mask, Image
|
||||
- Viewport: RectTransform, Mask, Image
|
||||
- Content: VerticalLayoutGroup, ContentSizeFitter
|
||||
- TreeItem prefab(s): Button, LayoutElement, TextMeshProUGUI, Optional Expand/Collapse Toggle
|
||||
- RightPane
|
||||
- Description: ScrollRect, Mask, Image
|
||||
- Viewport -> Content: TextMeshProUGUI (rich text, link handlers)
|
||||
- ItemsAndAwards
|
||||
- AwardItemsGrid: GridLayoutGroup; ItemIcon prefab: Image, Button, TooltipTrigger
|
||||
- BaseAwardLabel: TextMeshProUGUI
|
||||
- ActionRow: HorizontalLayoutGroup
|
||||
- AbandonButton: Button, Image, TextMeshProUGUI
|
||||
- FinishTaskButton: Button, Image, TextMeshProUGUI
|
||||
- GotoNPCButton: Button, Image, TextMeshProUGUI
|
||||
- TraceRow: HorizontalLayoutGroup
|
||||
- ShowTraceToggle: Toggle, TextMeshProUGUI
|
||||
- TraceLabel: TextMeshProUGUI
|
||||
- Footer
|
||||
- QuestCountLabel: TextMeshProUGUI
|
||||
|
||||
- TaskListWindow (DlgTaskList)
|
||||
- Components: RectTransform, Image
|
||||
- Scripts: TaskListWindowController (maps to `DlgTaskList` behaviors)
|
||||
- Children:
|
||||
- Header: TitleText (TextMeshProUGUI), CloseButton (Button)
|
||||
- StorageInfo: HorizontalLayoutGroup
|
||||
- RefreshItemIcon: Image, TooltipTrigger
|
||||
- RefreshRemainingLabel: TextMeshProUGUI
|
||||
- DailyDeliverRemainingLabel: TextMeshProUGUI
|
||||
- TaskList: ScrollRect, Mask, Image
|
||||
- Viewport -> Content: VerticalLayoutGroup
|
||||
- TaskRow prefab: Button, LayoutElement, TextMeshProUGUI
|
||||
- Footer: HorizontalLayoutGroup
|
||||
- AcceptButton: Button
|
||||
- RefreshButton: Button
|
||||
|
||||
- TaskConfirmWindow (CDlgTaskConfirm)
|
||||
- Components: RectTransform, Image, VerticalLayoutGroup
|
||||
- Scripts: TaskConfirmWindowController
|
||||
- Children:
|
||||
- Header: TitleText (TextMeshProUGUI), MinimizeButton (Button)
|
||||
- Content: VerticalLayoutGroup, ContentSizeFitter
|
||||
- TaskRow prefab (repeat):
|
||||
- TaskNameLabel: TextMeshProUGUI
|
||||
- DoneButton: Button
|
||||
|
||||
- TaskHintPopup (CDlgTaskHintPop)
|
||||
- Components: RectTransform, Image, ContentSizeFitter
|
||||
- Scripts: TaskHintPopupController
|
||||
- Children:
|
||||
- MessageText: TextMeshProUGUI
|
||||
- ShowTasksToConfirmButton: Button (with flashing/animation)
|
||||
- CloseButton: Button
|
||||
|
||||
- QuestTraceMinion (DlgTaskTrace)
|
||||
- Components: RectTransform, Image
|
||||
- Scripts: QuestTraceMinionController (name-link text + hover inline buttons)
|
||||
- Children:
|
||||
- Header: HorizontalLayoutGroup
|
||||
- Title: TextMeshProUGUI
|
||||
- CollapseCheckbox: Toggle
|
||||
- ModeTabs: ToggleGroup
|
||||
- TracedToggle: Toggle, TextMeshProUGUI
|
||||
- TitlesToggle: Toggle, TextMeshProUGUI
|
||||
- ContributionToggle: Toggle, TextMeshProUGUI
|
||||
- TraceText: ScrollRect, Mask, Image
|
||||
- Viewport -> Content: TextMeshProUGUI (supports name-links via hyperlink callbacks)
|
||||
- InlineButtons (anchored to hovered line area):
|
||||
- UntraceButton: Button (hidden by default)
|
||||
- MapButton: Button
|
||||
- ChatButton: Button
|
||||
- FinishByContributionButton: Button
|
||||
|
||||
---
|
||||
|
||||
### Mapping From C++ Dialogs to Unity Objects
|
||||
|
||||
- DlgTask → QuestWindow + QuestWindowController
|
||||
- Tabs: Have vs Search mode → ToggleGroup state
|
||||
- TreeView + RightPane (Description, Items/Awards, Abandon/Finish/GotoNPC)
|
||||
|
||||
- DlgTaskList → TaskListWindow + TaskListWindowController
|
||||
- Storage tasks, RefreshItem icon, Accept/Refresh actions
|
||||
|
||||
- DlgTaskConfirm → TaskConfirmWindow + TaskConfirmWindowController
|
||||
- Dynamic list of confirmable tasks with Done buttons; auto-resize
|
||||
|
||||
- CDlgTaskHintPop → TaskHintPopup + TaskHintPopupController
|
||||
- Flashing button to open TaskConfirmWindow
|
||||
|
||||
- DlgTaskTrace → QuestTraceMinion + QuestTraceMinionController
|
||||
- Collapsible panel; modes: Traced | Titles | Contribution
|
||||
- Name-linked lines with inline Untrace/Map/Chat/Finish-by-Contribution
|
||||
|
||||
---
|
||||
|
||||
### Notes and Recommendations
|
||||
|
||||
- Prefer TextMeshPro for text rendering and link handling.
|
||||
- Implement a simple runtime TreeView using nested layout elements and expand/collapse toggles; or use UI Toolkit if available.
|
||||
- Keep each window as a prefab to support reuse and additive loading; wire controllers via serialized references.
|
||||
- Centralize data access in `TaskService`, `TaskTemplateRepository`, and `ElementDataService` to mirror `TaskTemplMan`, `ElementDataMan`, and task interfaces.
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b430595362eaf4a248b120d46a7dc5e2
|
||||
guid: 02427e8a29d684a1da528b3d56458908
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
@@ -2,6 +2,50 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
public interface TaskInterface
|
||||
{
|
||||
bool Init(object[] pActiveListBuf, int iActiveListLen, object[] pFinishedListBuf, int iFinishedListLen, object[] pFinishedTimeListBuf, int iFinishedTimeListLen, object[] pFinishedCountListBuf, int iFinishedCountListLen, object[] pStorageTaskListBuf, int iStorageTaskListLen);
|
||||
bool Init(byte[] pActiveListBuf, int iActiveListLen, byte[] pFinishedListBuf,
|
||||
int iFinishedListLen, byte[] pFinishedTimeListBuf, int iFinishedTimeListLen,
|
||||
byte[] pFinishedCountListBuf, int iFinishedCountListLen, byte[] pStorageTaskListBuf,
|
||||
int iStorageTaskListLen);
|
||||
/// <summary>
|
||||
/// Get task state info for a task id. 清理并填充任务状态信息 // Clean and fill task state info
|
||||
/// </summary>
|
||||
/// <param name="ulTaskId">任务ID // Task ID</param>
|
||||
/// <param name="pInfo">输出任务状态 // Output task state</param>
|
||||
/// <param name="bActiveTask">是否在激活列表中查找 // Whether to search in active list</param>
|
||||
void GetTaskStateInfo(uint ulTaskId, ref Task_State_info pInfo, bool bActiveTask);
|
||||
|
||||
bool CheckTaskForbid(uint task_id);
|
||||
|
||||
bool IsAtCrossServer();
|
||||
|
||||
bool IsDeliverLegal();
|
||||
int GetCommonItemCount(uint ulCommonItem);
|
||||
|
||||
int GetTaskItemCount(uint ulTaskItem);
|
||||
|
||||
uint GetPlayerLevel();
|
||||
|
||||
uint GetGoldNum();
|
||||
|
||||
int GetGlobalValue(int lKey);
|
||||
|
||||
byte GetShapeMask();
|
||||
|
||||
int GetPos(float[] pos);
|
||||
|
||||
bool CheckSimpleTaskFinshConditon(uint task_id);
|
||||
|
||||
int GetFactionConsumeContrib();
|
||||
|
||||
int GetFactionExpContrib();
|
||||
|
||||
bool HasTask(uint ulTaskId);
|
||||
|
||||
#if _TASK_CLIENT
|
||||
void GetTaskAwardPreview(uint ulTaskId,ref Task_Award_Preview p, bool bActiveTask = true);
|
||||
uint GetTaskCount();
|
||||
uint GetTaskId(uint ulIndex);
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,290 +0,0 @@
|
||||
if(m_ID == 33519UL){
|
||||
// Log all non-pointer properties of ATaskTemplFixedData, one per line
|
||||
a_LogOutput(1, "[MH] m_ID=%lu", m_ID);
|
||||
// m_szName skipped as complex char array; name already converted above
|
||||
a_LogOutput(1, "[MH] m_bHasSign=%d", (int)m_bHasSign);
|
||||
a_LogOutput(1, "[MH] m_ulType=%lu", m_ulType);
|
||||
a_LogOutput(1, "[MH] m_ulTimeLimit=%lu", m_ulTimeLimit);
|
||||
a_LogOutput(1, "[MH] m_bOfflineFail=%d", (int)m_bOfflineFail);
|
||||
a_LogOutput(1, "[MH] m_bAbsFail=%d", (int)m_bAbsFail);
|
||||
a_LogOutput(1, "[MH] m_tmAbsFailTime={year=%ld,month=%ld,day=%ld,hour=%ld,min=%ld,wday=%ld}",
|
||||
(long)m_tmAbsFailTime.year,(long)m_tmAbsFailTime.month,(long)m_tmAbsFailTime.day,(long)m_tmAbsFailTime.hour,(long)m_tmAbsFailTime.min,(long)m_tmAbsFailTime.wday);
|
||||
a_LogOutput(1, "[MH] m_bItemNotTakeOff=%d", (int)m_bItemNotTakeOff);
|
||||
a_LogOutput(1, "[MH] m_bAbsTime=%d", (int)m_bAbsTime);
|
||||
a_LogOutput(1, "[MH] m_ulTimetable=%lu", m_ulTimetable);
|
||||
{
|
||||
char buf[1024];
|
||||
int off = 0;
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "[");
|
||||
for (unsigned long i = 0; i < (unsigned long)MAX_TIMETABLE_SIZE; ++i){
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "%s%d", (i?",":""), (int)m_tmType[i]);
|
||||
if (off < 0 || off >= (int)sizeof(buf)) break;
|
||||
}
|
||||
snprintf(buf + (off<0?0:off), (size_t)((off<0?0:sizeof(buf)-off)), "]");
|
||||
a_LogOutput(1, "[MH] m_tmType=%s", buf);
|
||||
}
|
||||
a_LogOutput(1, "[MH] m_lAvailFrequency=%ld", m_lAvailFrequency);
|
||||
a_LogOutput(1, "[MH] m_lPeriodLimit=%ld", m_lPeriodLimit);
|
||||
a_LogOutput(1, "[MH] m_bChooseOne=%d", (int)m_bChooseOne);
|
||||
a_LogOutput(1, "[MH] m_bRandOne=%d", (int)m_bRandOne);
|
||||
a_LogOutput(1, "[MH] m_bExeChildInOrder=%d", (int)m_bExeChildInOrder);
|
||||
a_LogOutput(1, "[MH] m_bParentAlsoFail=%d", (int)m_bParentAlsoFail);
|
||||
a_LogOutput(1, "[MH] m_bParentAlsoSucc=%d", (int)m_bParentAlsoSucc);
|
||||
a_LogOutput(1, "[MH] m_bCanGiveUp=%d", (int)m_bCanGiveUp);
|
||||
a_LogOutput(1, "[MH] m_bCanRedo=%d", (int)m_bCanRedo);
|
||||
a_LogOutput(1, "[MH] m_bCanRedoAfterFailure=%d", (int)m_bCanRedoAfterFailure);
|
||||
a_LogOutput(1, "[MH] m_bClearAsGiveUp=%d", (int)m_bClearAsGiveUp);
|
||||
a_LogOutput(1, "[MH] m_bNeedRecord=%d", (int)m_bNeedRecord);
|
||||
a_LogOutput(1, "[MH] m_bFailAsPlayerDie=%d", (int)m_bFailAsPlayerDie);
|
||||
a_LogOutput(1, "[MH] m_ulMaxReceiver=%lu", m_ulMaxReceiver);
|
||||
a_LogOutput(1, "[MH] m_bDelvInZone=%d", (int)m_bDelvInZone);
|
||||
a_LogOutput(1, "[MH] m_ulDelvWorld=%lu", m_ulDelvWorld);
|
||||
a_LogOutput(1, "[MH] m_ulDelvRegionCnt=%lu", m_ulDelvRegionCnt);
|
||||
a_LogOutput(1, "[MH] m_bEnterRegionFail=%d", (int)m_bEnterRegionFail);
|
||||
a_LogOutput(1, "[MH] m_ulEnterRegionWorld=%lu", m_ulEnterRegionWorld);
|
||||
a_LogOutput(1, "[MH] m_ulEnterRegionCnt=%lu", m_ulEnterRegionCnt);
|
||||
a_LogOutput(1, "[MH] m_bLeaveRegionFail=%d", (int)m_bLeaveRegionFail);
|
||||
a_LogOutput(1, "[MH] m_ulLeaveRegionWorld=%lu", m_ulLeaveRegionWorld);
|
||||
a_LogOutput(1, "[MH] m_ulLeaveRegionCnt=%lu", m_ulLeaveRegionCnt);
|
||||
a_LogOutput(1, "[MH] m_bLeaveForceFail=%d", (int)m_bLeaveForceFail);
|
||||
a_LogOutput(1, "[MH] m_bTransTo=%d", (int)m_bTransTo);
|
||||
a_LogOutput(1, "[MH] m_ulTransWldId=%lu", m_ulTransWldId);
|
||||
a_LogOutput(1, "[MH] m_TransPt={x=%f,y=%f,z=%f}", m_TransPt.x, m_TransPt.y, m_TransPt.z);
|
||||
a_LogOutput(1, "[MH] m_lMonsCtrl=%ld", m_lMonsCtrl);
|
||||
a_LogOutput(1, "[MH] m_bTrigCtrl=%d", (int)m_bTrigCtrl);
|
||||
a_LogOutput(1, "[MH] m_bAutoDeliver=%d", (int)m_bAutoDeliver);
|
||||
a_LogOutput(1, "[MH] m_bDisplayInExclusiveUI=%d", (int)m_bDisplayInExclusiveUI);
|
||||
a_LogOutput(1, "[MH] m_bReadyToNotifyServer=%d", (int)m_bReadyToNotifyServer);
|
||||
a_LogOutput(1, "[MH] m_bUsedInTokenShop=%d", (int)m_bUsedInTokenShop);
|
||||
a_LogOutput(1, "[MH] m_bDeathTrig=%d", (int)m_bDeathTrig);
|
||||
a_LogOutput(1, "[MH] m_bClearAcquired=%d", (int)m_bClearAcquired);
|
||||
a_LogOutput(1, "[MH] m_ulSuitableLevel=%lu", m_ulSuitableLevel);
|
||||
a_LogOutput(1, "[MH] m_bShowPrompt=%d", (int)m_bShowPrompt);
|
||||
a_LogOutput(1, "[MH] m_bKeyTask=%d", (int)m_bKeyTask);
|
||||
a_LogOutput(1, "[MH] m_ulDelvNPC=%lu", m_ulDelvNPC);
|
||||
a_LogOutput(1, "[MH] m_ulAwardNPC=%lu", m_ulAwardNPC);
|
||||
a_LogOutput(1, "[MH] m_bSkillTask=%d", (int)m_bSkillTask);
|
||||
a_LogOutput(1, "[MH] m_bCanSeekOut=%d", (int)m_bCanSeekOut);
|
||||
a_LogOutput(1, "[MH] m_bShowDirection=%d", (int)m_bShowDirection);
|
||||
a_LogOutput(1, "[MH] m_bMarriage=%d", (int)m_bMarriage);
|
||||
a_LogOutput(1, "[MH] m_ulChangeKeyCnt=%lu", m_ulChangeKeyCnt);
|
||||
a_LogOutput(1, "[MH] m_bSwitchSceneFail=%d", (int)m_bSwitchSceneFail);
|
||||
a_LogOutput(1, "[MH] m_bHidden=%d", (int)m_bHidden);
|
||||
a_LogOutput(1, "[MH] m_bDeliverySkill=%d", (int)m_bDeliverySkill);
|
||||
a_LogOutput(1, "[MH] m_iDeliveredSkillID=%d", m_iDeliveredSkillID);
|
||||
a_LogOutput(1, "[MH] m_iDeliveredSkillLevel=%d", m_iDeliveredSkillLevel);
|
||||
a_LogOutput(1, "[MH] m_bShowGfxFinished=%d", (int)m_bShowGfxFinished);
|
||||
a_LogOutput(1, "[MH] m_bChangePQRanking=%d", (int)m_bChangePQRanking);
|
||||
a_LogOutput(1, "[MH] m_bCompareItemAndInventory=%d", (int)m_bCompareItemAndInventory);
|
||||
a_LogOutput(1, "[MH] m_ulInventorySlotNum=%lu", m_ulInventorySlotNum);
|
||||
a_LogOutput(1, "[MH] m_bPQTask=%d", (int)m_bPQTask);
|
||||
a_LogOutput(1, "[MH] m_ulPQExpCnt=%lu", m_ulPQExpCnt);
|
||||
a_LogOutput(1, "[MH] m_bPQSubTask=%d", (int)m_bPQSubTask);
|
||||
a_LogOutput(1, "[MH] m_bClearContrib=%d", (int)m_bClearContrib);
|
||||
a_LogOutput(1, "[MH] m_ulMonsterContribCnt=%lu", m_ulMonsterContribCnt);
|
||||
a_LogOutput(1, "[MH] m_iPremNeedRecordTasksNum=%d", m_iPremNeedRecordTasksNum);
|
||||
a_LogOutput(1, "[MH] m_bShowByNeedRecordTasksNum=%d", (int)m_bShowByNeedRecordTasksNum);
|
||||
a_LogOutput(1, "[MH] m_iPremiseFactionContrib=%d", m_iPremiseFactionContrib);
|
||||
a_LogOutput(1, "[MH] m_bShowByFactionContrib=%d", (int)m_bShowByFactionContrib);
|
||||
a_LogOutput(1, "[MH] m_bAccountTaskLimit=%d", (int)m_bAccountTaskLimit);
|
||||
a_LogOutput(1, "[MH] m_bRoleTaskLimit=%d", (int)m_bRoleTaskLimit);
|
||||
a_LogOutput(1, "[MH] m_ulAccountTaskLimitCnt=%lu", m_ulAccountTaskLimitCnt);
|
||||
a_LogOutput(1, "[MH] m_bLeaveFactionFail=%d", (int)m_bLeaveFactionFail);
|
||||
a_LogOutput(1, "[MH] m_bNotIncCntWhenFailed=%d", (int)m_bNotIncCntWhenFailed);
|
||||
a_LogOutput(1, "[MH] m_bNotClearItemWhenFailed=%d", (int)m_bNotClearItemWhenFailed);
|
||||
a_LogOutput(1, "[MH] m_bDisplayInTitleTaskUI=%d", (int)m_bDisplayInTitleTaskUI);
|
||||
a_LogOutput(1, "[MH] m_ucPremiseTransformedForm=%u", (unsigned int)m_ucPremiseTransformedForm);
|
||||
a_LogOutput(1, "[MH] m_bShowByTransformed=%d", (int)m_bShowByTransformed);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Lev_Min=%lu", m_ulPremise_Lev_Min);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Lev_Max=%lu", m_ulPremise_Lev_Max);
|
||||
a_LogOutput(1, "[MH] m_bPremCheckMaxHistoryLevel=%lu", m_bPremCheckMaxHistoryLevel);
|
||||
a_LogOutput(1, "[MH] m_bShowByLev=%d", (int)m_bShowByLev);
|
||||
a_LogOutput(1, "[MH] m_bPremCheckReincarnation=%d", (int)m_bPremCheckReincarnation);
|
||||
a_LogOutput(1, "[MH] m_ulPremReincarnationMin=%lu", m_ulPremReincarnationMin);
|
||||
a_LogOutput(1, "[MH] m_ulPremReincarnationMax=%lu", m_ulPremReincarnationMax);
|
||||
a_LogOutput(1, "[MH] m_bShowByReincarnation=%d", (int)m_bShowByReincarnation);
|
||||
a_LogOutput(1, "[MH] m_bPremCheckRealmLevel=%d", (int)m_bPremCheckRealmLevel);
|
||||
a_LogOutput(1, "[MH] m_ulPremRealmLevelMin=%lu", m_ulPremRealmLevelMin);
|
||||
a_LogOutput(1, "[MH] m_ulPremRealmLevelMax=%lu", m_ulPremRealmLevelMax);
|
||||
a_LogOutput(1, "[MH] m_bPremCheckRealmExpFull=%d", (int)m_bPremCheckRealmExpFull);
|
||||
a_LogOutput(1, "[MH] m_bShowByRealmLevel=%d", (int)m_bShowByRealmLevel);
|
||||
a_LogOutput(1, "[MH] m_ulPremItems=%lu", m_ulPremItems);
|
||||
a_LogOutput(1, "[MH] m_bShowByItems=%d", (int)m_bShowByItems);
|
||||
a_LogOutput(1, "[MH] m_bPremItemsAnyOne=%d", (int)m_bPremItemsAnyOne);
|
||||
a_LogOutput(1, "[MH] m_ulGivenItems=%lu", m_ulGivenItems);
|
||||
a_LogOutput(1, "[MH] m_ulGivenCmnCount=%lu", m_ulGivenCmnCount);
|
||||
a_LogOutput(1, "[MH] m_ulGivenTskCount=%lu", m_ulGivenTskCount);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Deposit=%lu", m_ulPremise_Deposit);
|
||||
a_LogOutput(1, "[MH] m_bShowByDeposit=%d", (int)m_bShowByDeposit);
|
||||
a_LogOutput(1, "[MH] m_lPremise_Reputation=%ld", m_lPremise_Reputation);
|
||||
a_LogOutput(1, "[MH] m_lPremise_RepuMax=%ld", m_lPremise_RepuMax);
|
||||
a_LogOutput(1, "[MH] m_bShowByRepu=%d", (int)m_bShowByRepu);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Task_Count=%lu", m_ulPremise_Task_Count);
|
||||
{
|
||||
char buf[1024];
|
||||
int off = 0;
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "[");
|
||||
for (unsigned long i = 0; i < m_ulPremise_Task_Count && i < (unsigned long)MAX_PREM_TASK_COUNT; ++i){
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "%s%lu", (i?",":""), m_ulPremise_Tasks[i]);
|
||||
if (off < 0 || off >= (int)sizeof(buf)) break;
|
||||
}
|
||||
snprintf(buf + (off<0?0:off), (size_t)((off<0?0:sizeof(buf)-off)), "]");
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Tasks=%s", buf);
|
||||
}
|
||||
a_LogOutput(1, "[MH] m_bShowByPreTask=%d", (int)m_bShowByPreTask);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Task_Least_Num=%lu", m_ulPremise_Task_Least_Num);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Period=%lu", m_ulPremise_Period);
|
||||
a_LogOutput(1, "[MH] m_bShowByPeriod=%d", (int)m_bShowByPeriod);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Faction=%lu", m_ulPremise_Faction);
|
||||
a_LogOutput(1, "[MH] m_iPremise_FactionRole=%d", m_iPremise_FactionRole);
|
||||
a_LogOutput(1, "[MH] m_bShowByFaction=%d", (int)m_bShowByFaction);
|
||||
a_LogOutput(1, "[MH] m_ulGender=%lu", m_ulGender);
|
||||
a_LogOutput(1, "[MH] m_bShowByGender=%d", (int)m_bShowByGender);
|
||||
a_LogOutput(1, "[MH] m_ulOccupations=%lu", m_ulOccupations);
|
||||
{
|
||||
char buf[1024];
|
||||
int off = 0;
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "[");
|
||||
for (unsigned long i = 0; i < m_ulOccupations && i < (unsigned long)MAX_OCCUPATIONS; ++i){
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "%s%lu", (i?",":""), m_Occupations[i]);
|
||||
if (off < 0 || off >= (int)sizeof(buf)) break;
|
||||
}
|
||||
snprintf(buf + (off<0?0:off), (size_t)((off<0?0:sizeof(buf)-off)), "]");
|
||||
a_LogOutput(1, "[MH] m_Occupations=%s", buf);
|
||||
}
|
||||
a_LogOutput(1, "[MH] m_bShowByOccup=%d", (int)m_bShowByOccup);
|
||||
a_LogOutput(1, "[MH] m_bPremise_Spouse=%d", (int)m_bPremise_Spouse);
|
||||
a_LogOutput(1, "[MH] m_bShowBySpouse=%d", (int)m_bShowBySpouse);
|
||||
a_LogOutput(1, "[MH] m_bPremiseWeddingOwner=%d", (int)m_bPremiseWeddingOwner);
|
||||
a_LogOutput(1, "[MH] m_bShowByWeddingOwner=%d", (int)m_bShowByWeddingOwner);
|
||||
a_LogOutput(1, "[MH] m_bGM=%d", (int)m_bGM);
|
||||
a_LogOutput(1, "[MH] m_bShieldUser=%d", (int)m_bShieldUser);
|
||||
a_LogOutput(1, "[MH] m_bShowByRMB=%d", (int)m_bShowByRMB);
|
||||
a_LogOutput(1, "[MH] m_ulPremRMBMin=%lu", m_ulPremRMBMin);
|
||||
a_LogOutput(1, "[MH] m_ulPremRMBMax=%lu", m_ulPremRMBMax);
|
||||
a_LogOutput(1, "[MH] m_bCharTime=%d", (int)m_bCharTime);
|
||||
a_LogOutput(1, "[MH] m_bShowByCharTime=%d", (int)m_bShowByCharTime);
|
||||
a_LogOutput(1, "[MH] m_iCharStartTime=%d", m_iCharStartTime);
|
||||
a_LogOutput(1, "[MH] m_iCharEndTime=%d", m_iCharEndTime);
|
||||
a_LogOutput(1, "[MH] m_tmCharEndTime={year=%ld,month=%ld,day=%ld,hour=%ld,min=%ld,wday=%ld}",
|
||||
(long)m_tmCharEndTime.year,(long)m_tmCharEndTime.month,(long)m_tmCharEndTime.day,(long)m_tmCharEndTime.hour,(long)m_tmCharEndTime.min,(long)m_tmCharEndTime.wday);
|
||||
a_LogOutput(1, "[MH] m_ulCharTimeGreaterThan=%lu", m_ulCharTimeGreaterThan);
|
||||
a_LogOutput(1, "[MH] m_ulPremise_Cotask=%lu", m_ulPremise_Cotask);
|
||||
a_LogOutput(1, "[MH] m_ulCoTaskCond=%lu", m_ulCoTaskCond);
|
||||
a_LogOutput(1, "[MH] m_ulMutexTaskCount=%lu", m_ulMutexTaskCount);
|
||||
{
|
||||
char buf[512];
|
||||
int off = 0;
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "[");
|
||||
for (unsigned long i = 0; i < m_ulMutexTaskCount && i < (unsigned long)MAX_MUTEX_TASK_COUNT; ++i){
|
||||
off += snprintf(buf + off, (size_t)(sizeof(buf) - off), "%s%lu", (i?",":""), m_ulMutexTasks[i]);
|
||||
if (off < 0 || off >= (int)sizeof(buf)) break;
|
||||
}
|
||||
snprintf(buf + (off<0?0:off), (size_t)((off<0?0:sizeof(buf)-off)), "]");
|
||||
a_LogOutput(1, "[MH] m_ulMutexTasks=%s", buf);
|
||||
}
|
||||
{
|
||||
char buf[256];
|
||||
snprintf(buf, sizeof(buf), "[%ld,%ld,%ld,%ld]", (long)m_lSkillLev[0], (long)m_lSkillLev[1], (long)m_lSkillLev[2], (long)m_lSkillLev[3]);
|
||||
a_LogOutput(1, "[MH] m_lSkillLev=%s", buf);
|
||||
}
|
||||
a_LogOutput(1, "[MH] m_DynTaskType=%d", (int)m_DynTaskType);
|
||||
a_LogOutput(1, "[MH] m_ulSpecialAward=%lu", m_ulSpecialAward);
|
||||
a_LogOutput(1, "[MH] m_bTeamwork=%d", (int)m_bTeamwork);
|
||||
a_LogOutput(1, "[MH] m_bRcvByTeam=%d", (int)m_bRcvByTeam);
|
||||
a_LogOutput(1, "[MH] m_bSharedTask=%d", (int)m_bSharedTask);
|
||||
a_LogOutput(1, "[MH] m_bSharedAchieved=%d", (int)m_bSharedAchieved);
|
||||
a_LogOutput(1, "[MH] m_bCheckTeammate=%d", (int)m_bCheckTeammate);
|
||||
a_LogOutput(1, "[MH] m_fTeammateDist=%f", m_fTeammateDist);
|
||||
a_LogOutput(1, "[MH] m_bAllFail=%d", (int)m_bAllFail);
|
||||
a_LogOutput(1, "[MH] m_bCapFail=%d", (int)m_bCapFail);
|
||||
a_LogOutput(1, "[MH] m_bCapSucc=%d", (int)m_bCapSucc);
|
||||
a_LogOutput(1, "[MH] m_fSuccDist=%f", m_fSuccDist);
|
||||
a_LogOutput(1, "[MH] m_bDismAsSelfFail=%d", (int)m_bDismAsSelfFail);
|
||||
a_LogOutput(1, "[MH] m_bRcvChckMem=%d", (int)m_bRcvChckMem);
|
||||
a_LogOutput(1, "[MH] m_fRcvMemDist=%f", m_fRcvMemDist);
|
||||
a_LogOutput(1, "[MH] m_bCntByMemPos=%d", (int)m_bCntByMemPos);
|
||||
a_LogOutput(1, "[MH] m_fCntMemDist=%f", m_fCntMemDist);
|
||||
a_LogOutput(1, "[MH] m_bAllSucc=%d", (int)m_bAllSucc);
|
||||
a_LogOutput(1, "[MH] m_bCoupleOnly=%d", (int)m_bCoupleOnly);
|
||||
a_LogOutput(1, "[MH] m_bDistinguishedOcc=%d", (int)m_bDistinguishedOcc);
|
||||
a_LogOutput(1, "[MH] m_ulTeamMemsWanted=%lu", m_ulTeamMemsWanted);
|
||||
a_LogOutput(1, "[MH] m_bShowByTeam=%d", (int)m_bShowByTeam);
|
||||
a_LogOutput(1, "[MH] m_bPremNeedComp=%d", (int)m_bPremNeedComp);
|
||||
a_LogOutput(1, "[MH] m_nPremExp1AndOrExp2=%d", m_nPremExp1AndOrExp2);
|
||||
a_LogOutput(1, "[MH] m_Prem1KeyValue={lType=%d,lNum=%ld,op=%d,rType=%d,rNum=%ld}", m_Prem1KeyValue.nLeftType, (long)m_Prem1KeyValue.lLeftNum, m_Prem1KeyValue.nCompOper, m_Prem1KeyValue.nRightType, (long)m_Prem1KeyValue.lRightNum);
|
||||
a_LogOutput(1, "[MH] m_Prem2KeyValue={lType=%d,lNum=%ld,op=%d,rType=%d,rNum=%ld}", m_Prem2KeyValue.nLeftType, (long)m_Prem2KeyValue.lLeftNum, m_Prem2KeyValue.nCompOper, m_Prem2KeyValue.nRightType, (long)m_Prem2KeyValue.lRightNum);
|
||||
a_LogOutput(1, "[MH] m_bPremCheckForce=%d", (int)m_bPremCheckForce);
|
||||
a_LogOutput(1, "[MH] m_iPremForce=%d", m_iPremForce);
|
||||
a_LogOutput(1, "[MH] m_bShowByForce=%d", (int)m_bShowByForce);
|
||||
a_LogOutput(1, "[MH] m_iPremForceReputation=%d", m_iPremForceReputation);
|
||||
a_LogOutput(1, "[MH] m_bShowByForceReputation=%d", (int)m_bShowByForceReputation);
|
||||
a_LogOutput(1, "[MH] m_iPremForceContribution=%d", m_iPremForceContribution);
|
||||
a_LogOutput(1, "[MH] m_bShowByForceContribution=%d", (int)m_bShowByForceContribution);
|
||||
a_LogOutput(1, "[MH] m_iPremForceExp=%d", m_iPremForceExp);
|
||||
a_LogOutput(1, "[MH] m_bShowByForceExp=%d", (int)m_bShowByForceExp);
|
||||
a_LogOutput(1, "[MH] m_iPremForceSP=%d", m_iPremForceSP);
|
||||
a_LogOutput(1, "[MH] m_bShowByForceSP=%d", (int)m_bShowByForceSP);
|
||||
a_LogOutput(1, "[MH] m_iPremForceActivityLevel=%d", m_iPremForceActivityLevel);
|
||||
a_LogOutput(1, "[MH] m_bShowByForceActivityLevel=%d", (int)m_bShowByForceActivityLevel);
|
||||
a_LogOutput(1, "[MH] m_bPremIsKing=%d", (int)m_bPremIsKing);
|
||||
a_LogOutput(1, "[MH] m_bShowByKing=%d", (int)m_bShowByKing);
|
||||
a_LogOutput(1, "[MH] m_bPremNotInTeam=%d", (int)m_bPremNotInTeam);
|
||||
a_LogOutput(1, "[MH] m_bShowByNotInTeam=%d", (int)m_bShowByNotInTeam);
|
||||
a_LogOutput(1, "[MH] m_iPremTitleNumTotal=%lu", m_iPremTitleNumTotal);
|
||||
a_LogOutput(1, "[MH] m_iPremTitleNumRequired=%lu", m_iPremTitleNumRequired);
|
||||
a_LogOutput(1, "[MH] m_bShowByTitle=%d", (int)m_bShowByTitle);
|
||||
{
|
||||
char buf[128];
|
||||
snprintf(buf, sizeof(buf), "[%d,%d]", m_iPremHistoryStageIndex[0], m_iPremHistoryStageIndex[1]);
|
||||
a_LogOutput(1, "[MH] m_iPremHistoryStageIndex=%s", buf);
|
||||
}
|
||||
a_LogOutput(1, "[MH] m_bShowByHistoryStage=%d", (int)m_bShowByHistoryStage);
|
||||
a_LogOutput(1, "[MH] m_ulPremGeneralCardCount=%lu", m_ulPremGeneralCardCount);
|
||||
a_LogOutput(1, "[MH] m_bShowByGeneralCard=%d", (int)m_bShowByGeneralCard);
|
||||
a_LogOutput(1, "[MH] m_iPremGeneralCardRank=%d", m_iPremGeneralCardRank);
|
||||
a_LogOutput(1, "[MH] m_ulPremGeneralCardRankCount=%lu", m_ulPremGeneralCardRankCount);
|
||||
a_LogOutput(1, "[MH] m_bShowByGeneralCardRank=%d", (int)m_bShowByGeneralCardRank);
|
||||
a_LogOutput(1, "[MH] m_enumMethod=%lu", m_enumMethod);
|
||||
a_LogOutput(1, "[MH] m_enumFinishType=%lu", m_enumFinishType);
|
||||
a_LogOutput(1, "[MH] m_ulPlayerWanted=%lu", m_ulPlayerWanted);
|
||||
a_LogOutput(1, "[MH] m_ulMonsterWanted=%lu", m_ulMonsterWanted);
|
||||
a_LogOutput(1, "[MH] m_ulItemsWanted=%lu", m_ulItemsWanted);
|
||||
a_LogOutput(1, "[MH] m_ulGoldWanted=%lu", m_ulGoldWanted);
|
||||
a_LogOutput(1, "[MH] m_iFactionContribWanted=%d", m_iFactionContribWanted);
|
||||
a_LogOutput(1, "[MH] m_iFactionExpContribWanted=%d", m_iFactionExpContribWanted);
|
||||
a_LogOutput(1, "[MH] m_ulNPCToProtect=%lu", m_ulNPCToProtect);
|
||||
a_LogOutput(1, "[MH] m_ulProtectTimeLen=%lu", m_ulProtectTimeLen);
|
||||
a_LogOutput(1, "[MH] m_ulNPCMoving=%lu", m_ulNPCMoving);
|
||||
a_LogOutput(1, "[MH] m_ulNPCDestSite=%lu", m_ulNPCDestSite);
|
||||
a_LogOutput(1, "[MH] m_ulReachSiteCnt=%lu", m_ulReachSiteCnt);
|
||||
a_LogOutput(1, "[MH] m_ulReachSiteId=%lu", m_ulReachSiteId);
|
||||
a_LogOutput(1, "[MH] m_ulWaitTime=%lu", m_ulWaitTime);
|
||||
a_LogOutput(1, "[MH] m_TreasureStartZone={x=%f,y=%f,z=%f}", m_TreasureStartZone.x, m_TreasureStartZone.y, m_TreasureStartZone.z);
|
||||
a_LogOutput(1, "[MH] m_ucZonesNumX=%u", (unsigned int)m_ucZonesNumX);
|
||||
a_LogOutput(1, "[MH] m_ucZonesNumZ=%u", (unsigned int)m_ucZonesNumZ);
|
||||
a_LogOutput(1, "[MH] m_ucZoneSide=%u", (unsigned int)m_ucZoneSide);
|
||||
a_LogOutput(1, "[MH] m_ulLeaveSiteCnt=%lu", m_ulLeaveSiteCnt);
|
||||
a_LogOutput(1, "[MH] m_ulLeaveSiteId=%lu", m_ulLeaveSiteId);
|
||||
a_LogOutput(1, "[MH] m_bFinNeedComp=%d", (int)m_bFinNeedComp);
|
||||
a_LogOutput(1, "[MH] m_nFinExp1AndOrExp2=%d", m_nFinExp1AndOrExp2);
|
||||
a_LogOutput(1, "[MH] m_Fin1KeyValue={lType=%d,lNum=%ld,op=%d,rType=%d,rNum=%ld}", m_Fin1KeyValue.nLeftType, (long)m_Fin1KeyValue.lLeftNum, m_Fin1KeyValue.nCompOper, m_Fin1KeyValue.nRightType, (long)m_Fin1KeyValue.lRightNum);
|
||||
a_LogOutput(1, "[MH] m_Fin2KeyValue={lType=%d,lNum=%ld,op=%d,rType=%d,rNum=%ld}", m_Fin2KeyValue.nLeftType, (long)m_Fin2KeyValue.lLeftNum, m_Fin2KeyValue.nCompOper, m_Fin2KeyValue.nRightType, (long)m_Fin2KeyValue.lRightNum);
|
||||
a_LogOutput(1, "[MH] m_ulExpCnt=%lu", m_ulExpCnt);
|
||||
a_LogOutput(1, "[MH] m_ulTaskCharCnt=%lu", m_ulTaskCharCnt);
|
||||
a_LogOutput(1, "[MH] m_ucTransformedForm=%u", (unsigned int)m_ucTransformedForm);
|
||||
a_LogOutput(1, "[MH] m_ulReachLevel=%lu", m_ulReachLevel);
|
||||
a_LogOutput(1, "[MH] m_ulReachReincarnationCount=%lu", m_ulReachReincarnationCount);
|
||||
a_LogOutput(1, "[MH] m_ulReachRealmLevel=%lu", m_ulReachRealmLevel);
|
||||
a_LogOutput(1, "[MH] m_uiEmotion=%u", (unsigned int)m_uiEmotion);
|
||||
a_LogOutput(1, "[MH] m_ulAwardType_S=%lu", m_ulAwardType_S);
|
||||
a_LogOutput(1, "[MH] m_ulAwardType_F=%lu", m_ulAwardType_F);
|
||||
a_LogOutput(1, "[MH] m_ulParent=%lu", m_ulParent);
|
||||
a_LogOutput(1, "[MH] m_ulPrevSibling=%lu", m_ulPrevSibling);
|
||||
a_LogOutput(1, "[MH] m_ulNextSibling=%lu", m_ulNextSibling);
|
||||
a_LogOutput(1, "[MH] m_ulFirstChild=%lu", m_ulFirstChild);
|
||||
a_LogOutput(1, "[MH] m_bIsLibraryTask=%d", (int)m_bIsLibraryTask);
|
||||
a_LogOutput(1, "[MH] m_fLibraryTasksProbability=%f", m_fLibraryTasksProbability);
|
||||
a_LogOutput(1, "[MH] m_bIsUniqueStorageTask=%d", (int)m_bIsUniqueStorageTask);
|
||||
a_LogOutput(1, "[MH] m_iWorldContribution=%d", m_iWorldContribution);
|
||||
}
|
||||
@@ -29,20 +29,66 @@ namespace PerfectWorld.Scripts.Task
|
||||
public char m_NextSblIndex; // Next sibling node index
|
||||
public char m_ChildIndex; // Child node index
|
||||
public char m_uState; // Task state
|
||||
public ulong m_ulTaskTime; // Timestamp
|
||||
public uint m_ulTaskTime; // Timestamp
|
||||
public ushort m_uCapTaskId; // Captain task ID
|
||||
public ulong m_ulTemplAddr; // Template address
|
||||
public ulong m_ulCapTemplAddr; // Captain task template address
|
||||
public uint m_ulTemplAddr; // Template address
|
||||
public uint m_ulCapTemplAddr; // Captain task template address
|
||||
|
||||
public static int Size()
|
||||
{
|
||||
return 2 + 1 + 1 + 1 + 1 + 1 + 4 + 2 + 4 + 4;
|
||||
}
|
||||
};
|
||||
|
||||
// ´óСΪTASK_DATA_BUF_MAX_LEN
|
||||
public class ActiveTaskEntry : TASK_ENTRY_FIXED_DATA
|
||||
{
|
||||
// Buffer union simplified (C# does not support union directly)
|
||||
public byte[] m_BufData; // Raw data buffer
|
||||
public ushort[] m_wMonsterNum; // Monster numbers
|
||||
// unsigned char m_BufData[TASK_DATA_BUF_MAX_LEN-sizeof(TASK_ENTRY_FIXED_DATA)];
|
||||
public byte[] m_BufData = new byte[TaskInterfaceConstants.TASK_DATA_BUF_MAX_LEN - 21 ]; // Raw data buffer
|
||||
// nsigned short m_wMonsterNum[MAX_MONSTER_WANTED];
|
||||
public ushort[] m_wMonsterNum = new ushort[TaskInterfaceConstants.MAX_MONSTER_WANTED]; // Monster numbers
|
||||
public int m_iUsefulData1;
|
||||
public char m_iUsefulData2;
|
||||
|
||||
public void ReadFromBuffer(byte[] buffer, ref int offset)
|
||||
{
|
||||
m_ID = BitConverter.ToUInt16(buffer, offset);
|
||||
offset += 2;
|
||||
m_ParentIndex = (char)buffer[offset++];
|
||||
m_PrevSblIndex = (char)buffer[offset++];
|
||||
m_NextSblIndex = (char)buffer[offset++];
|
||||
m_ChildIndex = (char)buffer[offset++];
|
||||
m_uState = (char)buffer[offset++];
|
||||
m_ulTaskTime = BitConverter.ToUInt32(buffer, offset);
|
||||
offset += 4;
|
||||
m_uCapTaskId = BitConverter.ToUInt16(buffer, offset);
|
||||
offset += 2;
|
||||
m_ulTemplAddr = BitConverter.ToUInt32(buffer, offset);
|
||||
offset += 4;
|
||||
m_ulCapTemplAddr = BitConverter.ToUInt32(buffer, offset);
|
||||
offset += 4;
|
||||
|
||||
// Read remaining buffer data
|
||||
Array.Copy(buffer, offset, m_BufData, 0, m_BufData.Length);
|
||||
// offset += bufDataLength; // in C++ have union, so we dont plus offset here
|
||||
|
||||
// Additional fields can be read here as needed
|
||||
m_wMonsterNum = new ushort[TaskInterfaceConstants.MAX_MONSTER_WANTED];
|
||||
for (int i = 0; i < TaskInterfaceConstants.MAX_MONSTER_WANTED; i++)
|
||||
{
|
||||
m_wMonsterNum[i] = BitConverter.ToUInt16(buffer, offset);
|
||||
// offset += 2; // in C++ have union, so we dont plus offset here
|
||||
}
|
||||
|
||||
m_iUsefulData1 = BitConverter.ToInt32(buffer, offset);
|
||||
// offset += 4; // in C++ have union, so we dont plus offset here
|
||||
|
||||
m_iUsefulData2 = (char)buffer[offset]; // in C++ have union, so we dont plus offset here
|
||||
|
||||
offset += m_BufData.Length;
|
||||
|
||||
}
|
||||
|
||||
// bool IsFinished() const { return (m_uState & TASK_STATE_FINISHED) != 0; }
|
||||
// bool IsSuccess() const { return (m_uState & TASK_STATE_SUCCESS) != 0; }
|
||||
@@ -73,11 +119,28 @@ namespace PerfectWorld.Scripts.Task
|
||||
//
|
||||
public ATaskTempl GetTempl()
|
||||
{
|
||||
if (m_ulTemplAddr == 0) return null;
|
||||
return Marshal.PtrToStructure<ATaskTempl>(
|
||||
new IntPtr(unchecked((long)m_ulTemplAddr))
|
||||
);
|
||||
// return reinterpret_cast<const ATaskTempl*>(m_ulTemplAddr);
|
||||
// Managed fallback: resolve via template manager by ID
|
||||
try
|
||||
{
|
||||
var man = BrewMonster.Network.EC_Game.GetTaskTemplateMan();
|
||||
if (man != null)
|
||||
{
|
||||
var templ = man.GetTaskTemplByID(m_ID);
|
||||
if (templ != null) return templ;
|
||||
}
|
||||
}
|
||||
catch { }
|
||||
|
||||
// Legacy pointer path (likely unused in managed port)
|
||||
if (m_ulTemplAddr != 0)
|
||||
{
|
||||
try
|
||||
{
|
||||
return Marshal.PtrToStructure<ATaskTempl>(new IntPtr(unchecked((long)m_ulTemplAddr)));
|
||||
}
|
||||
catch { }
|
||||
}
|
||||
return null;
|
||||
}
|
||||
// const ATaskTempl* GetCap() const { return reinterpret_cast<const ATaskTempl*>(m_ulCapTemplAddr); }
|
||||
// const ATaskTempl* GetCapOrSelf() const
|
||||
@@ -147,7 +210,35 @@ namespace PerfectWorld.Scripts.Task
|
||||
set => _flags = (byte)((_flags & 0x01) | ((value & 0x7F) << 1));
|
||||
}
|
||||
|
||||
// ActiveTaskEntry m_TaskEntries[TASK_ACTIVE_LIST_MAX_LEN];
|
||||
public ActiveTaskEntry[] m_TaskEntries = new ActiveTaskEntry[CECTaskInterface.TASK_ACTIVE_LIST_MAX_LEN];
|
||||
|
||||
// --- Methods ---
|
||||
public void ReadFromBuffer(byte[] buffer)
|
||||
{
|
||||
// header use same data slot with m_uTaskCount etc. cause C++ use union here
|
||||
// so, we dont plus into offset after copy header
|
||||
int offset = 0;
|
||||
Array.Copy(buffer, offset, header, 0, header.Length);
|
||||
// offset += header.Length;
|
||||
|
||||
|
||||
m_uTaskCount = buffer[offset++];
|
||||
m_uUsedCount = buffer[offset++];
|
||||
m_Version = BitConverter.ToUInt16(buffer, offset);
|
||||
offset += 2;
|
||||
m_uTopShowTaskCount = buffer[offset++];
|
||||
m_uListState = buffer[offset++];
|
||||
m_uTopHideTaskCount = buffer[offset++];
|
||||
_flags = buffer[offset++];
|
||||
|
||||
for (int i = 0; i < m_uTaskCount; i++)
|
||||
{
|
||||
ActiveTaskEntry entry = new ActiveTaskEntry();
|
||||
entry.ReadFromBuffer(buffer, ref offset);
|
||||
m_TaskEntries[i] = entry;
|
||||
}
|
||||
}
|
||||
|
||||
// void UpdateTaskMask(unsigned long& ulMask) const;
|
||||
// void UpdateUsedCount();
|
||||
|
||||
@@ -0,0 +1,294 @@
|
||||
using BrewMonster.Scripts.Task;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
|
||||
namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
public partial class ATaskTempl
|
||||
{
|
||||
#if _TASK_CLIENT
|
||||
// bool CanShowTask (TaskInterface* pTask) const;
|
||||
// bool HasShowCond() const;
|
||||
public void GetGlobalTaskChar(TaskInterface pTask, Task_State_info.abase_vector_wchar_t_ptr TaskCharArr)
|
||||
{
|
||||
// Build display strings for global expressions
|
||||
// 生成用于显示的全局表达式字符串
|
||||
for (int i = 0; i < (int)m_FixedData.m_ulTaskCharCnt; i++)
|
||||
{
|
||||
// Read one UTF-16 row from m_pTaskChar and convert to C# string
|
||||
// 从 m_pTaskChar 读取一行 UTF-16 并转换为 C# 字符串
|
||||
int colCount = BrewMonster.Scripts.Task.TaskTemplConstants.TASK_AWARD_MAX_DISPLAY_CHAR_LEN;
|
||||
ushort[] row = new ushort[colCount];
|
||||
for (int j = 0; j < colCount; j++)
|
||||
{
|
||||
row[j] = m_FixedData.m_pTaskChar[i, j];
|
||||
}
|
||||
string src = ModelRenderer.Scripts.Common.ByteToStringUtils.UshortArrayToUnicodeString(row);
|
||||
if (string.IsNullOrEmpty(src))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Parse '%' placeholders like %1, %2... and replace with computed values
|
||||
// 解析形如 %1, %2 的占位符并替换为计算结果
|
||||
var sb = new System.Text.StringBuilder();
|
||||
int idx = 0;
|
||||
char percent = '%'; // Percent sign
|
||||
// ����% (percent sign)
|
||||
while (idx < src.Length)
|
||||
{
|
||||
int pos = src.IndexOf(percent, idx);
|
||||
if (pos >= 0)
|
||||
{
|
||||
// Append text before '%'
|
||||
// 追加 '%' 之前的文本
|
||||
sb.Append(src, idx, pos - idx);
|
||||
int j = pos + 1;
|
||||
int startDigits = j;
|
||||
while (j < src.Length && char.IsDigit(src[j])) j++;
|
||||
string digits = (j > startDigits) ? src.Substring(startDigits, j - startDigits) : string.Empty;
|
||||
int nVal;
|
||||
// If there's a valid index after '%', compute the global expression value
|
||||
// ��ȡ���õ�ȫ�ֱ���ʽ�к� (get referenced global expression index)
|
||||
if (!string.IsNullOrEmpty(digits) && int.TryParse(digits, out nVal) && nVal != 0)
|
||||
{
|
||||
// Compute one global expression
|
||||
// ����ȫ�ֱ���ʽ
|
||||
int nRet = (int)CalcOneGlobalExp(pTask, nVal - 1);
|
||||
// Convert number to string and append
|
||||
// ת�����ַ��������ַ���
|
||||
sb.Append(nRet.ToString());
|
||||
// Skip all digits after '%<digits>'
|
||||
// 跳过 '%' 后面的所有数字
|
||||
idx = j;
|
||||
continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
// No valid number found; keep the '%'
|
||||
// 未找到合法数字;保留 '%'
|
||||
sb.Append(percent);
|
||||
idx = pos + 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// No more '%' found; append the rest
|
||||
// δ�ҵ�ȫ�ֱ�������ʽ����ֱ����ʾ��������
|
||||
sb.Append(src, idx, src.Length - idx);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
string result = sb.ToString();
|
||||
if (!string.IsNullOrEmpty(result))
|
||||
{
|
||||
// Original: TaskCharArr.push_back(pszNewchar);
|
||||
// 原逻辑:将结果指针压入向量(此处托管环境不直接推入原生向量)
|
||||
// NOTE: If needed, map 'result' into UI/managed list here.
|
||||
}
|
||||
}
|
||||
}
|
||||
private float CalcOneGlobalExp(TaskInterface pTask, int nIndex)
|
||||
{
|
||||
// Evaluate one global expression row
|
||||
// 计算一行全局表达式
|
||||
if (nIndex < 0 || nIndex >= (int)m_FixedData.m_ulExpCnt)
|
||||
{
|
||||
return 0f;
|
||||
}
|
||||
try
|
||||
{
|
||||
int colCount = BrewMonster.Scripts.Task.TaskTemplConstants.TASK_AWARD_MAX_DISPLAY_CHAR_LEN;
|
||||
float result = 0f;
|
||||
for (int i = 0; i < colCount; i++)
|
||||
{
|
||||
TASK_EXPRESSION expr = m_FixedData.m_pExpArr[nIndex, i];
|
||||
if (expr.type == -1) break; // Sentinel terminator // 结束标记
|
||||
// Fallback evaluation: accumulate values
|
||||
// 回退求值:累加表达式值
|
||||
result += expr.value;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
CECTaskInterface.WriteLog(0, (int)m_FixedData.m_ID, 0, $"CalcOneGlobalExp, Expression run err: {ex.Message}");
|
||||
return 0f;
|
||||
}
|
||||
}
|
||||
// bool CanShowInExclusiveUI (TaskInterface* pTask, unsigned long ulCurTime) const;
|
||||
#else
|
||||
// void NotifyClient (TaskInterface* pTask, const ActiveTaskEntry* pEntry, unsigned char uReason, unsigned long ulCurTime, unsigned long ulParam = 0, int dps = 0, int dph = 0) const;
|
||||
// bool CheckGlobalRequired (TaskInterface* pTask, unsigned long ulSubTaskId, const TaskPreservedData* pPreserve, const TaskGlobalData* pGlobal, unsigned short reason) const;
|
||||
// bool CheckKillMonster (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, unsigned long ulTemplId, unsigned long ulLev, bool bTeam, float fRand, int dps, int dph) const;
|
||||
// bool CheckKillPlayer (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, int iOccupation, int iLevel, bool bGender, int iForce, float fRand) const;
|
||||
// void CheckCollectItem (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, bool bAtNPC, int nChoice) const;
|
||||
// void CheckMonsterKilled (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, bool bAtNPC, int nChoice) const;
|
||||
// void CheckMining (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry) const;
|
||||
// void CheckWaitTime (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, unsigned long ulCurTime, bool bAtNPC, int nChoice) const;
|
||||
// void GiveUpOneTask (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, bool bForce) const;
|
||||
// void OnSetFinished (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, bool bNotifyMem = true) const;
|
||||
// bool DeliverAward (TaskInterface* pTask, ActiveTaskList* pList, ActiveTaskEntry* pEntry, int nChoice, bool bNotifyTeamMem = true, TaskGlobalData* pGlobal = NULL) const;
|
||||
// void RemoveAcquiredItem (TaskInterface* pTask, bool bClearTask, bool bSuccess) const;
|
||||
// void TakeAwayGivenItems (TaskInterface* pTask) const;
|
||||
// bool OnDeliverTeamMemTask (TaskInterface* pTask, TaskGlobalData* pGlobal) const;
|
||||
// unsigned long CheckDeliverTask (TaskInterface* pTask, unsigned long ulSubTaskId, TaskGlobalData* pGlobal, bool bNotifyErr = true, bool bMemTask = false, unsigned long ulCapId = 0) const;
|
||||
// bool HasGlobalData() const;
|
||||
#endif
|
||||
|
||||
#if _TASK_CLIENT
|
||||
// void SyncTaskType(); // ʹ����������������游����
|
||||
// bool GetShowGfxFlag() { return m_bShowGfxFinished;}
|
||||
// const wchar_t* GetDescription() const { assert(m_pwstrDescript); return (wchar_t*)m_pwstrDescript; }
|
||||
// const wchar_t* GetOkText() const { assert(m_pwstrOkText); return (wchar_t*)m_pwstrOkText; }
|
||||
// const wchar_t* GetNoText() const { assert(m_pwstrNoText); return (wchar_t*)m_pwstrNoText; }
|
||||
// const wchar_t* GetTribute() const { assert(m_pwstrTribute); return (wchar_t*)m_pwstrTribute; }
|
||||
//
|
||||
// const talk_proc* GetDeliverTaskTalk() const { return &m_DelvTaskTalk; }
|
||||
// const talk_proc* GetUnqualifiedTalk() const { return &m_UnqualifiedTalk; }
|
||||
// const talk_proc* GetDeliverItemTalk() const { return &m_DelvItemTalk; }
|
||||
// const talk_proc* GetUnfinishedTalk() const { return &m_ExeTalk; }
|
||||
// const talk_proc* GetAwardTalk() const { return &m_AwardTalk; }
|
||||
//
|
||||
// unsigned long GetDeliverNPC() const { return m_ulDelvNPC; }
|
||||
public uint GetAwardNPC() { return m_FixedData.m_ulAwardNPC; }
|
||||
//
|
||||
// void SaveToTextFile(FILE* fp);
|
||||
// bool SaveToTextFile(const char* szPath);
|
||||
// void SaveToBinFile(FILE* fp) { SaveBinary(fp); }
|
||||
// void SaveDescription(FILE* fp);
|
||||
// void SaveDescriptionBin(FILE* fp);
|
||||
// void SaveTribute(FILE* fp);
|
||||
// void SaveTributeBin(FILE* fp);
|
||||
// void SaveAllText(FILE* fp);
|
||||
// int MarshalKillMonster(char* pData);
|
||||
// int MarshalCollectItems(char* pData);
|
||||
// int MarshalDynTask(char* pData);
|
||||
// int MarshalSpecialAwardData(char* pData);
|
||||
//
|
||||
// ATaskTempl& operator= (const ATaskTempl& src);
|
||||
// bool operator == (const ATaskTempl& src) const
|
||||
// {
|
||||
// return *(ATaskTemplFixedData*)this == *(const ATaskTemplFixedData*)&src;
|
||||
// }
|
||||
#endif
|
||||
|
||||
|
||||
public bool _compare_key_value(TaskInterface pTask, COMPARE_KEY_VALUE CompKeyVal)
|
||||
{
|
||||
long lleftValue = CompKeyVal.lLeftNum;
|
||||
if (CompKeyVal.nLeftType == 0)
|
||||
{
|
||||
lleftValue = pTask.GetGlobalValue(CompKeyVal.lLeftNum);
|
||||
}
|
||||
|
||||
long lRightValue = CompKeyVal.lRightNum;
|
||||
if (CompKeyVal.nRightType == 0)
|
||||
{
|
||||
lRightValue = pTask.GetGlobalValue(CompKeyVal.lRightNum);
|
||||
}
|
||||
|
||||
switch(CompKeyVal.nCompOper)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (lleftValue > lRightValue)
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
{
|
||||
if (lleftValue == lRightValue)
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
{
|
||||
if (lleftValue < lRightValue)
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Early out: skip if this phase does not require key-value comparison
|
||||
public uint CheckGlobalKeyValue(TaskInterface pTask, bool bFinCheck)
|
||||
{
|
||||
if ((bFinCheck && !m_FixedData.m_bFinNeedComp)
|
||||
|| (!bFinCheck && !m_FixedData.m_bPremNeedComp))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Initialize comparison flags
|
||||
bool bFlag1 = false;
|
||||
bool bFlag2 = false;
|
||||
|
||||
if (bFinCheck)
|
||||
{
|
||||
// Finish-conditions branch: evaluate two key-value comparisons
|
||||
bFlag1 = _compare_key_value(pTask, m_FixedData.m_Fin1KeyValue);
|
||||
bFlag2 = _compare_key_value(pTask, m_FixedData.m_Fin2KeyValue);
|
||||
|
||||
// Evaluate logical mode: 0 = OR, 1 = AND
|
||||
if ((m_FixedData.m_nFinExp1AndOrExp2 == 0 && (bFlag1 || bFlag2))
|
||||
|| (m_FixedData.m_nFinExp1AndOrExp2 == 1 && (bFlag1 && bFlag2)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Premise-conditions branch: evaluate two key-value comparisons
|
||||
bFlag1 = _compare_key_value(pTask, m_FixedData.m_Prem1KeyValue);
|
||||
bFlag2 = _compare_key_value(pTask, m_FixedData.m_Prem2KeyValue);
|
||||
|
||||
// Evaluate logical mode: 0 = OR, 1 = AND
|
||||
if ((m_FixedData.m_nPremExp1AndOrExp2 == 0 && (bFlag1 || bFlag2))
|
||||
|| (m_FixedData.m_nPremExp1AndOrExp2 == 1 && (bFlag1 && bFlag2)))
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Failure: global key-value prerequisite not satisfied
|
||||
return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_GLOBAL_KEYVAL;
|
||||
}
|
||||
|
||||
public bool CheckReachLevel(BrewMonster.Scripts.Task.TaskInterface pTask)
|
||||
{
|
||||
bool bLevel = true, bReincarnationCount = true, bRealmLevel = true;
|
||||
if (m_FixedData.m_ulReachLevel != 0) bLevel = pTask.GetPlayerLevel() >= m_FixedData.m_ulReachLevel;
|
||||
if (m_FixedData.m_ulReachReincarnationCount != 0) bReincarnationCount = GetReincarnationCount(pTask) >= m_FixedData.m_ulReachReincarnationCount;
|
||||
if (m_FixedData.m_ulReachRealmLevel != 0) bRealmLevel = GetRealmLevel(pTask) >= m_FixedData.m_ulReachRealmLevel;
|
||||
return bLevel && bReincarnationCount && bRealmLevel;
|
||||
}
|
||||
|
||||
private static uint GetReincarnationCount(BrewMonster.Scripts.Task.TaskInterface pTask)
|
||||
{
|
||||
return 0u;
|
||||
}
|
||||
|
||||
private static uint GetRealmLevel(BrewMonster.Scripts.Task.TaskInterface pTask)
|
||||
{
|
||||
var host = BrewMonster.Network.EC_Game.GetGameRun()?.GetHostPlayer();
|
||||
if (host != null)
|
||||
{
|
||||
var bp = host.GetBasicProps();
|
||||
return (uint)bp.iLevel2;
|
||||
}
|
||||
return 0u;
|
||||
}
|
||||
|
||||
public bool IsKeyTask()
|
||||
{
|
||||
ATaskTempl m = GetTopTask();
|
||||
return m.m_FixedData.m_bKeyTask;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f79c86592e7741088fa3bb1ccfaab885
|
||||
timeCreated: 1762413881
|
||||
@@ -298,9 +298,25 @@ namespace BrewMonster.Scripts.Task
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct PLAYER_WANTED
|
||||
{
|
||||
public uint m_ulTemplID; // Player Template ID
|
||||
public uint m_ulCount; // Count
|
||||
public uint m_ulLevel; // Level
|
||||
// old data of DUCK
|
||||
// public uint m_ulTemplID; // Player Template ID
|
||||
// public uint m_ulCount; // Count
|
||||
// public uint m_ulLevel; // Level
|
||||
|
||||
// MH: New data
|
||||
public uint m_ulPlayerNum;
|
||||
public uint m_ulDropItemId;
|
||||
public uint m_ulDropItemCount;
|
||||
[MarshalAs(UnmanagedType.U1)]
|
||||
public bool m_bDropCmnItem;
|
||||
public float m_fDropProb;
|
||||
public Kill_Player_Requirements m_Requirements;
|
||||
|
||||
public string GetLog()
|
||||
{
|
||||
return string.Format("PLAYER_WANTED: Num={0}, DropItemID={1}, DropItemCount={2}, DropCmnItem={3}, DropProb={4}",
|
||||
m_ulPlayerNum, m_ulDropItemId, m_ulDropItemCount, m_bDropCmnItem, m_fDropProb);
|
||||
}
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
@@ -411,10 +427,11 @@ namespace BrewMonster.Scripts.Task
|
||||
{
|
||||
public uint m_iRankingStart;
|
||||
public uint m_iRankingEnd;
|
||||
[MarshalAs(UnmanagedType.U1)]
|
||||
public bool m_bCommonItem;
|
||||
public ulong m_ulAwardItemId;
|
||||
public ulong m_ulAwardItemNum;
|
||||
public long m_lPeriod;
|
||||
public uint m_ulAwardItemId;
|
||||
public uint m_ulAwardItemNum;
|
||||
public int m_lPeriod;
|
||||
|
||||
public bool Equals(RANKING_AWARD src)
|
||||
{
|
||||
@@ -1212,7 +1229,12 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
}
|
||||
|
||||
public class ATaskTempl
|
||||
|
||||
/// <summary>
|
||||
/// 任务模板类 // Task Template Class
|
||||
/// include
|
||||
/// </summary>
|
||||
public partial class ATaskTempl
|
||||
{
|
||||
public ATaskTemplFixedData m_FixedData;
|
||||
|
||||
@@ -1250,15 +1272,211 @@ namespace BrewMonster.Scripts.Task
|
||||
CheckDepth();
|
||||
return true;
|
||||
}
|
||||
|
||||
public string GetDescription()
|
||||
{
|
||||
return ByteToStringUtils.UshortArrayToUnicodeString(m_pwstrDescript);
|
||||
}
|
||||
|
||||
public bool CanFinishTask(TaskInterface pTask, ActiveTaskEntry pEntry, uint ulCurTime)
|
||||
{
|
||||
bool ret = false;
|
||||
while (true)
|
||||
{
|
||||
// 若发放非法则不允许完成 // If delivery is illegal, cannot finish
|
||||
if (pTask == null || pEntry == null) break;
|
||||
if (!pTask.IsDeliverLegal()) break;
|
||||
|
||||
// 已完成直接返回 // Already finished -> true
|
||||
if (pEntry.IsFinished())
|
||||
{
|
||||
ret = true;
|
||||
break;
|
||||
}
|
||||
|
||||
switch ((TaskCompletionMethod)m_FixedData.m_enumMethod)
|
||||
{
|
||||
case TaskCompletionMethod.enumTMCollectNumArticle:
|
||||
// 背包中已拥有所有需要的物品 // Has all required items
|
||||
ret = HasAllItemsWanted(pTask);
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMWaitTime:
|
||||
// 等待时间达成 // Wait time satisfied
|
||||
ret = (m_FixedData.m_ulWaitTime == 0)
|
||||
|| (pEntry.m_ulTaskTime + (ulong)m_FixedData.m_ulWaitTime < (ulong)ulCurTime);
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMTalkToNPC:
|
||||
// 对话类任务可直接完成 // Talk-to-NPC tasks complete immediately
|
||||
ret = true;
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMGlobalValOK:
|
||||
// 全局变量满足条件 // Global variable meets condition
|
||||
ret = CheckGlobalKeyValue(pTask, true) == 0;
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMTransform:
|
||||
{
|
||||
int playerShapeType = pTask.GetShapeMask();
|
||||
// 变身职业判断 // Transform occupation check
|
||||
if (m_FixedData.m_ucTransformedForm == 0x80)
|
||||
{
|
||||
if ((playerShapeType >> 6) == 2) ret = true;
|
||||
}
|
||||
// 特定形态匹配 // Specific form match
|
||||
else if (m_FixedData.m_ucTransformedForm == playerShapeType) ret = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMReachTreasureZone:
|
||||
{
|
||||
// 到达藏宝区网格 // Reach treasure zone grid
|
||||
float[] pos = new float[3];
|
||||
uint ulWorldId = (uint)pTask.GetPos(pos);
|
||||
if (ulWorldId == 1)
|
||||
{
|
||||
ushort uTreasureLocIndex = (ushort)(pEntry.m_iUsefulData1 & 0xFFFF);
|
||||
float fTreasureLocX = m_FixedData.m_TreasureStartZone.x + ((uTreasureLocIndex % m_FixedData.m_ucZonesNumX) - 1) * (float)m_FixedData.m_ucZoneSide;
|
||||
float fTreasureLocZ = m_FixedData.m_TreasureStartZone.z + (uTreasureLocIndex / m_FixedData.m_ucZonesNumX) * (float)m_FixedData.m_ucZoneSide;
|
||||
|
||||
ret = pos[0] >= fTreasureLocX && pos[2] >= fTreasureLocZ
|
||||
&& pos[0] <= fTreasureLocX + (float)m_FixedData.m_ucZoneSide
|
||||
&& pos[2] <= fTreasureLocZ + (float)m_FixedData.m_ucZoneSide;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMSimpleClientTask:
|
||||
case TaskCompletionMethod.enumTMSimpleClientTaskForceNavi:
|
||||
{
|
||||
// 简单客户端任务条件 // Simple client task condition
|
||||
ret = pTask.CheckSimpleTaskFinshConditon(m_FixedData.m_ID);
|
||||
}
|
||||
break;
|
||||
|
||||
case TaskCompletionMethod.enumTMReachLevel:
|
||||
// 达到等级条件 // Reach level condition
|
||||
ret = CheckReachLevel(pTask);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// 等级前置校验 // Premise level check
|
||||
if (m_FixedData.m_ulPremise_Lev_Min != 0)
|
||||
{
|
||||
if (m_FixedData.m_bPremCheckMaxHistoryLevel == 0 && pTask.GetPlayerLevel() < m_FixedData.m_ulPremise_Lev_Min)
|
||||
ret = false;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
public bool HasAllItemsWanted(TaskInterface pTask)
|
||||
{
|
||||
if (m_FixedData.m_ulGoldWanted != 0 && pTask.GetGoldNum() < m_FixedData.m_ulGoldWanted)
|
||||
return false;
|
||||
|
||||
if (m_FixedData.m_iFactionContribWanted != 0 && pTask.GetFactionConsumeContrib() < m_FixedData.m_iFactionContribWanted)
|
||||
return false;
|
||||
|
||||
if (m_FixedData.m_iFactionExpContribWanted != 0 && pTask.GetFactionExpContrib() < m_FixedData.m_iFactionExpContribWanted)
|
||||
return false;
|
||||
|
||||
int i = 0;
|
||||
|
||||
for (; i < (int)m_FixedData.m_ulItemsWanted; i++)
|
||||
{
|
||||
ITEM_WANTED iw = m_FixedData.m_ItemsWanted[i];
|
||||
uint ulNum = _get_item_count(
|
||||
pTask,
|
||||
iw.m_ulItemTemplId,
|
||||
iw.m_bCommonItem);
|
||||
|
||||
if (ulNum == 0 || ulNum < iw.m_ulItemNum) return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
// 递归检查奖励条件并返回错误码 // Recursively check award prerequisites and return error code
|
||||
public uint RecursiveCheckAward(TaskInterface pTask, ActiveTaskList pList, ActiveTaskEntry pEntry, uint ulCurTime, int nChoice)
|
||||
{
|
||||
// 计数器与预算初始化 // Initialize counters and budget
|
||||
uint ulCmnCount = 0;
|
||||
uint ulTskCount = 0;
|
||||
uint ulTopCount = 0;
|
||||
byte uBudget = 0;
|
||||
long lReputation = 0;
|
||||
|
||||
// 任务屏蔽检查 // Task forbid check
|
||||
if (pTask.CheckTaskForbid(m_FixedData.m_ID)) return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_TASK_FORBID;
|
||||
|
||||
// 跨服限制检查 // Cross-server account limit check
|
||||
if (m_FixedData.m_bAccountTaskLimit && pTask.IsAtCrossServer())
|
||||
return (uint)TaskInterfaceConstants.TASK_AWARD_FAIL_CROSSSERVER_NO_ACOUNT_LIMIT;
|
||||
|
||||
// TODO: Implement recursive award calculation
|
||||
// Recursively calculate award and return early on error
|
||||
// uint ulRet = RecursiveCalcAward(pTask, pList, pEntry, ulCurTime, nChoice, out ulCmnCount, out ulTskCount, out ulTopCount, out uBudget, out lReputation);
|
||||
// if (ulRet != 0) return ulRet;
|
||||
|
||||
// 顶部任务计数拆分 // Split top task counters
|
||||
uint ulTopShowCount = (ulTopCount & 0xffff0000u) >> 16;
|
||||
uint ulTopHideCount = (ulTopCount & 0x000000ffu);
|
||||
uint ulTitleTaskCount = (ulTopCount & 0x0000ff00u) >> 8;
|
||||
|
||||
// 顶部任务数量上限检查 // Top task caps check
|
||||
if ((ulTopShowCount != 0 && (uint)pList.m_uTopShowTaskCount + ulTopShowCount > (uint)GetMaxSimultaneousCount(pList))
|
||||
|| (ulTopHideCount != 0 && (uint)pList.m_uTopHideTaskCount + ulTopHideCount > (uint)TASK_HIDDEN_COUNT)
|
||||
|| (ulTitleTaskCount != 0 && (uint)pList.m_uTitleTaskCount + ulTitleTaskCount > (uint)TASK_TITLE_TASK_COUNT))
|
||||
return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_FULL;
|
||||
|
||||
// 活动列表容量检查 // Active list capacity check
|
||||
if (uBudget != 0 && (uint)pList.m_uUsedCount + uBudget > (uint)CECTaskInterface.TASK_ACTIVE_LIST_MAX_LEN)
|
||||
return (uint)TaskInterfaceConstants.TASK_PREREQU_FAIL_NO_SPACE;
|
||||
|
||||
// TODO: Item grant legality check
|
||||
// if ((ulCmnCount != 0 && !pTask.CanDeliverCommonItem(ulCmnCount))
|
||||
// || (ulTskCount != 0 && !pTask.CanDeliverTaskItem(ulTskCount)))
|
||||
// return (uint)TaskInterfaceConstants.TASK_AWARD_FAIL_GIVEN_ITEM;
|
||||
|
||||
// TODO: Reputation non-negative check
|
||||
// if (lReputation != 0 && pTask.GetReputation() + lReputation < 0)
|
||||
// return (uint)TaskInterfaceConstants.TASK_AWARD_FAIL_REPUTATION;
|
||||
|
||||
// 一切正常 // All good
|
||||
return 0u;
|
||||
}
|
||||
|
||||
public static uint _get_item_count(TaskInterface pTask, uint ulItemId, bool bCommon)
|
||||
{
|
||||
return (uint)( bCommon ? pTask.GetCommonItemCount(ulItemId) : pTask.GetTaskItemCount(ulItemId) );
|
||||
}
|
||||
|
||||
// 占位:最大同时任务上限 // Placeholder: maximum simultaneous tasks cap
|
||||
private static int GetMaxSimultaneousCount(ActiveTaskList list)
|
||||
{
|
||||
return int.MaxValue;
|
||||
}
|
||||
|
||||
// 占位:隐藏与标题任务上限 // Placeholder: hidden/title task caps
|
||||
private const int TASK_HIDDEN_COUNT = int.MaxValue;
|
||||
private const int TASK_TITLE_TASK_COUNT = int.MaxValue;
|
||||
|
||||
private void LoadBinary(FileStream fp)
|
||||
{
|
||||
LoadFixedDataFromBinFile(fp);
|
||||
// BMLogger.Log($"---- Pointer Log {m_FixedData.m_ID} ---- \n {pointerLog} ");
|
||||
LoadDescriptionBin(fp);
|
||||
pointerLog += $" After LoadDescriptionBin : {fp.Position}\n";
|
||||
LoadTributeBin(fp);
|
||||
pointerLog += $" After LoadTributeBin : {fp.Position}\n";
|
||||
|
||||
BMLogger.Log($"---- Pointer Log ---- \n {pointerLog} ");
|
||||
|
||||
// TODO: Check task type consistency
|
||||
# if _TASK_CLIENT
|
||||
@@ -1309,6 +1527,9 @@ namespace BrewMonster.Scripts.Task
|
||||
// 读取子任务数量 // Read subtask count
|
||||
long readBytes = 0;
|
||||
m_nSubCount = AAssit.ReadFromBinaryOf<int>(fp, ref readBytes);
|
||||
|
||||
pointerLog += $" After m_nSubCount : {fp.Position}\n";
|
||||
// BMLogger.Log($"---- Pointer Log {m_FixedData.m_ID} ---- \n {pointerLog} ");
|
||||
|
||||
// for (int i = 0; i < m_nSubCount; i++)
|
||||
// {
|
||||
@@ -1372,7 +1593,7 @@ namespace BrewMonster.Scripts.Task
|
||||
private void ConvertFixedData(FileStream fp, int x2)
|
||||
{
|
||||
long readBytes = 0;
|
||||
BMLogger.Log($"LoadFixedDataFromBinFile: {fp.Length}");
|
||||
// BMLogger.Log($"LoadFixedDataFromBinFile: {fp.Length}");
|
||||
ATaskTemplFixedData fixedData = new ATaskTemplFixedData();
|
||||
string logContent = "";
|
||||
|
||||
@@ -2338,7 +2559,7 @@ namespace BrewMonster.Scripts.Task
|
||||
pointerLog += $" After read Raw of FixedData: {fp.Position} \n";
|
||||
|
||||
|
||||
BMLogger.LogError($" === Task Data {fixedData.m_ID} loaded === \n {logContent} ");
|
||||
// BMLogger.LogError($" === Task Data {fixedData.m_ID} loaded === \n {logContent} ");
|
||||
|
||||
ConvertPointersOfFixedData(fp, ref fixedData, ref readBytes);
|
||||
|
||||
@@ -2678,7 +2899,8 @@ namespace BrewMonster.Scripts.Task
|
||||
for (int i = 0; i < fixedData.m_ulPlayerWanted; i++)
|
||||
{
|
||||
fixedData.m_PlayerWanted[i] = AAssit.ReadFromBinaryOf<PLAYER_WANTED>(fp, ref readBytes);
|
||||
pwLog += $" {i} = (Tpl:{fixedData.m_PlayerWanted[i].m_ulTemplID}, Cnt:{fixedData.m_PlayerWanted[i].m_ulCount}, Lev:{fixedData.m_PlayerWanted[i].m_ulLevel}) || ";
|
||||
//pwLog += $" {i} = (Tpl:{fixedData.m_PlayerWanted[i].m_ulTemplID}, Cnt:{fixedData.m_PlayerWanted[i].m_ulCount}, Lev:{fixedData.m_PlayerWanted[i].m_ulLevel}) || ";
|
||||
pwLog += $" {i} = {fixedData.m_PlayerWanted[i].GetLog() }|| ";
|
||||
}
|
||||
logContent += $"m_PlayerWanted: {pwLog}\n";
|
||||
}
|
||||
@@ -2795,9 +3017,11 @@ namespace BrewMonster.Scripts.Task
|
||||
logContent += $"m_pLeaveSite: {fixedData.m_pLeaveSite}\n";
|
||||
}
|
||||
|
||||
BMLogger.LogError($" === Task Pointer Datas {fixedData.m_ID} loaded === \n {logContent} ");
|
||||
|
||||
// BMLogger.LogError($" === Task Pointer Datas {fixedData.m_ID} loaded === \n {logContent} ");
|
||||
pointerLog += $" Start read m_Award_S , pointer at : {fp.Position} \n";
|
||||
// BMLogger.Log($"---- Pointer Log {fixedData.m_ID} ---- \n {pointerLog} ");
|
||||
LoadAwardDataBin(fp, ref fixedData.m_Award_S, TaskTemplConstants._task_templ_cur_version, ref readBytes);
|
||||
pointerLog += $" Start read m_Award_F complete : {fp.Position} \n";
|
||||
LoadAwardDataBin(fp, ref fixedData.m_Award_F, TaskTemplConstants._task_templ_cur_version, ref readBytes);
|
||||
pointerLog += $" After Award_S and Award_F complete : {fp.Position} \n";
|
||||
|
||||
@@ -3044,7 +3268,7 @@ namespace BrewMonster.Scripts.Task
|
||||
logContent += $"m_iWorldContribution: {ad.m_iWorldContribution} \n";
|
||||
|
||||
logContent += "------ Start Pointer datas of AWARD_DATA ------ \n";
|
||||
|
||||
pointerLog += $"After Raw Data of AWARD_DATA, pointer : {fp.Position}\n";
|
||||
// Start convert Pointer Data of AWARD_DATA
|
||||
//Debug.Log($"ad.m_ulCandItems : {ad.m_ulCandItems}");
|
||||
if (ad.m_ulCandItems > 0)
|
||||
@@ -3068,7 +3292,7 @@ namespace BrewMonster.Scripts.Task
|
||||
LoadAwardMonstersBin(fp, ref ad.m_SummonedMonsters, ulVersion, ref readBytes);
|
||||
}
|
||||
logContent += $"m_SummonedMonsters : {ad.m_ulSummonedMonsters} elements / Pointer : {fp.Position} \n";
|
||||
|
||||
pointerLog += $" After LoadAwardMonstersBin, pointer : {fp.Position}\n";
|
||||
|
||||
if (ad.m_ulPQRankingAwardCnt > 0)
|
||||
{
|
||||
@@ -3077,6 +3301,7 @@ namespace BrewMonster.Scripts.Task
|
||||
LoadAwardPQRankingBin(fp, ref ad.m_PQRankingAward, ulVersion, ref readBytes);
|
||||
}
|
||||
logContent += $" AWARD_DATA.m_PQRankingAward : {ad.m_ulPQRankingAwardCnt} elements / {fp.Position} \n";
|
||||
pointerLog += $" After LoadAwardPQRankingBin, pointer : {fp.Position}\n";
|
||||
|
||||
ad.m_pTitleAward = AAssit.ReadArrayFromBinary<TITLE_AWARD>(fp, (int)ad.m_ulTitleNum,ref readBytes);
|
||||
logContent += $" AWARD_DATA.m_pTitleAward : {ad.m_ulTitleNum} elements / {fp.Position} \n";
|
||||
@@ -3092,6 +3317,7 @@ namespace BrewMonster.Scripts.Task
|
||||
logContent += $" AWARD_DATA.m_plChangeKey : {ad.m_ulChangeKeyCnt} elements / {fp.Position} \n";
|
||||
logContent += $" AWARD_DATA.m_plChangeKeyValue : {ad.m_ulChangeKeyCnt} elements / {fp.Position} \n";
|
||||
logContent += $" AWARD_DATA.m_pbChangeType : {ad.m_ulChangeKeyCnt} elements / {fp.Position} \n";
|
||||
pointerLog += $" After ad.m_pbChangeType, pointer : {fp.Position}\n";
|
||||
|
||||
if (ad.m_ulHistoryChangeCnt > 0)
|
||||
{
|
||||
@@ -3131,6 +3357,7 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
}
|
||||
logContent += $" AWARD_DATA.m_pszExp and m_pExpArr : {ad.m_ulExpCnt} rows / {fp.Position} \n";
|
||||
pointerLog += $" After ad.m_pExpArr, pointer : {fp.Position}\n";
|
||||
|
||||
if (ad.m_ulTaskCharCnt > 0)
|
||||
{
|
||||
@@ -3144,8 +3371,9 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
}
|
||||
logContent += $" AWARD_DATA.m_pTaskChar : {ad.m_ulTaskCharCnt} rows / {fp.Position} \n";
|
||||
pointerLog += $" After ad.m_pTaskChar, pointer : {fp.Position}\n";
|
||||
|
||||
BMLogger.LogError( $" ---- Data of AWARD_DATA ---- \n {logContent} " );
|
||||
// BMLogger.LogError( $" ---- Data of AWARD_DATA ---- \n {logContent} " );
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -3164,7 +3392,7 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
pointerLog += $" After Read AWARD_ITEMS_CAND.m_ulAwardItems : {fp.Position}\n";
|
||||
|
||||
Debug.Log( $"ic.m_bRandChoose : {ic.m_bRandChoose} ic.m_ulAwardItems : {ic.m_ulAwardItems}");
|
||||
// Debug.Log( $"ic.m_bRandChoose : {ic.m_bRandChoose} ic.m_ulAwardItems : {ic.m_ulAwardItems}");
|
||||
|
||||
// return true;
|
||||
|
||||
@@ -3282,7 +3510,7 @@ namespace BrewMonster.Scripts.Task
|
||||
|
||||
valueLog += $" m_pwstrNoText : { ByteToStringUtils.UshortArrayToUnicodeString(m_pwstrNoText) } \n";
|
||||
|
||||
BMLogger.LogError( $" ---- Data of Task Description ---- \n {valueLog} " );
|
||||
// BMLogger.LogError( $" ---- Data of Task Description ---- \n {valueLog} " );
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -3309,9 +3537,9 @@ namespace BrewMonster.Scripts.Task
|
||||
convert_txt(m_pwstrTribute, (int)len, (char)m_FixedData.m_ID);
|
||||
}
|
||||
|
||||
BMLogger.Log($" --- m_pwstrTribute ---- \n " +
|
||||
$" Len : {len} \n " +
|
||||
$" content: {ByteToStringUtils.UshortArrayToUnicodeString(m_pwstrTribute)}");
|
||||
// BMLogger.Log($" --- m_pwstrTribute ---- \n " +
|
||||
// $" Len : {len} \n " +
|
||||
// $" content: {ByteToStringUtils.UshortArrayToUnicodeString(m_pwstrTribute)}");
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -3776,7 +4004,7 @@ namespace BrewMonster.Scripts.Task
|
||||
}
|
||||
|
||||
// 同步任务类型 // Sync task type
|
||||
private ATaskTempl GetTopTask()
|
||||
public ATaskTempl GetTopTask()
|
||||
{
|
||||
ATaskTempl pTop = this;
|
||||
while (pTop.m_pParent != null)
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 93f7619812eb476db0dc2115acf53bfe
|
||||
timeCreated: 1762243990
|
||||
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
|
||||
namespace BrewMonster.PerfectWorld.Scripts.Task.UI
|
||||
{
|
||||
public class TaskTreeView : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private TaskTreeViewItem m_pTreeViewItemPrefab;
|
||||
|
||||
private TaskTreeViewItem[] m_aTreeViewItems;
|
||||
|
||||
|
||||
|
||||
public void SetItemData(TaskTreeViewItem item, uint taskType)
|
||||
{
|
||||
item.SetItemData(taskType);
|
||||
}
|
||||
|
||||
public uint GetItemData(TaskTreeViewItem item)
|
||||
{
|
||||
return item.GetItemData();
|
||||
}
|
||||
|
||||
public TaskTreeViewItem GetNextSiblingItem(TaskTreeViewItem item)
|
||||
{
|
||||
|
||||
if (m_aTreeViewItems == null)
|
||||
{
|
||||
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>();
|
||||
}
|
||||
|
||||
for (int i = 0; i < m_aTreeViewItems.Length - 1; i++)
|
||||
{
|
||||
if (m_aTreeViewItems[i] == item)
|
||||
{
|
||||
return m_aTreeViewItems[i + 1];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public TaskTreeViewItem InsertItem(string text, TaskTreeViewItem pParent, TaskTreeViewItem pAfter)
|
||||
{
|
||||
// Create a new item GameObject and component
|
||||
TaskTreeViewItem pItem = Instantiate(m_pTreeViewItemPrefab);
|
||||
GameObject go = pItem.gameObject;
|
||||
if (pItem == null) return null;
|
||||
|
||||
// Parent: root (this) if null; otherwise under given parent item
|
||||
var parentTransform = (pParent != null ? pParent.transform : this.transform);
|
||||
go.transform.SetParent(parentTransform, false);
|
||||
|
||||
// Set sibling position: after specific item if provided; otherwise append to end
|
||||
if (pAfter != null && pAfter.transform.parent == parentTransform)
|
||||
{
|
||||
int afterIndex = pAfter.transform.GetSiblingIndex();
|
||||
go.transform.SetSiblingIndex(afterIndex + 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
go.transform.SetAsLastSibling();
|
||||
}
|
||||
|
||||
// Optionally set label text if a TMP_Text is attached under the item (not required here)
|
||||
// var label = go.GetComponentInChildren<TMPro.TMP_Text>(true);
|
||||
// if (label != null) label.text = text ?? string.Empty;
|
||||
pItem.SetItemText(text);
|
||||
|
||||
// Refresh local cache of items
|
||||
m_aTreeViewItems = GetComponentsInChildren<TaskTreeViewItem>();
|
||||
|
||||
return pItem;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8688b7d87bac4c16b9eaa3408f8ea419
|
||||
timeCreated: 1762506361
|
||||
@@ -0,0 +1,64 @@
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
namespace BrewMonster.PerfectWorld.Scripts.Task.UI
|
||||
{
|
||||
public class TaskTreeViewItem : MonoBehaviour, IPointerClickHandler
|
||||
{
|
||||
[SerializeField] private TMP_Text m_text;
|
||||
[SerializeField] private Button m_Button;
|
||||
|
||||
[Header("DEBUG")]
|
||||
[SerializeField] private uint m_uItemData;
|
||||
|
||||
|
||||
public UnityEvent<uint> OnClick = new UnityEvent<uint>();
|
||||
|
||||
public void SetItemData(uint uItemData)
|
||||
{
|
||||
m_uItemData = uItemData;
|
||||
}
|
||||
|
||||
public uint GetItemData()
|
||||
{
|
||||
return m_uItemData;
|
||||
}
|
||||
|
||||
public void SetItemTextColor(Color color)
|
||||
{
|
||||
|
||||
if (m_text != null)
|
||||
{
|
||||
m_text.color = color;
|
||||
}
|
||||
}
|
||||
|
||||
public void SetItemText(string text)
|
||||
{
|
||||
if (m_text != null)
|
||||
{
|
||||
m_text.text = text;
|
||||
}
|
||||
}
|
||||
|
||||
public void OnPointerClick(PointerEventData eventData)
|
||||
{
|
||||
OnClick.Invoke(m_uItemData);
|
||||
// EventBus.Publish(new TaskItemClickEvent() { Data = m_uItemData });
|
||||
TaskWindow.Instance.OnEventLButtonDown_Tv_Quest(m_uItemData);
|
||||
}
|
||||
}
|
||||
|
||||
public struct TaskItemClickEvent
|
||||
{
|
||||
public uint Data;
|
||||
|
||||
public TaskItemClickEvent(uint data)
|
||||
{
|
||||
Data = data;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3428dd2e9dd644e0b0cb408bd3202f21
|
||||
timeCreated: 1762506395
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 101488732bfd4d2fab4ea07f7ac6731f
|
||||
timeCreated: 1762246845
|
||||
@@ -152,6 +152,7 @@ namespace BrewMonster.UI
|
||||
|
||||
private async void OnEnterWorldComplete()
|
||||
{
|
||||
EC_Game.Init();
|
||||
await Task.Delay(2000);
|
||||
// Request all known packages: 0=Inventory,1=Equipment,2=Task
|
||||
UnityGameSession.RequestAllInventoriesAsync(() => { /*BMLogger.Log("Sent Inventory Detail Requests (all packs)");*/ }, 0, 1, 2);
|
||||
@@ -160,7 +161,7 @@ namespace BrewMonster.UI
|
||||
await Task.Delay(10000);
|
||||
UnityGameSession.RequesrQueryPlayerCash();
|
||||
await Task.Delay(1000);
|
||||
EC_Game.Init();
|
||||
|
||||
}
|
||||
|
||||
//private void OnInventoryReceived(List<InventoryItem> inventoryData)
|
||||
|
||||
@@ -4,10 +4,12 @@ using BrewMonster.Scripts.World;
|
||||
using CSNetwork.GPDataType;
|
||||
using CSNetwork.Protocols.RPCData;
|
||||
using System.Data;
|
||||
using BrewMonster.Network;
|
||||
using CSNetwork;
|
||||
using Unity.Cinemachine;
|
||||
using UnityEngine;
|
||||
|
||||
public partial class CECGameRun : MonoBehaviour
|
||||
public partial class CECGameRun : MonoBehaviour, IMsgHandler
|
||||
{
|
||||
private static CECGameRun instance;
|
||||
|
||||
@@ -18,7 +20,7 @@ public partial class CECGameRun : MonoBehaviour
|
||||
[SerializeField] private GameObject _testVfxPrefab;
|
||||
//[SerializeField] private Transform ground;
|
||||
CECHostPlayer hostPlayer;
|
||||
|
||||
|
||||
public CinemachineFreeLook freeLookCam;
|
||||
public float rotateSpeedX = 300f; // tốc độ xoay ngang
|
||||
public float rotateSpeedY = 2f; // tốc độ xoay dọc
|
||||
@@ -56,6 +58,8 @@ public partial class CECGameRun : MonoBehaviour
|
||||
{
|
||||
instance = this;
|
||||
}
|
||||
|
||||
EC_ManMessage.RegisterHandler(this);
|
||||
}
|
||||
|
||||
public void Log(string s)
|
||||
@@ -117,6 +121,7 @@ public partial class CECGameRun : MonoBehaviour
|
||||
GameObject character = Instantiate(characterPrefab, transform);
|
||||
return character.gameObject;
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
instance = null;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
using System.Collections.Generic;
|
||||
using BrewMonster.Network;
|
||||
using CSNetwork;
|
||||
using CSNetwork.GPDataType;
|
||||
|
||||
// Game runtime partial class
|
||||
partial class CECGameRun : IMsgHandler
|
||||
{
|
||||
private readonly Dictionary<int, int> m_CommonDataTab = new Dictionary<int, int>();
|
||||
|
||||
public int GetCommonData(int key)
|
||||
{
|
||||
// Lookup a common data value by key
|
||||
// 按键查找通用数据值
|
||||
if (m_CommonDataTab != null && m_CommonDataTab.TryGetValue(key, out var value))
|
||||
return value;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
private CECCounter l_QueryServerTime = new CECCounter(); // ��ѯ��������ǰʱ��
|
||||
|
||||
public int HandlerId => -1;
|
||||
public bool ProcessMessage(ECMSG Msg)
|
||||
{
|
||||
switch (Msg.dwMsg)
|
||||
{
|
||||
case CommandID.SERVER_TIME:
|
||||
|
||||
EC_Game.SetServerTime((int)Msg.dwParam1, (int)Msg.dwParam2);
|
||||
l_QueryServerTime.Reset();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 598459b2399743b5ba1eb55fd1d9611e
|
||||
timeCreated: 1762861835
|
||||
@@ -0,0 +1,121 @@
|
||||
using System;
|
||||
using BrewMonster.Scripts.Task;
|
||||
using CSNetwork;
|
||||
using CSNetwork.GPDataType;
|
||||
using UnityEngine;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// ���� // Contribution info
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
public struct CONTRIB_INFO
|
||||
{
|
||||
public int consume_contrib; // �����ѵ� // Consume contribution
|
||||
public int exp_contrib; // �ɶһ����ɾ���� // Experience contribution
|
||||
public int cumulate_contrib; // �ۻ�ֵ // Cumulative contribution
|
||||
|
||||
// public CONTRIB_INFO()
|
||||
// {
|
||||
// consume_contrib = 0;
|
||||
// exp_contrib = 0;
|
||||
// cumulate_contrib = 0;
|
||||
// }
|
||||
}
|
||||
|
||||
public partial class CECHostPlayer
|
||||
{
|
||||
private int m_idTradePlayer; // ID of player who is trading with us
|
||||
private CECTaskInterface m_pTaskInterface;
|
||||
private int m_iBoothState; // Booth state. 0, none; 1, prepare; 2, open booth; 3, visite other's booth
|
||||
private CONTRIB_INFO m_contribInfo;
|
||||
|
||||
public CECTaskInterface GetTaskInterface()
|
||||
{
|
||||
return m_pTaskInterface;
|
||||
}
|
||||
|
||||
// Is host player trading ?
|
||||
public bool IsTrading() { return m_idTradePlayer != 0; }
|
||||
|
||||
public CONTRIB_INFO GetContribInfo()
|
||||
{
|
||||
return m_contribInfo;
|
||||
}
|
||||
|
||||
public int GetBoothState()
|
||||
{
|
||||
return m_iBoothState;
|
||||
}
|
||||
|
||||
private void OnMsgHstTaskData(ECMSG Msg)
|
||||
{
|
||||
// decode header to distinguish TASK_DATA vs TASK_VAR_DATA
|
||||
// if (!(Msg.dwParam2 is cmd_header header))
|
||||
// {
|
||||
// Debug.LogError("OnMsgHstTaskData: invalid header");
|
||||
// return;
|
||||
// }
|
||||
|
||||
int header = Convert.ToInt32(Msg.dwParam2);
|
||||
|
||||
byte[] pDataBuf = Msg.dwParam1 as byte[];
|
||||
if (pDataBuf == null)
|
||||
{
|
||||
Debug.LogError("OnMsgHstTaskData: missing payload buffer");
|
||||
return;
|
||||
}
|
||||
|
||||
if (header == CommandID.TASK_DATA)
|
||||
{
|
||||
#if !LOAD_TASK_TEMPL
|
||||
return; // Task templates loading not implemented in C#
|
||||
#endif
|
||||
// Parse aggregated task buffers
|
||||
cmd_task_data pCmd = cmd_task_data.FromBuffer(pDataBuf);
|
||||
// cmd_task_data pCmd = GPDataTypeHelper.FromBytes<cmd_task_data>(pDataBuf);
|
||||
|
||||
// Release and recreate task interface
|
||||
m_pTaskInterface = null;
|
||||
m_pTaskInterface = new CECTaskInterface(this);
|
||||
|
||||
if (!m_pTaskInterface.Init(
|
||||
pCmd.active_list, (int)pCmd.active_list_size,
|
||||
pCmd.finished_list, (int)pCmd.finished_list_size,
|
||||
pCmd.finished_time_list, (int)pCmd.finished_time_list_size,
|
||||
pCmd.finished_count, (int)pCmd.finished_count_size,
|
||||
pCmd.storage_task, (int)pCmd.storage_task_size))
|
||||
{
|
||||
Debug.LogError("CECHostPlayer::OnMsgHstTaskData, failed to initialize task interface");
|
||||
return;
|
||||
}
|
||||
|
||||
m_pTaskInterface.CheckPQEnterWorldInit();
|
||||
|
||||
// check if player has equipped goblin (not yet implemented in C#)
|
||||
// TODO: implement goblin initialization when equipment system is ready
|
||||
|
||||
// GET_ALL_DATA end flag tasks were here in C++ (LoadConfigData), omitted in C#
|
||||
|
||||
// if (UpdateEquipSkills()) UpdateEquipSkillCoolDown(); // methods not ported yet
|
||||
}
|
||||
else if (header == CommandID.TASK_VAR_DATA)
|
||||
{
|
||||
// Minimal forwarding; original code passes inner data pointer and size
|
||||
if (m_pTaskInterface != null)
|
||||
{
|
||||
OnServerNotify(m_pTaskInterface, pDataBuf, pDataBuf.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError("OnMsgHstTaskData: m_pTaskInterface is null on TASK_VAR_DATA");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void OnServerNotify(CECTaskInterface pInterface, byte[] data, int size)
|
||||
{
|
||||
// TODO: Implement server notify handling for task var data
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c3d2b8f770fdd49619648d2a7aace2f4
|
||||
@@ -1171,81 +1171,7 @@ public partial class CECHostPlayer : CECPlayer
|
||||
|
||||
#region Task
|
||||
|
||||
public void OnMsgHstTaskData(ECMSG Msg)
|
||||
{
|
||||
int cmd = Convert.ToInt32(Msg.dwParam2);
|
||||
if (cmd == CommandID.TASK_DATA)
|
||||
{
|
||||
//Debug.Log("[Dat]- OnMsgHstTaskData- TASK_DATA");
|
||||
//a_LogOutput(1, "[Dat]- EC_HostMsg- OnMsgHstTaskData- TASK_DATA");
|
||||
//cmd_task_data* pCmd = (cmd_task_data*)Msg.dwParam1;
|
||||
//ASSERT(pCmd);
|
||||
|
||||
//int iActiveListSize = (int)pCmd.active_list_size;
|
||||
//BYTE* pData = (BYTE*)pCmd + sizeof(size_t);
|
||||
//void* pActiveListbuf = pData;
|
||||
//pData += iActiveListSize;
|
||||
|
||||
//int iFinishedListSize = *(int*)pData;
|
||||
//pData += sizeof(int);
|
||||
//void* pFinishedListBuf = pData;
|
||||
//pData += iFinishedListSize;
|
||||
|
||||
//int iFinishTimeListSize = *(int*)pData;
|
||||
//pData += sizeof(int);
|
||||
//void* pFinishTimeListBuf = pData;
|
||||
//pData += iFinishTimeListSize;
|
||||
|
||||
//int iFinishedCountListSize = *(int*)pData;
|
||||
//pData += sizeof(int);
|
||||
//void* pFinishedCountListBuf = pData;
|
||||
//pData += iFinishedCountListSize;
|
||||
|
||||
//int iStorageTasksListSize = *(int*)pData;
|
||||
//pData += sizeof(int);
|
||||
//void* pStorageTaskListBuf = pData;
|
||||
//pData += iStorageTasksListSize;
|
||||
|
||||
//A3DRELEASE(m_pTaskInterface);
|
||||
|
||||
//todo
|
||||
//var m_pTaskInterface = new CECTaskInterface(this);
|
||||
|
||||
//if (!m_pTaskInterface.Init(null, 0, null, 0,
|
||||
// null, 0, null, 0, null, 0))
|
||||
//{
|
||||
// //a_LogOutput(1, "CECHostPlayer::OnMsgHstTaskData, failed to initialize task interface");
|
||||
// return;
|
||||
//}
|
||||
|
||||
//m_pTaskInterface.CheckPQEnterWorldInit();
|
||||
|
||||
//// check if player has equipped goblin
|
||||
//if (m_pEquipPack.GetItem(EQUIPIVTR_GOBLIN) != NULL)
|
||||
//{
|
||||
// CECIvtrGoblin* pIvtrGoblin = (CECIvtrGoblin*)m_pEquipPack.GetItem(EQUIPIVTR_GOBLIN);
|
||||
// m_pGoblin = new CECHostGoblin();
|
||||
// m_pGoblin.Init(pIvtrGoblin.GetTemplateID(), pIvtrGoblin, this);
|
||||
//}
|
||||
|
||||
//// Note: this command now is also used as the end flag of responding
|
||||
//// for GET_ALL_DATA request
|
||||
//g_pGame.GetGameSession().LoadConfigData();
|
||||
|
||||
//// ¸ù¾Ý×°±¸°ü¹ü¸üÐÂ×°±¸¼¼Äܵ½¼¼ÄÜÁбí
|
||||
//if (UpdateEquipSkills())
|
||||
// UpdateEquipSkillCoolDown();
|
||||
}
|
||||
else if (cmd == CommandID.TASK_VAR_DATA)
|
||||
{
|
||||
//cmd_task_var_data* pCmd = (cmd_task_var_data*)Msg.dwParam1;
|
||||
//ASSERT(pCmd);
|
||||
//if (m_pTaskInterface)
|
||||
// OnServerNotify(m_pTaskInterface, pCmd.data, pCmd.size);
|
||||
//else
|
||||
// ASSERT(m_pTaskInterface);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
@@ -33,18 +33,23 @@ struct cmd_notify_hostpos
|
||||
struct cmd_task_data
|
||||
{
|
||||
public uint active_list_size;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||
public byte[] active_list;
|
||||
|
||||
public uint finished_list_size;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||
public byte[] finished_list;
|
||||
|
||||
public uint finished_time_list_size;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||
public byte[] finished_time_list;
|
||||
|
||||
public uint finished_count_size;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||
public byte[] finished_count;
|
||||
|
||||
public uint storage_task_size;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||
public byte[] storage_task;
|
||||
|
||||
public static cmd_task_data FromPointer(IntPtr ptr)
|
||||
@@ -62,7 +67,7 @@ struct cmd_task_data
|
||||
cmd_task_data result = new cmd_task_data();
|
||||
int offset = 0;
|
||||
|
||||
result.active_list_size = (uint)ReadULong(buffer, ref offset);
|
||||
result.active_list_size = (uint)ReadULong(buffer, ref offset, 4);
|
||||
result.active_list = ReadBytes(buffer, ref offset, (int)result.active_list_size);
|
||||
|
||||
result.finished_list_size = (uint)ReadULong(buffer, ref offset);
|
||||
@@ -80,10 +85,10 @@ struct cmd_task_data
|
||||
return result;
|
||||
}
|
||||
|
||||
private static ulong ReadULong(byte[] buffer, ref int offset)
|
||||
private static ulong ReadULong(byte[] buffer, ref int offset, int plusOffset = 4)
|
||||
{
|
||||
ulong value = BitConverter.ToUInt64(buffer, offset);
|
||||
offset += 8;
|
||||
offset += plusOffset;
|
||||
return value;
|
||||
}
|
||||
|
||||
|
||||