Add UI for Buff Icons. Refactor the UI Image Picture

This commit is contained in:
Chomper9981
2026-03-24 10:53:05 +07:00
parent ee75334b1d
commit 1f0da3b665
30 changed files with 15108 additions and 8188 deletions
+88 -223
View File
@@ -67,10 +67,10 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 7bf1ef4f98c0dee419cfb9127e7e5818, type: 3}
m_Type: 0
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
@@ -709,81 +709,6 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &1890154997624112612
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5857173885418295131}
- component: {fileID: 9194804127523329041}
- component: {fileID: 6875102937128418963}
m_Layer: 5
m_Name: Checkmark
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5857173885418295131
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1890154997624112612}
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: 7132502693153415359}
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: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9194804127523329041
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1890154997624112612}
m_CullTransparentMesh: 1
--- !u!114 &6875102937128418963
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1890154997624112612}
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: -2152444580018807177, guid: 7c25a5fa6c0f21a4293b99a5a43b5441, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2461742091615804038
GameObject:
m_ObjectHideFlags: 0
@@ -1193,7 +1118,7 @@ GameObject:
- component: {fileID: 7622385564662637144}
- component: {fileID: 5227547257879433914}
m_Layer: 5
m_Name: Panel
m_Name: AP_Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@@ -1488,10 +1413,10 @@ MonoBehaviour:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 61e9943fc4f2c7b418919d61e58f415c, type: 3}
m_Type: 0
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillMethod: 0
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
@@ -1506,14 +1431,14 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 4263483627851733539}
- component: {fileID: 55052431434720645}
- component: {fileID: 4093133904505044408}
m_Layer: 5
m_Name: BuffIconTemplate
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &4263483627851733539
RectTransform:
m_ObjectHideFlags: 0
@@ -1521,20 +1446,20 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3661057301147371696}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
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: 7132502693153415359}
m_Father: {fileID: 3313561919066668394}
m_Father: {fileID: 3110400451283435854}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 12, y: -12}
m_SizeDelta: {x: 24, y: 24}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &55052431434720645
--- !u!114 &4093133904505044408
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -1543,45 +1468,11 @@ MonoBehaviour:
m_GameObject: {fileID: 3661057301147371696}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Script: {fileID: 11500000, guid: 200754299bc29436e9c9d608b6927e2d, 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: 0
m_TargetGraphic: {fileID: 5829386100209031614}
toggleTransition: 1
graphic: {fileID: 6875102937128418963}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 1
slotIndex: -1
disPlayImage: {fileID: 5829386100209031614}
--- !u!1 &3663290235883915697
GameObject:
m_ObjectHideFlags: 0
@@ -1617,7 +1508,7 @@ RectTransform:
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: 3.0769234, y: -53.846153}
m_AnchoredPosition: {x: 3.0769196, y: -53.846153}
m_SizeDelta: {x: 199, y: 11}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2668978278628610443
@@ -1923,7 +1814,7 @@ RectTransform:
- {fileID: 5777532589522199890}
- {fileID: 3450976418008317958}
- {fileID: 7708887638066944733}
- {fileID: 3313561919066668394}
- {fileID: 3110400451283435854}
- {fileID: 8118804085881780215}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@@ -2041,7 +1932,8 @@ MonoBehaviour:
- {fileID: 3107802620589095628}
- {fileID: 4958242990544948893}
- {fileID: 840603349639584132}
m_btnOpenCharacter: {fileID: 2090693574295861813}
buffIconPrefab: {fileID: 4093133904505044408}
m_btnOpenCharacter: {fileID: 4820812356310843501}
neededExp: 0
--- !u!1 &4933898273451627870
GameObject:
@@ -2605,14 +2497,13 @@ RectTransform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5857173885418295131}
m_Children: []
m_Father: {fileID: 4263483627851733539}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 10, y: -10}
m_SizeDelta: {x: 20, y: 20}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5402126495018243001
CanvasRenderer:
@@ -2642,7 +2533,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
@@ -2665,6 +2556,67 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_ShowMaskGraphic: 1
--- !u!1 &7684555357395439934
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3110400451283435854}
- component: {fileID: 7797913519477200890}
m_Layer: 5
m_Name: BuffDisplayer
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3110400451283435854
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7684555357395439934}
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: 4263483627851733539}
m_Father: {fileID: 6806681442789174374}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 130, y: -140}
m_SizeDelta: {x: -130, y: 30}
m_Pivot: {x: 0, y: 1}
--- !u!114 &7797913519477200890
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7684555357395439934}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8a8695521f0d02e499659fee002a26c2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_StartCorner: 0
m_StartAxis: 0
m_CellSize: {x: 24, y: 24}
m_Spacing: {x: 2, y: 2}
m_Constraint: 0
m_ConstraintCount: 2
--- !u!1 &7965461020241720480
GameObject:
m_ObjectHideFlags: 0
@@ -2891,90 +2843,3 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &8147232008203518679
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3313561919066668394}
- component: {fileID: 1197864994416983139}
- component: {fileID: 7327847462688841216}
- component: {fileID: 4070222877379841836}
m_Layer: 5
m_Name: Panel (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3313561919066668394
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8147232008203518679}
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: 4263483627851733539}
m_Father: {fileID: 6806681442789174374}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 133.1923, y: -138.03845}
m_SizeDelta: {x: 0, y: 11}
m_Pivot: {x: 0, y: 0.5}
--- !u!222 &1197864994416983139
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8147232008203518679}
m_CullTransparentMesh: 1
--- !u!114 &7327847462688841216
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8147232008203518679}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 30649d3a9faa99c48a7b1166b86bf2a0, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_Spacing: 25
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!114 &4070222877379841836
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8147232008203518679}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 2
m_VerticalFit: 0
@@ -90,9 +90,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ec4a1ef2b59484440ba114ebd4f9611b, type: 3}
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 7887565863755557202}
skillbutton: {fileID: 0}
skillImage: {fileID: 7887565863755557202}
borderImage: {fileID: 0}
borderImage: {fileID: 6638027642728938890}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
isNotCastSkill: 1
@@ -209,9 +209,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: ec4a1ef2b59484440ba114ebd4f9611b, type: 3}
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 7823430582841952503}
skillbutton: {fileID: 0}
skillImage: {fileID: 7823430582841952503}
borderImage: {fileID: 0}
borderImage: {fileID: 758545883388863872}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
isNotCastSkill: 1
File diff suppressed because it is too large Load Diff
@@ -152,7 +152,8 @@ namespace BrewMonster.Scripts.Managers
try
{
// Load the multi-sprite atlas from Resources
var atlasSprites = EC_Game.GetGameRun().GetUIManager().IconlistIvtr; //Resources.LoadAll<Sprite>("UI/IconSprites/iconlist_ivtrm_multisprite");
var atlasSprites = EC_Game.GetGameRun().GetUIManager().IconlistIvtr;
//Resources.LoadAll<Sprite>("UI/IconSprites/iconlist_ivtrm_multisprite");
if (atlasSprites != null && atlasSprites.Length > 0)
{
_multiSpriteAtlas = atlasSprites;
@@ -105,7 +105,9 @@ namespace PerfectWorld.Scripts.Managers
case EC_MsgDef.MSG_PM_PLAYEREXIT:
OnMsgPlayerExit(Msg);
break;
case EC_MsgDef.MSG_PM_PLAYEREXTSTATE: OnMsgPlayerExtState(Msg); break;
case EC_MsgDef.MSG_PM_PLAYEREXTSTATE:
OnMsgPlayerExtState(Msg);
break;
}
}
@@ -146,7 +148,7 @@ namespace PerfectWorld.Scripts.Managers
// ProcessMessage doesn't handle MSG_PM_PLAYEREXTSTATE
// 直接调用OnMsgPlayerExtState而不是ProcessMessage
// ProcessMessage不处理MSG_PM_PLAYEREXTSTATE
host.OnMsgPlayerExtState(Msg);
host.ProcessMessage(Msg);
}
else
{
+124 -9
View File
@@ -71,6 +71,8 @@ namespace BrewMonster
public int m_iGender; // Gender
protected bool m_bFashionMode;
public bool m_bShowWeapon;
public uint[] m_aExtStates = new uint[OBJECT_EXT_STATE_COUNT]; // Visible extend states from server
public uint[] m_aExtStatesShown = new uint[OBJECT_EXT_STATE_COUNT]; // Visible extend states currently shown
private QueueActionEvent queueActionEvent;
protected static PLAYER_LEVELEXP_CONFIG _player_levelup_exp;
private CECPlayerActionController m_pActionController;
@@ -746,20 +748,133 @@ namespace BrewMonster
}
}
public virtual void SetNewExtendStates(int unknown, uint[] states, int count)
public virtual void SetNewExtendStates(int start, uint[] pData, int count)
{
// TODO: Implement appearance or physics change
// Remove all trace target GFX when buff states change
// This ensures buff-related trail effects are cleaned up when buffs expire
// 当buff状态改变时移除所有跟踪目标GFX
// 这确保buff相关的轨迹效果在buff过期时被清理
if (SkillGfxMan.InstanceSub != null)
if(pData == null || start + count > OBJECT_EXT_STATE_COUNT)
{
SkillGfxMan.InstanceSub.RemoveAllTraceTargetGfx();
return;
}
ShowExtendStates(start, pData, count);
Array.Copy(pData, start, m_aExtStates, start, count);
if(GetExtState(111))
{
// ת ̫
m_PlayerActions = _turning_actions;
}
else
{
m_PlayerActions = _default_actions;
}
}
void ShowExtendStates(int start, uint[] pData, int count, bool bIgnoreOptimize=false )
{
if(pData == null || start + count > OBJECT_EXT_STATE_COUNT)
{
return;
}
if (!IsAllResReady() || !GetMajorModel())
return;
//TODO: Implement optimization
// if (!bIgnoreOptimize &&
// !CECOptimize::Instance().GetGFX().CanShowState(GetCharacterID(), GetClassID()))
// return;
//static const char* szBasePath = "߻\\״̬Ч\\";
const int bitSize = sizeof(uint) * 8;
for(int index = 0; index<count; index++)
{
int idState = index + start;
for (int i=0; i < bitSize; i++)
{
int dwMask = 1 << i;
int dwFlag1 = (int)(m_aExtStatesShown[idState] & dwMask);
int dwFlag2 = (int)(pData[index] & dwMask);
if ((dwFlag1 == 0 && dwFlag2 == 0) || (dwFlag1 != 0 && dwFlag2 != 0))
continue;
//TODO: Implement visible state
// const GNET::VisibleState* pvs = GNET::VisibleState::Query(m_iProfession, i + idState*bitSize);
// if (!pvs)
// continue;
// AString strGFXFile = pvs->GetEffect();
// if (!strGFXFile.GetLength())
// continue;
// strGFXFile = szBasePath + strGFXFile;
// if (TestProcessPetCureGFX(strGFXFile, dwFlag2 != 0, i + idState*bitSize))
// continue;
if (dwFlag1 != 0)
{
// //TODO: Implement remove old state
// CECModel *pWeapon = NULL;
// bool bLeft (false);
// if (IsWeaponHookPos(pvs->GetHH(), &bLeft, &pWeapon))
// {
// // Ч
// if (pWeapon)
// {
// const char * gfxHook = GetWeaponGFXHookPos(pWeapon, bLeft);
// pWeapon->RemoveGfx(strGFXFile, gfxHook);
// }
// }
// else
{
// ģЧ
// RemoveGfx(strGFXFile, pvs->GetHH(), PLAYERMODEL_TYPEALL);
}
}
// else
// {
// // Add new state
// const char* szHH = pvs->GetHH();
// float fScale;
// if (stricmp("HH_Head", szHH) == 0)
// fScale = GetMajorModel()->GetOuterData()[0];
// else if (stricmp("HH_Spine", szHH) == 0)
// fScale = GetMajorModel()->GetOuterData()[1];
// else
// fScale = 1.0f;
// CECModel *pWeapon = NULL;
// bool bLeft (false);
// if (IsWeaponHookPos(pvs->GetHH(), &bLeft, &pWeapon))
// {
// if (pWeapon)
// {
// const char *gfxHook = GetWeaponGFXHookPos(pWeapon, bLeft);
// pWeapon->PlayGfx(strGFXFile, gfxHook, fScale);
// }
// }
// else
// {
// PlayGfx(strGFXFile, pvs->GetHH(), fScale, PLAYERMODEL_TYPEALL, true);
// }
// }
}
}
Array.Copy(pData, start, m_aExtStatesShown, start, count);
}
bool GetExtState(int n)
{
const int bitSize = sizeof(uint) * 8;
const int totalBitSize = bitSize * OBJECT_EXT_STATE_COUNT;
if(n < 0 || n >= totalBitSize)
return false;
int index = n / bitSize;
int bitOffset = n % bitSize;
return (m_aExtStates[index] & (1 << bitOffset)) != 0;
}
public virtual void SetUpPlayer()
{
m_dwResFlags = 0;
@@ -2862,6 +2862,7 @@ namespace CSNetwork.GPDataType
public ushort equip_idx;
public uint cost;
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_icon_state_notify
{
public int id;
@@ -2935,6 +2936,7 @@ namespace CSNetwork.GPDataType
return true;
}
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct IconState
{
public ushort id;
@@ -1452,14 +1452,27 @@ namespace CSNetwork
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_SETMOVESTAMP, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
break;
case CommandID.UPDATE_EXT_STATE:
{
cmd_update_ext_state pCmd = GPDataTypeHelper.FromBytes<cmd_update_ext_state>((byte[])pDataBuf);
if (ISPLAYERID(pCmd.id))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_PLAYEREXTSTATE, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader);
else if (ISNPCID(pCmd.id))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_NM_NPCEXTSTATE, MANAGER_INDEX.MAN_NPC, 0, pDataBuf, pCmdHeader);
{
cmd_update_ext_state pCmd = GPDataTypeHelper.FromBytes<cmd_update_ext_state>((byte[])pDataBuf);
if (ISPLAYERID(pCmd.id))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_PLAYEREXTSTATE, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader);
else if (ISNPCID(pCmd.id))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_NM_NPCEXTSTATE, MANAGER_INDEX.MAN_NPC, 0, pDataBuf, pCmdHeader);
break;
}
case CommandID.ICON_STATE_NOTIFY:
{
// this is a bit hacky, but it works. because the cmd_icon_state_notify is not blittable (contains List<>); read leading id only for routing.
// cmd_icon_state_notify is not blittable (contains List<>); read leading id only for routing.
if (pDataBuf == null || pDataBuf.Length < sizeof(int))
break;
}
int iconStateEntityId = BitConverter.ToInt32(pDataBuf, 0);
if (ISPLAYERID(iconStateEntityId))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_PM_PLAYEREXTSTATE, MANAGER_INDEX.MAN_PLAYER, -1, pDataBuf, pCmdHeader);
else if (ISNPCID(iconStateEntityId))
EC_ManMessage.PostMessage(EC_MsgDef.MSG_NM_NPCEXTSTATE, MANAGER_INDEX.MAN_NPC, 0, pDataBuf, pCmdHeader);
break;
}
case CommandID.ENTER_SANCTUARY:
case CommandID.LEAVE_SANCTUARY:
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_SANCTUARY, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
@@ -606,4 +606,19 @@ namespace BrewMonster.Scripts.Skills
return 0;
}
}
public class VisibleState
{
public virtual int GetID() { return 0; }
public virtual string GetName() { return null; }
public virtual string GetHH() { return null; }
public virtual string GetEffect() { return null; }
public static VisibleState Query(int profession, int id) { return null; }
}
public class TeamState
{
public virtual int GetID() { return 0; }
public virtual string GetName() { return null; }
public virtual string GetIcon() { return null; }
public static TeamState Query(int id) { return null; }
}
}
+517 -10
View File
@@ -4,6 +4,481 @@ using System.Text;
namespace BrewMonster.Scripts.Skills
{
public static class GNET
{
public static readonly Dictionary<int, TeamStateImp> TeamState;
public static readonly Dictionary<int, VisibleStateImp> VisibleState;
// [中文] 首次访问 GNET 时由 CLR 调用,无需手动 Init
// [English] Populated on first access to GNET; no manual Init() required.
public static TeamStateImp QueryTeamState(int id) { return TeamState[id]; }
public static VisibleStateImp QueryVisibleState(int id) { return VisibleState[id]; }
static GNET()
{
var team = new Dictionary<int, TeamStateImp>();
var visible = new Dictionary<int, VisibleStateImp>();
visible.Add(1, new VisibleStateImp(1, "强化","属性增强.gfx",""));
visible.Add(2, new VisibleStateImp(2, "弱化","属性下降.gfx",""));
visible.Add(3, new VisibleStateImp(3, "反震","物理反震.gfx","HH_Spine"));
visible.Add(4, new VisibleStateImp(4, "迟滞","迟滞.gfx",""));
visible.Add(5, new VisibleStateImp(5, "昏迷","震晕.gfx","HH_Head"));
visible.Add(6, new VisibleStateImp(6, "睡眠","睡眠.gfx",""));
visible.Add(7, new VisibleStateImp(7, "定身","定身.gfx",""));
visible.Add(8, new VisibleStateImp(8, "麻痹","封印.gfx",""));
visible.Add(9, new VisibleStateImp(9, "受诅","特殊不利状态.gfx","HH_Head"));
visible.Add(10, new VisibleStateImp(10, "雷击","持续金系攻击.gfx","HH_Head"));
visible.Add(11, new VisibleStateImp(11, "中毒","中毒.gfx","HH_Head"));
visible.Add(12, new VisibleStateImp(12, "燃烧","持续火攻击.gfx","HH_Head"));
visible.Add(13, new VisibleStateImp(13, "落石","持续土系伤害.gfx",""));
visible.Add(14, new VisibleStateImp(14, "放血","放血.gfx","HH_Head"));
visible.Add(15, new VisibleStateImp(15, "魔力燃烧","魔力燃烧.gfx","HH_Head"));
visible.Add(16, new VisibleStateImp(16, "霜刃","霜刃状态.gfx","HH_RighthandWeapon"));
visible.Add(17, new VisibleStateImp(17, "爆气","爆气效果状态.gfx","HH_RighthandWeapon"));
visible.Add(18, new VisibleStateImp(18, "附火伤","烈焰之矢.gfx","HH_RighthandWeapon"));
visible.Add(19, new VisibleStateImp(19, "鲜花1","康乃馨环绕.gfx",""));
visible.Add(20, new VisibleStateImp(20, "鲜花2","百合环绕.gfx",""));
visible.Add(21, new VisibleStateImp(21, "鲜花3","菊花环绕.gfx",""));
visible.Add(22, new VisibleStateImp(22, "鲜花4","玫瑰环绕.gfx",""));
visible.Add(23, new VisibleStateImp(23, "弱魂","弱魂咒状态.gfx","HH_Head"));
// 法师特有
visible.Add(24, new VisibleStateImp(24, "烈焰护甲","烈焰护甲.gfx","HH_Spine"));
visible.Add(25, new VisibleStateImp(25, "寒冰护甲","寒冰护甲.gfx","HH_Spine"));
visible.Add(26, new VisibleStateImp(26, "磐石护甲","磐石护甲.gfx","HH_Spine"));
visible.Add(27, new VisibleStateImp(27, "避水诀","避水诀.gfx","HH_Spine"));
// 羽灵特有
visible.Add(28, new VisibleStateImp(28, "羽盾","羽盾.gfx","HH_Spine"));
// 羽芒特有
visible.Add(29, new VisibleStateImp(29, "翼盾","翼盾.gfx","HH_Spine"));
visible.Add(30, new VisibleStateImp(30, "烈焰之矢","烈焰之矢.gfx","HH_LefthandWeapon"));
// 妖精特有
visible.Add(31, new VisibleStateImp(31, "荆棘阵","魔法反震.gfx","HH_Spine"));
visible.Add(32, new VisibleStateImp(32, "妖狐变","妖狐附体状态.gfx","HH_Spine"));
// 怪物特有
visible.Add(33, new VisibleStateImp(33, "目盲","主动变被动.gfx",""));
visible.Add(34, new VisibleStateImp(34, "封印免疫","封印免疫.gfx",""));
visible.Add(35, new VisibleStateImp(35, "睡眠免疫","睡眠免疫.gfx",""));
visible.Add(36, new VisibleStateImp(36, "火系免疫","火系免疫.gfx","HH_Spine"));
visible.Add(37, new VisibleStateImp(37, "水系免疫","水系免疫.gfx","HH_Spine"));
visible.Add(38, new VisibleStateImp(38, "金系免疫","金系免疫.gfx","HH_Spine"));
visible.Add(39, new VisibleStateImp(39, "木系免疫","木系免疫.gfx","HH_Spine"));
visible.Add(40, new VisibleStateImp(40, "土系免疫","土系免疫.gfx","HH_Spine"));
visible.Add(41, new VisibleStateImp(41, "风盾术","风盾术.gfx","HH_Spine"));
visible.Add(42, new VisibleStateImp(42, "气流锁","气流锁.gfx","HH_Spine"));
visible.Add(43, new VisibleStateImp(43, "元素虚弱","元素虚弱状态.gfx",""));
visible.Add(44, new VisibleStateImp(44, "伤害加深免疫","伤害加深免疫.gfx",""));
visible.Add(45, new VisibleStateImp(45, "冻结 ","冻结.gfx","HH_Spine"));
visible.Add(46, new VisibleStateImp(46, "真空","真空.gfx","HH_Spine"));
visible.Add(47, new VisibleStateImp(47, "水火护甲","水火护甲.gfx","HH_Spine"));
visible.Add(48, new VisibleStateImp(48, "法师之星","法师之星.gfx","HH_Spine"));
visible.Add(49, new VisibleStateImp(49, "无敌","无敌.gfx","HH_Spine"));
visible.Add(50, new VisibleStateImp(50, "持续增加元气","持续增加元气.gfx",""));
visible.Add(51, new VisibleStateImp(51, "持续降低元气","持续降低元气.gfx",""));
visible.Add(52, new VisibleStateImp(52, "攻击等级增加","攻击等级增加.gfx",""));
// visible.Add(53, new VisibleStateImp(53, "防御等级增加", "防御等级增加.gfx", ""));
visible.Add(54, new VisibleStateImp(54, "吸收物理伤害","吸收物理伤害.gfx","HH_Spine"));
visible.Add(55, new VisibleStateImp(55, "吸收法术伤害","吸收法术伤害.gfx","HH_Spine"));
visible.Add(56, new VisibleStateImp(56, "免疫流血","流血免疫.gfx",""));
visible.Add(57, new VisibleStateImp(57, "坚壁","坚壁.gfx","HH_Spine"));
visible.Add(58, new VisibleStateImp(58, "遁隐","遁隐.gfx","HH_Spine"));
visible.Add(59, new VisibleStateImp(59, "反弹","复仇惩戒.gfx","HH_Spine"));
visible.Add(60, new VisibleStateImp(60, "封印","复仇封印.gfx","HH_Spine"));
visible.Add(61, new VisibleStateImp(61, "反击","复仇镜像.gfx","HH_Spine"));
visible.Add(62, new VisibleStateImp(62, "击晕","复仇雷霆.gfx","HH_Spine"));
visible.Add(63, new VisibleStateImp(63, "反噬","复仇反噬.gfx","HH_Spine"));
visible.Add(64, new VisibleStateImp(64, "三世明王咒","三世明王咒.gfx","HH_Spine"));
visible.Add(65, new VisibleStateImp(65, "金刚轮印咒","金刚轮印咒.gfx","HH_Spine"));
visible.Add(66, new VisibleStateImp(66, "黑巫咒","黑巫咒.gfx","HH_Spine"));
visible.Add(67, new VisibleStateImp(67, "白巫咒","白巫咒.gfx","HH_Spine"));
visible.Add(68, new VisibleStateImp(68, "深度冰刺","深度冰刺.gfx","HH_右大臂"));
visible.Add(69, new VisibleStateImp(69, "玄武剑诀","玄武剑诀.gfx","HH_righthandweapon"));
visible.Add(70, new VisibleStateImp(70, "饮血剑诀","饮血剑诀.gfx","HH_righthandweapon"));
visible.Add(71, new VisibleStateImp(71, "磐龙剑诀","磐龙剑诀.gfx","HH_righthandweapon"));
visible.Add(72, new VisibleStateImp(72, "八方剑影","八方剑影.gfx","HH_Spine"));
visible.Add(73, new VisibleStateImp(73, "火神","火神.gfx","HH_righthandweapon"));
visible.Add(74, new VisibleStateImp(74, "毒种","碧云术.gfx","HH_spine"));
visible.Add(75, new VisibleStateImp(75, "回血种","回风拂柳.gfx","HH_spine"));
visible.Add(76, new VisibleStateImp(76, "增加木水物防","铁木衫.gfx","HH_spine"));
visible.Add(77, new VisibleStateImp(77, "特殊的减速","腐蔓咒.gfx","HH_spine"));
visible.Add(78, new VisibleStateImp(78, "向自己的宠物传输mp","电弧同气连枝.gfx",""));
visible.Add(79, new VisibleStateImp(79, "加快吟唱增加法攻","风竹秋韵.gfx","HH_spine"));
visible.Add(80, new VisibleStateImp(80, "增加物防暴击","魔神蚩尤牺牲.gfx","HH_spine"));
visible.Add(81, new VisibleStateImp(81, "增加法防法攻","金光电母牺牲.gfx","HH_spine"));
visible.Add(82, new VisibleStateImp(82, "向施放者(宠物)传输伤害","分担伤害.gfx","HH_spine"));
visible.Add(83, new VisibleStateImp(83, "吸伤害加物法防","护盾.gfx","HH_spine"));
visible.Add(84, new VisibleStateImp(84, "枯木逢春","枯木逢春.gfx","HH_spine"));
visible.Add(85, new VisibleStateImp(85, "提升暴击(限制生效次数)","魅灵_灵机.gfx","HH_Spine"));
visible.Add(86, new VisibleStateImp(86, "九尊剑诀","九尊剑诀.gfx","HH_righthandweapon"));
visible.Add(87, new VisibleStateImp(87, "修罗道用光效","修罗道_10.gfx","HH_head"));
visible.Add(88, new VisibleStateImp(88, "修罗道用光效","修罗道_50.gfx","HH_head"));
visible.Add(89, new VisibleStateImp(89, "修罗道用光效","修罗道_100.gfx","HH_head"));
visible.Add(90, new VisibleStateImp(90, "修罗道用光效","修罗道_300.gfx","HH_head"));
visible.Add(91, new VisibleStateImp(91, "位置回溯","法师_静谧之术_状态效果.gfx","HH_Spine"));
visible.Add(92, new VisibleStateImp(92, "生命回溯","法师_静谧之术2_状态效果.gfx","HH_Spine"));
visible.Add(93, new VisibleStateImp(93, "强制选择目标","白虎_奋战扫击_持续效果.gfx","HH_Spine"));
visible.Add(94, new VisibleStateImp(94, "吸收治疗","羽灵_天瀑符持续效果.gfx","HH_Spine"));
visible.Add(95, new VisibleStateImp(95, "受到普攻后退并清debuff","法师_法之奥义_持续效果.gfx","HH_Spine"));
visible.Add(96, new VisibleStateImp(96, "降低暴击抗性","羽灵_五感符持续效果.gfx","HH_Spine"));
visible.Add(97, new VisibleStateImp(97, "转移技能攻击诅咒","巫师_复仇之魂——涅槃_状态效果.gfx","HH_Spine"));
visible.Add(98, new VisibleStateImp(98, "受到攻击时额外对选定玩家发起攻击","刺客_魂葬印记状态效果.gfx","HH_Spine"));
visible.Add(99, new VisibleStateImp(99, "禁止被选中","巫师_冥王乐土持续效果.gfx","HH_Spine"));
visible.Add(100, new VisibleStateImp(100, "延迟土系伤害","持续土系伤害.gfx","HH_Spine"));
visible.Add(101, new VisibleStateImp(101, "昏迷,自身受到伤害加深","法师_冰晶世界持续效果.gfx","HH_Spine"));
visible.Add(102, new VisibleStateImp(102, "反弹之魂2(比例)","妖精_灵火持续.gfx",""));
visible.Add(103, new VisibleStateImp(103, "受伤害时定身","法师_灸焰_状态效果.gfx","HH_Spine"));
visible.Add(104, new VisibleStateImp(104, "受伤害时提升攻击力","妖兽_无畏_状态效果.gfx","HH_Spine"));
visible.Add(105, new VisibleStateImp(105, "死战到底","白虎_无冕之王持续效果.gfx","HH_Spine"));
visible.Add(106, new VisibleStateImp(106, "治疗偷取","魅灵_繁星_持续效果.gfx","HH_Spine"));
visible.Add(107, new VisibleStateImp(107, "死亡掉落金币","刺客_飘零持续效果.gfx","HH_Spine"));
visible.Add(108, new VisibleStateImp(108, "增加攻击距离","羽芒_回旋之翼_效果状态.gfx","HH_Spine"));
visible.Add(109, new VisibleStateImp(109, "无敌5(驱除debuf持续回血昏迷)","巫师_流殇_持续冰块.gfx",""));
visible.Add(110, new VisibleStateImp(110, "雷神变","羽灵_雷火堕_持续.gfx",""));
visible.Add(111, new VisibleStateImp(111, "武侠剑刃光环光效","武侠_霸气持续.gfx",""));
visible.Add(112, new VisibleStateImp(112, "妖精共舞调用","妖精_火狐之术持续.gfx","HH_Spine"));
visible.Add(113, new VisibleStateImp(113, "法师冰晶世界调用","法师_冰晶世界_冰雾持续.gfx",""));
visible.Add(114, new VisibleStateImp(114, "战场旗帜光效","旗子.gfx","HH_Head"));
visible.Add(115, new VisibleStateImp(115, "任务用光效","小狗状态.gfx","HH_feijian"));
visible.Add(116, new VisibleStateImp(116, "任务用光效","小白蛇状态.gfx","HH_feijian"));
visible.Add(117, new VisibleStateImp(117, "瘫痪光效","瘫痪.gfx","HH_Head"));
visible.Add(118, new VisibleStateImp(118, "特定技能吟唱时间降低光效","特定技能吟唱时间降低.gfx","HH_feijian"));
visible.Add(119, new VisibleStateImp(119, "特定技能伤害增加光效","特定技能伤害增加.gfx","HH_feijian"));
visible.Add(120, new VisibleStateImp(120, "回血护盾光效","回血护盾.gfx","HH_bind"));
visible.Add(121, new VisibleStateImp(121, "飞行速度提高(可叠加刷新持续时间)","疾云步击中.gfx","HH_Spine"));
visible.Add(122, new VisibleStateImp(122, "移动掉血","移动掉血_光效01.gfx","HH_feijian"));
visible.Add(123, new VisibleStateImp(123, "不移动就掉血","不移动就掉血01.gfx","HH_bind"));
visible.Add(125, new VisibleStateImp(125, "免疫打断护盾","魔法盾.gfx","HH_Spine"));
visible.Add(127, new VisibleStateImp(127, "猎命状态","猎命状态效果01.gfx","HH_feijian"));
visible.Add(128, new VisibleStateImp(128, "1白","月仙_冰球1个.gfx","HH_Spine"));
visible.Add(129, new VisibleStateImp(129, "2白","月仙_冰球2个.gfx","HH_Spine"));
visible.Add(130, new VisibleStateImp(130, "3白","月仙_冰球3个.gfx","HH_Spine"));
visible.Add(131, new VisibleStateImp(131, "1黑","月仙_雷球1个.gfx","HH_Spine"));
visible.Add(132, new VisibleStateImp(132, "2黑","月仙_雷球2个.gfx","HH_Spine"));
visible.Add(133, new VisibleStateImp(133, "3黑","月仙_雷球3个.gfx","HH_Spine"));
visible.Add(134, new VisibleStateImp(134, "1黑1白","月仙_1冰1雷球.gfx","HH_Spine"));
visible.Add(135, new VisibleStateImp(135, "2黑1白","月仙_1冰2雷.gfx","HH_Spine"));
visible.Add(136, new VisibleStateImp(136, "2白1黑","月仙_2冰1雷.gfx","HH_Spine"));
visible.Add(137, new VisibleStateImp(137, "内伤状态","内伤01.gfx","HH_bind"));
visible.Add(138, new VisibleStateImp(138, "死亡重置施法者冷却","死亡重置施法者冷却时间01.gfx","HH_Spine"));
visible.Add(139, new VisibleStateImp(139, "普攻附加伤害","普攻附加额外伤害01.gfx","HH_shou03"));
visible.Add(140, new VisibleStateImp(140, "技能CD改变","夜影_影噬_状态效果01.gfx","HH_feijian"));
visible.Add(141, new VisibleStateImp(141, "啸月","啸月_施放起01.gfx","HH_feijian"));
team.Add(1, new TeamStateImp(1, "昏迷\r无法进行任何移动和操作", "致晕"));
team.Add(2, new TeamStateImp(2, "睡眠\r沉睡状态,受攻击会恢复", "睡眠"));
team.Add(3, new TeamStateImp(3, "迟滞\r降低移动速度", "迟滞"));
team.Add(4, new TeamStateImp(4, "物理反震\r反弹所有近身物理伤害", "对物理攻击产生反震"));
team.Add(5, new TeamStateImp(5, "羽盾\r用真气值吸收一部伤害", "羽盾"));
team.Add(6, new TeamStateImp(6, "烈焰护甲\r增加火防并提高生命恢复速度", "烈焰护甲"));
team.Add(7, new TeamStateImp(7, "寒冰护甲\r增加水防并增加法力恢复速度", "寒冰护甲"));
team.Add(8, new TeamStateImp(8, "定身\r无法移动", "定身"));
team.Add(9, new TeamStateImp(9, "封印\r无法使用任何普攻和技能", "不能攻击"));
team.Add(10, new TeamStateImp(10, "魅惑\r目标怪物变成被动攻击", "主动变被动"));
team.Add(11, new TeamStateImp(11, "磐石护甲\r增加土防和物防", "磐石护甲"));
team.Add(12, new TeamStateImp(12, "雷击\r持续受到金系伤害", "持续金系攻击"));
team.Add(13, new TeamStateImp(13, "中毒\r持续受到木系伤害", "中毒"));
team.Add(14, new TeamStateImp(14, "燃烧\r持续受到火系伤害", "持续火攻击"));
team.Add(15, new TeamStateImp(15, "沙漩\r持续受到土系伤害", "持续土系伤害"));
team.Add(16, new TeamStateImp(16, "法力燃烧\r真气持续减少", "持续mp减少状态"));
team.Add(17, new TeamStateImp(17, "流血\r持续受到物理伤害", "放血"));
team.Add(18, new TeamStateImp(18, "破甲\r物理防御力下降", "物理防御力下降"));
team.Add(19, new TeamStateImp(19, "虚弱\r法术防御力下降", "五行防御力下降"));
team.Add(20, new TeamStateImp(20, "蚀刃\r物理攻击力下降", "物理攻击力下降"));
team.Add(21, new TeamStateImp(21, "诅咒\r受到伤害提升", "自身受到的物理伤害加倍"));
team.Add(22, new TeamStateImp(22, "迟缓\r攻击速度减慢", "普通攻击间隔加长"));
team.Add(23, new TeamStateImp(23, "迟钝\r减慢吟唱", "技能吟唱时间加长"));
team.Add(24, new TeamStateImp(24, "目盲\r降低准确度", "准确度下降"));
team.Add(25, new TeamStateImp(25, "笨拙\r躲闪度下降", "躲闪度下降"));
team.Add(26, new TeamStateImp(26, "生命恢复加快", "hp恢复加快"));
team.Add(27, new TeamStateImp(27, "真气恢复加快", "mp恢复加快"));
team.Add(28, new TeamStateImp(28, "提升生命上限", "提升hp上限"));
team.Add(29, new TeamStateImp(29, "提升真气上限", "提高mp上限"));
team.Add(30, new TeamStateImp(30, "坚甲\r物理防御力提高", "物理防御力提高"));
team.Add(31, new TeamStateImp(31, "聚神\r法术防御力提高", "法术防御力提高"));
team.Add(32, new TeamStateImp(32, "利刃\r物理攻击力提高", "物理攻击力提高"));
team.Add(33, new TeamStateImp(33, "迅捷\r攻击速度加快", "攻击速度加快"));
team.Add(34, new TeamStateImp(34, "灵敏\r提高躲闪率", "提高躲闪度"));
team.Add(35, new TeamStateImp(35, "祝福\r受到伤害减少", "自身伤害减半"));
team.Add(36, new TeamStateImp(36, "灵巧\r提高准确度", "穿透"));
team.Add(37, new TeamStateImp(37, "专注\r加快吟唱速度", "加快吟唱"));
team.Add(38, new TeamStateImp(38, "攻击附加水伤害", "使普通攻击附加水系伤害"));
team.Add(39, new TeamStateImp(39, "攻击附加火伤害", "使普通攻击附加火系伤害"));
team.Add(40, new TeamStateImp(40, "攻击附加木伤害", "使普通攻击附近木系伤害"));
team.Add(41, new TeamStateImp(41, "持续恢复生命", "持续恢复hp"));
team.Add(42, new TeamStateImp(42, "持续恢复真气", "持续恢复mp"));
team.Add(43, new TeamStateImp(43, "散神\r法术攻击力降低", "定身且不能攻击"));
team.Add(44, new TeamStateImp(44, "移动加速", "加速"));
team.Add(45, new TeamStateImp(45, "生命上限降低", "hp上限下降"));
team.Add(46, new TeamStateImp(46, "灵助\r法术攻击力提高", "法术攻击力提高"));
team.Add(47, new TeamStateImp(47, "白虎变", "白虎变"));
team.Add(48, new TeamStateImp(48, "金系防御上升", "金系防御上升"));
team.Add(49, new TeamStateImp(49, "木系防御上升", "木系防御上升"));
team.Add(50, new TeamStateImp(50, "水系防御上升", "水系防御上升"));
team.Add(51, new TeamStateImp(51, "火系防御上升", "火系防御上升"));
team.Add(52, new TeamStateImp(52, "土系防御上升", "土系防御上升"));
team.Add(53, new TeamStateImp(53, "金系防御下降", "金系防御下降"));
team.Add(54, new TeamStateImp(54, "木系防御下降", "木系防御下降"));
team.Add(55, new TeamStateImp(55, "水系防御下降", "水系防御下降"));
team.Add(56, new TeamStateImp(56, "火系防御下降", "火系防御下降"));
team.Add(57, new TeamStateImp(57, "土系防御下降", "土系防御下降"));
team.Add(58, new TeamStateImp(58, "避水诀\r水中不用呼吸,无法使用技能", "避水诀"));
team.Add(59, new TeamStateImp(59, "般若心经\r所有法术忽略吟唱", "般若心经"));
team.Add(60, new TeamStateImp(60, "真元爆发\r将全身元气爆发提升自身能力", "真元爆发"));
team.Add(61, new TeamStateImp(61, "易髓经\r降低自身法防提升物防", "易髓经"));
team.Add(62, new TeamStateImp(62, "易筋经\r降低自身物防提升法防", "易筋经"));
team.Add(63, new TeamStateImp(63, "兽王之怒\r受到攻击时增加元气", "兽王之怒"));
team.Add(64, new TeamStateImp(64, "坚甲\r物理防御力提高", "坚甲符"));
team.Add(65, new TeamStateImp(65, "金钟罩\r提升物防", "金钟罩"));
team.Add(66, new TeamStateImp(66, "巨灵神力\r提高物理攻击", "巨灵神力"));
team.Add(67, new TeamStateImp(67, "化血成魔\r降低生命上限提升命中率", "化血成魔"));
team.Add(68, new TeamStateImp(68, "灵助\r法术攻击力提高", "灵助符"));
team.Add(69, new TeamStateImp(69, "翼盾\r吸收一定伤害并回复真气", "翼盾"));
team.Add(70, new TeamStateImp(70, "烈焰之矢\r攻击附加一定火伤害", "烈焰之矢"));
team.Add(71, new TeamStateImp(71, "狂雷天鹰\r持续受到金系伤害并减速", "狂雷天鹰"));
team.Add(72, new TeamStateImp(72, "无视所有行动阻碍状态", "准无敌"));
team.Add(73, new TeamStateImp(73, "持续冰伤害", "持续冰伤害"));
team.Add(74, new TeamStateImp(74, "暴击率提升", "爆击率提升"));
team.Add(75, new TeamStateImp(75, "妖狐变\r物防、命中提升,真气值下降", "灵狐变"));
team.Add(76, new TeamStateImp(76, "无敌", "无敌"));
team.Add(77, new TeamStateImp(77, "荆棘阵\r大量降低伤害,并且反弹物理伤害", "荆棘阵"));
team.Add(78, new TeamStateImp(78, "弱魂咒\r生命和真气值停止回复", "弱魂咒"));
team.Add(79, new TeamStateImp(79, "残体咒\r受到加深伤害", "残体咒"));
team.Add(80, new TeamStateImp(80, "碎灵咒\r受到攻击失去元气", "碎灵咒"));
team.Add(81, new TeamStateImp(81, "飞花遁影\r移动加速", "妖狐附体"));
team.Add(82, new TeamStateImp(82, "骑乘加速", "骑乘加速"));
team.Add(83, new TeamStateImp(83, "物理攻击提高", "物理攻击力提高"));
team.Add(91, new TeamStateImp(91, "水免\r免役水系伤害", "水免"));
team.Add(92, new TeamStateImp(92, "金免\r免疫金系伤害", "金免"));
team.Add(93, new TeamStateImp(93, "木免\r免疫木系伤害", "木免"));
team.Add(94, new TeamStateImp(94, "土免\r免疫土系伤害", "土免"));
team.Add(95, new TeamStateImp(95, "虚无\r免疫五行伤害", "虚无"));
team.Add(96, new TeamStateImp(96, "狂妄\r免疫所有状态", "狂妄"));
team.Add(97, new TeamStateImp(97, "水中减速\r游泳减速", "水中减速"));
team.Add(98, new TeamStateImp(98, "水中加速\r游泳加速", "水中加速"));
team.Add(99, new TeamStateImp(99, "空中减速\r飞行减速", "空中减速"));
team.Add(100, new TeamStateImp(100, "空中加速\r飞行加速", "空中加速"));
team.Add(101, new TeamStateImp(101, "骑乘减速\r骑乘减速", "骑乘减速"));
team.Add(102, new TeamStateImp(102, "爆发\r持续增加元气", "爆发"));
team.Add(103, new TeamStateImp(103, "疲乏\r持续减少元气", "疲乏"));
team.Add(104, new TeamStateImp(104, "精灵之力\r持续时间内增加小精灵力量", "精灵之力"));
team.Add(105, new TeamStateImp(105, "精灵之敏\r持续时间内增加小精灵的敏捷", "精灵之敏"));
team.Add(106, new TeamStateImp(106, "空刃\r你向敌人释放了空刃,\r自己也同时受到了风的保护。\r增加自身物理防御", "空刃"));
team.Add(107, new TeamStateImp(107, "元素虚弱\r目标物理防御增加,法术防御降低.", "元素虚弱"));
team.Add(108, new TeamStateImp(108, "深毒\r目标受伤害增加20%,\r这个效果可以和天火狂龙等技能叠加", "深毒"));
team.Add(109, new TeamStateImp(109, "扎根\r自身定身同时伤害减少同时反弹伤害", "扎根"));
team.Add(110, new TeamStateImp(110, "大地守护\r每3秒恢复hp,伤害减少.物理和法术攻击降低", "大地守护"));
team.Add(111, new TeamStateImp(111, "狂暴\r目标防御和法术防御降低,同时攻击等级增加", "狂暴"));
team.Add(112, new TeamStateImp(112, "沙暴\r命中降低,施法速度变慢", "沙暴"));
team.Add(113, new TeamStateImp(113, "乡情\r生命和真气回复速度增加,移动速度增加", "乡情"));
team.Add(114, new TeamStateImp(114, "湮灭\r水系防御降低", "湮灭"));
team.Add(115, new TeamStateImp(115, "幸运\r暴击增加", "幸运"));
team.Add(116, new TeamStateImp(116, "冲击\r物理防御降低", "冲击"));
team.Add(117, new TeamStateImp(117, "火花\r火系防御降低", "火花"));
team.Add(118, new TeamStateImp(118, "心火\r物理和法速攻击速度降低", "心火"));
team.Add(119, new TeamStateImp(119, "火种\r持续火伤害", "火种"));
team.Add(120, new TeamStateImp(120, "燃足\r火系防御降低,移动速度降低", "燃足"));
team.Add(121, new TeamStateImp(121, "坚壁\r吸收物理和法术伤害,并且降低自身移动速度", "坚壁"));
team.Add(122, new TeamStateImp(122, "刃切\r金系防御降低", "刃切"));
team.Add(123, new TeamStateImp(123, "叶舞\r移动速度降低并且流血", "叶舞"));
team.Add(124, new TeamStateImp(124, "烧焦\r防御等级下降.攻击等级下降,\r移动速度少量增加", "烧焦"));
team.Add(125, new TeamStateImp(125, "真空\r释放速度变慢,移动速度变慢.受到伤害减少", "真空"));
team.Add(126, new TeamStateImp(126, "止血\r免疫流血状态。", "止血"));
team.Add(127, new TeamStateImp(127, "金刚不坏\r吸收受到的物理伤害", "金刚不坏"));
team.Add(128, new TeamStateImp(128, "法力无边\r吸收受到法术伤害", "法力无边"));
team.Add(129, new TeamStateImp(129, "以牙还牙\r反弹受到的法术伤害", "以牙还牙"));
team.Add(130, new TeamStateImp(130, "风盾术\r受到伤害减少,物理攻击速度和闪避提升", "风盾术"));
team.Add(131, new TeamStateImp(131, "气流锁\r目标定身且有几率被封印", "气流锁"));
team.Add(132, new TeamStateImp(132, "封闭\r封印且物理伤害免疫", "封闭"));
team.Add(133, new TeamStateImp(133, "无心\r免疫伤害加深状态。", "无心"));
team.Add(134, new TeamStateImp(134, "冻结\r无法行动", "冻结"));
team.Add(135, new TeamStateImp(135, "攻击等级增加", "攻击等级增加"));
team.Add(136, new TeamStateImp(136, "攻击等级降低", "攻击等级降低"));
team.Add(137, new TeamStateImp(137, "防御等级增加", "防御等级增加"));
team.Add(138, new TeamStateImp(138, "防御等级降低", "防御等级降低"));
team.Add(139, new TeamStateImp(139, "持续受到土系伤害", "持续土伤害2"));
team.Add(140, new TeamStateImp(140, "封印\r无法使用任何普攻和技能", "不能攻击2"));
team.Add(141, new TeamStateImp(141, "定身\r无法移动", "定身2"));
team.Add(142, new TeamStateImp(142, "祝福\r受到伤害减少", "物理伤害减少2"));
team.Add(143, new TeamStateImp(143, "诅咒\r受到伤害提升", "伤害加深2"));
team.Add(144, new TeamStateImp(144, "提升生命上限", "生命上限增加2"));
team.Add(145, new TeamStateImp(145, "利刃\r物理攻击力提高", "攻击力增加2"));
team.Add(146, new TeamStateImp(146, "灵助\r法术攻击力提高", "法术攻击增加2"));
team.Add(147, new TeamStateImp(147, "专注\r加快吟唱", "吟唱加速2"));
team.Add(148, new TeamStateImp(148, "移动加速", "移动加速2"));
team.Add(149, new TeamStateImp(149, "遁隐\r进入遁隐状态", "隐身"));
team.Add(150, new TeamStateImp(150, "提升反隐等级\r提高反隐等级", "集中精神"));
team.Add(151, new TeamStateImp(151, "嗜血咒\r每次攻击时,从自身造成的伤害中恢复一定生命。", "吸血光环"));
team.Add(152, new TeamStateImp(152, "狂狼印\r提高暴击伤害值","暴击伤害"));
team.Add(153, new TeamStateImp(153, "金刚轮印咒\r被攻击时,有几率闪避攻击技能的伤害。", "伤害闪避"));
team.Add(154, new TeamStateImp(154, "三世明王咒\r被攻击时,有几率闪避攻击技能的效果。", "状态闪避"));
team.Add(155, new TeamStateImp(155, "如来天心咒\r免除一次致死打击,并恢复生命", "回光返照"));
team.Add(156, new TeamStateImp(156, "惩戒\r向攻击者反弹伤害", "反弹之魂"));
team.Add(157, new TeamStateImp(157, "封印\r使攻击者陷入封印状态", "封印之魂"));
team.Add(158, new TeamStateImp(158, "镜像\r攻击者同时承受其技能造成的伤害和状态", "反击之魂"));
team.Add(159, new TeamStateImp(159, "震慑\r将攻击者击晕", "击晕之魂"));
team.Add(160, new TeamStateImp(160, "生命绽放\r增加由技能和药品获得的生命恢复效果,并减少红符冷却时间", "祝福加深"));
team.Add(161, new TeamStateImp(161, "生命禁锢\r降低由技能和药品获得的生命恢复效果,并延长红符冷却时间", "祝福削弱"));
team.Add(162, new TeamStateImp(162, "反噬\r每次普通攻击或施放技能时,都会受到伤害", "使用技能时受伤害"));
team.Add(163, new TeamStateImp(163, "使用技能时被中断\r使目标每次施放技能时,都会被打断", "爆发"));
team.Add(164, new TeamStateImp(164, "人鱼变\r变身成人鱼", "魔法盾"));
team.Add(165, new TeamStateImp(165, "深度冰刺\r降低攻速,提高攻击等级", "冰冻"));
team.Add(166, new TeamStateImp(166, "巫师咒\r调整攻防等级", "热血"));
team.Add(167, new TeamStateImp(167, "金刚剑印\r金系及物理系技能伤害产生加成效果", "金刚剑印"));
team.Add(168, new TeamStateImp(168, "寒潮剑印\r木系及水系技能伤害产生加成效果", "寒潮剑印"));
team.Add(169, new TeamStateImp(169, "焚心剑印\r土系及火系技能伤害产生加成效果", "焚心剑印"));
team.Add(170, new TeamStateImp(170, "玄武剑诀\r有效伤害有几率触发“玄武剑眼”", "玄武剑诀"));
team.Add(171, new TeamStateImp(171, "饮血剑诀\r有效伤害有几率触发“饮血剑眼”", "饮血剑诀"));
team.Add(172, new TeamStateImp(172, "磐龙剑诀\r有效伤害有几率触发“磐龙剑眼”", "磐龙剑诀"));
team.Add(173, new TeamStateImp(173, "玄武剑眼\r特定技能激活该剑眼", "玄武剑眼"));
team.Add(174, new TeamStateImp(174, "饮血剑眼\r特定技能激活该剑眼", "饮血剑眼"));
team.Add(175, new TeamStateImp(175, "磐龙剑眼\r特定技能激活该剑眼", "磐龙剑眼"));
team.Add(176, new TeamStateImp(176, "八方剑影\r对周围目标造成伤害", "八方剑影"));
team.Add(177, new TeamStateImp(177, "毒种\r血量低于50%时触发持续伤害", "碧云咒"));
team.Add(178, new TeamStateImp(178, "回血种\r受到伤害触发持续回血效果", "回风拂柳"));
team.Add(179, new TeamStateImp(179, "增加木水物防\r提高木防水防物防”", "铁木衫"));
team.Add(180, new TeamStateImp(180, "特殊的减速\r减速且受到勾魂摄魄攻击时伤害加深", "腐蔓咒"));
team.Add(181, new TeamStateImp(181, "增加物防暴击\r提高物理防御,暴击率", "魔神蚩尤牺牲"));
team.Add(182, new TeamStateImp(182, "增加法防法攻\r提高五行防御,法术攻击力", "金光电母牺牲"));
team.Add(183, new TeamStateImp(183, "向自己的宠物传输mp\r将本体真气传输给召唤物", "同气连枝"));
team.Add(184, new TeamStateImp(184, "向施放者(宠物)传输伤害\r施法者将为状态所有者分担伤害", "分担伤害"));
team.Add(185, new TeamStateImp(185, "吸伤害加物法防\r可吸收一定的伤害且护盾存在时提高防御抗", "护盾"));
team.Add(186, new TeamStateImp(186, "加快吟唱增加法攻\r提高吟唱速度提高法攻", "风竹秋韵"));
team.Add(187, new TeamStateImp(187, "渐增的回血\r数值渐增的持续回血", "生命之树"));
team.Add(188, new TeamStateImp(188, "献祭\r献祭光环", "火神"));
team.Add(189, new TeamStateImp(189, "枯木逢春\r死亡后立即复活", "枯木逢春"));
team.Add(190, new TeamStateImp(190, "特殊物品伤害触发器\r受到摄魂咒攻击伤害加强", "勾魂摄魄"));
team.Add(191, new TeamStateImp(191, "提升暴击(限制生效次数)", "暴击提升"));
team.Add(192, new TeamStateImp(192, "九尊剑诀\r有几率触发九尊剑眼", "九尊剑诀"));
team.Add(193, new TeamStateImp(193, "九尊剑眼\r被特殊攻击击中触发效果", "九尊剑眼"));
team.Add(194, new TeamStateImp(194, "武器失效", "武器失效"));
team.Add(195, new TeamStateImp(195, "增强技能对npc的伤害\r增加技能对NPC的伤害", "增强点技能对NPC的伤害"));
team.Add(196, new TeamStateImp(196, "侦测周围隐身玩家\r将周围的隐身单位添加到界面上", "侦查周围隐身的玩家"));
team.Add(197, new TeamStateImp(197, "侦测周围隐身玩家\r将周围的隐身单位添加到界面上", "侦查周围隐身的玩家"));
team.Add(198, new TeamStateImp(198, "mp恢复加快2\r场景内mp恢复加快", "场景回蓝"));
team.Add(199, new TeamStateImp(199, "位置回溯\r若干秒后被传回标记位置", "静谧之术"));
team.Add(200, new TeamStateImp(200, "生命回溯\r若干秒后血量变回标记血量", "静谧之术2buff"));
team.Add(201, new TeamStateImp(201, "禁止飞行\r使玩家在一段时间内无法飞行", "兽灵之力buff"));
team.Add(202, new TeamStateImp(202, "强制选择目标\r使玩家在一段时间内只能选择施法者", "奋战扫击buff"));
team.Add(203, new TeamStateImp(203, "吸收治疗\r吸收一定量的治疗", "吸收治疗buff"));
team.Add(204, new TeamStateImp(204, "受到普攻后退并清debuff\r受攻击被弹开", "法之奥义"));
team.Add(205, new TeamStateImp(205, "增加爆击抗性\r受到致命一击的几率降低", "沙暴buff"));
team.Add(206, new TeamStateImp(206, "降低爆击抗性\r受到致命一击的几率提高", "羽斩buff"));
team.Add(207, new TeamStateImp(207, "转移技能攻击诅咒\r将攻击转移给施法者", "复仇之魂buff"));
team.Add(208, new TeamStateImp(208, "被治疗时额外给选定玩家治疗\r额外治疗", "额外治疗buff"));
team.Add(209, new TeamStateImp(209, "受到攻击时额外对选定玩家发起攻击\r伤害链接", "葬魂印记buff"));
team.Add(211, new TeamStateImp(211, "禁止被选中\r使敌人无法直视", "冥王乐土buff"));
team.Add(212, new TeamStateImp(212, "增强技能对npc的伤害2\r可以和1叠加", "迷色万花buff"));
team.Add(213, new TeamStateImp(213, "延迟土系伤害\r若干秒后造成土系伤害", "风岩葬buff"));
team.Add(214, new TeamStateImp(214, "昏迷,自身受到伤害加深\r冰冻光环效果", "冰晶世界"));
team.Add(215, new TeamStateImp(215, "反弹之魂2(比例)\r荆棘术", "灵火buff"));
team.Add(216, new TeamStateImp(216, "受伤害时定身\r受到伤害时有一定几率定身", "炙焰"));
team.Add(217, new TeamStateImp(217, "受伤害时获得元气\r获得元气", "获得元气buff"));
team.Add(218, new TeamStateImp(218, "受伤害时提升攻击力\r触发实际效果图标", "无畏buff"));
team.Add(219, new TeamStateImp(219, "受伤害时提升攻击力\r愈战愈勇", "无畏buff"));
team.Add(220, new TeamStateImp(220, "死战到底\r濒死后无敌且血量上限减少99%", "虎啸buff"));
team.Add(221, new TeamStateImp(221, "治疗偷取\r治疗被转移到施法者", "流星buff"));
team.Add(222, new TeamStateImp(222, "死亡掉落金币\r在此状态下被杀死会掉落金币", "飘零buff"));
team.Add(223, new TeamStateImp(223, "增加攻击距离\r攻击距离提高", "擎天雷鸣buff"));
team.Add(224, new TeamStateImp(224, "无敌5(驱除debuf持续回血昏迷)\r放逐", "流殇buff"));
team.Add(225, new TeamStateImp(225, "雷神变\r羽灵变身", "雷火坠buff"));
team.Add(226, new TeamStateImp(226, "武侠剑刃光环\r剑刃光环图标", "霸气"));
team.Add(227, new TeamStateImp(227, "妖精共舞\r妖精共舞光效图标", "火狐之术buff"));
team.Add(229, new TeamStateImp(229, "减少近战普攻伤害\r防御优化 ", "桎梏诀"));
team.Add(230, new TeamStateImp(230, "全属性提升\r等级奖励 ", "回旋之翼"));
team.Add(231, new TeamStateImp(231, "非战斗恢复\r非战斗状态恢复hpmp", "玄武刻印buff"));
team.Add(232, new TeamStateImp(232, "定值提升\r固定值加hpmp上限", "五感符"));
team.Add(233, new TeamStateImp(233, "自身受到伤害加深(可叠加可刷新)", "旋风斩"));
team.Add(234, new TeamStateImp(234, "PK无惩罚状态", "战场状态"));
team.Add(235, new TeamStateImp(235, "法术防御力提高2", "法术防御力提高"));
team.Add(236, new TeamStateImp(236, "战场旗帜BUFF", "旗帜BUFF"));
team.Add(237, new TeamStateImp(237, "防御等级降低", "防御等级降低"));
team.Add(238, new TeamStateImp(238, "增加物法攻防hp", "回旋之翼"));
team.Add(239, new TeamStateImp(239, "暴击增加", "暴击提升"));
team.Add(240, new TeamStateImp(240, "提升御魔猎魔等级\r百分比提高对怪物攻防", "暴击提升"));
team.Add(241, new TeamStateImp(241, "生命值、攻击等级、防御等级提高", "北美国战"));
team.Add(242, new TeamStateImp(242, "增加攻击等级、防御等级各3点", "GT高级"));
team.Add(243, new TeamStateImp(243, "增加攻击等级、防御等级各1点", "GT低级"));
team.Add(244, new TeamStateImp(244, "伤害减免3\r受到来自于玩家的伤害减少", "固若金汤"));
team.Add(245, new TeamStateImp(245, "攻击时给自己添加状态包", "攻守兼备"));
team.Add(246, new TeamStateImp(246, "攻击时给目标添加状态包", "乘胜追击"));
team.Add(247, new TeamStateImp(247, "免疫物理伤害", "物免2"));
team.Add(248, new TeamStateImp(248, "免疫金系伤害", "金免2"));
team.Add(249, new TeamStateImp(249, "免疫木系伤害", "木免2"));
team.Add(250, new TeamStateImp(250, "免疫水系伤害", "水免2"));
team.Add(251, new TeamStateImp(251, "免疫火系伤害", "火免2"));
team.Add(252, new TeamStateImp(252, "免疫土系伤害", "土免2"));
team.Add(253, new TeamStateImp(253, "物理反震\r反弹所有近身物理伤害", "对物理攻击产生反震"));
team.Add(254, new TeamStateImp(254, "增加攻击等级、防御等级", "热血"));
team.Add(255, new TeamStateImp(255, "瘫痪", "瘫痪buff"));
team.Add(256, new TeamStateImp(256, "受到的技能伤害提高", "受到的技能伤害提高buff"));
team.Add(257, new TeamStateImp(257, "受到的技能暴击率提高", "受到的技能暴击率提高buff"));
team.Add(258, new TeamStateImp(258, "特定技能吟唱时间降低", "特定技能吟唱时间降低buff"));
team.Add(259, new TeamStateImp(259, "特定技能伤害增加", "特定技能伤害增加buff"));
team.Add(260, new TeamStateImp(260, "寒冰护甲2", "寒冰护甲"));
team.Add(261, new TeamStateImp(261, "烈焰护甲2", "烈焰护甲"));
team.Add(262, new TeamStateImp(262, "回血护盾", "回血护盾buff"));
team.Add(263, new TeamStateImp(263, "飞行速度提高(可叠加刷新持续时间)", "准无敌"));
team.Add(264, new TeamStateImp(264, "气魄值提高", "气魄值提高"));
team.Add(265, new TeamStateImp(265, "加气魄减暴伤", "暗炎"));
team.Add(266, new TeamStateImp(266, "移动扣血", "寒宫蟾步"));
team.Add(267, new TeamStateImp(267, "不移动就掉血", "移动扣血"));
team.Add(268, new TeamStateImp(268, "不移动就获得技能", "不移动就掉"));
team.Add(269, new TeamStateImp(269, "免疫打断护盾", "免疫打断护盾"));
team.Add(270, new TeamStateImp(270, "持续瘫痪", "蚀骨月毒"));
team.Add(271, new TeamStateImp(271, "内伤", "雷霆万钧"));
team.Add(272, new TeamStateImp(272, "普攻减伤", "广寒之护"));
team.Add(273, new TeamStateImp(273, "死亡后重置施法者技能冷却时间", "无情游"));
team.Add(274, new TeamStateImp(274, "指定技能造成额外技能效果", "月食"));
team.Add(275, new TeamStateImp(275, "普通攻击附加额外伤害", "狱龙牙"));
team.Add(276, new TeamStateImp(276, "指定技能使用后不进入冷却", "邈云汉"));
team.Add(277, new TeamStateImp(277, "猎命", "猎命"));
team.Add(278, new TeamStateImp(278, "夜影变身", "胧夜影"));
team.Add(279, new TeamStateImp(279, "月仙变身", "胧月仙"));
team.Add(280, new TeamStateImp(280, "附加霜雷状态", "霜雷术"));
team.Add(281, new TeamStateImp(281, "月神之体", "月神之体"));
team.Add(282, new TeamStateImp(282, "增强技能对npc的伤害3", "月咏"));
team.Add(283, new TeamStateImp(283, "减少受到的暴击伤害","减少受到的暴击伤害"));
team.Add(284, new TeamStateImp(284, "物理伤害提高","造成物理伤害提高2"));
team.Add(285, new TeamStateImp(285, "五行伤害提高","造成法术伤害提高2"));
team.Add(286, new TeamStateImp(286, "受到的技能伤害提高2", "晓月银光"));
team.Add(287, new TeamStateImp(287, "冰雷球占位状态包", ""));
team.Add(288, new TeamStateImp(288, "技能CD改变","影噬"));
team.Add(289, new TeamStateImp(289, "免疫驱逐","彩云障月"));
team.Add(290, new TeamStateImp(290, "吟唱附加距离改变","神镰伐桂"));
team.Add(291, new TeamStateImp(291, "双防提高","祭月礼"));
team.Add(292, new TeamStateImp(292, "金防降低3","落月击金"));
team.Add(293, new TeamStateImp(293, "水防降低3","落月击水"));
team.Add(294, new TeamStateImp(294, "暴击回血回元","贪狼刃"));
TeamState = team;
VisibleState = visible;
}
}
public class Range
{
/// <summary>0=point 1=line 2=self sphere 3=target sphere 4=cone 5=self</summary>
@@ -18,13 +493,11 @@ namespace BrewMonster.Scripts.Skills
public bool NoTarget() { return type == 2 || type == 5; }
}
// ռλ // Placeholder Skill class
public class Skill : ElementSkill
{
protected SkillStub stub;
protected PlayerWrapper player;
protected uint id;
protected uint level;
@@ -57,8 +530,8 @@ namespace BrewMonster.Scripts.Skills
public override int GetItemCost() { return stub.itemcost; }
public override bool ValidWeapon(int idWeapon) { return stub.ValidWeapon(idWeapon); }
public override int GetMpCost() { return (int)stub.GetMpcost(this); }
public override bool IsAllowLand() { return stub.allow_land; }
public override bool IsAllowWater() { return stub.allow_water; }
public override bool IsAllowLand() { return stub.allow_land; }
public override bool IsAllowWater() { return stub.allow_water; }
public override bool IsAllowAir() { return stub.allow_air; }
public override int GetArrowCost() { return stub.arrowcost; }
public override bool GetNotuseInCombat() { return stub.notuse_in_combat; }
@@ -109,8 +582,8 @@ namespace BrewMonster.Scripts.Skills
return stub.GetIcon();
}
public int GetAbility() { return SkillWrapper.Instance.GetAbility(id); }
// 检查施放时hp条件 // Check HP condition when casting
public override bool CheckHpCondition(int hp, int max_hp) { return stub.CheckHpCondition(hp, max_hp); }
// 检查施放时hp条件 // Check hp condition when casting
public override bool CheckHpCondition(int hp, int max_hp) { return stub.CheckHpCondition(hp, max_hp); } // TODO: CheckHpCondition is not a member of SkillStub
public override bool CheckComboSkExtraCondition() { return stub.CheckComboSkExtraCondition(this); }
public override byte GetAllowForms() { return stub.allow_forms; }
public override int GetApCost() { return stub.apcost; }
@@ -237,8 +710,6 @@ namespace BrewMonster.Scripts.Skills
/// <summary>Native name as string (C++ GetNativeName).</summary>
public string GetNativeNameString() => stub.nativename;
}
public abstract class SkillStub
{
public const int MIN_LEVEL = 1;
@@ -417,8 +888,8 @@ namespace BrewMonster.Scripts.Skills
public virtual string Getm_szFlyGfxPath() { return m_szFlyGfxPath; }
public virtual string Getm_szHitGrndGfxPath() { return m_szHitGrndGfxPath; }
public virtual string Getm_szHitGfxPath() { return m_szHitGfxPath; }
// 检查HP条件 // Check HP condition
// 默认返回true,子类可以重写以检查HP百分比范围 // Default returns true, subclasses can override to check HP percentage range
// 检查hp条件 // Check hp condition
// 默认返回true,子类可以重写以检查hp百分比范围 // Default returns true, subclasses can override to check hp percentage range
// 例如:return hp >= max_hp / 100.0f * minPercent && hp <= max_hp / 100.0f * maxPercent;
public virtual bool CheckHpCondition(int hp, int max_hp) { return true; }
// 检查连击技能额外条件 // Check combo skill extra condition
@@ -444,4 +915,40 @@ namespace BrewMonster.Scripts.Skills
return true;
}
}
public class VisibleStateImp : VisibleState
{
public int id;
public string name;
public string effect;
public string hh;
public VisibleStateImp(int i, string n, string e, string h)
{
id = i;
name = n;
effect = e;
hh = h;
}
public override int GetID() { return id; }
public override string GetName() { return name; }
public override string GetHH() { return hh; }
public override string GetEffect() { return effect; }
}
public class TeamStateImp : TeamState
{
public int id;
public string name;
public string icon;
public TeamStateImp(int i, string n, string c)
{
id = i;
name = n;
icon = c;
}
public override int GetID() { return id; }
public override string GetName() { return name; }
public override string GetIcon() { return icon; }
}
}
+5 -12
View File
@@ -1370,21 +1370,14 @@ namespace BrewMonster.Scripts.Task.UI
// virtual bool OnInitDialog();
void OnShowDialog()
{
//OnCommand_showtrace(null,m_bShowTrace);
AUIManager auiManager = GetAUIManager();
if(auiManager != null)
{
AUIDialog pTrace = auiManager.GetDialog("Win_QuestMinion");
m_pTog_bShowTrace.SetIsOnWithoutNotify(pTrace.IsShow() == true);
//m_bShowTrace = pTrace.IsShow() == true;
}
else
{
OnCommand_showtrace(null,false);
}
if (m_idSelTask != 0)
UpdateTask();
if(auiManager != null)
{
m_pTog_bShowTrace.isOn = auiManager.IsDialogShow("Win_QuestMinion");
}
}
void OnHideDialog()
{
@@ -340,6 +340,14 @@ namespace BrewMonster.UI
return null;
}
public bool IsDialogShow(string pszName)
{
if(m_DlgName.TryGetValue(pszName, out AUIDialog dlg))
{
return dlg.IsShow();
}
return false;
}
public bool ImportStringBadWords(string pszFilename)
{
@@ -0,0 +1,11 @@
using BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class AUIBuffIcon : AUIImagePictureBase
{
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 200754299bc29436e9c9d608b6927e2d
@@ -11,13 +11,9 @@ using UnityEngine.UI;
namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
{
public class AUIImagePicture : MonoBehaviour
public class AUIImagePicture : AUIImagePictureBase
{
[Header("AUIImagePicture(Need Refactor)")]
[SerializeField] protected int slotIndex = -1;
[SerializeField] protected CECShortcut pSC;
[SerializeField] Button skillbutton;
[SerializeField] protected Image skillImage;
[SerializeField] GameObject borderImage;
[SerializeField] int cooldownTime;
[SerializeField] AUIClockIcon m_ClockCounter;
@@ -28,11 +24,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
private bool m_bForceDynamicRender;
private AUIDialog m_pParent;
// Hint/tooltip data storage
private string m_hintText = string.Empty;
public virtual void Awake()
public override void Awake()
{
if (skillbutton == null)
{
@@ -43,25 +35,22 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
skillbutton.onClick.AddListener(Execute);
m_pParent = GetComponentInParent<AUIDialog>();
}
public void SetDataPtr(CECShortcut pvData, string strName = null)
{
pSC = pvData;
}
public void SetInteract(bool isInteract)
{
if (isInteract)
{
skillbutton.interactable = true;
skillImage.color = Color.white;
disPlayImage.color = Color.white;
}
else
{
skillImage.color = Color.gray;
disPlayImage.color = Color.gray;
skillbutton.interactable = false;
}
}
public CECShortcut GetDataPtr() => pSC;
public void Execute()
{
if (pSC != null )
@@ -89,37 +78,29 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
}
}
}
public void SetSlotIndex(int index)
public override void SetImage(Sprite sprite)
{
slotIndex = index;
}
public virtual void SetImage(Sprite sprite)
{
if(skillImage == null)
if(disPlayImage == null)
{
Debug.LogError("Skill Image is not assigned in AUIImagePicture");
return;
}
skillImage.sprite = sprite;
skillImage.gameObject.SetActive(true);
disPlayImage.sprite = sprite;
disPlayImage.gameObject.SetActive(true);
if(borderImage != null)
borderImage.SetActive(true);
}
private IEnumerator CooldownRoutine()
{
skillbutton.interactable = false;
skillImage.color = Color.gray;
disPlayImage.color = Color.gray;
yield return new WaitForSeconds(cooldownTime);
skillImage.color = Color.white;
disPlayImage.color = Color.white;
skillbutton.interactable = true;
}
public AUIClockIcon GetClockIcon() => m_ClockCounter;
public void SetColor(Color color)
{
skillImage.color = color;
}
private void UpdateRenderTargert()
{
if (!NeedDynamicRender())
@@ -131,32 +112,19 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
return m_bUpdateRenderTarget || m_bForceDynamicRender;
}
/// <summary>
/// Set hint/tooltip text that will be displayed when the skill icon is clicked.
/// This is typically the skill description with requirements.
/// </summary>
/// <param name="hint">The hint text to display</param>
public void SetHint(string hint)
{
m_hintText = hint ?? string.Empty;
}
/// <summary>
/// Get the stored hint/tooltip text.
/// </summary>
/// <returns>The hint text or empty string if none set</returns>
public string GetHint()
{
return m_hintText;
}
public virtual void Clear()
public override void Clear()
{
// BMLogger.Log("Clear AUIImagePicture with name: " + name) ;
pSC = null;
this.SetDataPtr(null);
borderImage.SetActive(false);
m_ClockCounter.SetProgressRange(0, 1);
m_ClockCounter.SetProgressPos(1);
base.Clear();
if (borderImage != null)
{
borderImage.SetActive(false);
}
if (m_ClockCounter != null)
{
m_ClockCounter.SetProgressRange(0, 1);
m_ClockCounter.SetProgressPos(1);
}
}
}
public struct OpenSkillUIEvent
@@ -0,0 +1,83 @@
using BrewMonster.UI;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
{
public class AUIImagePictureBase : MonoBehaviour
{
[Header("AUIImagePicture(Need Refactor)")]
[SerializeField] protected int slotIndex = -1;
[SerializeField] protected CECShortcut pSC;
[SerializeField] protected Image disPlayImage;
// Hint/tooltip data storage
protected string m_hintText = string.Empty;
public virtual void Awake()
{
}
public virtual void SetDataPtr(CECShortcut pvData, string strName = null)
{
pSC = pvData;
}
public CECShortcut GetDataPtr() => pSC;
public void SetSlotIndex(int index)
{
slotIndex = index;
}
public virtual void SetImage(Sprite sprite)
{
if (disPlayImage == null)
{
Debug.LogError("Skill Image is not assigned in AUIImagePicture");
return;
}
disPlayImage.sprite = sprite;
disPlayImage.gameObject.SetActive(true);
}
public void SetColor(Color color)
{
if (disPlayImage != null)
{
disPlayImage.color = color;
}
}
/// <summary>
/// Set hint/tooltip text that will be displayed when the skill icon is clicked.
/// This is typically the skill description with requirements.
/// </summary>
/// <param name="hint">The hint text to display</param>
public void SetHint(string hint)
{
m_hintText = hint ?? string.Empty;
}
/// <summary>
/// Get the stored hint/tooltip text.
/// </summary>
/// <returns>The hint text or empty string if none set</returns>
public string GetHint()
{
return m_hintText;
}
public virtual void Clear()
{
pSC = null;
SetDataPtr(null);
if (disPlayImage != null)
{
disPlayImage.gameObject.SetActive(false);
}
m_hintText = string.Empty;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 5c110d8b215614599bdf6a64c9fdc4f6
@@ -4,7 +4,7 @@ using UnityEngine.UI;
namespace BrewMonster
{
public class AUIToggle : AUIImagePicture
public class AUIToggle : AUIImagePictureBase
{
[Header("SkillToggleUI")]
[SerializeField] protected int skillID;
@@ -19,15 +19,16 @@ namespace BrewMonster
}
public override void SetImage(Sprite sprite)
{
skillImage.sprite = sprite;
skillImage.gameObject.SetActive(true);
if (disPlayImage == null)
{
return;
}
disPlayImage.sprite = sprite;
disPlayImage.gameObject.SetActive(true);
}
public override void Clear()
{
pSC = null;
this.SetDataPtr(null);
skillImage.gameObject.SetActive(false);
return;
base.Clear();
}
}
@@ -29,6 +29,7 @@ namespace BrewMonster.UI
private const string SKILL_ICONLIST_NAME = "iconlist_skill_multisprite";
private const string ACTION_ICONLIST_NAME = "ActionIcon/iconlist_action_multisprite";
private const string STATE_ICONLIST_NAME = "iconlist_state";
public CDlgMiniMap m_pDlgMiniMap;
@@ -343,8 +344,13 @@ namespace BrewMonster.UI
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_SKILL] = (SKILL_ICONLIST_NAME, Resources.LoadAll<Sprite>(SKILL_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_ACTION] = (ACTION_ICONLIST_NAME, Resources.LoadAll<Sprite>(ACTION_ICONLIST_NAME));
m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_STATE] = (STATE_ICONLIST_NAME, Resources.LoadAll<Sprite>(STATE_ICONLIST_NAME));
foreach(var icon in m_IconMap[(byte)EC_GAMEUI_ICONS.ICONS_STATE].Item2)
{
Debug.Log($"Init: icon: {icon.name}");
}
}
public void SetCover(AUIImagePicture pImgPic, string nameImage, EC_GAMEUI_ICONS iCONS_TYPE)
public void SetCover(AUIImagePictureBase pImgPic, string nameImage, EC_GAMEUI_ICONS iCONS_TYPE)
{
pImgPic.SetImage(m_IconMap[(byte)iCONS_TYPE].Item2.FirstOrDefault(s => s.name == nameImage));
}
@@ -562,6 +568,206 @@ namespace BrewMonster.UI
// else if( gs.bAutoReply && cChannel == GP_CHAT_WHISPER ... )
// (Skipped)
}
// bool LoadIconSet()
// {
// bool bval;
// int dwRead;
// AFileImage fi;
// int h, i, j, nIndex;
// A3DRECT *a_rc[ICONS_MAX];
// char szFile[MAX_PATH], szLine[AFILE_LINEMAXLEN];
// int W = 32, H = 32, a_nCountX[ICONS_MAX], a_nCountY[ICONS_MAX];
// GNET::RoleInfo Info = g_pGame->GetGameRun()->GetSelectedRoleInfo();
// char a_szIconFile[ICONS_MAX][40] = { "Action", "Skill", "Ivtr", "State", "SkillGrp", "Guild", "Pet", "ELF", "Suite", "Calendar", "PQ" };
// if( 0 == Info.gender )
// strcat(a_szIconFile[ICONS_INVENTORY], "M");
// else
// strcat(a_szIconFile[ICONS_INVENTORY], "F");
// for( h = 0; h < ICONS_MAX; h++ )
// {
// sprintf(szFile, "%s\\Surfaces\\IconSet\\IconList_%s.txt",
// af_GetBaseDir(), a_szIconFile[h]);
// bval = fi.Open(szFile, AFILE_OPENEXIST | AFILE_TEXT );
// if( !bval ) return AUI_ReportError(__LINE__, __FILE__);
// fi.ReadLine(szLine, sizeof(szLine), &dwRead);
// W = atoi(szLine);
// fi.ReadLine(szLine, sizeof(szLine), &dwRead);
// H = atoi(szLine);
// fi.ReadLine(szLine, sizeof(szLine), &dwRead);
// a_nCountY[h] = atoi(szLine);
// fi.ReadLine(szLine, sizeof(szLine), &dwRead);
// a_nCountX[h] = atoi(szLine);
// a_rc[h] = (A3DRECT*)a_malloc(sizeof(A3DRECT)*(a_nCountX[h] * a_nCountY[h]));
// if( !a_rc[h] ) return AUI_ReportError(__LINE__, __FILE__);
// for( i = 0; i < a_nCountY[h]; i++ )
// {
// for( j = 0; j < a_nCountX[h]; j++ )
// {
// nIndex = i * a_nCountX[h] + j;
// a_rc[h][nIndex].SetRect(j * W, i * H, j * W + W, i * H + H);
// bval = fi.ReadLine(szLine, sizeof(szLine), &dwRead);
// if( dwRead > 0 && strlen(szLine) > 0 )
// m_IconMap[h][AString(szLine)] = nIndex;
// }
// }
// fi.Close();
// m_pA2DSpriteIcons[h] = new A2DSprite;
// if( !m_pA2DSpriteIcons[h] )
// {
// a_free(a_rc[h]);
// return AUI_ReportError(__LINE__, __FILE__);
// }
// sprintf(szFile, "IconSet\\IconList_%s.dds", a_szIconFile[h]);
// bval = m_pA2DSpriteIcons[h]->Init(m_pA3DDevice, szFile, AUI_COLORKEY);
// if( !bval )
// {
// a_free(a_rc[h]);
// return AUI_ReportError(__LINE__, __FILE__);
// }
// m_vecIconList.push_back( m_pA2DSpriteIcons[h] ); // add for imaged hints
// }
// SetImageList(&m_vecIconList); // add for imaged hints
// for( h = 0; h < ICONS_MAX; h++ )
// {
// bval = m_pA2DSpriteIcons[h]->ResetItems(
// a_nCountX[h] * a_nCountY[h], a_rc[h]);
// a_free(a_rc[h]);
// if( !bval ) return AUI_ReportError(__LINE__, __FILE__);
// }
// m_pA2DSpriteMask = new A2DSprite;
// if( !m_pA2DSpriteMask ) return AUI_ReportError(__LINE__, __FILE__);
// bval = m_pA2DSpriteMask->Init(m_pA3DDevice,
// "InGame\\IconHighlight.dds", AUI_COLORKEY);
// if( !bval ) return AUI_ReportError(__LINE__, __FILE__);
// // load the expire icon cover
// m_pA2DSpriteItemExpire = new A2DSprite;
// if( !m_pA2DSpriteItemExpire ) return AUI_ReportError(__LINE__, __FILE__);
// bval = m_pA2DSpriteItemExpire->Init(m_pA3DDevice, "InGame\\IconItemExpire.dds", AUI_COLORKEY);
// if( !bval )
// {
// delete m_pA2DSpriteItemExpire;
// m_pA2DSpriteItemExpire = NULL;
// AUI_ReportError(__LINE__, "CECGameUIMan::LoadIconSet(), failed to load InGame\\IconItemExpire.dds");
// }
// // ذPVPͼ
// const char *szFactionPVPMineBase[FACTION_PVP_ICON_NUM] = {
// "InGame\\_С.tga",
// "InGame\\_С_.tga",
// "InGame\\.tga",
// "InGame\\_.tga",
// "InGame\\_״.tga",
// };
// for (i = 0; i < FACTION_PVP_ICON_NUM; ++ i){
// if (!LoadSprite(szFactionPVPMineBase[i], m_pFactionPVPMineBaseSprite[i])){
// AUI_ReportError(__LINE__, 1, "CECGameUIMan::LoadIconSet(), failed to load %s", szFactionPVPMineBase[i]);
// }
// }
// const char *szFactionPVPMine[FACTION_PVP_ICON_NUM] = {
// "InGame\\_С.tga",
// "InGame\\_С_.tga",
// "InGame\\.tga",
// "InGame\\_.tga",
// "InGame\\_״.tga",
// };
// for (i = 0; i < FACTION_PVP_ICON_NUM; ++ i){
// if (!LoadSprite(szFactionPVPMine[i], m_pFactionPVPMineSprite[i])){
// AUI_ReportError(__LINE__, 1, "CECGameUIMan::LoadIconSet(), failed to load %s", szFactionPVPMine[i]);
// }
// }
// const char *szFactionPVPHasMine = "InGame\\пʾ.tga";
// if (!LoadSprite(szFactionPVPHasMine, m_pA2DSpriteFactionPVPHasMine)){
// AUI_ReportError(__LINE__, 1, "CECGameUIMan::LoadIconSet(), failed to load %s", szFactionPVPHasMine);
// }
// // Emotions.Ѽ
// // Images
// char a_szImageFile[GP_CHAT_MAX][40] = { "ͨ.tga", ".tga", ".tga", ".tga", ".tga", "", "", ".tga", "", "ϵͳ.tga", "", "", "Ž.tga", "ս.tga", ".tga"};
// for (i = 0; i < GP_CHAT_MAX; ++ i)
// {
// AString strFile = AString("InGame\\") + a_szImageFile[i];
// AString strFullPath = AString("Surfaces\\") + strFile;
// if (af_IsFileExist(strFullPath))
// {
// A2DSprite *pSprite = new A2DSprite;
// if (!pSprite) return AUI_ReportError(__LINE__, __FILE__);
// if (pSprite->Init(m_pA3DDevice, strFile, AUI_COLORKEY))
// {
// m_pA2DSpriteImage.push_back(pSprite);
// continue;
// }
// else
// {
// A3DRELEASE(pSprite);
// }
// }
// // ռλ
// m_pA2DSpriteImage.push_back(NULL);
// }
// PAUIDIALOG pShow = GetDialog("Win_Popface");
// pShow->SetData(AUIMANAGER_MAX_EMOTIONGROUPS);
// pShow = GetDialog("Win_Popface01");
// pShow->SetData(AUIMANAGER_MAX_EMOTIONGROUPS);
// pShow = GetDialog("Win_Popface02");
// pShow->SetData(AUIMANAGER_MAX_EMOTIONGROUPS);
// AScriptFile sf;
// if( sf.Open("Configs\\Iconsound.txt") )
// {
// int idSubType;
// AString strWave;
// while( sf.GetNextToken(true) )
// {
// idSubType = atoi(sf.m_szToken);
// sf.GetNextToken(true);
// strWave = sf.m_szToken;
// m_IconSound[idSubType] = strWave;
// }
// sf.Close();
// }
// for (i=0;i<CECSCSysModule::FM_NUM;i++)
// {
// const char* pIconFile = res_SysModuleIconFile(i);
// A2DSprite *pSprite = new A2DSprite;
// if (!pSprite) return AUI_ReportError(__LINE__, __FILE__);
// if (!pSprite->Init(m_pA3DDevice, pIconFile, AUI_COLORKEY))
// {
// A3DRELEASE(pSprite);
// a_LogOutput(1, "CECGameUIMan::LoadIconSet , %s",pIconFile);
// continue;
// }
// pSprite->SetLinearFilter(true);
// m_pSpriteIconSysModule.push_back(pSprite);
// }
// return true;
// }
}
public enum EC_GAMEUI_ICONS : byte
+44 -2
View File
@@ -6,9 +6,11 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
using System.Collections.Generic;
using BrewMonster.Scripts.Skills;
using BrewMonster.Scripts;
namespace BrewMonster
{
public class HUDPlayer : MonoBehaviour
public class HUDPlayer : MonoBehaviour,ITickable
{
public TextMeshProUGUI healthText;
public TextMeshProUGUI manaText;
@@ -21,6 +23,9 @@ namespace BrewMonster
public Image expImage;
public Image apImage;
public List<Toggle> apToggles;
private List<AUIBuffIcon> buffIcons;
[SerializeField] private AUIBuffIcon buffIconPrefab;
[Tooltip("Optional. Assign to make this area open the character dialog on click. If unset, nothing opens.")]
[SerializeField] private Button m_btnOpenCharacter;
@@ -33,6 +38,8 @@ namespace BrewMonster
EventBus.Subscribe<CECHostPlayer.EXPToUpLevel>(UpdateNeededExp);
if (m_btnOpenCharacter != null)
m_btnOpenCharacter.onClick.AddListener(OnOpenCharacterClick);
buffIcons = new List<AUIBuffIcon>();
TickInvoker.Instance.RegisterTickable(this);
}
private void OnDestroy()
@@ -42,6 +49,11 @@ namespace BrewMonster
EventBus.Unsubscribe<CECHostPlayer.EXPToUpLevel>(UpdateNeededExp);
}
public bool Tick(uint dwDeltaTime)
{
UpdateBuffIcons();
return true;
}
private void UpdateNeededExp(CECHostPlayer.EXPToUpLevel obj)
{
neededExp = obj.NeededExp;
@@ -80,7 +92,36 @@ namespace BrewMonster
}
}
}
private void UpdateBuffIcons()
{
var hostPlayer = EC_Game.GetGameRun().GetHostPlayer();
if(hostPlayer == null)
return;
var iconStates = hostPlayer.m_aIconStates;
if(buffIcons.Count < iconStates.Count)
{
for(int i = buffIcons.Count; i < iconStates.Count; i++)
{
var buffIcon = Instantiate(buffIconPrefab, buffIconPrefab.transform.parent);
buffIcons.Add(buffIcon);
}
}
for(int i = 0; i < buffIcons.Count; i++)
{
if(i < iconStates.Count)
{
buffIcons[i].gameObject.SetActive(true);
var gameUIMan = CECUIManager.Instance.GetInGameUIMan();
var szFile = GNET.QueryTeamState(iconStates[i].id).GetIcon();
szFile = szFile.ToLower();
gameUIMan.SetCover(buffIcons[i], szFile, EC_GAMEUI_ICONS.ICONS_STATE);
}
else
{
buffIcons[i].gameObject.SetActive(false);
}
}
}
private void OnOpenCharacterClick()
{
// var gameUIMan = EC_Game.GetGameRun()?.GetUIManager()?.GetInGameUIMan();
@@ -100,5 +141,6 @@ namespace BrewMonster
UnityGameSession.c2s_SendCmdGetExtProps();
dlg.ResetPoints();
}
}
}
@@ -103,7 +103,7 @@ namespace BrewMonster
{
CECShortcut pSC;
CECSCSkill pSCSkill;
AUIImagePicture pCell;
AUIImagePictureBase pCell;
CECSkill pSkill = new CECSkill(-1, -1);
if (a_pSCS == null || a_pSCS.Count < 2)
File diff suppressed because it is too large Load Diff
+121 -121
View File
@@ -365,10 +365,10 @@ RectTransform:
- {fileID: 6913810588620795676}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 38, y: -140.39}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5889574211483133077
CanvasRenderer:
@@ -728,10 +728,10 @@ RectTransform:
- {fileID: 1609651149174304326}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 38, y: -242.78}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &521924147895834695
CanvasRenderer:
@@ -1018,7 +1018,7 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 335.91, y: -431.53912}
m_AnchoredPosition: {x: 335.91, y: -507.53912}
m_SizeDelta: {x: 651.82, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2731969899170380074
@@ -1615,10 +1615,10 @@ RectTransform:
- {fileID: 1704697067466645826}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 38, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3604148096459499892
CanvasRenderer:
@@ -2282,7 +2282,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 91.87}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6858302016506942629
CanvasRenderer:
@@ -2433,7 +2433,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 91.87}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7562352963284824378
CanvasRenderer:
@@ -2751,10 +2751,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 210, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8358568677657722128
CanvasRenderer:
@@ -3364,10 +3364,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 382, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7646717020914693947
CanvasRenderer:
@@ -3514,7 +3514,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &6723345811351538777
RectTransform:
m_ObjectHideFlags: 0
@@ -3952,9 +3952,9 @@ RectTransform:
- {fileID: 5885063335678115690}
m_Father: {fileID: 1263498971758389975}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 127, y: -18.5}
m_SizeDelta: {x: 254, y: 37}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1887848967215853843
@@ -4115,7 +4115,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 309.47, y: -95}
m_SizeDelta: {x: 618.94, y: 0}
m_SizeDelta: {x: 618.94, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2264175676541462108
CanvasRenderer:
@@ -4225,10 +4225,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 554, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1725305811772317814
CanvasRenderer:
@@ -4601,10 +4601,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 468, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3765304872596771789
CanvasRenderer:
@@ -4888,10 +4888,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 296, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9207107349168631693
CanvasRenderer:
@@ -5048,7 +5048,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -322.47, y: 365.44547}
m_SizeDelta: {x: 644.94, y: 0}
m_SizeDelta: {x: 644.94, y: 703.38}
m_Pivot: {x: 0, y: 1}
--- !u!222 &8275541816169387879
CanvasRenderer:
@@ -5182,8 +5182,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 79341390793448853}
skillbutton: {fileID: 6034688251073174200}
skillImage: {fileID: 79341390793448853}
borderImage: {fileID: 5124956242307597890}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
@@ -6616,10 +6616,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 124, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1291961236682885550
CanvasRenderer:
@@ -6692,9 +6692,9 @@ RectTransform:
- {fileID: 5918073574760109704}
m_Father: {fileID: 1285542512886306091}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 127, y: -18.5}
m_SizeDelta: {x: 254, y: 37}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1257159900126729527
@@ -6767,10 +6767,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 38, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2268981575541439631
CanvasRenderer:
@@ -6849,7 +6849,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 335.47, y: -98.4}
m_SizeDelta: {x: 618.94, y: 0}
m_SizeDelta: {x: 618.94, y: 140.8}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2124054608285479539
CanvasRenderer:
@@ -7520,10 +7520,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 468, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &897642746592729160
CanvasRenderer:
@@ -8037,10 +8037,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 210, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7412806809519503430
CanvasRenderer:
@@ -8233,10 +8233,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 124, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8958294640541543931
CanvasRenderer:
@@ -8669,7 +8669,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 91.87}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5438050072468631381
CanvasRenderer:
@@ -9200,7 +9200,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 91.87}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3044764523714620351
CanvasRenderer:
@@ -9617,10 +9617,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 382, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8292637089760855876
CanvasRenderer:
@@ -9693,9 +9693,9 @@ RectTransform:
- {fileID: 3666972851124413242}
m_Father: {fileID: 1244895283146852732}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 127, y: -18.5}
m_SizeDelta: {x: 254, y: 37}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4852245878945746775
@@ -9769,10 +9769,10 @@ RectTransform:
- {fileID: 7544910809585033678}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 382.5, y: -242.78}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2164606938053553701
CanvasRenderer:
@@ -10026,10 +10026,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 38, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4804628498516101234
CanvasRenderer:
@@ -10102,9 +10102,9 @@ RectTransform:
- {fileID: 7738777691134633714}
m_Father: {fileID: 332864778784360512}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 127, y: -18.5}
m_SizeDelta: {x: 254, y: 37}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8557376726661632322
@@ -10254,8 +10254,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 335.47, y: -225.3}
m_SizeDelta: {x: 618.94, y: 0}
m_AnchoredPosition: {x: 335.47, y: -263.3}
m_SizeDelta: {x: 618.94, y: 133}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5943966890611580968
CanvasRenderer:
@@ -10890,8 +10890,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 3801278460223427377}
skillbutton: {fileID: 7693362874457494086}
skillImage: {fileID: 3801278460223427377}
borderImage: {fileID: 6819612505585264736}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
@@ -11048,10 +11048,10 @@ RectTransform:
- {fileID: 7759567721800243228}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 382.5, y: -140.39}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2464100607009156610
CanvasRenderer:
@@ -11853,8 +11853,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 335.47, y: -454.59}
m_SizeDelta: {x: 618.94, y: 0}
m_AnchoredPosition: {x: 335.47, y: -530.58997}
m_SizeDelta: {x: 618.94, y: 345.58002}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &9030098628201859511
CanvasRenderer:
@@ -12777,10 +12777,10 @@ RectTransform:
- {fileID: 1335544207958730177}
m_Father: {fileID: 3123930244098203053}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 382.5, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3020341225908238861
CanvasRenderer:
@@ -12863,7 +12863,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 309.47, y: -205.19}
m_SizeDelta: {x: 618.94, y: 0}
m_SizeDelta: {x: 618.94, y: 280.78}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3138218988396077083
CanvasRenderer:
@@ -12980,7 +12980,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -361.27, y: 365.44547}
m_SizeDelta: {x: 722.5344, y: 0}
m_SizeDelta: {x: 722.5344, y: 28}
m_Pivot: {x: 0, y: 1}
--- !u!222 &7853130943468561016
CanvasRenderer:
@@ -13125,7 +13125,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 309.47, y: -102.8}
m_SizeDelta: {x: 618.94, y: 0}
m_SizeDelta: {x: 618.94, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &965625795563076259
CanvasRenderer:
@@ -13287,8 +13287,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 3801278460223427377}
skillbutton: {fileID: 7693362874457494086}
skillImage: {fileID: 3801278460223427377}
borderImage: {fileID: 6819612505585264736}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
@@ -13400,9 +13400,9 @@ RectTransform:
- {fileID: 8641794091682467561}
m_Father: {fileID: 4902026760249267287}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 127, y: -18.5}
m_SizeDelta: {x: 254, y: 37}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7759539851022153828
@@ -13497,8 +13497,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
slotIndex: -1
disPlayImage: {fileID: 4930055916587000086}
skillbutton: {fileID: 5320015828055191291}
skillImage: {fileID: 4930055916587000086}
borderImage: {fileID: 3406708742645219522}
cooldownTime: 0
m_ClockCounter: {fileID: 0}
@@ -13624,7 +13624,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -361.27, y: 365.44547}
m_SizeDelta: {x: 722.5344, y: 0}
m_SizeDelta: {x: 722.5344, y: 185.6}
m_Pivot: {x: 0, y: 1}
--- !u!222 &74166521354270119
CanvasRenderer:
@@ -13740,7 +13740,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 91.87}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8934459415203184979
CanvasRenderer:
@@ -14584,10 +14584,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3490841402936291418}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 296, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8186299737150272153
CanvasRenderer:
@@ -14691,7 +14691,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &4958559450723387948
RectTransform:
m_ObjectHideFlags: 0
@@ -14804,7 +14804,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 117.99603, y: 0}
m_SizeDelta: {x: 143.9446, y: 0}
m_SizeDelta: {x: 143.9446, y: 45.94}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8300893254371079820
CanvasRenderer:
@@ -14958,7 +14958,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 368.81186, y: -153.20001}
m_SizeDelta: {x: 685.6237, y: 0}
m_SizeDelta: {x: 685.6237, y: 64.8}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8076001380599592139
CanvasRenderer:
@@ -15070,10 +15070,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 3449045492221331241}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 554, y: -38}
m_SizeDelta: {x: 76, y: 76}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4341901141596287823
CanvasRenderer:
@@ -15152,7 +15152,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 368.81186, y: -60.4}
m_SizeDelta: {x: 685.6237, y: 0}
m_SizeDelta: {x: 685.6237, y: 64.8}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &8659649200798903193
CanvasRenderer:
Binary file not shown.

