Merge branch 'develop' into feature/hp_swim
# Conflicts: # Assets/PerfectWorld/Scripts/Network/CSNetwork/GameSession.cs # Assets/PerfectWorld/Scripts/Network/UnityGameSession.cs # Assets/Scripts/CECHostPlayer.cs
This commit is contained in:
@@ -115,25 +115,189 @@ PrefabInstance:
|
||||
propertyPath: m_text
|
||||
value:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1464374634028484465, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_margin.z
|
||||
value: 0.030044556
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1464374634028484465, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontAsset
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
- target: {fileID: 1464374634028484465, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 13f71bf0225d0c0439db9931000d75d0, type: 2}
|
||||
- target: {fileID: 1464374634028484465, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_VerticalAlignment
|
||||
value: 4096
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: -25.7078
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2224911469552029187, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: -4.397293
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2891120192736919771, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: 262.3562
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2891120192736919771, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 25.9796
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2891120192736919771, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 74.25657
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2891120192736919771, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 28.228401
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSize
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontAsset
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMax
|
||||
value: 18
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMin
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeBase
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: -18.9426
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3992890073798626326, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: -5.0738983
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4823752405346273106, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_Name
|
||||
value: HUDPlayer
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5777532589522199890, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 2.300003
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_text
|
||||
value: 0/0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSize
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontAsset
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMax
|
||||
value: 18
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMin
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeBase
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5872129684784782099, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_text
|
||||
value: 0/0
|
||||
value: 150K/150K
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSize
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontAsset
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMax
|
||||
value: 30
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMin
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeBase
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6583662924878292146, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
value: 0.5
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_Pivot.y
|
||||
value: 0.5
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
@@ -159,6 +323,18 @@ PrefabInstance:
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 133
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_LocalScale.x
|
||||
value: 1.3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_LocalScale.y
|
||||
value: 1.3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_LocalScale.z
|
||||
value: 1.3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_LocalPosition.x
|
||||
value: 0
|
||||
@@ -189,11 +365,11 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 230.5
|
||||
value: 25
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: -66.5
|
||||
value: -9
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6806681442789174374, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_LocalEulerAnglesHint.x
|
||||
@@ -207,10 +383,68 @@ PrefabInstance:
|
||||
propertyPath: m_LocalEulerAnglesHint.z
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8086917028654197348, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_Type
|
||||
value: 3
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8086917028654197348, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_FillMethod
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.x
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.x
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.x
|
||||
value: -20.6339
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8575537839465846660, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: -2.8752
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_text
|
||||
value: 10
|
||||
value: '105
|
||||
|
||||
'
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontAsset
|
||||
value:
|
||||
objectReference: {fileID: 11400000, guid: 369c2e14814cc9a4b8e3ad4e37769134, type: 2}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontStyle
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMax
|
||||
value: 17
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_fontSizeMin
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8867137494968155958, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
propertyPath: m_sharedMaterial
|
||||
value:
|
||||
objectReference: {fileID: 2100000, guid: 31b77628c21b17e45a6577a3d3d5aef0, type: 2}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
m_AddedGameObjects: []
|
||||
@@ -219,6 +453,17 @@ PrefabInstance:
|
||||
insertIndex: -1
|
||||
addedObject: {fileID: 4616316815177720404}
|
||||
m_SourcePrefab: {fileID: 100100000, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
--- !u!114 &246901321761552071 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 5335503683694560306, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
m_PrefabInstance: {fileID: 5289107387155542773}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1 &835354389023896999 stripped
|
||||
GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 4823752405346273106, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
@@ -241,6 +486,9 @@ MonoBehaviour:
|
||||
expText: {fileID: 9091953190536401803}
|
||||
nameText: {fileID: 6716045574192280964}
|
||||
levelText: {fileID: 3632374887765724611}
|
||||
healthImage: {fileID: 4133230328392276113}
|
||||
manaImage: {fileID: 246901321761552071}
|
||||
expImage: {fileID: 7351517459147011958}
|
||||
neededExp: 0
|
||||
--- !u!114 &1313768687643874887 stripped
|
||||
MonoBehaviour:
|
||||
@@ -280,6 +528,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &4133230328392276113 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 8086917028654197348, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
m_PrefabInstance: {fileID: 5289107387155542773}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &6716045574192280964 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 1464374634028484465, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
@@ -291,6 +550,17 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &7351517459147011958 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 3414706020273276291, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
m_PrefabInstance: {fileID: 5289107387155542773}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &9091953190536401803 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 3984476637502251390, guid: 76408ccdbeb4c654291462fcff24a8c5, type: 3}
|
||||
|
||||
@@ -443,7 +443,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
@@ -564,7 +564,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
@@ -685,7 +685,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
value: 0
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
|
||||
propertyPath: m_Pivot.x
|
||||
|
||||
@@ -0,0 +1,627 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &1448650841350251410
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1931146730219979515}
|
||||
- component: {fileID: 7931617368933511578}
|
||||
- component: {fileID: 5031655611580643013}
|
||||
m_Layer: 5
|
||||
m_Name: TitileText (TMP)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &1931146730219979515
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1448650841350251410}
|
||||
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: 8578995796031649400}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 84}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &7931617368933511578
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1448650841350251410}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &5031655611580643013
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1448650841350251410}
|
||||
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: MessageBox
|
||||
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: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 0
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &3318234767486795022
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7677644201189461152}
|
||||
- component: {fileID: 5808684862484431307}
|
||||
- component: {fileID: 6436262686944836630}
|
||||
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 &7677644201189461152
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3318234767486795022}
|
||||
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: 7906706137011413807}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: -81}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5808684862484431307
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3318234767486795022}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6436262686944836630
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 3318234767486795022}
|
||||
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: OK
|
||||
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: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 0
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &4839074738306786208
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7906706137011413807}
|
||||
- component: {fileID: 8280971203118505009}
|
||||
- component: {fileID: 8250962023850685786}
|
||||
- component: {fileID: 7766051278568089760}
|
||||
m_Layer: 5
|
||||
m_Name: ButtonExit
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &7906706137011413807
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4839074738306786208}
|
||||
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: 7677644201189461152}
|
||||
m_Father: {fileID: 8578995796031649400}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 0}
|
||||
m_SizeDelta: {x: 160, y: 30}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &8280971203118505009
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4839074738306786208}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &8250962023850685786
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4839074738306786208}
|
||||
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 &7766051278568089760
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 4839074738306786208}
|
||||
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: 8250962023850685786}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls: []
|
||||
--- !u!1 &5199518178703117250
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 6428994832978992641}
|
||||
- component: {fileID: 655909173274991632}
|
||||
- component: {fileID: 7448521238108099750}
|
||||
m_Layer: 5
|
||||
m_Name: MessageText (TMP) (1)
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &6428994832978992641
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5199518178703117250}
|
||||
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: 8578995796031649400}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 3}
|
||||
m_SizeDelta: {x: 200, y: 50}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &655909173274991632
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5199518178703117250}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &7448521238108099750
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5199518178703117250}
|
||||
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: 'Content
|
||||
|
||||
'
|
||||
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: 36
|
||||
m_fontSizeBase: 36
|
||||
m_fontWeight: 400
|
||||
m_enableAutoSizing: 0
|
||||
m_fontSizeMin: 18
|
||||
m_fontSizeMax: 72
|
||||
m_fontStyle: 0
|
||||
m_HorizontalAlignment: 2
|
||||
m_VerticalAlignment: 512
|
||||
m_textAlignment: 65535
|
||||
m_characterSpacing: 0
|
||||
m_wordSpacing: 0
|
||||
m_lineSpacing: 0
|
||||
m_lineSpacingMax: 0
|
||||
m_paragraphSpacing: 0
|
||||
m_charWidthMaxAdj: 0
|
||||
m_TextWrappingMode: 0
|
||||
m_wordWrappingRatios: 0.4
|
||||
m_overflowMode: 0
|
||||
m_linkedTextComponent: {fileID: 0}
|
||||
parentLinkedComponent: {fileID: 0}
|
||||
m_enableKerning: 0
|
||||
m_ActiveFontFeatures: 6e72656b
|
||||
m_enableExtraPadding: 0
|
||||
checkPaddingRequired: 0
|
||||
m_isRichText: 1
|
||||
m_EmojiFallbackSupport: 1
|
||||
m_parseCtrlCharacters: 1
|
||||
m_isOrthographic: 1
|
||||
m_isCullingEnabled: 0
|
||||
m_horizontalMapping: 0
|
||||
m_verticalMapping: 0
|
||||
m_uvLineOffset: 0
|
||||
m_geometrySortingOrder: 0
|
||||
m_IsTextObjectScaleStatic: 0
|
||||
m_VertexBufferAutoSizeReduction: 0
|
||||
m_useMaxVisibleDescender: 1
|
||||
m_pageToDisplay: 1
|
||||
m_margin: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_isUsingLegacyAnimationComponent: 0
|
||||
m_isVolumetricText: 0
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!1 &5492547392745930423
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 8578995796031649400}
|
||||
- component: {fileID: 2243330050876855902}
|
||||
- component: {fileID: 3372223705930781376}
|
||||
- component: {fileID: 1069295583529170983}
|
||||
m_Layer: 5
|
||||
m_Name: MessageBox
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &8578995796031649400
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5492547392745930423}
|
||||
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: 7906706137011413807}
|
||||
- {fileID: 1931146730219979515}
|
||||
- {fileID: 6428994832978992641}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
m_AnchoredPosition: {x: 0, y: 30.6318}
|
||||
m_SizeDelta: {x: 434.6896, y: 248.9211}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &2243330050876855902
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5492547392745930423}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &3372223705930781376
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5492547392745930423}
|
||||
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 &1069295583529170983
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5492547392745930423}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 6672523dc3dacfa46b2104f504acdb6e, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
titleText: {fileID: 5031655611580643013}
|
||||
messageText: {fileID: 7448521238108099750}
|
||||
okButton: {fileID: 7766051278568089760}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 54cccb2c6a758a24183474cd385ccb2c
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -2777,8 +2777,8 @@ RectTransform:
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 1, y: 0.5}
|
||||
m_AnchorMax: {x: 1, y: 0.5}
|
||||
m_AnchoredPosition: {x: -50, y: 357}
|
||||
m_SizeDelta: {x: 81.9939, y: 49.1664}
|
||||
m_AnchoredPosition: {x: -49.2245, y: 357.7831}
|
||||
m_SizeDelta: {x: 90.8501, y: 55.7939}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5968563249516142148
|
||||
CanvasRenderer:
|
||||
@@ -2861,19 +2861,7 @@ MonoBehaviour:
|
||||
m_TargetGraphic: {fileID: 3650411900463707999}
|
||||
m_OnClick:
|
||||
m_PersistentCalls:
|
||||
m_Calls:
|
||||
- m_Target: {fileID: 2299336709516784351}
|
||||
m_TargetAssemblyTypeName: UnityEngine.GameObject, UnityEngine
|
||||
m_MethodName: SetActive
|
||||
m_Mode: 6
|
||||
m_Arguments:
|
||||
m_ObjectArgument: {fileID: 0}
|
||||
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
|
||||
m_IntArgument: 0
|
||||
m_FloatArgument: 0
|
||||
m_StringArgument:
|
||||
m_BoolArgument: 1
|
||||
m_CallState: 2
|
||||
m_Calls: []
|
||||
--- !u!1 &6830984368220482060
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -3020,6 +3008,7 @@ GameObject:
|
||||
m_Component:
|
||||
- component: {fileID: 2780428059708698453}
|
||||
- component: {fileID: 1890210201668811196}
|
||||
- component: {fileID: 6678802354138057098}
|
||||
m_Layer: 0
|
||||
m_Name: UIManager
|
||||
m_TagString: Untagged
|
||||
@@ -3063,9 +3052,23 @@ MonoBehaviour:
|
||||
currentTargetNPCID: 0
|
||||
dialogResouce: {fileID: 11400000, guid: 540bc8e61556ba4479407a2d68e17580, type: 2}
|
||||
canvasDlg: {fileID: 7894129013412138377}
|
||||
cDlgQuickBar: {fileID: 1319801370889024573}
|
||||
btnSecondClick: {fileID: 1330222957695115484}
|
||||
m_pDlgQuickBar1: {fileID: 8338623026378970694}
|
||||
m_pDlgSkillAction: {fileID: 0}
|
||||
--- !u!114 &6678802354138057098
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6950113420985123515}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 3c007a40af961624cae5041be0798d18, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
uiSkillButton: {fileID: 1484158212461992110}
|
||||
skillUI: {fileID: 2299336709516784351}
|
||||
--- !u!1 &7222864739775630687
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -7045,32 +7048,20 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617375721872166299, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617375721872166299, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617375721872166299, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 468.781
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1617375721872166299, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -31.05
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 1851903413579782982, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: label
|
||||
value:
|
||||
objectReference: {fileID: 4660130238732286921}
|
||||
- target: {fileID: 1851903413579782982, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: levelName
|
||||
value:
|
||||
objectReference: {fileID: 4660130238732286921}
|
||||
- target: {fileID: 1851903413579782982, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_subDialog
|
||||
value:
|
||||
objectReference: {fileID: 2580090463562447698}
|
||||
- target: {fileID: 2825516843822704547, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 1
|
||||
@@ -7081,7 +7072,7 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2825516843822704547, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 0
|
||||
value: 155.2475
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 2825516843822704547, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
@@ -7093,35 +7084,35 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3959004304404627642, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3959004304404627642, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3959004304404627642, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 167.0151
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 3959004304404627642, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -22.62375
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5330897987501731450, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5330897987501731450, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5330897987501731450, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 342.81
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5330897987501731450, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -105.2475
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5364487732470765845, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
@@ -7129,19 +7120,19 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5818092462432985527, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5818092462432985527, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5818092462432985527, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 288.8686
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 5818092462432985527, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -31.05
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6238266639003596740, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_Name
|
||||
@@ -7153,87 +7144,71 @@ PrefabInstance:
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6375080618180806221, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6375080618180806221, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6375080618180806221, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 83.16
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 6375080618180806221, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -162.18411
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 7661205641906674001, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_pSubRank
|
||||
value:
|
||||
objectReference: {fileID: 5821303484157812317}
|
||||
- target: {fileID: 7661205641906674001, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_pSubSkill
|
||||
value:
|
||||
objectReference: {fileID: 2580090463562447698}
|
||||
- target: {fileID: 7661205641906674001, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_contentRoot
|
||||
value:
|
||||
objectReference: {fileID: 4198350107324523797}
|
||||
- target: {fileID: 7688900625148083785, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: skillIcon
|
||||
value:
|
||||
objectReference: {fileID: 9059833306997052970}
|
||||
- target: {fileID: 8029283128219612690, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8029283128219612690, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8029283128219612690, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 83.16
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8029283128219612690, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -292.4765
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 8302858527499935758, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_SizeDelta.y
|
||||
value: 183.2475
|
||||
value: 28
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9102658109286783788, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9102658109286783788, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9102658109286783788, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 83.16
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9102658109286783788, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -48.51895
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9184880796936692226, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMax.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9184880796936692226, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchorMin.y
|
||||
value: 0
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9184880796936692226, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.x
|
||||
value: 0
|
||||
value: 108.9562
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 9184880796936692226, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
propertyPath: m_AnchoredPosition.y
|
||||
value: 0
|
||||
value: -31.05
|
||||
objectReference: {fileID: 0}
|
||||
m_RemovedComponents: []
|
||||
m_RemovedGameObjects: []
|
||||
@@ -7245,60 +7220,11 @@ GameObject:
|
||||
m_CorrespondingSourceObject: {fileID: 6238266639003596740, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &2580090463562447698 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 7688900625148083785, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 05377af3dd0a3a84fbff62d8e0a572f9, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!224 &4198350107324523797 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 8302858527499935758, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &4660130238732286921 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 708823501721075410, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!224 &4742272256638967314 stripped
|
||||
RectTransform:
|
||||
m_CorrespondingSourceObject: {fileID: 627631504828013321, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &5821303484157812317 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 1851903413579782982, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 7f3b136cb144656428e4764d58c18c52, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!114 &9059833306997052970 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: 3801278460223427377, guid: b78469eadfa272c4f8fee4c8cae4b26f, type: 3}
|
||||
m_PrefabInstance: {fileID: 5294584971749082395}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
--- !u!1001 &7325623227323765241
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@@ -27,3 +27,5 @@ MonoBehaviour:
|
||||
prefab: {fileID: 977375840943150650, guid: 51bad2e6d1ec69a4683135ce85288faa, type: 3}
|
||||
- id: Win_Hpmpxp
|
||||
prefab: {fileID: 6032603119232429246, guid: 8350aa55906d08448bb47e10a473ca61, type: 3}
|
||||
- id: Win_Produce
|
||||
prefab: {fileID: 5750242998044155948, guid: ecf0d8daf08db6f4a8d94a4bb07847ec, type: 3}
|
||||
|
||||
@@ -33,6 +33,8 @@ namespace BrewMonster
|
||||
await UniTask.DelayFrame(1);
|
||||
}
|
||||
var result = await _elementDataMan.load_data();
|
||||
//TODO: this is for testing. move it to other place
|
||||
itemdataman.load_data("",false);
|
||||
if (result == -1)
|
||||
{
|
||||
BMLogger.LogError("ElementDataManProvider: Failed to load element data");
|
||||
@@ -40,6 +42,9 @@ namespace BrewMonster
|
||||
else
|
||||
{
|
||||
BMLogger.Log("ElementDataManProvider: Successfully loaded element data");
|
||||
// Build suite equip tab now that data is loaded
|
||||
// 数据加载完成后构建套装装备表
|
||||
BrewMonster.Network.EC_Game.BuildSuiteEquipTab();
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
@@ -1590,6 +1590,10 @@ namespace ModelRenderer.Scripts.GameData
|
||||
recipe_id_data_map[id] = data;
|
||||
recipe_index_id_map[recipe_index_id_map.Count] = id;
|
||||
break;
|
||||
case ID_SPACE.ID_SPACE_ADDON:
|
||||
addon_id_data_map[id] = data;
|
||||
addon_index_id_map[addon_index_id_map.Count] = id;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ef4cf49bb69644c19a3a3904a40db7db
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a9c1175c22dab468e92f37bc79dfbef1
|
||||
@@ -556,7 +556,7 @@ namespace BrewMonster.Common
|
||||
if (pCnt.IsFull())
|
||||
{
|
||||
pCnt.Reset();
|
||||
UnityGameSession.Instance.GameSession.RequestReviveBase(param);
|
||||
UnityGameSession.Instance.GameSession.c2s_SendCmdReviveVillage(param);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,7 +568,7 @@ namespace BrewMonster.Common
|
||||
if (pCnt.IsFull())
|
||||
{
|
||||
pCnt.Reset();
|
||||
UnityGameSession.Instance.GameSession.RequestReviveItem(param);
|
||||
UnityGameSession.Instance.GameSession.c2s_SendCmdReviveItem(param);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -204,3 +204,21 @@ public struct ROLEEXTPROP_DEF
|
||||
armor = 0;
|
||||
}
|
||||
};
|
||||
|
||||
// Profession
|
||||
public enum PROFESSION
|
||||
{
|
||||
PROF_WARRIOR = 0, // 0:����
|
||||
PROF_MAGE, // 1:��ʦ
|
||||
PROF_MONK, // 2:��ʦ
|
||||
PROF_HAG, // 3:����
|
||||
PROF_ORC, // 4:����
|
||||
PROF_GHOST, // 5:�̿�
|
||||
PROF_ARCHOR, // 6:��â
|
||||
PROF_ANGEL, // 7:����
|
||||
PROF_JIANLING, // 8:����
|
||||
PROF_MEILING, // 9:����
|
||||
PROF_YEYING, // 10:ҹӰ
|
||||
PROF_YUEXIAN, // 11:����
|
||||
NUM_PROFESSION,
|
||||
};
|
||||
@@ -30,6 +30,8 @@ namespace BrewMonster
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public ushort[] name; // Name
|
||||
|
||||
public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name);
|
||||
|
||||
public int num_params; // Number of parameters
|
||||
public int param1; // Parameter 1
|
||||
public int param2; // Parameter 2
|
||||
@@ -559,6 +561,8 @@ namespace BrewMonster
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public ushort[] name; // Suite name, max 15 characters
|
||||
|
||||
public string Name => ByteToStringUtils.UshortArrayToUnicodeString(name);
|
||||
|
||||
public int max_equips; // Maximum equipment in suite
|
||||
|
||||
[StructLayout(LayoutKind.Sequential, Pack = 1)]
|
||||
|
||||
@@ -2,6 +2,10 @@ namespace BrewMonster.Scripts
|
||||
{
|
||||
public class InventoryConst
|
||||
{
|
||||
// Equipment endurance scale
|
||||
public const int ENDURANCE_SCALE = 100;
|
||||
// NUM_MAGICCLASS
|
||||
public const int NUM_MAGICCLASS = 5;
|
||||
// Index of item in equipment inventory
|
||||
public const int EQUIPIVTR_WEAPON = 0;
|
||||
public const int EQUIPIVTR_HEAD = 1;
|
||||
|
||||
@@ -8,7 +8,6 @@ using System.Globalization;
|
||||
using System.IO;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
|
||||
namespace BrewMonster.Network
|
||||
{
|
||||
public partial class EC_Game
|
||||
@@ -25,8 +24,12 @@ namespace BrewMonster.Network
|
||||
private static BrewMonster.CECStringTab m_FixedMsgs; // Fixed message table
|
||||
private static BrewMonster.CECStringTab m_ItemDesc; // Item desciption string table
|
||||
private static BrewMonster.CECStringTab m_ItemExtDesc; // Item extend description string table
|
||||
private static BrewMonster.CECStringTab m_ItemExtProp; // Item extend prop string table
|
||||
private static BrewMonster.CECStringTab ItemColTab; // Item color string table
|
||||
private static Dictionary<int, int> m_SuiteEquipTab; // Item suite string table
|
||||
private static BrewMonster.CECStringTab m_SkillDesc = new CECStringTab(); // Skill description string table
|
||||
private static BrewMonster.CECStringTab m_BuffDesc; // Buff description string table
|
||||
|
||||
private static Dictionary<int, ItemMsgMapEntry> m_ItemMsgMap; // TemplateId -> (MessageId, DisplayMode)
|
||||
private static CECConfigs m_pConfigs;
|
||||
private static int m_iCurCursor; // Current cursor
|
||||
@@ -71,7 +74,19 @@ namespace BrewMonster.Network
|
||||
{
|
||||
return m_BuffDesc;
|
||||
}
|
||||
|
||||
public static BrewMonster.CECStringTab GetItemExtProp()
|
||||
{
|
||||
return m_ItemExtProp;
|
||||
}
|
||||
public static BrewMonster.CECStringTab GetItemColTab()
|
||||
{
|
||||
return ItemColTab;
|
||||
}
|
||||
public static Dictionary<int, int> GetSuiteEquipTab()
|
||||
{
|
||||
Debug.Log("[EC_Game] GetSuiteEquipTab: " + m_SuiteEquipTab.Count);
|
||||
return m_SuiteEquipTab;
|
||||
}
|
||||
public static bool TryGetItemMsg(int templateId, out int messageId, out int displayMode)
|
||||
{
|
||||
messageId = 0;
|
||||
@@ -97,7 +112,6 @@ namespace BrewMonster.Network
|
||||
// Load task templates
|
||||
// if (m_pTaskMan == null) m_pTaskMan = new ATaskTemplMan();
|
||||
m_pTaskMan = new ATaskTemplMan();
|
||||
|
||||
m_pTaskMan.Init(m_pElementDataMan);
|
||||
m_pConfigs = new CECConfigs(); /*ElementClient.g_GameCfgs*/;
|
||||
if (!m_pTaskMan.InitStorageTask())
|
||||
@@ -135,7 +149,9 @@ namespace BrewMonster.Network
|
||||
m_ItemExtDesc = new BrewMonster.CECStringTab();
|
||||
m_SkillDesc = new BrewMonster.CECStringTab();
|
||||
m_BuffDesc = new BrewMonster.CECStringTab();
|
||||
|
||||
m_ItemExtProp = new BrewMonster.CECStringTab();
|
||||
ItemColTab = new BrewMonster.CECStringTab();
|
||||
m_SuiteEquipTab = new Dictionary<int, int>();
|
||||
try
|
||||
{
|
||||
// Addressables-only loading (no StreamingAssets/configs file IO).
|
||||
@@ -165,11 +181,22 @@ namespace BrewMonster.Network
|
||||
{
|
||||
Debug.LogWarning("[EC_Game] Failed to load skillstr.txt");
|
||||
}
|
||||
|
||||
var itemExtPropTa = Addressables.LoadAssetAsync<TextAsset>("Assets/Addressable/item_ext_prop.txt").WaitForCompletion();
|
||||
if (!m_ItemExtProp.InitFromTextAsset(itemExtPropTa, true))
|
||||
{
|
||||
Debug.LogWarning("[EC_Game] Failed to load item_ext_prop.txt");
|
||||
}
|
||||
var itemColTa = Addressables.LoadAssetAsync<TextAsset>("Assets/Addressable/item_col.txt").WaitForCompletion();
|
||||
if (!ItemColTab.InitFromTextAsset(itemColTa, true))
|
||||
{
|
||||
Debug.LogWarning("[EC_Game] Failed to load item_col.txt");
|
||||
}
|
||||
|
||||
// Note: There's no buff_desc.txt file in the configs folder
|
||||
// You may need to create this file or use a different source for buff descriptions
|
||||
// (If you add it to Addressables later, load it here.)
|
||||
|
||||
// BuildSuiteEquipTab() is now called from ElementDataManProvider after data is loaded
|
||||
// BuildSuiteEquipTab() 现在在 ElementDataManProvider 数据加载完成后调用
|
||||
// Load item message map (template -> message id)
|
||||
LoadItemMsgMap();
|
||||
|
||||
@@ -267,6 +294,30 @@ namespace BrewMonster.Network
|
||||
long unixTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
|
||||
return (int)unixTime + m_iTimeError;
|
||||
}
|
||||
|
||||
#region Dummy Methods for itemdataman
|
||||
public static int addon_generate_arg(DATA_TYPE type, addon_data data, int arg_num/*��ʼ�IJ�������*/)
|
||||
{
|
||||
return arg_num;
|
||||
}
|
||||
public static void get_item_guid(uint id, out int g1, out int g2)
|
||||
{
|
||||
g1 = 0;
|
||||
g2 = 1;
|
||||
}
|
||||
public static int addon_update_ess_data(addon_data data, object essence,int ess_size, prerequisition require)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
public static void update_require_data(ref prerequisition require)
|
||||
{
|
||||
require.durability *= BrewMonster.Scripts.InventoryConst.ENDURANCE_SCALE;
|
||||
require.max_durability *= BrewMonster.Scripts.InventoryConst.ENDURANCE_SCALE;
|
||||
}
|
||||
public static void set_to_classid(DATA_TYPE type, byte[] data, int major_type)
|
||||
{
|
||||
}
|
||||
#endregion
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -401,6 +452,86 @@ namespace BrewMonster.Network
|
||||
map = list[0].strMap;
|
||||
return true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Build suite equip tab mapping. Must be called after m_pElementDataMan is initialized and data is loaded.
|
||||
/// 构建套装装备表映射。必须在 m_pElementDataMan 初始化且数据加载完成后调用。
|
||||
/// </summary>
|
||||
public static void BuildSuiteEquipTab()
|
||||
{
|
||||
if (m_pElementDataMan == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Ensure m_SuiteEquipTab is initialized
|
||||
// 确保 m_SuiteEquipTab 已初始化
|
||||
if (m_SuiteEquipTab == null)
|
||||
{
|
||||
m_SuiteEquipTab = new Dictionary<int, int>();
|
||||
}
|
||||
|
||||
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||
elementdataman _edm = ElementDataManProvider.GetElementDataMan();
|
||||
for (int i = 0; i < _edm.essence_id_data_type_map.Count; i++)
|
||||
{
|
||||
uint tid = _edm.get_data_id(ID_SPACE.ID_SPACE_ESSENCE, i, ref DataType);
|
||||
object pData = _edm.get_data_ptr(tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
switch (DataType)
|
||||
{
|
||||
case DATA_TYPE.DT_SUITE_ESSENCE:
|
||||
SUITE_ESSENCE pSuiteEss = (SUITE_ESSENCE)pData;
|
||||
pSuiteEss.max_equips = 0;
|
||||
for (int j=0; j<12; j++)
|
||||
{
|
||||
if( pSuiteEss.equipments[j].id != 0 )
|
||||
{
|
||||
pSuiteEss.max_equips ++;
|
||||
int index = (int)pSuiteEss.equipments[j].id;
|
||||
m_SuiteEquipTab[index] = (int)tid;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case DATA_TYPE.DT_POKER_SUITE_ESSENCE:
|
||||
POKER_SUITE_ESSENCE pPokerSuiteEss = (POKER_SUITE_ESSENCE)pData;
|
||||
for (int j=0; j<6; j++)
|
||||
{
|
||||
if( pPokerSuiteEss.list[j] != 0 )
|
||||
{
|
||||
int index = (int)pPokerSuiteEss.list[j];
|
||||
m_SuiteEquipTab[index] = (int)tid;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case DATA_TYPE.DT_FASHION_SUITE_ESSENCE:
|
||||
FASHION_SUITE_ESSENCE pFashionSuiteEss = (FASHION_SUITE_ESSENCE)pData;
|
||||
for (int j=0; j<6; j++)
|
||||
{
|
||||
if( pFashionSuiteEss.list[j] != 0 )
|
||||
{
|
||||
int index = (int)pFashionSuiteEss.list[j];
|
||||
m_SuiteEquipTab[index] = (int)tid;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
public static int GetItemNameColorIdx(int tid, int iDefIndex = 0)
|
||||
{
|
||||
int iIndex = iDefIndex;
|
||||
string color = ItemColTab.GetWideString(tid);
|
||||
if (!string.IsNullOrEmpty(color))
|
||||
iIndex = color.GetHashCode();
|
||||
if (iIndex < 0 || iIndex >= 10)
|
||||
{
|
||||
iIndex = 0;
|
||||
}
|
||||
return iIndex;
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -158,6 +158,9 @@ namespace BrewMonster.Managers
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -148,10 +148,29 @@ namespace BrewMonster
|
||||
// Note: This would require GetMouseOnPateTextNPC implementation
|
||||
// For now, we'll proceed with raycast
|
||||
if (Physics.RaycastNonAlloc(ray, hits) > 0)
|
||||
{
|
||||
// Check if hit terrain, building, or forest (no CECObject component)
|
||||
if (!hits[0].collider.gameObject.TryGetComponent<CECObject>(out CECObject clickedObject))
|
||||
{
|
||||
//Becauce of using RaycastNonAlloc, we need to sort hits by distance.
|
||||
GameObject closestObject = null;
|
||||
float closestDistance = float.MaxValue;
|
||||
foreach (var hit in hits)
|
||||
{
|
||||
if(hit.collider == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if(hit.distance < closestDistance)
|
||||
{
|
||||
closestDistance = hit.distance;
|
||||
closestObject = hit.collider.gameObject;
|
||||
}
|
||||
}
|
||||
if(closestObject == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// Check if hit terrain, building, or forest (no CECObject component)
|
||||
if (!closestObject.TryGetComponent<CECObject>(out CECObject clickedObject))
|
||||
{
|
||||
//ENABLE LATER - CURRENT WORKING FINE
|
||||
// Hit terrain / building / forest / Hit terrain
|
||||
// if (m_pWorkMan.IsSitting())
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Scripts.Managers
|
||||
@@ -24,13 +25,13 @@ namespace BrewMonster.Scripts.Managers
|
||||
IVTRTYPE_TRASHBOX2 = 4, // Trash box - material box
|
||||
IVTRTYPE_TRASHBOX3 = 5, // Trash box - fashion box
|
||||
IVTRTYPE_ACCOUNT_BOX = 6, // User account box
|
||||
IVTRTYPE_GENERALCARD_BOX = 7; // 卡牌包裹
|
||||
IVTRTYPE_GENERALCARD_BOX = 7; // ���ư���
|
||||
};
|
||||
|
||||
// 注意 IVTRTYPE_CLIENT_GENERALCARD_PACK 枚举值不能喝上面的 Inventory type 值重复!!
|
||||
// ע�� IVTRTYPE_CLIENT_GENERALCARD_PACK ö��ֵ���ܺ������ Inventory type ֵ�ظ�����
|
||||
public static class IVTRTYPE_PACK_CLIENT_GENERALCAR
|
||||
{
|
||||
public const int IVTRTYPE_CLIENT_GENERALCARD_PACK = 1024; // 客户端本地包裹, 由于卡牌图鉴要求对已获得卡牌通过聊天发送。为了统一处理聊天窗口的物品,添加本地包裹。
|
||||
public const int IVTRTYPE_CLIENT_GENERALCARD_PACK = 1024; // �ͻ��˱��ذ����� ���ڿ���ͼ��Ҫ����ѻ�ÿ���ͨ�����췢�͡�Ϊ��ͳһ�������촰�ڵ���Ʒ�����ӱ��ذ�����
|
||||
};
|
||||
|
||||
public EC_Inventory()
|
||||
@@ -168,14 +169,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
var newItem = new EC_IvtrItem(tid, iExpireDate)
|
||||
{
|
||||
Slot = firstEmpty,
|
||||
State = 0,
|
||||
Crc = 0,
|
||||
Content = null
|
||||
};
|
||||
var newItem = EC_IvtrItem.CreateItem(tid, iExpireDate, iAmount);
|
||||
newItem.SetCount(iAmount);
|
||||
|
||||
m_aItems[firstEmpty] = newItem;
|
||||
@@ -203,15 +197,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
|
||||
if (pDst == null)
|
||||
{
|
||||
var clone = new EC_IvtrItem(pSrc.GetTemplateID(), pSrc.GetExpireDate())
|
||||
{
|
||||
Slot = iDest,
|
||||
Package = pSrc.Package,
|
||||
State = pSrc.State,
|
||||
Crc = pSrc.Crc,
|
||||
Content = pSrc.Content != null ? (byte[])pSrc.Content.Clone() : null
|
||||
};
|
||||
clone.SetCount(iAmount);
|
||||
var clone = EC_IvtrItem.CreateItem(pSrc.GetTemplateID(), pSrc.GetExpireDate(), iAmount);
|
||||
m_aItems[iDest] = clone;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -85,7 +85,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
private byte currentSelectedPackage;
|
||||
private int currentSelectedSlot;
|
||||
private EC_IvtrItem currentSelectedItem;
|
||||
private EC_IvtrEquip currentSelectedEquipment;
|
||||
private EC_IvtrItem currentSelectedEquipment;
|
||||
|
||||
private const byte PKG_INVENTORY = 0;
|
||||
private const byte PKG_EQUIPMENT = 1;
|
||||
@@ -281,19 +281,13 @@ namespace BrewMonster.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Create EC_IvtrEquip object from InventoryItemData
|
||||
/// </summary>
|
||||
private EC_IvtrEquip CreateEquipmentFromItemData(EC_IvtrItem itemData)
|
||||
private EC_IvtrItem CreateEquipmentFromItemData(EC_IvtrItem itemData)
|
||||
{
|
||||
if (itemData == null)
|
||||
return null;
|
||||
|
||||
var equipment = new EC_IvtrEquip(itemData.m_tid, itemData.m_expire_date);
|
||||
|
||||
// Set basic properties (use default values since InventoryItemData doesn't have these)
|
||||
equipment.Price = 0;
|
||||
equipment.Count = itemData.m_iCount;
|
||||
equipment.PriceScale = 1.0f;
|
||||
equipment.ScaleType = 0;
|
||||
|
||||
var equipment = EC_IvtrItem.CreateItem(itemData.m_tid, itemData.m_expire_date, itemData.m_iCount);
|
||||
|
||||
// Parse item info if available (use Content field)
|
||||
if (itemData.Content != null && itemData.Content.Length > 0)
|
||||
{
|
||||
@@ -856,11 +850,11 @@ namespace BrewMonster.Scripts.Managers
|
||||
string fullDesc = null;
|
||||
if (showEquipmentDetails && currentSelectedEquipment != null)
|
||||
{
|
||||
fullDesc = currentSelectedEquipment.GetNormalDesc();
|
||||
fullDesc = currentSelectedEquipment.GetDesc(EC_IvtrItem.DescType.DESC_NORMAL, EC_Game.GetGameRun().GetHostPlayer().GetEquipment());
|
||||
}
|
||||
else
|
||||
{
|
||||
fullDesc = item.GetDesc();
|
||||
fullDesc = item.GetDesc(EC_IvtrItem.DescType.DESC_NORMAL, EC_Game.GetGameRun().GetHostPlayer().GetEquipment());
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(fullDesc))
|
||||
@@ -880,55 +874,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
// C++ code doesn't check IsInitialized() - it just calls GetWideString() directly
|
||||
// 完全按照C++代码获取扩展描述:g_pGame->GetItemExtDesc(m_tid)
|
||||
// C++代码不检查IsInitialized() - 它直接调用GetWideString()
|
||||
string szExtDesc = null;
|
||||
try
|
||||
{
|
||||
var itemExtDescTab = EC_Game.GetItemExtDesc();
|
||||
if (itemExtDescTab != null)
|
||||
{
|
||||
// First try to get mapped message ID (like TryGetItemExtDesc does)
|
||||
// 首先尝试获取映射的消息ID(如TryGetItemExtDesc所做)
|
||||
if (EC_Game.TryGetItemMsg(item.m_tid, out int messageId, out int displayMode))
|
||||
{
|
||||
szExtDesc = itemExtDescTab.GetWideString(messageId);
|
||||
}
|
||||
|
||||
// Fallback: direct lookup using tid (exactly like C++: m_ItemExtDesc.GetWideString(tid))
|
||||
// 回退:直接使用tid查找(完全像C++:m_ItemExtDesc.GetWideString(tid))
|
||||
if (string.IsNullOrEmpty(szExtDesc))
|
||||
{
|
||||
szExtDesc = itemExtDescTab.GetWideString(item.m_tid);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
// Only log once to avoid spam
|
||||
// 仅记录一次以避免垃圾日志
|
||||
if (!m_HasLoggedExtDescError)
|
||||
{
|
||||
Debug.LogWarning($"[InventoryUI] Error getting extended description: {ex.Message}");
|
||||
m_HasLoggedExtDescError = true;
|
||||
}
|
||||
}
|
||||
|
||||
// Display extended description if found (exactly like C++ checks: if (!szExtDesc || !szExtDesc[0]))
|
||||
// 如果找到扩展描述则显示(完全像C++检查:if (!szExtDesc || !szExtDesc[0]))
|
||||
string displayText = !string.IsNullOrEmpty(szExtDesc)
|
||||
? szExtDesc.Replace("\\r", "\n")
|
||||
: "";
|
||||
|
||||
// Debug logging to diagnose issues
|
||||
// 调试日志以诊断问题
|
||||
if (string.IsNullOrEmpty(displayText))
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Extended description is empty for tid={item.m_tid}. szExtDesc was null/empty.");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log($"[InventoryUI] Found extended description for tid={item.m_tid}, length={displayText.Length}");
|
||||
}
|
||||
|
||||
|
||||
// Setup equip and drop buttons
|
||||
SetupEquipButton(package, item);
|
||||
SetupDropButton(package, item);
|
||||
@@ -937,17 +883,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
// 先显示面板
|
||||
ShowDetailPanel(true);
|
||||
|
||||
// Set text directly - if this causes rebuild issues, we'll use coroutine
|
||||
// 直接设置文本 - 如果这导致重建问题,我们将使用协程
|
||||
if (extendedDescText != null)
|
||||
{
|
||||
extendedDescText.Set(displayText);
|
||||
Debug.Log($"[InventoryUI] Set extended description text, extendedDescText is {(extendedDescText == null ? "null" : "not null")}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[InventoryUI] extendedDescText is null! Check Inspector assignment.");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void SetupEquipButton(byte package, EC_IvtrItem item)
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 50210c0839c503b42843db0237a9c3a8
|
||||
@@ -1,3 +0,0 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 423a6efd71f143f08096d684ca414bba
|
||||
timeCreated: 1757752654
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c5535276db3184cac9313d3cc28bca47
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,538 @@
|
||||
// /*
|
||||
// * FILE: EC_IvtrWeapon.cpp
|
||||
// *
|
||||
// * DESCRIPTION:
|
||||
// *
|
||||
// * CREATED BY: Duyuxin, 2004/11/19
|
||||
// *
|
||||
// * HISTORY:
|
||||
// *
|
||||
// * Copyright (c) 2004 Archosaur Studio, All Rights Reserved.
|
||||
// */
|
||||
|
||||
// #include "EC_Global.h"
|
||||
// #include "EC_IvtrWeapon.h"
|
||||
// #include "EC_Game.h"
|
||||
// #include "EC_FixedMsg.h"
|
||||
// #include "EC_GameRun.h"
|
||||
// #include "EC_HostPlayer.h"
|
||||
// #include "EC_RTDebug.h"
|
||||
// #include "elementdataman.h"
|
||||
// #include "EC_Configs.h"
|
||||
using BrewMonster;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using System.Collections.Generic;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts;
|
||||
#region C# regions
|
||||
// #define new A_DEBUG_NEW
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// // Define and Macro
|
||||
// //
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// // Reference to External variables and functions
|
||||
// //
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// // Local Types and Variables and Global variables
|
||||
// //
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// // Local functions
|
||||
// //
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// // Implement CECIvtrWeapon
|
||||
// //
|
||||
// ///////////////////////////////////////////////////////////////////////////
|
||||
#endregion
|
||||
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
|
||||
public class EC_IvtrArmor : EC_IvtrEquip
|
||||
{
|
||||
//Attributes
|
||||
//Weapon essence data
|
||||
protected IVTR_ESSENCE_ARMOR m_Essence;
|
||||
// data in database
|
||||
protected ARMOR_MAJOR_TYPE m_pDBMajorType;
|
||||
protected ARMOR_SUB_TYPE m_pDBSubType;
|
||||
protected ARMOR_ESSENCE m_pDBEssence;
|
||||
|
||||
public EC_IvtrArmor(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
m_iCID = (int)InventoryClassId.ICID_ARMOR;
|
||||
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
|
||||
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||
m_pDBEssence = (ARMOR_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_pDBMajorType = (ARMOR_MAJOR_TYPE)pDB.get_data_ptr(m_pDBEssence.id_major_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_pDBSubType = (ARMOR_SUB_TYPE)pDB.get_data_ptr(m_pDBEssence.id_sub_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_iPileLimit = m_pDBEssence.pile_num_max;
|
||||
m_iPrice = m_pDBEssence.price;
|
||||
m_iShopPrice = m_pDBEssence.shop_price;
|
||||
m_i64EquipMask = m_pDBSubType.equip_mask;
|
||||
m_iProcType = (int)m_pDBEssence.proc_type;
|
||||
|
||||
FixProps = m_pDBEssence.fixed_props;
|
||||
RepairFee = m_pDBEssence.repairfee;
|
||||
ReputationReq = m_pDBEssence.require_reputation;
|
||||
}
|
||||
public EC_IvtrArmor(EC_IvtrArmor other) : base(other)
|
||||
{
|
||||
m_pDBEssence = other.m_pDBEssence;
|
||||
m_pDBMajorType = other.m_pDBMajorType;
|
||||
m_pDBSubType = other.m_pDBSubType;
|
||||
m_Essence = other.m_Essence;
|
||||
}
|
||||
|
||||
// CECIvtrWeapon::~CECIvtrWeapon()
|
||||
// {
|
||||
// }
|
||||
|
||||
public override bool SetItemInfo(byte[] pInfoData, int iDataLen)
|
||||
{
|
||||
base.SetItemInfo(pInfoData, iDataLen);
|
||||
if(pInfoData == null || iDataLen == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
CECDataReader dr = new CECDataReader(pInfoData ,iDataLen);
|
||||
// Skip equip requirements and endurance
|
||||
dr.Offset(6 * sizeof(short), CECDataReader.SEEK_CUR);
|
||||
dr.Offset(2 * sizeof(int), CECDataReader.SEEK_CUR);
|
||||
int iEssenceSize = dr.ReadShort();
|
||||
// Skip maker's information
|
||||
dr.ReadByte();
|
||||
int iMakerLen = dr.ReadByte();
|
||||
dr.Offset(iMakerLen, CECDataReader.SEEK_CUR);
|
||||
byte[] iEssenceData = dr.ReadData(iEssenceSize);
|
||||
m_Essence = new IVTR_ESSENCE_ARMOR(iEssenceData);
|
||||
// ���븽������˵��
|
||||
if(m_pDBEssence.fixed_props != 0 && m_pDBEssence.probability_addon_num0 != 1.0f)
|
||||
{
|
||||
// Get database data
|
||||
elementdataman pDataMan = ElementDataManProvider.GetElementDataMan();
|
||||
CECStringTab PropTab = EC_Game.GetItemExtProp();
|
||||
int i, iSize = 0;
|
||||
for(i=0;i<32;i++)
|
||||
{
|
||||
if(m_pDBEssence.addons[i].id_addon != 0)
|
||||
iSize++;
|
||||
}
|
||||
if(iSize > 0 && Props.Count == 0)
|
||||
{
|
||||
Props.Capacity = iSize;
|
||||
for(i=0;i<32;i++)
|
||||
{
|
||||
if(m_pDBEssence.addons[i].id_addon != 0)
|
||||
{
|
||||
Property Prop = new Property();
|
||||
Prop.Type = (int)m_pDBEssence.addons[i].id_addon;
|
||||
Prop.Embed = false;
|
||||
Prop.Suite = false;
|
||||
Prop.Engraved = false;
|
||||
Prop.Local = false;
|
||||
byte bType = PropTab.GetWideString(Prop.Type) != null ? (byte)0xff : (byte)0xff;
|
||||
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||
object pData = pDataMan.get_data_ptr(m_pDBEssence.addons[i].id_addon, ID_SPACE.ID_SPACE_ADDON, ref DataType);
|
||||
if (DataType != DATA_TYPE.DT_EQUIPMENT_ADDON)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
EQUIPMENT_ADDON pAddon = (EQUIPMENT_ADDON)pData;
|
||||
Prop.NumParam = pAddon.num_params;
|
||||
for(int j=0; j < Prop.NumParam; j++)
|
||||
{
|
||||
if(j==0)
|
||||
{
|
||||
Prop.Params[0] = pAddon.param1;
|
||||
}
|
||||
else if(j==1)
|
||||
{
|
||||
Prop.Params[1] = pAddon.param2;
|
||||
}
|
||||
else if(j==2)
|
||||
{
|
||||
Prop.Params[2] = pAddon.param3;
|
||||
}
|
||||
}
|
||||
Props.Add(Prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
catch ( System.Exception e)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// Get item default information from database
|
||||
public override void DefaultInfo()
|
||||
{
|
||||
LevelReq = m_pDBEssence.require_level;
|
||||
StrengthReq = m_pDBEssence.require_strength;
|
||||
AgilityReq = m_pDBEssence.require_agility;
|
||||
ReputationReq = m_pDBEssence.require_reputation;
|
||||
CurEndurance = m_pDBEssence.durability_min * ENDURANCE_SCALE;
|
||||
MaxEndurance = m_pDBEssence.durability_min * ENDURANCE_SCALE;
|
||||
}
|
||||
// Get item icon file name
|
||||
public override string GetIconFile()
|
||||
{
|
||||
return m_pDBEssence.FileIcon;
|
||||
}
|
||||
// Get item name
|
||||
public override string GetName()
|
||||
{
|
||||
return m_pDBEssence.Name;
|
||||
}
|
||||
// Get preview info
|
||||
public override string GetPreviewInfo()
|
||||
{
|
||||
int[] aPEEVals = new int[MAX_PEEINDEX];
|
||||
int[] aRefines = new int[MAX_REFINEINDEX];
|
||||
for(int i=0; i<MAX_PEEINDEX; i++)
|
||||
aPEEVals[i] = 0;
|
||||
for(int i=0; i<MAX_REFINEINDEX; i++)
|
||||
aRefines[i] = 0;
|
||||
m_strDesc = "";
|
||||
BuildAddOnPropDesc(aPEEVals, aRefines);
|
||||
CECStringTab pDescTab = EC_Game.GetItemDesc();
|
||||
// Physical defense
|
||||
if (m_Essence.defense - aPEEVals[PEEI_PHYDEF] + aRefines[REFINE_PHYDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_PHYDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.defense - aPEEVals[PEEI_PHYDEF] + aRefines[REFINE_PHYDEF]);
|
||||
}
|
||||
// Dodge
|
||||
if (m_Essence.armor - aPEEVals[PEEI_DODGE] + aRefines[REFINE_DODGE] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_DODGE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.armor - aPEEVals[PEEI_DODGE] + aRefines[REFINE_DODGE]);
|
||||
}
|
||||
// HP
|
||||
if (m_Essence.hp_enhance - aPEEVals[PEEI_HP] + aRefines[REFINE_HP] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_ADDHP));
|
||||
}
|
||||
// MP
|
||||
if (m_Essence.mp_enhance - aPEEVals[PEEI_MP] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_ADDMP));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.mp_enhance - aPEEVals[PEEI_MP]);
|
||||
}
|
||||
//Gold Resistance
|
||||
if (m_Essence.resistance[0] - aPEEVals[PEEI_GOLDDEF] + aRefines[REFINE_GOLDDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_GOLDDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.resistance[0] - aPEEVals[PEEI_GOLDDEF] + aRefines[REFINE_GOLDDEF]);
|
||||
}
|
||||
//Wood Resistance
|
||||
if (m_Essence.resistance[1] - aPEEVals[PEEI_WOODDEF] + aRefines[REFINE_WOODDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_WOODDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.resistance[1] - aPEEVals[PEEI_WOODDEF] + aRefines[REFINE_WOODDEF]);
|
||||
}
|
||||
//Water Resistance
|
||||
if (m_Essence.resistance[2] - aPEEVals[PEEI_WATERDEF] + aRefines[REFINE_WATERDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_WATERDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.resistance[2] - aPEEVals[PEEI_WATERDEF] + aRefines[REFINE_WATERDEF]);
|
||||
}
|
||||
//Fire Resistance
|
||||
if (m_Essence.resistance[3] - aPEEVals[PEEI_FIREDEF] + aRefines[REFINE_FIREDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_FIREDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.resistance[3] - aPEEVals[PEEI_FIREDEF] + aRefines[REFINE_FIREDEF]);
|
||||
}
|
||||
//Earth Resistance
|
||||
if (m_Essence.resistance[4] - aPEEVals[PEEI_EARTHDEF] + aRefines[REFINE_EARTHDEF] != 0)
|
||||
{
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_EARTHDEFENCE));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, true, " %+d", m_Essence.resistance[4] - aPEEVals[PEEI_EARTHDEF] + aRefines[REFINE_EARTHDEF]);
|
||||
}
|
||||
return m_strDesc;
|
||||
}
|
||||
public override bool GetRefineEffectFor(string strEffect, RefineEffect rhs){
|
||||
strEffect = "";
|
||||
if (!m_bNeedUpdate){
|
||||
switch (rhs.RefineIndex){
|
||||
case REFINE_PHYDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_PHYDEFENCE),
|
||||
m_Essence.defense - rhs.APEEVals[PEEI_PHYDEF] + rhs.ARefines[REFINE_PHYDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_DODGE:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_DODGE),
|
||||
m_Essence.armor - rhs.APEEVals[PEEI_DODGE] + rhs.ARefines[REFINE_DODGE] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_HP:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_ADDHP),
|
||||
m_Essence.hp_enhance - rhs.APEEVals[PEEI_HP] + rhs.ARefines[REFINE_HP] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_GOLDDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_GOLDDEFENCE),
|
||||
m_Essence.resistance[0] - rhs.APEEVals[PEEI_GOLDDEF] + rhs.ARefines[REFINE_GOLDDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_WOODDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_WOODDEFENCE),
|
||||
m_Essence.resistance[1] - rhs.APEEVals[PEEI_WOODDEF] + rhs.ARefines[REFINE_WOODDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_WATERDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_WATERDEFENCE),
|
||||
m_Essence.resistance[2] - rhs.APEEVals[PEEI_WATERDEF] + rhs.ARefines[REFINE_WATERDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_FIREDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_FIREDEFENCE),
|
||||
m_Essence.resistance[3] - rhs.APEEVals[PEEI_FIREDEF] + rhs.ARefines[REFINE_FIREDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
case REFINE_EARTHDEF:
|
||||
strEffect = string.Format("{0}{1} {2}(+{3})",
|
||||
rhs.GetClrAttribute(),
|
||||
EC_Game.GetItemDesc().GetWideString((int)DescriptipionMsg.ITEMDESC_EARTHDEFENCE),
|
||||
m_Essence.resistance[4] - rhs.APEEVals[PEEI_EARTHDEF] + rhs.ARefines[REFINE_EARTHDEF] + rhs.GetIncEffect(),
|
||||
rhs.GetClrEffect(),
|
||||
rhs.GetIncEffect());
|
||||
break;
|
||||
}
|
||||
}
|
||||
return !string.IsNullOrEmpty(strEffect);
|
||||
}
|
||||
// Get item description text
|
||||
protected override string GetNormalDesc(bool bRepair){
|
||||
if (m_bNeedUpdate)
|
||||
return null;
|
||||
int[] aPEEVals = new int[MAX_PEEINDEX];
|
||||
int[] aRefines = new int[MAX_REFINEINDEX];
|
||||
for(int i=0; i<MAX_PEEINDEX; i++)
|
||||
aPEEVals[i] = 0;
|
||||
for(int i=0; i<MAX_REFINEINDEX; i++)
|
||||
aRefines[i] = 0;
|
||||
m_strDesc = "";
|
||||
BuildAddOnPropDesc(aPEEVals, aRefines);
|
||||
string strAddon = m_strDesc;
|
||||
m_strDesc = "";
|
||||
CECStringTab pDescTab = EC_Game.GetItemDesc();
|
||||
CECHostPlayer pHost = EC_Game.GetGameRun().GetHostPlayer();
|
||||
int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE;
|
||||
int lblue = (int)DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE;
|
||||
int red = (int)DescriptipionMsg.ITEMDESC_COL_RED;
|
||||
int namecol = DecideNameCol();
|
||||
uint dwPEE = PropEffectEssence();
|
||||
if (Holes != null && Holes.Count > 0)
|
||||
{
|
||||
AddDescText(namecol, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAMESOCKET), GetName(), Holes.Count);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddDescText(namecol, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NAME), GetName());
|
||||
}
|
||||
// Refine level
|
||||
if (RefineLvl > 0)
|
||||
AddDescText(-1, true, "{0} +{1}", pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVEL), RefineLvl);
|
||||
else
|
||||
m_strDesc += "\\r";
|
||||
AddIDDescText();
|
||||
AddBindDescText();
|
||||
// Is destroying?
|
||||
AddDestroyingDesc((int)m_pDBEssence.id_drop_after_damaged, m_pDBEssence.num_drop_after_damaged);
|
||||
AddExpireTimeDesc();
|
||||
// Sub class name
|
||||
AddDescText(white, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_CLASSNAME), m_pDBSubType.name.ToString());
|
||||
// Weapon level
|
||||
AddDescText(-1, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVEL), m_pDBEssence.level);
|
||||
|
||||
// Physical defence
|
||||
if (m_Essence.defense - aPEEVals[PEEI_PHYDEF] + aRefines[REFINE_PHYDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_PHYDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.defense - aPEEVals[PEEI_PHYDEF] + aRefines[REFINE_PHYDEF]);
|
||||
}
|
||||
// Dodge
|
||||
if (m_Essence.armor - aPEEVals[PEEI_DODGE] + aRefines[REFINE_DODGE] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DODGE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.armor - aPEEVals[PEEI_DODGE] + aRefines[REFINE_DODGE]);
|
||||
}
|
||||
// HP
|
||||
if (m_Essence.hp_enhance - aPEEVals[PEEI_HP] + aRefines[REFINE_HP] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ADDHP));
|
||||
AddDescText(white, true, " +{0}", m_Essence.hp_enhance - aPEEVals[PEEI_HP] + aRefines[REFINE_HP]);
|
||||
}
|
||||
// MP
|
||||
if (m_Essence.mp_enhance - aPEEVals[PEEI_MP] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ADDMP));
|
||||
AddDescText(white, true, " +{0}", m_Essence.mp_enhance - aPEEVals[PEEI_MP]);
|
||||
}
|
||||
// Gold Resistance
|
||||
if (m_Essence.resistance[0] - aPEEVals[PEEI_GOLDDEF] + aRefines[REFINE_GOLDDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_GOLDDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.resistance[0] - aPEEVals[PEEI_GOLDDEF] + aRefines[REFINE_GOLDDEF]);
|
||||
}
|
||||
// Wood Resistance
|
||||
if (m_Essence.resistance[1] - aPEEVals[PEEI_WOODDEF] + aRefines[REFINE_WOODDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_WOODDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.resistance[1] - aPEEVals[PEEI_WOODDEF] + aRefines[REFINE_WOODDEF]);
|
||||
}
|
||||
// Water Resistance
|
||||
if (m_Essence.resistance[2] - aPEEVals[PEEI_WATERDEF] + aRefines[REFINE_WATERDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_WATERDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.resistance[2] - aPEEVals[PEEI_WATERDEF] + aRefines[REFINE_WATERDEF]);
|
||||
}
|
||||
// Fire Resistance
|
||||
if (m_Essence.resistance[3] - aPEEVals[PEEI_FIREDEF] + aRefines[REFINE_FIREDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_FIREDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.resistance[3] - aPEEVals[PEEI_FIREDEF] + aRefines[REFINE_FIREDEF]);
|
||||
}
|
||||
// Earth Resistance
|
||||
if (m_Essence.resistance[4] - aPEEVals[PEEI_EARTHDEF] + aRefines[REFINE_EARTHDEF] != 0)
|
||||
{
|
||||
AddDescText(white, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_EARTHDEFENCE));
|
||||
AddDescText(white, true, " +{0}", m_Essence.resistance[4] - aPEEVals[PEEI_EARTHDEF] + aRefines[REFINE_EARTHDEF]);
|
||||
}
|
||||
// Endurance
|
||||
int col = white;
|
||||
if (CurEndurance == 0)
|
||||
col = red;
|
||||
else if ((dwPEE & PEE_ENDURANCE) != 0)
|
||||
col = lblue;
|
||||
AddDescText(col, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ENDURANCE));
|
||||
AddDescText(col, true, " {0}/{1}", VisualizeEndurance(CurEndurance), VisualizeEndurance(MaxEndurance));
|
||||
|
||||
// Profession requirement
|
||||
AddProfReqDesc((uint)ProfReq);
|
||||
// Level requirment
|
||||
if (LevelReq != 0)
|
||||
{
|
||||
col = pHost.GetMaxLevelSofar() >= LevelReq ? white : red;
|
||||
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEVELREQ), LevelReq);
|
||||
}
|
||||
// Strength requirment
|
||||
if (StrengthReq != 0)
|
||||
{
|
||||
col = pHost.GetExtendProps().bs.strength < StrengthReq ? red : ((dwPEE & PEE_STRENGTHREQ) != 0 ? lblue : white);
|
||||
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_STRENGTHREQ), StrengthReq);
|
||||
}
|
||||
// Agility requirment
|
||||
if (AgilityReq != 0)
|
||||
{
|
||||
col = pHost.GetExtendProps().bs.agility < AgilityReq ? red : ((dwPEE & PEE_AGILITYREQ) != 0 ? lblue : white);
|
||||
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_AGILITYREQ), AgilityReq);
|
||||
}
|
||||
// Vitality requirment
|
||||
if (VitalityReq != 0)
|
||||
{
|
||||
col = pHost.GetExtendProps().bs.vitality < VitalityReq ? red : ((dwPEE & PEE_VITALITYREQ) != 0 ? lblue : white);
|
||||
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_VITALITYREQ), VitalityReq);
|
||||
}
|
||||
// Energy requirment
|
||||
if (EnergyReq != 0)
|
||||
{
|
||||
col = pHost.GetExtendProps().bs.energy < EnergyReq ? red : ((dwPEE & PEE_ENERGYREQ) != 0 ? lblue : white);
|
||||
AddDescText(col, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ENERGYREQ), EnergyReq);
|
||||
}
|
||||
// Reputation requirement
|
||||
AddReputationReqDesc();
|
||||
// Add addon properties
|
||||
if (!string.IsNullOrEmpty(strAddon))
|
||||
m_strDesc += strAddon;
|
||||
// Build tessera description
|
||||
BuildTesseraDesc();
|
||||
if(m_pDBEssence.fixed_props == 0 && m_bIsInNPCPack)
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL2_BRIGHTBLUE, true, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_HASRANDOM_PROP));
|
||||
// Price
|
||||
AddPriceDesc(white, bRepair);
|
||||
AddSharpenerDesc();
|
||||
AddEngravedDesc();
|
||||
AddMakerDesc();
|
||||
m_strDesc += "\\r";
|
||||
AddSuiteDesc();
|
||||
AddExtDescText();
|
||||
return m_strDesc;
|
||||
}
|
||||
// // Does this equipment has random property ?
|
||||
public bool HasRandomProp()
|
||||
{
|
||||
for (int i = 0; i < Props.Count; i++)
|
||||
{
|
||||
if (!Props[i].Embed && !Props[i].Engraved && Props[i].Type == 472)
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
public int GetRefineMaterialNum()
|
||||
{
|
||||
return m_pDBEssence.material_need;
|
||||
}
|
||||
public override uint GetRefineAddOn()
|
||||
{
|
||||
return (uint)m_pDBEssence.levelup_addon;
|
||||
}
|
||||
public override string GetDropModel()
|
||||
{
|
||||
return m_pDBEssence.FileMatter;
|
||||
}
|
||||
public override bool IsRare()
|
||||
{
|
||||
return base.IsRare() || m_pDBEssence.level >= 6;
|
||||
}
|
||||
public override int GetItemLevel()
|
||||
{
|
||||
return m_pDBEssence.level;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 30e9ab67f87a542d59ff94440cb4e78c
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrArmorrune : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrArmorrune(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrArmorrune(EC_IvtrArmorrune other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1e7bdbebb3744fd78b3c9906d93f2ab
|
||||
@@ -0,0 +1,14 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrArrow : EC_IvtrEquip
|
||||
{
|
||||
public EC_IvtrArrow(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrArrow(EC_IvtrArrow other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d252cb1fcb2e946688fd6836548fd0d4
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrAutoHp : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrAutoHp(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrAutoHp(EC_IvtrAutoHp other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 67deebf01a6fc4678a8eb801cae72d0e
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrAutoMp : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrAutoMp(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrAutoMp(EC_IvtrAutoMp other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5e4aa169619834c7fa8e2421d81b9f36
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrBible : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrBible(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrBible(EC_IvtrBible other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f352a8dce1daf4a078e5f1df0222d854
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrCertificate : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrCertificate(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrCertificate(EC_IvtrCertificate other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 150298d1bd0fb446a8cc9231d5145cad
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrCongregate : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrCongregate(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrCongregate(EC_IvtrCongregate other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bf279660c3b2b4027bc9d97e691c1870
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrDamagerune : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrDamagerune(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrDamagerune(EC_IvtrDamagerune other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d2481f9333ffc4852bb83fb78511f6da
|
||||
@@ -0,0 +1,79 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Define and Macro
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Reference to External variables and functions
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Local Types and Variables and Global variables
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Local functions
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Implement CECIvtrDecoration
|
||||
//
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
using BrewMonster;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using System.Collections.Generic;
|
||||
using BrewMonster.Network;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
|
||||
public class EC_IvtrDecoration : EC_IvtrEquip
|
||||
{
|
||||
protected IVTR_ESSENCE_DECORATION m_Essence;
|
||||
protected DECORATION_MAJOR_TYPE m_pDBMajorType;
|
||||
protected DECORATION_SUB_TYPE m_pDBSubType;
|
||||
protected DECORATION_ESSENCE m_pDBEssence;
|
||||
|
||||
public EC_IvtrDecoration(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
m_iCID = (int)InventoryClassId.ICID_DECORATION;
|
||||
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
|
||||
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||
m_pDBEssence = (DECORATION_ESSENCE)pDB.get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_pDBMajorType = (DECORATION_MAJOR_TYPE)pDB.get_data_ptr(m_pDBEssence.id_major_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_pDBSubType = (DECORATION_SUB_TYPE)pDB.get_data_ptr(m_pDBEssence.id_sub_type, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
m_iPileLimit = m_pDBEssence.pile_num_max;
|
||||
m_iPrice = m_pDBEssence.price;
|
||||
m_iShopPrice = m_pDBEssence.shop_price;
|
||||
m_i64EquipMask = m_pDBSubType.equip_mask;
|
||||
m_iProcType = (int)m_pDBEssence.proc_type;
|
||||
|
||||
FixProps = m_pDBEssence.fixed_props;
|
||||
RepairFee = m_pDBEssence.repairfee;
|
||||
ReputationReq = m_pDBEssence.require_reputation;
|
||||
}
|
||||
|
||||
public EC_IvtrDecoration(EC_IvtrDecoration other) : base(other)
|
||||
{
|
||||
m_pDBEssence = other.m_pDBEssence;
|
||||
m_pDBMajorType = other.m_pDBMajorType;
|
||||
m_pDBSubType = other.m_pDBSubType;
|
||||
m_Essence = other.m_Essence;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 238a4e2d1554d44b0a9f3f283a9badd7
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrDestroyingEssence : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrDestroyingEssence(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrDestroyingEssence(EC_IvtrDestroyingEssence other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 584e97711b3bb4f97a18866bd56ce985
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrDoubleExp : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrDoubleExp(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrDoubleExp(EC_IvtrDoubleExp other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 684f0b389343e420dbf9d02a184554b8
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrDyeTicket : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrDyeTicket(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrDyeTicket(EC_IvtrDyeTicket other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2b30a0678c3bb488e8579f6b1cff0847
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrDynSkillEquip : EC_IvtrEquip
|
||||
{
|
||||
public EC_IvtrDynSkillEquip(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrDynSkillEquip(EC_IvtrDynSkillEquip other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a1a5aae82e25b4ce5aeb499cb804f9fa
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrElement : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrElement(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrElement(EC_IvtrElement other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 28e3dc4074f0246449da8b794ca2a018
|
||||
+399
-173
@@ -2,6 +2,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using UnityEngine;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using ModelRenderer.Scripts.GameData;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
using BrewMonster;
|
||||
@@ -14,6 +15,8 @@ using System.Reflection;
|
||||
using BrewMonster.Scripts.Managers;
|
||||
using BrewMonster.Scripts;
|
||||
using UnityEngine.AddressableAssets;
|
||||
using CSNetwork.Protocols;
|
||||
using Unity.VisualScripting;
|
||||
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
@@ -25,14 +28,83 @@ namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
#region Constants and Enums
|
||||
|
||||
// Item Class IDs
|
||||
public const int ICID_EQUIP = 1;
|
||||
public const int ICID_WEAPON = 2;
|
||||
|
||||
public enum EQUIP_CLASS_ID
|
||||
{
|
||||
ICID_ITEM = -100,
|
||||
ICID_EQUIP = -101,
|
||||
ICID_ARMOR = 0,
|
||||
ICID_ARMORRUNE,
|
||||
ICID_ARROW,
|
||||
ICID_DECORATION,
|
||||
ICID_DMGRUNE,
|
||||
ICID_ELEMENT,
|
||||
ICID_FASHION,
|
||||
ICID_FLYSWORD,
|
||||
ICID_MATERIAL,
|
||||
ICID_MEDICINE,
|
||||
ICID_REVSCROLL,
|
||||
ICID_SKILLTOME,
|
||||
ICID_TOSSMAT,
|
||||
ICID_TOWNSCROLL,
|
||||
ICID_UNIONSCROLL,
|
||||
ICID_WEAPON,
|
||||
ICID_TASKITEM,
|
||||
ICID_STONE,
|
||||
ICID_WING,
|
||||
ICID_TASKDICE,
|
||||
ICID_TASKNMMATTER,
|
||||
ICID_ERRORITEM,
|
||||
ICID_FACETICKET,
|
||||
ICID_FACEPILL,
|
||||
ICID_GM_GENERATOR,
|
||||
ICID_RECIPE,
|
||||
ICID_PETEGG,
|
||||
ICID_PETFOOD,
|
||||
ICID_PETFACETICKET,
|
||||
ICID_FIREWORK,
|
||||
ICID_TANKCALLIN,
|
||||
ICID_SKILLMATTER,
|
||||
ICID_REFINETICKET,
|
||||
ICID_DESTROYINGESSENCE,
|
||||
ICID_BIBLE,
|
||||
ICID_SPEAKER,
|
||||
ICID_AUTOHP,
|
||||
ICID_AUTOMP,
|
||||
ICID_DOUBLEEXP,
|
||||
ICID_TRANSMITSCROLL,
|
||||
ICID_DYETICKET,
|
||||
ICID_GOBLIN,
|
||||
ICID_GOBLIN_EQUIP,
|
||||
ICID_GOBLIN_EXPPILL,
|
||||
ICID_CERTIFICATE,
|
||||
ICID_TARGETITEM,
|
||||
ICID_LOOKINFOITEM,
|
||||
ICID_INCSKILLABILITY,
|
||||
ICID_WEDDINGBOOKCARD,
|
||||
ICID_WEDDINGINVITECARD,
|
||||
ICID_SHARPENER,
|
||||
ICID_FACTIONMATERIAL,
|
||||
ICID_CONGREGATE,
|
||||
ICID_FORCETOKEN,
|
||||
ICID_DYNSKILLEQUIP,
|
||||
ICID_MONEYCONVERTIBLE,
|
||||
ICID_MONSTERSPIRIT,
|
||||
ICID_GENERALCARD,
|
||||
ICID_GENERALCARD_DICE,
|
||||
ICID_SHOPTOKEN,
|
||||
ICID_UNIVERSAL_TOKEN,
|
||||
}
|
||||
// Item Made From Types
|
||||
public const byte IMT_NULL = 0;
|
||||
public const byte IMT_SIGN = 1;
|
||||
|
||||
public enum ITEM_MAKE_TAG
|
||||
{
|
||||
IMT_NULL,
|
||||
IMT_CREATE, // GM ����
|
||||
IMT_DROP, // �������
|
||||
IMT_SHOP, // �̳ǻ��̵����
|
||||
IMT_PRODUCE, // ������
|
||||
IMT_SIGN, // װ��ǩ��
|
||||
};
|
||||
// Property Effect Essence Flags
|
||||
public const uint PEE_PHYDAMAGE = 0x00000001;
|
||||
public const uint PEE_MAGICDAMAGE = 0x00000002;
|
||||
@@ -97,11 +169,14 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
#endregion
|
||||
|
||||
#region Fields
|
||||
#region Public Fields
|
||||
|
||||
// Basic Item Properties
|
||||
public int TemplateId { get; set; }
|
||||
public int ExpireDate { get; set; }
|
||||
/// <summary>
|
||||
/// class id
|
||||
/// </summary>
|
||||
public int CID { get; set; }
|
||||
public int Price { get; set; }
|
||||
public int Count { get; set; }
|
||||
@@ -136,11 +211,9 @@ namespace PerfectWorld.Scripts.Managers
|
||||
// Equipment Arrays
|
||||
public List<int> Holes { get; set; }
|
||||
public List<Property> Props { get; set; }
|
||||
|
||||
// Description
|
||||
protected string m_strDesc = "";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
#region Base Stats (from Element Data)
|
||||
|
||||
@@ -497,11 +570,11 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
#region Constructor
|
||||
|
||||
public EC_IvtrEquip(int tid, int expireDate)
|
||||
public EC_IvtrEquip(int tid, int expireDate) : base(tid, expireDate)
|
||||
{
|
||||
TemplateId = tid;
|
||||
ExpireDate = expireDate;
|
||||
CID = ICID_EQUIP;
|
||||
CID = (int)InventoryClassId.ICID_EQUIP;
|
||||
Price = 0;
|
||||
Count = 1;
|
||||
PriceScale = 1.0f;
|
||||
@@ -568,8 +641,9 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Set item detail information from binary data
|
||||
/// </summary>
|
||||
public bool SetItemInfo(byte[] infoData, int dataLen)
|
||||
public override bool SetItemInfo(byte[] infoData, int dataLen)
|
||||
{
|
||||
base.SetItemInfo(infoData, dataLen);
|
||||
if (infoData == null || dataLen == 0)
|
||||
return true;
|
||||
|
||||
@@ -588,7 +662,6 @@ namespace PerfectWorld.Scripts.Managers
|
||||
return true;
|
||||
}
|
||||
|
||||
Debug.LogError("EC_IvtrEquip::SetItemInfo: could not parse detail payload");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -596,62 +669,50 @@ namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
try
|
||||
{
|
||||
int offset = 0;
|
||||
|
||||
if (len < 6 * 2 + 2 * 4 + 2) return false;
|
||||
|
||||
LevelReq = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
ProfReq = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
StrengthReq= BitConverter.ToInt16(data, offset); offset += 2;
|
||||
VitalityReq= BitConverter.ToInt16(data, offset); offset += 2;
|
||||
AgilityReq = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
EnergyReq = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
|
||||
CurEndurance = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
MaxEndurance = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
|
||||
int essenceSize = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
|
||||
// Maker info (type + length + payload)
|
||||
if (offset + 2 <= len)
|
||||
CECDataReader dr = new CECDataReader(data, len);
|
||||
LevelReq = dr.ReadShort();
|
||||
ProfReq = dr.ReadShort();
|
||||
StrengthReq= dr.ReadShort();
|
||||
VitalityReq= dr.ReadShort();
|
||||
AgilityReq = dr.ReadShort();
|
||||
EnergyReq = dr.ReadShort();
|
||||
CurEndurance = dr.ReadInt();
|
||||
MaxEndurance = dr.ReadInt();
|
||||
int essenceSize = dr.ReadShort();
|
||||
ReadMakerInfo(dr);
|
||||
dr.Offset(essenceSize, CECDataReader.SEEK_CUR);
|
||||
if(essenceSize < 0 )
|
||||
{
|
||||
ReadMakerInfo(data, ref offset);
|
||||
throw new Exception("TYPE_DATAERR");
|
||||
}
|
||||
|
||||
if (essenceSize < 0 || offset + essenceSize > len) return false;
|
||||
offset += essenceSize; // skip essence for now
|
||||
|
||||
if (offset + 2 + 2 > len) return false;
|
||||
int numHole = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
StoneMask = BitConverter.ToUInt16(data, offset); offset += 2;
|
||||
|
||||
Holes.Clear();
|
||||
int numHole = dr.ReadShort();
|
||||
StoneMask = (ushort)dr.ReadShort();
|
||||
if (numHole > 0)
|
||||
{
|
||||
if (offset + 4 * numHole > len) return false;
|
||||
Holes.Clear();
|
||||
Holes.Capacity = numHole;
|
||||
for (int i = 0; i < numHole; i++)
|
||||
{
|
||||
Holes.Add(BitConverter.ToInt32(data, offset)); offset += 4;
|
||||
Holes.Add(dr.ReadInt());
|
||||
}
|
||||
}
|
||||
else if (numHole < 0)
|
||||
else if (numHole == 0)
|
||||
{
|
||||
return false;
|
||||
Holes.Clear();
|
||||
}
|
||||
|
||||
if (offset + 4 > len) return false;
|
||||
int numProp = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
|
||||
Props.Clear();
|
||||
else
|
||||
{
|
||||
throw new Exception("TYPE_DATAERR");
|
||||
}
|
||||
int numProp = dr.ReadInt();
|
||||
if (numProp > 0)
|
||||
{
|
||||
Props.Clear();
|
||||
Props.Capacity = numProp;
|
||||
for (int i = 0; i < numProp; i++)
|
||||
{
|
||||
if (offset + 4 > len) return false;
|
||||
int type = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
|
||||
int type = dr.ReadInt();
|
||||
Property prop = new Property();
|
||||
prop.Type = type & 0x1fff;
|
||||
prop.NumParam = (type & 0x6000) >> 13;
|
||||
@@ -662,15 +723,18 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
for (int j = 0; j < prop.NumParam; j++)
|
||||
{
|
||||
if (offset + 4 > len) return false;
|
||||
prop.Params[j] = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
prop.Params[j] = dr.ReadInt();
|
||||
}
|
||||
Props.Add(prop);
|
||||
}
|
||||
}
|
||||
else if (numProp < 0)
|
||||
else if (numProp == 0)
|
||||
{
|
||||
return false;
|
||||
Props.Clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception("TYPE_DATAERR");
|
||||
}
|
||||
|
||||
// Sanity check to catch misalignment
|
||||
@@ -679,7 +743,10 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
return true;
|
||||
}
|
||||
catch { return false; }
|
||||
catch (System.Exception ex) {
|
||||
BMLogger.LogError("CECIvtrEquip::SetItemInfo, data read error (" + ex.GetType() + ")" + ex.StackTrace);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
private bool TryParseEquipInfoLegacy(byte[] data, int len)
|
||||
@@ -706,7 +773,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
MaxEndurance = BitConverter.ToInt32(data, offset); offset += 4;
|
||||
|
||||
int essenceSize = BitConverter.ToInt16(data, offset); offset += 2;
|
||||
ReadMakerInfo(data, ref offset);
|
||||
//ReadMakerInfo(data, ref offset);
|
||||
if (essenceSize < 0 || offset + essenceSize > len) return false;
|
||||
offset += essenceSize;
|
||||
|
||||
@@ -752,33 +819,55 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Read maker information from binary data
|
||||
/// </summary>
|
||||
private void ReadMakerInfo(byte[] data, ref int offset)
|
||||
private void ReadMakerInfo(CECDataReader dr)
|
||||
{
|
||||
MadeFrom = data[offset++];
|
||||
int makerLen = data[offset++];
|
||||
|
||||
// Debug: Log the bytes at current position before reading
|
||||
// We need to check what bytes are actually at the reader position
|
||||
MadeFrom = dr.ReadByte();
|
||||
int makerLen = dr.ReadByte();
|
||||
if (makerLen > 0)
|
||||
{
|
||||
if (MadeFrom == IMT_SIGN)
|
||||
if (MadeFrom == (byte)ITEM_MAKE_TAG.IMT_SIGN)
|
||||
{
|
||||
ushort color = BitConverter.ToUInt16(data, offset); offset += 2;
|
||||
makerLen -= 2;
|
||||
|
||||
string maker = System.Text.Encoding.Unicode.GetString(data, offset, makerLen);
|
||||
offset += makerLen;
|
||||
ushort color = (ushort)dr.ReadShort();
|
||||
makerLen -= sizeof(ushort);
|
||||
|
||||
byte[] makerData = dr.ReadData(makerLen);
|
||||
// Find null terminator (0x00 0x00 for Unicode) and decode only up to that point
|
||||
int actualLength = makerLen;
|
||||
for (int i = 0; i < makerLen - 1; i += 2)
|
||||
{
|
||||
if (makerData[i] == 0 && makerData[i + 1] == 0)
|
||||
{
|
||||
actualLength = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
string maker = System.Text.Encoding.Unicode.GetString(makerData, 0, actualLength).TrimEnd('\0');
|
||||
if (string.IsNullOrEmpty(maker))
|
||||
{
|
||||
Debug.LogWarning($"EC_IvtrEquip::ReadMakerInfo: Invalid maker info with makerLen={makerLen + 2}");
|
||||
return;
|
||||
}
|
||||
|
||||
SetNewMark(maker, ColorFromWord(color));
|
||||
//#define FASHION_WORDCOLOR_TO_A3DCOLOR(c) A3DCOLORRGB(((c) & (0x1f << 10)) >> 7, ((c) & (0x1f << 5)) >> 2, ((c) & 0x1f) << 3)
|
||||
//A3DCOLOR clr = FASHION_WORDCOLOR_TO_A3DCOLOR(color);
|
||||
Color clr = ColorFromWord(color);
|
||||
SetNewMark(maker, clr);
|
||||
}
|
||||
else
|
||||
{
|
||||
Maker = System.Text.Encoding.Unicode.GetString(data, offset, makerLen);
|
||||
offset += makerLen;
|
||||
//m_strMaker = ACString((ACHAR*)dr.Read_Data(iMakerLen), iMakerLen / sizeof (ACHAR));
|
||||
byte[] makerData = dr.ReadData(makerLen);
|
||||
// Find null terminator (0x00 0x00 for Unicode) and decode only up to that point
|
||||
int actualLength = makerLen;
|
||||
for (int i = 0; i < makerLen - 1; i += 2)
|
||||
{
|
||||
if (makerData[i] == 0 && makerData[i + 1] == 0)
|
||||
{
|
||||
actualLength = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Maker = System.Text.Encoding.Unicode.GetString(makerData, 0, actualLength).TrimEnd('\0');
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -809,7 +898,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
// Add equipment mark display string
|
||||
Maker = string.Format(GetItemDescString(DescriptipionMsg.ITEMDESC_EQUIPMARK), Maker);
|
||||
}
|
||||
MadeFrom = string.IsNullOrEmpty(mark) ? IMT_NULL : IMT_SIGN;
|
||||
MadeFrom = string.IsNullOrEmpty(mark) ? (byte)ITEM_MAKE_TAG.IMT_NULL : (byte)ITEM_MAKE_TAG.IMT_SIGN;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -819,7 +908,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Get item name
|
||||
/// </summary>
|
||||
public string GetName()
|
||||
public virtual string GetName()
|
||||
{
|
||||
return EC_IvtrItemUtils.Instance.ResolveItemName(TemplateId);
|
||||
}
|
||||
@@ -929,7 +1018,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Check if item is rare
|
||||
/// </summary>
|
||||
public bool IsRare()
|
||||
public virtual bool IsRare()
|
||||
{
|
||||
return RefineLvl >= 3;
|
||||
}
|
||||
@@ -1210,7 +1299,6 @@ namespace PerfectWorld.Scripts.Managers
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"[EC_IvtrEquip] Loaded {s_propIdToType.Count} property mappings from Addressables");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1281,7 +1369,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Decide equipment name color
|
||||
/// </summary>
|
||||
public int DecideNameCol()
|
||||
protected override int DecideNameCol()
|
||||
{
|
||||
int index = GetColorStrID(TemplateId);
|
||||
if (index >= 0)
|
||||
@@ -1306,10 +1394,16 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Get color string ID for template
|
||||
/// </summary>
|
||||
private int GetColorStrID(int templateId)
|
||||
public override int GetColorStrID(int templateId)
|
||||
{
|
||||
// This would normally query the game's color system
|
||||
return -1;
|
||||
int iIndex = EC_Game.GetItemNameColorIdx(templateId);
|
||||
if (iIndex <= 0)
|
||||
return -1;
|
||||
else if (iIndex < 7)
|
||||
return (int)DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE + iIndex - 1;
|
||||
else
|
||||
return (int)DescriptipionMsg.ITEMDESC_COL2_START + iIndex - 7 + 1;
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -1320,7 +1414,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// Get normal in-inventory description, mirroring C++ CECIvtrEquip::GetNormalDesc.
|
||||
/// This is a single formatted string using ^color codes and '\\r' as line separators.
|
||||
/// </summary>
|
||||
public string GetNormalDesc()
|
||||
protected override string GetNormalDesc(bool bRepair)
|
||||
{
|
||||
// Build addon and refine properties and save it (like C++ does first)
|
||||
int[] aPEEVals = new int[MAX_PEEINDEX];
|
||||
@@ -1386,7 +1480,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
// 5) Add-on properties (non-embedded, non-suite, non-engraved)
|
||||
if (!string.IsNullOrEmpty(strAddon))
|
||||
m_strDesc += strAddon;
|
||||
|
||||
AddPriceDesc(white, false);
|
||||
// 6) Tessera / stones (socketed gems)
|
||||
BuildTesseraDesc();
|
||||
|
||||
@@ -1402,10 +1496,10 @@ namespace PerfectWorld.Scripts.Managers
|
||||
// 10) Maker & destroying info if any
|
||||
AddMakerDesc();
|
||||
// Destroying description is added by caller when needed; keep it optional here.
|
||||
|
||||
m_strDesc += "\\r";
|
||||
AddExtDescText();
|
||||
Debug.Log("m_strDesc add ext desc text: " + m_strDesc);
|
||||
// 11) Price (sell price scaled)
|
||||
AddPriceDesc(white, false);
|
||||
|
||||
return m_strDesc;
|
||||
}
|
||||
|
||||
@@ -2016,7 +2110,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Check the special refine property
|
||||
/// </summary>
|
||||
@@ -2104,7 +2198,6 @@ namespace PerfectWorld.Scripts.Managers
|
||||
RefineLvl = 0;
|
||||
PropNum = 0;
|
||||
EmbedNum = 0;
|
||||
|
||||
if (Props.Count == 0)
|
||||
return;
|
||||
|
||||
@@ -2155,6 +2248,11 @@ namespace PerfectWorld.Scripts.Managers
|
||||
public int GetSuiteID()
|
||||
{
|
||||
// This would normally query the game's suite equip table
|
||||
Dictionary<int, int> suiteEquipTab = EC_Game.GetSuiteEquipTab();
|
||||
if (suiteEquipTab.TryGetValue(GetTemplateID(), out int suiteId))
|
||||
{
|
||||
return suiteId;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -2246,7 +2344,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Add description text
|
||||
/// </summary>
|
||||
private void AddDescText(int color, bool newLine, string format, params object[] args)
|
||||
protected override void AddDescText(int color, bool newLine, string format, params object[] args)
|
||||
{
|
||||
if (color >= 0)
|
||||
{
|
||||
@@ -2605,40 +2703,40 @@ namespace PerfectWorld.Scripts.Managers
|
||||
if (!IsSharpenerProperty(propType))
|
||||
{
|
||||
switch (propType)
|
||||
{
|
||||
{
|
||||
case 0: // ������
|
||||
|
||||
if(!local)
|
||||
{
|
||||
if (aPEEVals != null)
|
||||
aPEEVals[PEEI_PHYDAMAGE] += p0;
|
||||
}
|
||||
|
||||
AddDescText(color, false, GetItemDescString(DescriptipionMsg.ITEMDESC_ADDPHYDAMAGE));
|
||||
AddDescText(color, true, " %+d", p0);
|
||||
break;
|
||||
if(!local)
|
||||
{
|
||||
if (aPEEVals != null)
|
||||
aPEEVals[PEEI_PHYDAMAGE] += p0;
|
||||
}
|
||||
|
||||
AddDescText(color, false, GetItemDescString(DescriptipionMsg.ITEMDESC_ADDPHYDAMAGE));
|
||||
AddDescText(color, true, " %+d", p0);
|
||||
break;
|
||||
|
||||
case 1: // ����������
|
||||
|
||||
if(local)
|
||||
{
|
||||
if(p0 != p1)
|
||||
{
|
||||
AddDescText(color, false, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
AddDescText(color, true, "~%d", p1);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddDescText(color, true, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (aPEEVals != null)
|
||||
aPEEVals[PEEI_MAX_PHYDAMAGE] += p0;
|
||||
|
||||
AddDescText(color, true, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
}
|
||||
if(local)
|
||||
{
|
||||
if(p0 != p1)
|
||||
{
|
||||
AddDescText(color, false, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
AddDescText(color, true, "~%d", p1);
|
||||
}
|
||||
else
|
||||
{
|
||||
AddDescText(color, true, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (aPEEVals != null)
|
||||
aPEEVals[PEEI_MAX_PHYDAMAGE] += p0;
|
||||
|
||||
AddDescText(color, true, GetItemDescString(DescriptipionMsg.ITEMDESC_MAXPHYDAMAGE), p0);
|
||||
}
|
||||
break;
|
||||
|
||||
case 2: // ������(%)
|
||||
@@ -4044,21 +4142,19 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Build add-ons properties description
|
||||
/// </summary>
|
||||
private void BuildAddOnPropDesc(int[] aPEEVals, int[] aRefines)
|
||||
protected void BuildAddOnPropDesc(int[] aPEEVals, int[] aRefines)
|
||||
{
|
||||
if (Props.Count == 0)
|
||||
return;
|
||||
|
||||
// Change color
|
||||
m_strDesc += GetColorString(DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE);
|
||||
|
||||
foreach (Property prop in Props)
|
||||
{
|
||||
// Properties added by Embedded stone will be printed by BuildTesseraDesc() later
|
||||
// Ignore suite properties also
|
||||
if (prop.Embed || prop.Suite || prop.Engraved)
|
||||
continue;
|
||||
|
||||
AddOneAddOnPropDesc(prop.Type, prop.Params, aPEEVals, aRefines, prop.Local);
|
||||
}
|
||||
}
|
||||
@@ -4069,7 +4165,6 @@ namespace PerfectWorld.Scripts.Managers
|
||||
public int GetSoulPowerAdded()
|
||||
{
|
||||
int added = 0;
|
||||
int propertyCount = Props.Count;
|
||||
|
||||
foreach (Property prop in Props)
|
||||
{
|
||||
@@ -4089,7 +4184,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Build tessera description (socketed gems/stones)
|
||||
/// </summary>
|
||||
private void BuildTesseraDesc()
|
||||
protected void BuildTesseraDesc()
|
||||
{
|
||||
if (Holes.Count == 0)
|
||||
return;
|
||||
@@ -4115,10 +4210,23 @@ namespace PerfectWorld.Scripts.Managers
|
||||
}
|
||||
}
|
||||
|
||||
struct SUITEITEM
|
||||
{
|
||||
public bool bEnabled;
|
||||
public int tid;
|
||||
public char[] szName;
|
||||
public string Name => new string(szName);
|
||||
public SUITEITEM(bool bEnabled, int tid)
|
||||
{
|
||||
this.bEnabled = bEnabled;
|
||||
this.tid = tid;
|
||||
this.szName = new char[32];
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Add suite description
|
||||
/// </summary>
|
||||
private void AddSuiteDesc()
|
||||
protected void AddSuiteDesc()
|
||||
{
|
||||
int idSuite = GetSuiteID();
|
||||
if (idSuite == 0)
|
||||
@@ -4133,63 +4241,128 @@ namespace PerfectWorld.Scripts.Managers
|
||||
// ASSERT in C++
|
||||
return;
|
||||
}
|
||||
|
||||
// In C#, we'd need to cast to SUITE_ESSENCE struct
|
||||
// For now, use placeholder values
|
||||
string suiteName = "Suite"; // TODO: Get from SUITE_ESSENCE.name
|
||||
int maxEquips = 12; // TODO: Get from SUITE_ESSENCE.max_equips
|
||||
|
||||
// Get host player (would normally come from EC_Game.GetGameRun().GetHostPlayer())
|
||||
// Check if this equipment is in host's equipment pack
|
||||
bool showDetail = false; // TODO: Check if m_pDescIvtr == pHostPlayer->GetEquipment()
|
||||
SUITE_ESSENCE pSuiteEss = (SUITE_ESSENCE)pData;
|
||||
CECHostPlayer hostPlayer = EC_Game.GetGameRun().GetHostPlayer();
|
||||
|
||||
// Colors
|
||||
int nameCol = DecideNameCol();
|
||||
int iNameCol = DecideNameCol();
|
||||
int lblue = (int)DescriptipionMsg.ITEMDESC_COL_LIGHTBLUE;
|
||||
int green = (int)DescriptipionMsg.ITEMDESC_COL_GREEN;
|
||||
int gray = (int)DescriptipionMsg.ITEMDESC_COL_GRAY;
|
||||
int white = (int)DescriptipionMsg.ITEMDESC_COL_WHITE;
|
||||
int yellow = (int)DescriptipionMsg.ITEMDESC_COL_YELLOW;
|
||||
|
||||
// Save current description
|
||||
string strCurDesc = m_strDesc;
|
||||
|
||||
if (!showDetail)
|
||||
bool bShowDetail = true;
|
||||
if (hostPlayer.GetEquipment() != m_pDescIvtr)
|
||||
bShowDetail = false;
|
||||
else
|
||||
{
|
||||
// Isn't equipment inventory, only add total suite number info.
|
||||
for(int i = 0; i < m_pDescIvtr.GetSize(); i++)
|
||||
{
|
||||
EC_IvtrItem pItem = m_pDescIvtr.GetItem(i);
|
||||
if (pItem == null)
|
||||
{
|
||||
bShowDetail = false;
|
||||
continue;
|
||||
}
|
||||
if (pItem.m_tid == this.m_tid)
|
||||
{
|
||||
bShowDetail = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!bShowDetail)
|
||||
{
|
||||
m_strDesc = "\\r\\r";
|
||||
AddDescText(nameCol, false, "{0} ({1})", suiteName, maxEquips);
|
||||
AddDescText(iNameCol, true, "{0} {1}/{2}", pSuiteEss.Name, 0, pSuiteEss.max_equips);
|
||||
m_strDesc = strCurDesc + m_strDesc;
|
||||
return;
|
||||
}
|
||||
|
||||
// Maximum number of suite items
|
||||
// Maximum number of suite items
|
||||
const int MAX_NUM = 12;
|
||||
SUITEITEM[] aSuiteItems = new SUITEITEM[MAX_NUM];
|
||||
|
||||
// Get equipped suite item list
|
||||
int[] aEquipped = new int[MAX_NUM];
|
||||
int itemCnt = 0; // TODO: Get from pHostPlayer->GetEquippedSuiteItem(idSuite, aEquipped)
|
||||
if (itemCnt == 0)
|
||||
return;
|
||||
|
||||
m_strDesc = "\\r\\r";
|
||||
|
||||
// Build suite addon properties at first
|
||||
if (itemCnt > 1)
|
||||
|
||||
int maxEquips = (pSuiteEss.max_equips > MAX_NUM) ? MAX_NUM : (int)pSuiteEss.max_equips;
|
||||
for(int i = 0; i < maxEquips; i++)
|
||||
{
|
||||
// Change color
|
||||
AddDescText(lblue, false, "");
|
||||
|
||||
// In C++, this loops through suite addons and displays them
|
||||
// For now, skip detailed addon display
|
||||
aSuiteItems[i].bEnabled = false;
|
||||
aSuiteItems[i].tid = (int)pSuiteEss.equipments[i].id;
|
||||
aSuiteItems[i].szName = new char[32];
|
||||
aSuiteItems[i].szName[0] = '\0';
|
||||
EC_IvtrItem pEquipItem = CreateItem((int)pSuiteEss.equipments[i].id, 0,1);
|
||||
if (pEquipItem != null)
|
||||
{
|
||||
aSuiteItems[i].szName = pEquipItem.GetName().ToCharArray();
|
||||
//delete pEquipItem;
|
||||
}
|
||||
else
|
||||
{
|
||||
aSuiteItems[i].tid = 0;
|
||||
}
|
||||
}
|
||||
int iItemCnt;
|
||||
int[] aEquipped = new int[MAX_NUM];
|
||||
iItemCnt = hostPlayer.GetEquippedSuiteItem(idSuite,ref aEquipped);
|
||||
if(iItemCnt == 0) return;
|
||||
|
||||
m_strDesc += "\\r\\r";
|
||||
// Build suite addon properties at first
|
||||
for (int i = 0; i < MAX_NUM; i++)
|
||||
{
|
||||
for(int j = 0; j < iItemCnt; j++)
|
||||
{
|
||||
if (aSuiteItems[i].tid == aEquipped[j])
|
||||
{
|
||||
aSuiteItems[i].bEnabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Add suite name
|
||||
AddDescText(yellow, true, "{0} ({1} / {2})", suiteName, itemCnt, maxEquips);
|
||||
|
||||
// List suite item names would go here
|
||||
// In C++, this creates SUITEITEM array and lists enabled/disabled items
|
||||
// green, gray, white colors would be used here for enabled/disabled items
|
||||
// For now, simplified version
|
||||
if(iItemCnt > 1)
|
||||
{
|
||||
// Change color
|
||||
AddDescText(lblue, false, "");
|
||||
|
||||
for (int i=1; i < iItemCnt; i++)
|
||||
{
|
||||
int idProp = (int)pSuiteEss.addons[i-1].id;
|
||||
if (idProp == 0)
|
||||
continue;
|
||||
|
||||
pData = dataMan.get_data_ptr((uint)idProp, ID_SPACE.ID_SPACE_ADDON, ref dataType);
|
||||
if (dataType != DATA_TYPE.DT_EQUIPMENT_ADDON)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
EQUIPMENT_ADDON pAddOn = (EQUIPMENT_ADDON)pData;
|
||||
|
||||
AddDescText(-1, false, "(%d) ", i+1);
|
||||
AddDescText(-1, true, "%s", pAddOn.Name);
|
||||
}
|
||||
}
|
||||
// Add suite name
|
||||
AddDescText(yellow/*iNameCol*/, true, "{0} ({1} / {2})", pSuiteEss.Name, iItemCnt, pSuiteEss.max_equips);
|
||||
for (int i=0; i < pSuiteEss.max_equips; i++)
|
||||
{
|
||||
SUITEITEM suiteItem = aSuiteItems[i];
|
||||
if (suiteItem.tid == 0)
|
||||
continue;
|
||||
|
||||
int col = suiteItem.bEnabled ? green : gray;
|
||||
bool bRet = (i == pSuiteEss.max_equips-1) ? false : true;
|
||||
|
||||
// Add item name
|
||||
AddDescText(col, bRet, " %s", suiteItem.Name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Add destroying description
|
||||
/// </summary>
|
||||
@@ -4225,7 +4398,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Add reputation requirement description
|
||||
/// </summary>
|
||||
private void AddReputationReqDesc()
|
||||
protected void AddReputationReqDesc()
|
||||
{
|
||||
if (ReputationReq == 0)
|
||||
return;
|
||||
@@ -4258,7 +4431,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Add sharpener description (磨刀石 properties)
|
||||
/// </summary>
|
||||
private void AddSharpenerDesc()
|
||||
protected void AddSharpenerDesc()
|
||||
{
|
||||
if (Props.Count == 0)
|
||||
return;
|
||||
@@ -4437,7 +4610,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// Append engraved property descriptions to the current description buffer.
|
||||
/// Mirrors the behaviour of the original C++ AddEngravedDesc.
|
||||
/// </summary>
|
||||
private void AddEngravedDesc()
|
||||
protected void AddEngravedDesc()
|
||||
{
|
||||
if (Props.Count == 0)
|
||||
return;
|
||||
@@ -4469,14 +4642,14 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Append maker description (signature / crafted by) to the description buffer.
|
||||
/// </summary>
|
||||
private void AddMakerDesc()
|
||||
protected void AddMakerDesc()
|
||||
{
|
||||
if (string.IsNullOrEmpty(Maker))
|
||||
return;
|
||||
|
||||
m_strDesc += "\\r";
|
||||
m_strDesc += "\\r";
|
||||
// For signed marks (IMT_SIGN), Maker already contains color codes and formatted text.
|
||||
if (MadeFrom == IMT_SIGN)
|
||||
if (MadeFrom == (byte)ITEM_MAKE_TAG.IMT_SIGN)
|
||||
{
|
||||
m_strDesc += Maker;
|
||||
}
|
||||
@@ -4489,7 +4662,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
fmt = "Made by {0}";
|
||||
}
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_GREEN, false, fmt, Maker);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -4557,7 +4730,7 @@ namespace PerfectWorld.Scripts.Managers
|
||||
/// <summary>
|
||||
/// Get preview info
|
||||
/// </summary>
|
||||
public string GetPreviewInfo()
|
||||
public virtual string GetPreviewInfo()
|
||||
{
|
||||
m_strDesc = "";
|
||||
BuildAddOnPropDesc(null, null);
|
||||
@@ -4620,7 +4793,60 @@ namespace PerfectWorld.Scripts.Managers
|
||||
|
||||
return m_strDesc;
|
||||
}
|
||||
|
||||
public struct RefineEffect
|
||||
{
|
||||
int m_refineIndex;
|
||||
public int RefineIndex{ get { return m_refineIndex; } set { m_refineIndex = value; } }
|
||||
int m_incEffect;
|
||||
public int IncEffect{ get { return m_incEffect; } set { m_incEffect = value; } }
|
||||
|
||||
int[] m_aPEEVals;
|
||||
public int[] APEEVals{ get { return m_aPEEVals; } set { m_aPEEVals = value; } }
|
||||
int[] m_aRefines;
|
||||
public int[] ARefines{ get { return m_aRefines; } set { m_aRefines = value; } }
|
||||
|
||||
string m_clrAttribute;
|
||||
public string ClrAttribute{ get { return m_clrAttribute; } set { m_clrAttribute = value; } }
|
||||
string m_clrEffect;
|
||||
public string ClrEffect{ get { return m_clrEffect; } set { m_clrEffect = value; } }
|
||||
|
||||
public RefineEffect(int[] aPEEVals, int[] aRefines, string clrAttribute, string clrEffect)
|
||||
{
|
||||
m_refineIndex = -1;
|
||||
m_incEffect = 0;
|
||||
m_aPEEVals = aPEEVals;
|
||||
m_aRefines = aRefines;
|
||||
m_clrAttribute = clrAttribute;
|
||||
m_clrEffect = clrEffect;
|
||||
}
|
||||
|
||||
public void Set(int refineIndex, int incEffect){
|
||||
m_refineIndex = refineIndex;
|
||||
m_incEffect = incEffect;
|
||||
}
|
||||
|
||||
public int GetIncEffect(){
|
||||
return m_incEffect;
|
||||
}
|
||||
public string GetClrAttribute(){
|
||||
return m_clrAttribute;
|
||||
}
|
||||
public string GetClrEffect(){
|
||||
return m_clrEffect;
|
||||
}
|
||||
};
|
||||
public virtual bool GetRefineEffectFor(string strEffect, RefineEffect rhs){ return false; }
|
||||
public static int CalcRefineEffect(int refineLevel, int baseEffect)
|
||||
{
|
||||
const int MAX_REFINE_LEVEL = 12;
|
||||
float[] refine_factor = new float[MAX_REFINE_LEVEL + 1]
|
||||
{ 0, 1.0f, 2.0f, 3.05f, 4.3f, 5.75f, 7.55f, 9.95f, 13f, 17.05f, 22.3f, 29f, 37.5f };
|
||||
if (refineLevel >= 0 && refineLevel <= MAX_REFINE_LEVEL){
|
||||
return (int)(baseEffect * refine_factor[refineLevel] + 0.1f);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f740d7d39c73f41a7a352c569c5442db
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFacePill : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFacePill(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFacePill(EC_IvtrFacePill other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a8785f321cb1c42e784355f0e452a2f8
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFaceTicket : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFaceTicket(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFaceTicket(EC_IvtrFaceTicket other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 97a6a36bce3c046a88e5c12e8ac79b03
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFactionMaterial : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFactionMaterial(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFactionMaterial(EC_IvtrFactionMaterial other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e3a3f865615ba4eaca9942d99698c332
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFashion : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFashion(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFashion(EC_IvtrFashion other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 8cbdfe37e56eb46be91ac835220dfb25
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFirework : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFirework(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFirework(EC_IvtrFirework other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9a4c28d0768f341b2aef5ec207875a31
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrFlysword : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrFlysword(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrFlysword(EC_IvtrFlysword other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 76745e0d1f528425eac71363b77c8cdd
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrForceToken : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrForceToken(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrForceToken(EC_IvtrForceToken other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de39c4a9aa1e1434c96ce485ea144291
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGeneralCard : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrGeneralCard(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGeneralCard(EC_IvtrGeneralCard other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: bfe40c592c38542d2a590310173f5c8c
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGeneralCardDice : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrGeneralCardDice(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGeneralCardDice(EC_IvtrGeneralCardDice other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ab3e2b5b4e09949a69cfc003d0103804
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGmGenerator : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrGmGenerator(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGmGenerator(EC_IvtrGmGenerator other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 92617801fcd734adfa84fb4d4ca84f0c
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGoblin : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrGoblin(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGoblin(EC_IvtrGoblin other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8726058514b64b129c6b619e7e1d3fa
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGoblinEquip : EC_IvtrEquip
|
||||
{
|
||||
public EC_IvtrGoblinEquip(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGoblinEquip(EC_IvtrGoblinEquip other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 89be2e126b8d44151bdd559226b0f306
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrGoblinExpPill : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrGoblinExpPill(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrGoblinExpPill(EC_IvtrGoblinExpPill other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4b383fd16faa444fa8dc9a5c4e4aac86
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrIncSkillAbility : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrIncSkillAbility(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrIncSkillAbility(EC_IvtrIncSkillAbility other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4050b6d604fee48c399953ca2707f650
|
||||
+296
-64
@@ -167,17 +167,14 @@ namespace BrewMonster.Scripts.Managers
|
||||
}
|
||||
}
|
||||
|
||||
Debug.Log($"[Inventory] Loaded multi-sprite atlas with {atlasSprites.Length} sprites");
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[Inventory] Failed to load multi-sprite atlas: iconlist_ivtrm_multisprite");
|
||||
_multiSpriteAtlas = new Sprite[0]; // Prevent repeated loading attempts
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Debug.LogError($"[Inventory] Error loading multi-sprite atlas: {ex.Message}");
|
||||
_multiSpriteAtlas = new Sprite[0]; // Prevent repeated loading attempts
|
||||
}
|
||||
}
|
||||
@@ -332,7 +329,6 @@ namespace BrewMonster.Scripts.Managers
|
||||
try
|
||||
{
|
||||
var val = getNameMethod.Invoke(data, null) as string;
|
||||
Debug.Log($"[Inventory] GetName method result: '{val}' (length: {val?.Length ?? 0})");
|
||||
if (!string.IsNullOrEmpty(val) && !string.IsNullOrWhiteSpace(val)) return val;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -459,15 +455,12 @@ namespace BrewMonster.Scripts.Managers
|
||||
ci += extraLen;
|
||||
}
|
||||
|
||||
var item = new EC_IvtrItem(tid, expireDate)
|
||||
{
|
||||
Package = byPackage,
|
||||
Slot = slotIndex,
|
||||
State = state,
|
||||
Crc = crc,
|
||||
Content = extra
|
||||
};
|
||||
item.SetCount(amount);
|
||||
var item = EC_IvtrItem.CreateItem(tid, expireDate, amount);
|
||||
item.Package = byPackage;
|
||||
item.Slot = slotIndex;
|
||||
item.State = state;
|
||||
item.Crc = crc;
|
||||
item.Content = extra;
|
||||
items.Add(item);
|
||||
}
|
||||
|
||||
@@ -707,7 +700,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
public bool m_bNeedUpdate; // true, detail data needs to be updated
|
||||
public bool m_bUpdating; // true, being updating detail data
|
||||
public uint m_dwUptTime; // Time when updating request was sent (ms)
|
||||
public string m_strDesc; // Item description
|
||||
public string m_strDesc = ""; // Item description
|
||||
public bool m_bIsInNPCPack; // true, this item is in NPC package
|
||||
public bool m_bLocalDetailData; // true, data from GetDetailDataFromLocal
|
||||
|
||||
@@ -812,6 +805,195 @@ namespace BrewMonster.Scripts.Managers
|
||||
public static EC_IvtrItem CreateItem(int tid, int expire_date, int iCount, int idSpace = 0)
|
||||
{
|
||||
var pItem = new EC_IvtrItem(tid, expire_date);
|
||||
DATA_TYPE DataType = DATA_TYPE.DT_INVALID;
|
||||
object data = ElementDataManProvider.GetElementDataMan().get_data_ptr((uint)tid, ID_SPACE.ID_SPACE_ESSENCE, ref DataType);
|
||||
Debug.Log("DataType: " + DataType);
|
||||
switch(DataType)
|
||||
{
|
||||
case DATA_TYPE.DT_WEAPON_ESSENCE:
|
||||
pItem = new EC_IvtrWeapon(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_PROJECTILE_ESSENCE:
|
||||
pItem = new EC_IvtrArrow(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_ARMOR_ESSENCE:
|
||||
pItem = new EC_IvtrArmor(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DECORATION_ESSENCE:
|
||||
pItem = new EC_IvtrDecoration(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FASHION_ESSENCE:
|
||||
pItem = new EC_IvtrFashion(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_MEDICINE_ESSENCE:
|
||||
pItem = new EC_IvtrMedicine(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_MATERIAL_ESSENCE:
|
||||
pItem = new EC_IvtrMaterial(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DAMAGERUNE_ESSENCE:
|
||||
pItem = new EC_IvtrDamagerune(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_ARMORRUNE_ESSENCE:
|
||||
pItem = new EC_IvtrArmorrune(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SKILLTOME_ESSENCE:
|
||||
pItem = new EC_IvtrSkilltome(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FLYSWORD_ESSENCE:
|
||||
pItem = new EC_IvtrFlysword(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TOWNSCROLL_ESSENCE:
|
||||
pItem = new EC_IvtrTownscroll(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_UNIONSCROLL_ESSENCE:
|
||||
pItem = new EC_IvtrUnionscroll(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_REVIVESCROLL_ESSENCE:
|
||||
pItem = new EC_IvtrRevScroll(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_ELEMENT_ESSENCE:
|
||||
pItem = new EC_IvtrElement(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TOSSMATTER_ESSENCE:
|
||||
pItem = new EC_IvtrTossMat(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TASKMATTER_ESSENCE:
|
||||
pItem = new EC_IvtrTaskmatter(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_STONE_ESSENCE:
|
||||
pItem = new EC_IvtrStone(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_WINGMANWING_ESSENCE:
|
||||
pItem = new EC_IvtrWing(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TASKDICE_ESSENCE:
|
||||
pItem = new EC_IvtrTaskDice(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TASKNORMALMATTER_ESSENCE:
|
||||
pItem = new EC_IvtrTaskNmMatter(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FACETICKET_ESSENCE:
|
||||
pItem = new EC_IvtrFaceTicket(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FACEPILL_ESSENCE:
|
||||
pItem = new EC_IvtrFacePill(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_GM_GENERATOR_ESSENCE:
|
||||
pItem = new EC_IvtrGmGenerator(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_RECIPE_ESSENCE:
|
||||
pItem = new EC_IvtrRecipe(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_PET_EGG_ESSENCE:
|
||||
pItem = new EC_IvtrPetEgg(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_PET_FOOD_ESSENCE:
|
||||
pItem = new EC_IvtrPetFood(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_PET_FACETICKET_ESSENCE:
|
||||
pItem = new EC_IvtrPetFaceTicket(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FIREWORKS_ESSENCE:
|
||||
pItem = new EC_IvtrFirework(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_WAR_TANKCALLIN_ESSENCE:
|
||||
pItem = new EC_IvtrWarTankCallin(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SKILLMATTER_ESSENCE:
|
||||
pItem = new EC_IvtrSkillMat(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_INC_SKILL_ABILITY_ESSENCE:
|
||||
pItem = new EC_IvtrIncSkillAbility(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_REFINE_TICKET_ESSENCE:
|
||||
pItem = new EC_IvtrRefineTicket(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DESTROYING_ESSENCE:
|
||||
pItem = new EC_IvtrDestroyingEssence(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_BIBLE_ESSENCE:
|
||||
pItem = new EC_IvtrBible(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SPEAKER_ESSENCE:
|
||||
pItem = new EC_IvtrSpeaker(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_AUTOHP_ESSENCE:
|
||||
pItem = new EC_IvtrAutoHp(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_AUTOMP_ESSENCE:
|
||||
pItem = new EC_IvtrAutoMp(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DOUBLE_EXP_ESSENCE:
|
||||
pItem = new EC_IvtrDoubleExp(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DYE_TICKET_ESSENCE:
|
||||
pItem = new EC_IvtrDyeTicket(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TRANSMITSCROLL_ESSENCE:
|
||||
pItem = new EC_IvtrTransmitScroll(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_GOBLIN_ESSENCE:
|
||||
pItem = new EC_IvtrGoblin(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_GOBLIN_EQUIP_ESSENCE:
|
||||
pItem = new EC_IvtrGoblinEquip(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_GOBLIN_EXPPILL_ESSENCE:
|
||||
pItem = new EC_IvtrGoblinExpPill(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SELL_CERTIFICATE_ESSENCE:
|
||||
pItem = new EC_IvtrCertificate(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_TARGET_ITEM_ESSENCE:
|
||||
pItem = new EC_IvtrTargetItem(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_LOOK_INFO_ESSENCE:
|
||||
pItem = new EC_IvtrLookInfoItem(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_WEDDING_BOOKCARD_ESSENCE:
|
||||
pItem = new EC_IvtrWeddingBookCard(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_WEDDING_INVITECARD_ESSENCE:
|
||||
pItem = new EC_IvtrWeddingInviteCard(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SHARPENER_ESSENCE:
|
||||
pItem = new EC_IvtrSharpener(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FACTION_MATERIAL_ESSENCE:
|
||||
pItem = new EC_IvtrFactionMaterial(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_CONGREGATE_ESSENCE:
|
||||
pItem = new EC_IvtrCongregate(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_FORCE_TOKEN_ESSENCE:
|
||||
pItem = new EC_IvtrForceToken(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_DYNSKILLEQUIP_ESSENCE:
|
||||
pItem = new EC_IvtrDynSkillEquip(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_MONEY_CONVERTIBLE_ESSENCE:
|
||||
pItem = new EC_IvtrMoneyConvertible(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_MONSTER_SPIRIT_ESSENCE:
|
||||
pItem = new EC_IvtrMonsterSpirit(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_POKER_ESSENCE:
|
||||
pItem = new EC_IvtrGeneralCard(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_POKER_DICE_ESSENCE:
|
||||
pItem = new EC_IvtrGeneralCardDice(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_SHOP_TOKEN_ESSENCE:
|
||||
pItem = new EC_IvtrShopToken(tid, expire_date);
|
||||
break;
|
||||
case DATA_TYPE.DT_UNIVERSAL_TOKEN_ESSENCE:
|
||||
pItem = new EC_IvtrUniversalToken(tid, expire_date);
|
||||
break;
|
||||
default:
|
||||
pItem = new EC_IvtrUnknown(tid, expire_date);
|
||||
break;
|
||||
}
|
||||
pItem.SetCount(iCount);
|
||||
return pItem;
|
||||
}
|
||||
@@ -951,7 +1133,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
/// <summary>Clone item (shallow copy, same as C++ default).</summary>
|
||||
public virtual EC_IvtrItem Clone()
|
||||
{
|
||||
return new EC_IvtrItem(this);
|
||||
return CreateItem(m_tid, m_expire_date, m_iCount, m_iCID);
|
||||
}
|
||||
|
||||
/// <summary>Get item cool time in milliseconds (0 by default).</summary>
|
||||
@@ -1154,10 +1336,20 @@ namespace BrewMonster.Scripts.Managers
|
||||
// m_dwUptTime could be set from a game time provider when available.
|
||||
}
|
||||
|
||||
public void GetDetailDataFromLocal()
|
||||
public virtual void GetDetailDataFromLocal()
|
||||
{
|
||||
// Placeholder: when itemdataman is ported, this will read default item content.
|
||||
SetItemInfo(null, 0);
|
||||
//itemdataman* pItemDataMan = g_pGame->GetItemDataMan();
|
||||
object pData_temp = itemdataman.get_item_for_sell((uint)m_tid);
|
||||
if(pData_temp == null)
|
||||
{
|
||||
SetItemInfo(null, 0);
|
||||
SetLocalProps();
|
||||
m_bLocalDetailData = true;
|
||||
return;
|
||||
}
|
||||
item_data pData = (item_data)pData_temp;
|
||||
SetItemInfo(pData.item_content, pData.content_length);
|
||||
SetLocalProps();
|
||||
m_bLocalDetailData = true;
|
||||
}
|
||||
|
||||
@@ -1188,25 +1380,9 @@ namespace BrewMonster.Scripts.Managers
|
||||
m_strDesc = string.Empty;
|
||||
|
||||
// Item name line
|
||||
string name = GetName();
|
||||
if (!string.IsNullOrEmpty(name))
|
||||
{
|
||||
AddDescText(0, true, name);
|
||||
}
|
||||
|
||||
// Core description from item_desc.txt (via EC_Game / TryGetItemMsg)
|
||||
string mainDesc = TryGetItemMainDesc();
|
||||
if (!string.IsNullOrEmpty(mainDesc))
|
||||
{
|
||||
AddDescText(0, true, mainDesc);
|
||||
}
|
||||
|
||||
// Extended description from item_ext_desc.txt
|
||||
string extDesc = TryGetItemExtDesc();
|
||||
if (!string.IsNullOrEmpty(extDesc))
|
||||
{
|
||||
AddDescText(0, true, extDesc);
|
||||
}
|
||||
CECStringTab pDescTab = EC_Game.GetItemDesc();
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_ERRORITEM));
|
||||
AddDescText((int)DescriptipionMsg.ITEMDESC_COL_WHITE, false, "({0})", m_tid);
|
||||
|
||||
TrimLastReturn();
|
||||
return m_strDesc;
|
||||
@@ -1230,8 +1406,32 @@ namespace BrewMonster.Scripts.Managers
|
||||
AddDescText(col, true, "Price: {0}", price);
|
||||
}
|
||||
|
||||
protected virtual void AddProfReqDesc(int iProfReq)
|
||||
protected virtual void AddProfReqDesc(uint iProfReq)
|
||||
{
|
||||
if (EC_ProfConfigs.ContainsAllProfession(iProfReq))
|
||||
{
|
||||
return;// All profession permit equirement
|
||||
}
|
||||
CECStringTab pDescTab = EC_Game.GetItemDesc();
|
||||
CECGameRun pGameRun = EC_Game.GetGameRun();
|
||||
CECHostPlayer pHost = pGameRun.GetHostPlayer();
|
||||
int col = (iProfReq & (1 << pHost.GetProfession())) != 0 ? (int)DescriptipionMsg.ITEMDESC_COL_WHITE : (int)DescriptipionMsg.ITEMDESC_COL_RED;
|
||||
AddDescText(col, false, pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_PROFESSIONREQ));
|
||||
for (int i = 0; i < (int)Profession.NUM_PROFESSION; i++)
|
||||
{
|
||||
if ((iProfReq & (1 << i)) != 0)
|
||||
{
|
||||
m_strDesc += " ";
|
||||
string profName = pGameRun.GetProfName(i);
|
||||
// Remove newline and carriage return characters that cause UI display issues
|
||||
if (!string.IsNullOrEmpty(profName))
|
||||
{
|
||||
profName = profName.Replace("\r", "").Replace("\n", "").Trim();
|
||||
}
|
||||
AddDescText(col, false, profName);
|
||||
}
|
||||
}
|
||||
AddDescText(col, true, " ");
|
||||
}
|
||||
|
||||
protected virtual int DecideNameCol()
|
||||
@@ -1243,7 +1443,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
{
|
||||
}
|
||||
|
||||
protected void AddDescText(int iCol, bool bRet, string szText, params object[] args)
|
||||
protected virtual void AddDescText(int iCol, bool bRet, string szText, params object[] args)
|
||||
{
|
||||
string line = (args != null && args.Length > 0) ? string.Format(szText, args) : szText;
|
||||
m_strDesc += line;
|
||||
@@ -1266,10 +1466,23 @@ namespace BrewMonster.Scripts.Managers
|
||||
// Add special properties description / 添加特殊属性描述
|
||||
var pDescTab = EC_Game.GetItemDesc();
|
||||
// Note: ITEMDESC_COL2_BRIGHTBLUE constant - adjust based on actual string table / 注意:ITEMDESC_COL2_BRIGHTBLUE常量 - 根据实际字符串表调整
|
||||
int green = 1000; // ITEMDESC_COL2_BRIGHTBLUE placeholder - adjust this value
|
||||
|
||||
int green = (int)DescriptipionMsg.ITEMDESC_COL2_BRIGHTBLUE; // ITEMDESC_COL2_BRIGHTBLUE placeholder - adjust this value
|
||||
if(typeof(EC_IvtrArmor) == this.GetType())
|
||||
{
|
||||
Debug.Log("This is an armor");
|
||||
}
|
||||
|
||||
Debug.Log("armor m_iCID: " + m_iCID);
|
||||
Debug.Log("armor m_iProcType: " + m_iProcType);
|
||||
if (m_iCID != (int)InventoryClassId.ICID_GOBLIN) // goblin does not need to display these special properties / 地精不需要显示这些特殊属性
|
||||
{
|
||||
Debug.Log("m_iCID != (int)InventoryClassId.ICID_GOBLIN");
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_NO_USER_TRASH: " + (m_iProcType & (int)ProcType.PROC_NO_USER_TRASH));
|
||||
Debug.Log("!((m_iProcType & (int)ProcType.PROC_BINDING) != 0): " + !((m_iProcType & (int)ProcType.PROC_BINDING) != 0));
|
||||
Debug.Log("((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0): " + ((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0));
|
||||
Debug.Log("((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0): " + ((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0));
|
||||
Debug.Log("((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0): " + ((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0));
|
||||
// Exact C++ logic: (PROC_NO_USER_TRASH) || (!PROC_BINDING && (PROC_DROPWHENDIE || ...))
|
||||
// 精确的C++逻辑:(PROC_NO_USER_TRASH) || (!PROC_BINDING && (PROC_DROPWHENDIE || ...))
|
||||
if ((m_iProcType & (int)ProcType.PROC_NO_USER_TRASH) != 0
|
||||
@@ -1293,121 +1506,140 @@ namespace BrewMonster.Scripts.Managers
|
||||
m_strDesc += szCol;
|
||||
}
|
||||
}
|
||||
|
||||
// Note: These message IDs are placeholders - adjust based on actual string table / 注意:这些消息ID是占位符 - 根据实际字符串表调整
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_DROPWHENDIE: " + (m_iProcType & (int)ProcType.PROC_DROPWHENDIE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_DROPWHENDIE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_DEAD_PROTECT placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2000); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DEAD_PROTECT);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_DROPPABLE: " + (m_iProcType & (int)ProcType.PROC_DROPPABLE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_DROPPABLE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_NO_DROP placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2001); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_DROP);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_SELLABLE: " + (m_iProcType & (int)ProcType.PROC_SELLABLE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_SELLABLE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_NO_TRADE placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2002); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_TRADE);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_TRADEABLE: " + (m_iProcType & (int)ProcType.PROC_TRADEABLE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_TRADEABLE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_NO_PLAYER_TRADE placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2003); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_PLAYER_TRADE);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_DISAPEAR: " + (m_iProcType & (int)ProcType.PROC_DISAPEAR));
|
||||
if ((m_iProcType & (int)ProcType.PROC_DISAPEAR) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_LEAVE_SCENE_DISAPEAR placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2004); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_LEAVE_SCENE_DISAPEAR);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_USE: " + (m_iProcType & (int)ProcType.PROC_USE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_USE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_USE_AFTER_PICK_UP placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2005); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_USE_AFTER_PICK_UP);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_DEADDROP: " + (m_iProcType & (int)ProcType.PROC_DEADDROP));
|
||||
if ((m_iProcType & (int)ProcType.PROC_DEADDROP) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_DROP_WHEN_DEAD placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2006); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DROP_WHEN_DEAD);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_OFFLINE: " + (m_iProcType & (int)ProcType.PROC_OFFLINE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_OFFLINE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_DROP_WHEN_OFFLINE placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2007); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_DROP_WHEN_OFFLINE);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_UNREPAIRABLE: " + (m_iProcType & (int)ProcType.PROC_UNREPAIRABLE));
|
||||
if ((m_iProcType & (int)ProcType.PROC_UNREPAIRABLE) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_UNREPAIRABLE placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2008); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_UNREPAIRABLE);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
Debug.Log("m_iProcType: " + m_iProcType);
|
||||
Debug.Log("m_iProcType & (int)ProcType.PROC_NO_USER_TRASH: " + (m_iProcType & (int)ProcType.PROC_NO_USER_TRASH));
|
||||
if ((m_iProcType & (int)ProcType.PROC_NO_USER_TRASH) != 0)
|
||||
{
|
||||
m_strDesc += "\\r";
|
||||
if (pDescTab != null && pDescTab.IsInitialized())
|
||||
{
|
||||
// ITEMDESC_NO_USER_TRASH placeholder - adjust this value
|
||||
string desc = pDescTab.GetWideString(2009); // Placeholder ID
|
||||
string desc = pDescTab.GetWideString((int)DescriptipionMsg.ITEMDESC_NO_USER_TRASH);
|
||||
if (!string.IsNullOrEmpty(desc))
|
||||
m_strDesc += desc;
|
||||
}
|
||||
Debug.Log("m_strDesc: " + m_strDesc);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.Log("m_iCID == (int)InventoryClassId.ICID_GOBLIN");
|
||||
TrimLastReturn();
|
||||
}
|
||||
}
|
||||
@@ -1484,7 +1716,7 @@ namespace BrewMonster.Scripts.Managers
|
||||
str = iPrice.ToString();
|
||||
}
|
||||
|
||||
protected int GetColorStrID(int tid)
|
||||
public virtual int GetColorStrID(int templateId)
|
||||
{
|
||||
// Placeholder: color index lookup; return -1 (white) by default.
|
||||
return -1;
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 566fc2d24eefe48e7bd10ed67d15563f
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrLookInfoItem : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrLookInfoItem(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrLookInfoItem(EC_IvtrLookInfoItem other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 384fce986646f438698912f0c15b9ba8
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrMaterial : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrMaterial(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrMaterial(EC_IvtrMaterial other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e681cc9149ec5499fa6584a02a3916e1
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrMedicine : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrMedicine(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrMedicine(EC_IvtrMedicine other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ed110c7e41c6f437791bdf92da68019c
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrMoneyConvertible : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrMoneyConvertible(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrMoneyConvertible(EC_IvtrMoneyConvertible other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 6b6e854a6db4c4d87aaaeba867d72bae
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrMonsterSpirit : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrMonsterSpirit(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrMonsterSpirit(EC_IvtrMonsterSpirit other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b3ec2fe733bae45c982969aed8b8eae0
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrPetEgg : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrPetEgg(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrPetEgg(EC_IvtrPetEgg other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 31d39c5195d7e45fa91082d7db9b3204
|
||||
@@ -0,0 +1,15 @@
|
||||
using BrewMonster.Scripts.Managers;
|
||||
namespace PerfectWorld.Scripts.Managers
|
||||
{
|
||||
public class EC_IvtrPetFaceTicket : EC_IvtrItem
|
||||
{
|
||||
public EC_IvtrPetFaceTicket(int tid, int expire_date) : base(tid, expire_date)
|
||||
{
|
||||
}
|
||||
|
||||
public EC_IvtrPetFaceTicket(EC_IvtrPetFaceTicket other) : base(other)
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7c61b694d841e4db5ac2811b04531e7f
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user