After

Width:  |  Height:  |  Size: 199 KiB

File diff suppressed because it is too large Load Diff
+370
View File
@@ -0,0 +1,370 @@
16
16
12
32
hp恢复加快.dds
2015伤害闪避.dds
2015状态闪避.dds
gt低级.dds
gt高级.dds
hp上限下降.dds
mp恢复加快.dds
万籁俱寂.dds
不移动就掉.dds
不移动就获得技能.dds
不能攻击.dds
不能攻击2.dds
专注.dds
中毒.dds
主动变被动.dds
乘胜追击.dds
九尊剑眼.dds
九尊剑诀.dds
乡情.dds
五感符.dds
五行防御力下降.dds
亢奋.dds
以牙还牙.dds
休迅飞凫.dds
伤害加深2.dds
伤害吸收护盾.dds
伤害转化为输出.dds
伤害转移.dds
伤害闪避.dds
体积增大.dds
使普通攻击附加水系伤害.dds
使普通攻击附加火系伤害.dds
使普通攻击附近木系伤害.dds
使用技能时受伤害.dds
使用技能时被中断.dds
侦查周围隐身的玩家.dds
元素虚弱.dds
免疫打断护盾.dds
免疫流血.dds
八方剑影.dds
八米外的远程直接伤害减免.dds
兽灵之力buff.dds
兽王之怒.dds
冥王乐土buff.dds
冥瞳buff.dds
冰冻.dds
冰晶世界.dds
冲击.dds
冷嘲热讽.dds
冻结.dds
准无敌.dds
准确度下降.dds
减吟唱时间.dds
减少受到的暴击伤害.dds
击晕之魂.dds
刃切.dds
分担伤害.dds
割裂.dds
加快吟唱.dds
加快吟唱2.dds
加速.dds
加速移动.dds
勾魂摄魄.dds
化血成魔.dds
北美国战.dds
单人副本受到伤害减少.dds
单人副本攻击增加.dds
单人副本攻击等级增加.dds
单人副本攻击距离增加.dds
单人副本无敌.dds
单人副本治疗.dds
单人副本法术防御增加.dds
单人副本物理防御增加.dds
单人副本生命上限增加.dds
单人副本防御等级增加.dds
双防降低.dds
反击之魂.dds
反弹之魂.dds
反弹法术伤害.dds
受到怪物群攻伤害降低.dds
受到玩家群攻伤害降低.dds
受到的技能伤害提高buff.dds
受到的技能暴击率提高buff.dds
叶舞.dds
同气连枝.dds
吟唱加速2.dds
吸收治疗buff.dds
吸收法术伤害.dds
吸收物理伤害.dds
吸血光环.dds
回光诀.dds
回光返照.dds
回旋之翼.dds
回流祝福.dds
回血护盾buff.dds
回风拂柳.dds
回风拂面.dds
固若金汤.dds
土免.dds
土免2.dds
土免疫.dds
土系防御上升.dds
土系防御下降.dds
场景回蓝.dds
坚壁.dds
坚强.dds
坚甲符.dds
增加法术穿透.dds
增加物理穿透.dds
增强点技能对npc的伤害.dds
复仇之魂buff.dds
大地守护.dds
天瀑符.dds
奋战扫击buff.dds
妖狐击.dds
妖狐附体.dds
守神符时间延长.dds
定身.dds
定身2.dds
定身且不能攻击.dds
寒冰护甲.dds
寒宫蟾步.dds
寒潮剑印.dds
对物理攻击产生反震.dds
封印之魂.dds
封闭.dds
巨灵神力.dds
幸运.dds
幽植鬼瞳.dds
广寒之护.dds
弱魂咒.dds
彩云障月.dds
影噬.dds
心火.dds
急速冷却.dds
战场状态.dds
扎根.dds
扬沙.dds
技能吟唱时间加长.dds
护盾.dds
护身符时间延长.dds
押运.dds
持续mp减少状态.dds
持续冰伤害.dds
持续土伤害2.dds
持续土系伤害.dds
持续恢复hp.dds
持续恢复mp.dds
持续掉血.dds
持续火攻击.dds
持续金系攻击.dds
挥砍.dds
提升hp上限.dds
提高mp上限.dds
提高躲闪度.dds
擎天雷鸣buff.dds
攻击力增加2.dds
攻击等级增加.dds
攻击等级降低.dds
攻击速度加快.dds
攻击速度加快2.dds
攻守兼备.dds
放血.dds
旋风斩.dds
旗帜buff.dds
无冕之王buff.dds
无情游.dds
无敌.dds
无畏buff.dds
无视防御.dds
无限荆棘buff.dds
日冕buff.dds
易筋经.dds
易髓经.dds
晓月银光.dds
普通攻击间隔加长.dds
暗炎.dds
暴击伤害.dds
暴击提升.dds
暴击暴伤强化.dds
月咏.dds
月神之体.dds
月食.dds
木免.dds
木免2.dds
木免疫.dds
木系防御上升.dds
木系防御下降.dds
枯木逢春.dds
格挡.dds
桎梏诀.dds
止血.dds
武器失效.dds
武神附体.dds
残体咒.dds
气流锁.dds
气魄值提高.dds
水中减速.dds
水中加速.dds
水免.dds
水免2.dds
水免疫.dds
水火灵盾.dds
水系防御上升.dds
水系防御下降.dds
沙暴.dds
沙暴buff.dds
法之奥义.dds
法力无边.dds
法师之星.dds
法术攻击力提高.dds
法术攻击力提高2.dds
法术攻击增加2.dds
法术防御力提高.dds
法术防御力提高2.dds
法神附体.dds
流光溢彩.dds
流星buff.dds
流殇buff.dds
消失.dds
深毒.dds
清净琉璃牺牲.dds
湮灭.dds
火伤.dds
火免.dds
火免2.dds
火免疫.dds
火狐之术buff.dds
火神.dds
火种.dds
火系防御上升.dds
火系防御下降.dds
火花.dds
灵助符.dds
灵火buff.dds
灵狐变.dds
灵眸.dds
炙焰.dds
点穴.dds
烈焰之矢.dds
烈焰护甲.dds
烧焦.dds
热血.dds
焚心剑印.dds
燃足.dds
爆击率提升.dds
爆击率提升2.dds
爆发.dds
物免2.dds
物理伤害减少2.dds
物理攻击力下降.dds
物理攻击力提高.dds
物理攻击力提高2.dds
物理防御力下降.dds
物理防御力提高.dds
物理防御力提高2.dds
特定技能伤害增加buff.dds
特定技能吟唱时间降低buff.dds
状态闪避.dds
狂妄.dds
狂暴.dds
狂暴1.dds
狂暴2.dds
狂雷天鹰.dds
狱龙牙.dds
猎命.dds
玄武刻印buff.dds
玄武剑眼.dds
玄武剑诀.dds
生命上限增加2.dds
生命之树.dds
疲乏.dds
瘫痪buff.dds
白虎变.dds
真元爆发.dds
真空.dds
睡眠.dds
碎灵咒.dds
碧云咒.dds
磐石护甲.dds
磐龙剑眼.dds
磐龙剑诀.dds
祈愿香.dds
祝福削弱.dds
祝福加深.dds
神圣.dds
神镰伐桂.dds
祭月礼.dds
移动加速2.dds
移动扣血.dds
空中减速.dds
空中加速.dds
空刃.dds
穿透.dds
精灵之力.dds
精灵之敏.dds
精灵火.dds
繁星buff.dds
羽斩buff.dds
羽盾.dds
翼盾.dds
胧夜影.dds
胧月仙.dds
腐蔓咒.dds
自由.dds
自身伤害减半.dds
自身受到的物理伤害加倍.dds
致晕.dds
致残咒.dds
般若心经.dds
荆棘术.dds
荆棘阵.dds
落月击水.dds
落月击金.dds
葬魂印记buff.dds
虎啸buff.dds
虚无.dds
蚀骨月毒.dds
血翻倍.dds
贪狼刃.dds
躲闪度下降.dds
软骨之矢.dds
迟滞.dds
迷色万花buff.dds
造成法术伤害提高2.dds
造成物理伤害提高2.dds
避水诀.dds
邈云汉.dds
酒酣.dds
金光电母牺牲.dds
金免.dds
金免2.dds
金免疫.dds
金刚不坏.dds
金刚剑印.dds
金系防御上升.dds
金系防御下降.dds
金钟罩.dds
钩月刃.dds
铁木衫.dds
长风破.dds
防御等级增加.dds
防御等级降低.dds
降低治疗效果.dds
降低目标双防2.dds
隐身.dds
集中精神.dds
雷火坠buff.dds
雷霆万钧.dds
霜雷术.dds
霸体.dds
霸气.dds
静谧之术.dds
静谧之术2buff.dds
风岩葬buff.dds
风盾术.dds
风竹秋韵.dds
飘零buff.dds
饮血剑眼.dds
饮血剑诀.dds
骑乘减速.dds
骑乘加速.dds
魂力加攻击.dds
魂力降低.dds
魔法盾.dds
魔神蚩尤牺牲.dds
+7
View File
@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 50c19284286f54f0a93391219ed5bf81
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
+3 -2
View File
@@ -559,6 +559,8 @@ namespace BrewMonster
case EC_MsgDef.MSG_HST_SKILLATTACKED: OnMsgHstSkillAttacked(Msg); break;
case EC_MsgDef.MSG_PM_CASTSKILL: OnMsgPlayerCastSkill(Msg); break;
case EC_MsgDef.MSG_HST_SETCOOLTIME: OnMsgHstSetCoolTime(Msg); break;
case EC_MsgDef.MSG_PM_PLAYEREXTSTATE: OnMsgPlayerExtState(Msg); break;
case EC_MsgDef.MSG_PM_ENCHANTRESULT: OnMsgEnchantResult(Msg); break;
case EC_MsgDef.MSG_HST_LEARNSKILL: OnMsgHstLearnSkill(Msg); break;
case EC_MsgDef.MSG_HST_COMBO_SKILL_PREPARE: OnMsgComboSkillPrepare(Msg); break;
@@ -582,8 +584,7 @@ namespace BrewMonster
case EC_MsgDef.MSG_HST_TEAMINVITE: OnMsgHstTeamInvite(Msg); break;
case EC_MsgDef.MSG_HST_TEAMMEMBERDATA: OnMsgHstTeamMemberData(Msg); break;
case EC_MsgDef.MSG_PM_DUELOPT: OnMsgHstDuelOpt(Msg); break;
case EC_MsgDef.MSG_PM_PLAYERCHGSHAPE :
OnMsgPlayerChgShape(Msg); break;
case EC_MsgDef.MSG_PM_PLAYERCHGSHAPE : OnMsgPlayerChgShape(Msg); break;
case EC_MsgDef.MSG_HST_SETMOVESTAMP: OnMsgHstSetMoveStamp(Msg); break;
case EC_MsgDef.MSG_HST_SANCTUARY: OnMsgHstSanctuary(Msg); break;
+8 -8
View File
@@ -103,15 +103,11 @@ public class CECUIManager : MonoSingleton<CECUIManager>
if (inGameUIMan == null) return;
var dlgTaskDialog = inGameUIMan.GetDialog("Win_Quest");
var dlgTaskTraceDialog = inGameUIMan.GetDialog("Win_QuestMinion");
if (dlgTaskDialog != null && dlgTaskDialog is BrewMonster.Scripts.Task.UI.DlgTask dlgTaskForTrace)
var bShowTrace = inGameUIMan.IsDialogShow("Win_QuestMinion");
if (dlgTaskDialog != null && dlgTaskDialog is BrewMonster.Scripts.Task.UI.DlgTask dlgTask)
{
if (dlgTaskTraceDialog != null)
{
dlgTaskForTrace.RefreshTaskTrace(dlgTaskTraceDialog.IsShow());
}
dlgTaskForTrace.Tick();
dlgTask.RefreshTaskTrace(bShowTrace);
dlgTask.Tick();
}
}
catch (System.Exception)
@@ -659,6 +655,10 @@ public class CECUIManager : MonoSingleton<CECUIManager>
return gameUI;
}
public void GetIconStateMgr()
{
}
/// <summary>Shows the player options menu for the given character. Requires a prefab with id "DlgPlayerOptions" in DialogScriptTableObject.</summary>
public void ShowPlayerOptionsDialog(int characterId, Vector2 position)