fix bug can't use skill when player is far from target

This commit is contained in:
VDH
2026-01-05 15:27:12 +07:00
parent f6f9cb343f
commit 2d3c9a96ef
19 changed files with 1143 additions and 351 deletions
@@ -65,8 +65,8 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10911, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_Sprite: {fileID: 10913, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
@@ -75,6 +75,81 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &2380244736749663509
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5484588459809847712}
- component: {fileID: 2690941580050673919}
- component: {fileID: 4280331804577109228}
m_Layer: 5
m_Name: Image
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &5484588459809847712
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2380244736749663509}
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: 5717981154351234976}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2690941580050673919
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2380244736749663509}
m_CullTransparentMesh: 1
--- !u!114 &4280331804577109228
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2380244736749663509}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.2924528, g: 0.22485758, b: 0.22485758, a: 0.6117647}
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: 10913, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 3
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 0
m_FillClockwise: 1
m_FillOrigin: 2
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &4284393271722921544
GameObject:
m_ObjectHideFlags: 0
@@ -85,6 +160,7 @@ GameObject:
m_Component:
- component: {fileID: 5717981154351234976}
- component: {fileID: 2581817642771390274}
- component: {fileID: 7847394660162355121}
- component: {fileID: 1012268097730980895}
- component: {fileID: 3344986418137786462}
- component: {fileID: 6831872353885336647}
@@ -102,12 +178,13 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4284393271722921544}
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: 7644618114629580485}
- {fileID: 5484588459809847712}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
@@ -129,6 +206,21 @@ MonoBehaviour:
m_EditorClassIdentifier:
skillbutton: {fileID: 6831872353885336647}
skillImage: {fileID: 8375324328665448590}
cooldownTime: 4
m_ClockCounter: {fileID: 7847394660162355121}
--- !u!114 &7847394660162355121
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4284393271722921544}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 70ec0de7d6bb5134fbdf6bf9b1cfbff4, type: 3}
m_Name:
m_EditorClassIdentifier:
m_ClockIcon: {fileID: 4280331804577109228}
--- !u!222 &1012268097730980895
CanvasRenderer:
m_ObjectHideFlags: 0
@@ -30,6 +30,8 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7646065705685923996}
- {fileID: 7624622564514112041}
- {fileID: 3689929667910841152}
m_Father: {fileID: 8078455359151753464}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@@ -51,6 +53,8 @@ MonoBehaviour:
m_EditorClassIdentifier:
AUIImagePictureList:
- {fileID: 473551792621656190}
- {fileID: 386805116814525131}
- {fileID: 6898229972725535650}
--- !u!1 &5713000252331107611
GameObject:
m_ObjectHideFlags: 0
@@ -227,11 +231,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.x
value: 318
value: 264
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.y
value: -235
value: -387
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
@@ -266,3 +270,245 @@ RectTransform:
m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 2685853672127006524}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &2777102779975540105
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1608209508545832950}
m_Modifications:
- target: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: cooldownTime
value: 9
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Name
value: ButtonSkill1 (1)
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.x
value: 160
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.y
value: 155.1223
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.x
value: 390
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.y
value: -232
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
--- !u!114 &386805116814525131 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 2777102779975540105}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &7624622564514112041 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 2777102779975540105}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &8966414979997338848
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 1608209508545832950}
m_Modifications:
- target: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: cooldownTime
value: 7
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Name
value: ButtonSkill1 (2)
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_IsActive
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.x
value: 160
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.y
value: 155.1223
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.x
value: 613
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.y
value: -134
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
--- !u!224 &3689929667910841152 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 8966414979997338848}
m_PrefabAsset: {fileID: 0}
--- !u!114 &6898229972725535650 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 8966414979997338848}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3}
m_Name:
m_EditorClassIdentifier:
@@ -143,6 +143,12 @@ namespace BrewMonster.Managers
@@ -284,7 +284,7 @@ namespace BrewMonster
public string GetNameDisplay()
{
return EC_Game.GetSkillDesc().GetWideString(GetSkillID() * 10);
return EC_Game.GetSkillDesc().GetWideString(GetSkillID() * 10);
}
public string GetDesc()
@@ -307,6 +307,7 @@ namespace BrewMonster
{
return m_pSkillCore != null ? m_pSkillCore.GetExecuteTime() : 0;
}
public int GetCommonCoolDown() { return m_pSkillCore.GetCommonCoolDown(); }
public int GetType()
{
@@ -320,7 +321,7 @@ namespace BrewMonster
public float GetCastRange(float fAtkDist, float fPrayDistancePlus)
{
BMLogger.LogError($"HoangDev: GetCastRange {m_pSkillCore}");
return m_pSkillCore != null ? m_pSkillCore.GetPrayRange(fAtkDist, fPrayDistancePlus) : 0f;
}
public string GetEffect()
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Text;
using UnityEngine;
namespace CSNetwork.GPDataType
{
@@ -783,7 +784,86 @@ namespace CSNetwork.GPDataType
public short sReviveType; // Revive type
public A3DVECTOR3 pos;
};
public enum CoolTimeIndex
{
GP_CT_NULL = 0, // ¿Õ£¬±£Áô
GP_CT_PVP, // ûÓã¬ÏÈռλ
GP_CT_EMOTE, // ×ö±íÇéµÄÀäȴʱ¼ä
GP_CT_REJUVENATION_POTION, // ¾ÅÑôµ¤µÄÀäȴʱ¼ä
GP_CT_SWITCH_FASHION, // Çл»Ê±×°Ä£Ê½µÄÀäȴʱ¼ä
GP_CT_DROP_MONEY, // ÍùµØÉÏÈÓÇ®µÄÀäȴʱ¼ä
GP_CT_DROP_ITEM, // ÍùµØÉÏÈÓÎïÆ·µÄÀäȴʱ¼ä
GP_CT_FACEPILL, // ±äÐÎÍèµÄÀäȴʱ¼ä
GP_CT_FACETICKET, // ÕûÈݵÄÀäȴʱ¼ä
GP_CT_RECURRECT_SCROLL, // ±ðÈ˸´»î¾íµÄÀäȴʱ¼ä£¬´ËÎïÆ·²»´æÔÚ£¬Î´ÉúЧ
GP_CT_SOUL_STONE, // ÏÖÔÚ¸´»î¾íÖáµÄÀäȴʱ¼ä
GP_CT_HP_POTION, // »ØÑªÒ©
GP_CT_MP_POTION, // »ØÄ§Ò©
GP_CT_ANTIDOTE_POTION, // ½â¶¾¼Á
GP_CT_FLY_RUSH, // ¼ÓËÙ·ÉÐÐ
GP_CT_TOWNSCROLL, // »Ø³Ç¾íÖá
GP_CT_GM_GENITEM, // GM Éú³É¹ÖÎïµÄÎïÆ·
GP_CT_VIEWOTHEREQUIP, // ²é¿´±ðÈ˵Ä×°±¸
GP_CT_FEED_PET, // Î¹Ñø³èÎï
GP_CT_FIREWORKS, // Ê©·ÅÑÌ»¨
GP_CT_FARCRY, // far cry ƵµÀ˵»°
GP_CT_SKILLMATTER, // ʹÓü¼ÄÜÎïÆ·
GP_CT_REFINE, // ¾«Á¶
GP_CT_ARMORRUNE, // ·ÀÓùÓÅ»¯·û
GP_CT_AUTOHP, // »¤Éí·ûÀäȴʱ¼ä
GP_CT_AUTOMP, // ÊØÉñ·ûÀäȴʱ¼ä
GP_CT_DOUBLEEXP, // Ë«±¶¾­ÑéµÀ¾ßÀäȴʱ¼ä
GP_CT_DYETICKET, // ȾɫµÀ¾ß
GP_CT_TEAMRELATION, // ×é¶Ó¹ØÏµÀäȴʱ¼ä
GP_CT_REFINETRANS, // ¾«Á¶µÈ¼¶×ªÒÆÀäȴʱ¼ä
GP_CT_CAST_ELF_SKILL, // С¾«Áé¼¼ÄÜÀäÈ´
GP_CT_ELF_CMD, // ÏÈռλ
GP_CT_GET_MALL_PRICE, // »ñÈ¡É̳ÇÊý¾ÝµÄÀäȴʱ¼ä
GP_CT_QUERY_OTHER_PROPERTY, // ²éѯĿ±êÊôÐÔ 5Ãë
GP_CT_SKILLTRIGGER2, // ʹÓü¼ÄÜÎïÆ·1Ãë
GP_CT_SKILLCOMMONCOOLDOWN0, // ÓÃÓÚ¼¼Äܹ«¹²ÀäÈ´
GP_CT_SKILLCOMMONCOOLDOWN1,
GP_CT_SKILLCOMMONCOOLDOWN2,
GP_CT_SKILLCOMMONCOOLDOWN3,
GP_CT_SKILLCOMMONCOOLDOWN4,
GP_CT_RUNECOMMONCOOLDOWN0, // ÓÃÓÚÎïÆ·¼¼Äܹ«¹²ÀäÈ´
GP_CT_RUNECOMMONCOOLDOWN1,
GP_CT_RUNECOMMONCOOLDOWN2,
GP_CT_RUNECOMMONCOOLDOWN3,
GP_CT_RUNECOMMONCOOLDOWN4,
GP_CT_EQUIP_FASHION_ITEM, // ×Ô¶¯»»×°Àäȴʱ¼ä 60s
GP_CT_GET_DIVIDEND_MALL_PRICE, // »ñÈ¡ºèÀûÉ̳ÇÊý¾ÝµÄÀäȴʱ¼ä 30s
GP_CT_MULTI_EXCHANGE_ITEM, // ÕûÀí°ü¹üÀäȴʱ¼ä 30s
GP_CT_TEAM_CONGREGATE, // ¶ÓÎ鼯½áÁî
GP_CT_FACTION_CONGREGATE, // °ïÅɼ¯½áÁî
GP_CT_DPS_DPH_RANK, // »ñȡɳ°üÅÅÐаñ
GP_CT_JOIN_PLAYER_FORCE, // ¼ÓÈëÊÆÁ¦
GP_CT_LEAVE_PLAYER_FORCE, // Àë¿ªÊÆÁ¦
GP_CT_TOGGLE_ONLINE_AWARD, // Çл»¹Ò»úµºÔÚÏß½±Àø
GP_CT_COUNTRY_BATTLE_APPLY, // ¼ÓÈë¹úÕ½ÉêÇë
GP_CT_COUNTRY_CHAT, // ¹úսƵµÀ·¢ÑÔ
GP_CT_CROSS_SERVER_APPLY, // ǰÍù¿ç·þÉêÇë
GP_CT_TOUCHTRADE, // Touch µã¹ºÎï»ò²éѯ
GP_CT_SWITCH_PARALLEL_WORLD, // Çл»·ÖÏß
GP_CT_QUERY_PARALLEL_WORLD, // ²éѯ·ÖÏß
GP_CT_GIFTCARD_REDEEM,
GP_CT_TRICKBATTLE_APPLY, // ¿ç·þ»î¶¯, Õ½³µ
GP_CT_AUTOTEAM, // ×Ô¶¯×é¶Ó²Ù×÷£¬µØÍ¼Ìø×ª
GP_CT_PLAYER_GATHER, // ·ÀÖ¹²É¼¯¹ý¿ì (GATHER_MATERIAL)
GP_CT_COUNTRYBATTLE_LIVESHOW, // ²éѯ¹úÕ½rankºÍËÀÍöÊý¾Ý (COUNTRYBATTLE_LIVE_SHOW)
GP_CT_QUERY_MAFIA_PVP_INFO, // 65: °ïÅÉ PVP ÐÅÏ¢²éѯ (QUERY_MAFIA_PVP_INFO)
GP_CT_MAX,
GP_CT_SKILL_START = 1024,
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_notify_hostpos
{
@@ -1635,6 +1715,20 @@ namespace CSNetwork.GPDataType
public int nid;
public int vis_tid;
};
[StructLayout(LayoutKind.Sequential, Pack = 1)] // sizeof = 36 với padding 1 byte sau dir
public struct cmd_cooltime_data
{
public ushort count;
public item_t[] list;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)] // sizeof = 36 với padding 1 byte sau dir
public struct item_t
{
public ushort idx;
public int cooldown;
public int max_cooltime;
}
[StructLayout(LayoutKind.Sequential, Pack = 1)] // sizeof = 36 với padding 1 byte sau dir
public struct cmd_npc_info_00
{
@@ -1998,7 +2092,7 @@ namespace CSNetwork.GPDataType
public byte where; //ĸ0 ׼2 1 װ
public byte index; //󲿷ַĸλ
}
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_player_gather_start
{
@@ -2012,7 +2106,7 @@ namespace CSNetwork.GPDataType
{
public int pid; // player id
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_mine_gathered
{
@@ -274,6 +274,7 @@ namespace BrewMonster.Scripts.Skills
// ֧
public virtual int GetArrowCost() { return 0; }
public virtual int GetCommonCoolDown() { return 0; }
public static int GetCommonCoolDown(uint id)
{
+5 -1
View File
@@ -87,6 +87,7 @@ namespace BrewMonster.Scripts.Skills
return 1;
}
public override byte GetType() { return stub.type; }
public override int GetCommonCoolDown() { return stub.commoncooldown; }
public override string GetIcon()
{
@@ -99,9 +100,12 @@ namespace BrewMonster.Scripts.Skills
player.SetPrayrangeplus(prayplus);
if (stub.type == (int)skill_type.TYPE_ATTACK || stub.type == (int)skill_type.TYPE_CURSE)
{
BMLogger.LogError($"HoangDev: GetPrayRange AutoAttack {stub.auto_attack}");
if (stub.auto_attack)
{
float r = 0.3f * stub.GetPraydistance(this);
BMLogger.LogError($"HoangDev: r={r} ");
if (r >= 1.0)
return stub.GetPraydistance(this) - 1.0f;
else
@@ -241,7 +245,7 @@ namespace BrewMonster.Scripts.Skills
public int GetMaxLevel() { return max_level; }
public Range GetRange() { return range; }
public bool IsMovingSkill() { return is_movingcast; }
public new byte GetType() { return type; } // System.Object.GetType // Hide System.Object.GetType
public byte GetType() { return type; } // System.Object.GetType // Hide System.Object.GetType
// ʱ // Runtime-related virtual functions
public virtual int GetCoolingtime(Skill skill) { return 0; }
+10 -10
View File
@@ -129,16 +129,16 @@ namespace BrewMonster
~Skill1Stub() { }
public float GetMpcost(Skill skill) => (float)(-5 + 7 * skill.GetLevel());
public int GetExecutetime(Skill skill) => 700;
public int GetCoolingtime(Skill skill) => 3000;
public float GetRadius(Skill skill) => 0f;
public float GetAttackdistance(Skill skill) => 0f;
public float GetAngle(Skill skill) => (float)(1 - 0.0111111 * 0);
public float GetPraydistance(Skill skill) => (float)(skill.GetPlayer().GetRange());
public int GetRequiredLevel(Skill skill) => RequiredLevelArray[skill.GetLevel() - 1];
public int GetRequiredSp(Skill skill) => RequiredSpArray[skill.GetLevel() - 1];
public int GetRequiredMoney(Skill skill) => RequiredMoneyArray[skill.GetLevel() - 1];
public override float GetMpcost(Skill skill) => (float)(-5 + 7 * skill.GetLevel());
public override int GetExecutetime(Skill skill) => 700;
public override int GetCoolingtime(Skill skill) => 3000;
public float GetRadius(Skill skill) => 0f;
public float GetAttackdistance(Skill skill) => 0f;
public float GetAngle(Skill skill) => (float)(1 - 0.0111111 * 0);
public override float GetPraydistance(Skill skill) => (float)(skill.GetPlayer().GetRange());
public override int GetRequiredLevel(Skill skill) => RequiredLevelArray[skill.GetLevel() - 1];
public override int GetRequiredSp(Skill skill) => RequiredSpArray[skill.GetLevel() - 1];
public override int GetRequiredMoney(Skill skill) => RequiredMoneyArray[skill.GetLevel() - 1];
#if SKILL_CLIENT
public int GetIntroduction(Skill skill, StringBuilder buffer, int length, string format)
@@ -175,6 +175,12 @@ namespace BrewMonster
@@ -173,6 +173,12 @@ namespace BrewMonster
@@ -112,6 +112,12 @@ namespace BrewMonster
@@ -16,6 +16,7 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
[SerializeField] Button skillbutton;
[SerializeField] Image skillImage;
[SerializeField] int cooldownTime;
[SerializeField] AUIClockIcon m_ClockCounter;
private void Awake()
{
@@ -50,5 +51,6 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.UI.GamePlay
skillImage.color = Color.white;
skillbutton.interactable = true;
}
public AUIClockIcon GetClockIcon() => m_ClockCounter;
}
}
@@ -27,6 +27,8 @@ namespace BrewMonster
int iIconFile, nMax;
AUIImagePicture pCell;
CECSkill pSkill = new CECSkill(-1, -1);
AUIClockIcon pClock;
int nCurPanel9 = GetCurPanel1();
int nCurPanel8 = GetCurPanel2();
@@ -50,9 +52,9 @@ namespace BrewMonster
{
pCell = AUIImagePictureList[j];
pSC = a_pSCS[i].GetShortcut(j);
/* pClock = pCell->GetClockIcon();
pClock->SetProgressRange(0, 1);
pClock->SetProgressPos(1);*/
pClock = pCell.GetClockIcon();
pClock.SetProgressRange(0, 1);
pClock.SetProgressPos(1);
if (pSC != null)
{
if (pSC.GetType() == (int)CECShortcut.ShortcutType.SCT_SKILL)
@@ -67,38 +69,42 @@ namespace BrewMonster
}
else
{
/* if (pSkill && pSkill.ReadyToCast() && pHost.GetPrepSkill() != pSkill)
{
if (GNET::ElementSkill::IsGoblinSkill(pSkill->GetSkillID()))
{
if (pHostGoblin && !pHostGoblin->CheckSkillCastCondition(pSkill))
{
pCell->SetColor(A3DCOLORRGB(255, 255, 255));
}
else
{
pCell->SetColor(A3DCOLORRGB(128, 128, 128));
}
}
else
{
if (!pHost->CheckSkillCastCondition(pSkill))
pCell->SetColor(A3DCOLORRGB(255, 255, 255));
else
pCell->SetColor(A3DCOLORRGB(128, 128, 128));
}
}
else
pClock->SetColor(A3DCOLORRGBA(0, 0, 0, 128));
if (pSkill && (pSkill->GetCoolingTime() > 0 ||
pHost->GetPrepSkill() == pSkill))
{
pClock->SetProgressRange(0, pSkill->GetCoolingTime());
if (pHost->GetPrepSkill() == pSkill)
pClock->SetProgressPos(0);
else
pClock->SetProgressPos(pSkill->GetCoolingTime() - pSkill->GetCoolingCnt());
}*/
if (pSkill != null && pSkill.ReadyToCast() && pHost.GetPrepSkill() != pSkill)
{
if (ElementSkill.IsGoblinSkill((uint)pSkill.GetSkillID()))
{
/* if (pHostGoblin && !pHostGoblin->CheckSkillCastCondition(pSkill))
{
pCell->SetColor(A3DCOLORRGB(255, 255, 255));
}
else
{
pCell->SetColor(A3DCOLORRGB(128, 128, 128));
}*/
}
else
{
if (pHost.CheckSkillCastCondition(pSkill) == 0)
{
//pCell.SetColor(A3DCOLORRGB(255, 255, 255));
}
else
{
//pCell.SetColor(A3DCOLORRGB(128, 128, 128));
}
}
}
/* else
pClock.SetColor(A3DCOLORRGBA(0, 0, 0, 128));*/
if (pSkill != null && (pSkill.GetCoolingTime() > 0 ||
pHost.GetPrepSkill() == pSkill))
{
pClock.SetProgressRange(0, pSkill.GetCoolingTime());
if (pHost.GetPrepSkill() == pSkill)
pClock.SetProgressPos(0);
else
pClock.SetProgressPos(pSkill.GetCoolingTime() - pSkill.GetCoolingCnt());
}
}
}
/*else if (pSC->GetType() == CECShortcut::SCT_ITEM)
@@ -0,0 +1,48 @@
using System;
using UnityEngine;
using UnityEngine.UI;
namespace BrewMonster
{
public class AUIClockIcon : MonoBehaviour
{
[SerializeField] private Image m_ClockIcon;
[SerializeField] private int m_iMin;
[SerializeField] private int m_iMax;
[SerializeField] private int m_iPos;
public Image GetClockIcon() => m_ClockIcon;
public void SetProgressPos(float progress)
{
progress = Math.Clamp(progress, m_iMin, m_iMax);
m_ClockIcon.fillAmount = progress;
UpdateClockIcon();
BMLogger.LogError("AUIClockIcon SetProgressPos ");
}
public void SetProgressRange(int min, int max)
{
if (min >= max)
{
BMLogger.LogError("AUIClockIcon SetProgressRange min should be greater than max ");
return;
}
m_iMin = min;
m_iMax = max;
m_iPos = Math.Clamp(m_iPos, m_iMin, m_iMax);
}
private void Update()
{
if (m_iPos != m_iMin)
{
UpdateClockIcon();
}
}
private void UpdateClockIcon()
{
float progress = (float)(m_iPos - m_iMin) / (m_iMax - m_iMin);
m_ClockIcon.fillAmount = progress;
}
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 70ec0de7d6bb5134fbdf6bf9b1cfbff4
+7 -280
View File
@@ -202,7 +202,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 11414302, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_Value
value: 0
value: 1
objectReference: {fileID: 0}
- target: {fileID: 11490438, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_IgnoreReversedGraphics
@@ -210,7 +210,7 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 22400762, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchoredPosition.y
value: 0.000061035156
value: -0.000061035156
objectReference: {fileID: 0}
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.x
@@ -220,6 +220,10 @@ PrefabInstance:
propertyPath: m_AnchorMax.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22426080, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMin.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 22428984, guid: 67117722a812a2e46ab8cb8eafbf5f5e, type: 3}
propertyPath: m_AnchorMax.y
value: 0
@@ -526,42 +530,10 @@ PrefabInstance:
serializedVersion: 3
m_TransformParent: {fileID: 8647913387955223815}
m_Modifications:
- target: {fileID: 473551792621656190, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: cooldownTime
value: 4
objectReference: {fileID: 0}
- target: {fileID: 5713000252331107611, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_Name
value: Canvas_Skill
objectReference: {fileID: 0}
- target: {fileID: 7339434961787820866, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_aSkillImage.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7339434961787820866, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_aSkillButton.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7339434961787820866, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: AUIImagePictureList.Array.size
value: 3
objectReference: {fileID: 0}
- target: {fileID: 7339434961787820866, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: 'AUIImagePictureList.Array.data[1]'
value:
objectReference: {fileID: 8289406837700321256}
- target: {fileID: 7339434961787820866, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: 'AUIImagePictureList.Array.data[2]'
value:
objectReference: {fileID: 4274290164988972389}
- target: {fileID: 7646065705685923996, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_AnchoredPosition.x
value: 264
objectReference: {fileID: 0}
- target: {fileID: 7646065705685923996, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_AnchoredPosition.y
value: -387
objectReference: {fileID: 0}
- target: {fileID: 8078455359151753464, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
propertyPath: m_Pivot.x
value: 0
@@ -644,259 +616,14 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects:
- targetCorrespondingSourceObject: {fileID: 1608209508545832950, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
insertIndex: -1
addedObject: {fileID: 2272012679362150154}
- targetCorrespondingSourceObject: {fileID: 1608209508545832950, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
insertIndex: -1
addedObject: {fileID: 6331912252351786375}
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
--- !u!224 &33904160082820478 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 1608209508545832950, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
m_PrefabInstance: {fileID: 1597073214178286216}
m_PrefabAsset: {fileID: 0}
--- !u!224 &7364935673883923056 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 8078455359151753464, guid: be3a491baf7e4be4487c4eb18ea11468, type: 3}
m_PrefabInstance: {fileID: 1597073214178286216}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &1766854943939269159
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 33904160082820478}
m_Modifications:
- target: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: cooldownTime
value: 7
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Name
value: ButtonSkill1 (2)
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.x
value: 160
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.y
value: 155.1223
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.x
value: 613
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.y
value: -134
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
--- !u!114 &4274290164988972389 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 1766854943939269159}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!224 &6331912252351786375 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 1766854943939269159}
m_PrefabAsset: {fileID: 0}
--- !u!1001 &5826979442234998954
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
serializedVersion: 3
m_TransformParent: {fileID: 33904160082820478}
m_Modifications:
- target: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: cooldownTime
value: 9
objectReference: {fileID: 0}
- target: {fileID: 4284393271722921544, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Name
value: ButtonSkill1 (1)
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_Pivot.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMax.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.x
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchorMin.y
value: 0.5
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.x
value: 160
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_SizeDelta.y
value: 155.1223
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalPosition.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.x
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.y
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalRotation.z
value: -0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.x
value: 390
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_AnchoredPosition.y
value: -232
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
m_AddedGameObjects: []
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
--- !u!224 &2272012679362150154 stripped
RectTransform:
m_CorrespondingSourceObject: {fileID: 5717981154351234976, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 5826979442234998954}
m_PrefabAsset: {fileID: 0}
--- !u!114 &8289406837700321256 stripped
MonoBehaviour:
m_CorrespondingSourceObject: {fileID: 2581817642771390274, guid: 8586a375545487f43b57c6ffdce6fbfd, type: 3}
m_PrefabInstance: {fileID: 5826979442234998954}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 67fd391520cbfd44f84a1c6bb57673c0, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!1001 &6181970391454287574
PrefabInstance:
m_ObjectHideFlags: 0
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:107cb05c7bf60ae1c799ecf263afb7aaa491784495f6dafc9daf900f23396195
size 200763028
oid sha256:dfacfe7598c13b74bf00df392384c4c626d00ac99325d3db2353f0e31cc8a414
size 200761977
+338 -5
View File
@@ -19,6 +19,7 @@ using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using UnityEngine;
using UnityEngine.PlayerLoop;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using static System.Net.Mime.MediaTypeNames;
@@ -101,6 +102,8 @@ namespace BrewMonster
public ON_AIR_CDR_INFO m_AirCDRInfo;
public ushort m_wMoveStamp = 0;
private CECCounter m_GatherCnt; // Gather counter
Dictionary<int, COOLTIME> m_skillCoolTime = new();
COOLTIME[] m_aCoolTimes = new COOLTIME[(int)CoolTimeIndex.GP_CT_MAX]; // Cool times
// Host config data version
const int HOSTCFG_VERSION = 11;
@@ -329,7 +332,7 @@ namespace BrewMonster
//m_dwMoveRelDir = 0;
m_fVertSpeed = 0.0f;
UpdateTimers(Time.deltaTime);
// Auto team / Automatic party grouping
// m_pAutoTeam.Tick(Time.deltaTime);
}
@@ -487,6 +490,8 @@ namespace BrewMonster
case int value when value == EC_MsgDef.MSG_PM_PLAYERDOEMOTE: OnMsgPlayerDoEmote(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_TARGETISFAR: OnMsgHstTargetIsFar(Msg); break;
case int value when value == EC_MsgDef.MSG_PM_PLAYERGATHER: OnMsgPlayerGather(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_COOLTIMEDATA: OnMsgHstCoolTimeData(Msg); break;
}
@@ -510,6 +515,80 @@ namespace BrewMonster
}*/
}
private void OnMsgHstCoolTimeData(ECMSG Msg)
{
cmd_cooltime_data pCmd = default;
var data = (byte[])Msg.dwParam1;
pCmd.count = GPDataTypeHelper.FromBytes<ushort>(data, 0);
long offset = Marshal.SizeOf(typeof(ushort));
pCmd.list = new item_t[pCmd.count];
for (int i = 0; i < pCmd.count; i++)
{
pCmd.list[i] = GPDataTypeHelper.FromBytes<item_t>(data, ref offset);
}
m_skillCoolTime.Clear();
for (int i = 0; i < pCmd.count; i++)
{
item_t item = pCmd.list[i];
if (item.idx > (int)CoolTimeIndex.GP_CT_SKILL_START)
{
// Is skill cool time
int idSkill = item.idx - (int)CoolTimeIndex.GP_CT_SKILL_START;
COOLTIME ct = m_skillCoolTime[idSkill];
ct.iCurTime = item.cooldown;
ct.iMaxTime = item.max_cooltime;
Mathf.Clamp(ct.iCurTime, 0, ct.iMaxTime);
CECSkill pSkill = GetNormalSkill(idSkill);
if (pSkill != null)
{
pSkill.StartCooling(item.max_cooltime, item.cooldown);
}
/* else if (pSkill = CECComboSkillState::Instance().GetInherentSkillByID(idSkill))
{
pSkill.StartCooling(item.max_cooltime, item.cooldown);
}*/
else if (GetEquipSkillByID(idSkill) == null)
{
// Add to goblin skill list
pSkill = new CECSkill(idSkill, 1);
pSkill.StartCooling(item.max_cooltime, item.cooldown);
m_aGoblinSkills.Add(pSkill);
}
m_skillCoolTime[idSkill] = ct;
}
else if (item.idx >= 0 && item.idx < (int)CoolTimeIndex.GP_CT_MAX)
{
// Other cool time
COOLTIME ct = m_aCoolTimes[item.idx];
ct.iCurTime = item.cooldown;
ct.iMaxTime = item.max_cooltime;
Mathf.Clamp(ct.iCurTime, 0, ct.iMaxTime);
if (item.idx >= (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0 && item.idx <= (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN4)
{
// other player skills should be set public cool down too.
uint mask = (uint)(1 << (item.idx - (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0));
for (int y = 0; y < GetPositiveSkillNum(); y++)
{
CECSkill pSkill = GetPositiveSkillByIndex(y);
if (pSkill != null && ((pSkill.GetCommonCoolDown() & mask) != 0))
pSkill.StartCooling(item.max_cooltime, item.cooldown);
}
}
}
else
{
BMLogger.LogError("item.idx >= 0: " + (item.idx >= 0));
}
}
UpdateEquipSkillCoolDown();
}
private void OnMsgEnchantResult(ECMSG msg)
{
// 从消息中获取cmd_enchant_result结构 // Get cmd_enchant_result structure from message
@@ -1100,7 +1179,7 @@ namespace BrewMonster
public bool HostIsReady()
{
return m_bEnterGame;
return m_bEnterGame;
}
private void OnMsgHstDied(in ECMSG msg)
@@ -2695,6 +2774,7 @@ namespace BrewMonster
float fMaxCut = 1.0f)
{
float fDist = A3d_Magnitude(vTargetPos - vHostPos);
BMLogger.LogError($"CanTouchTarget iReason={iReason} , m_pPrepSkill={m_pPrepSkill}");
switch (iReason)
{
case 1: // melee
@@ -2722,8 +2802,11 @@ namespace BrewMonster
{
if (m_pPrepSkill != null)
{
//TODO : Check this function GetCastRange
float fRange = m_pPrepSkill.GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
BMLogger.LogError($"HoangDev: CanTouchTarget fDist= {fDist}, fRange={fRange}, fDist - fTargetRad={fDist - fTargetRad}, m_ExtProps.ak.AttackRange ={m_ExtProps.ak.AttackRange}, GetPrayDistancePlus()={GetPrayDistancePlus()}");
if (fRange > 0.0f)
{
if (fDist - fTargetRad <= fRange)
@@ -2753,7 +2836,84 @@ namespace BrewMonster
return false;
}
public bool GetSkillCoolTime(int idSkill, out COOLTIME ct)
{
// 获取技能的非公共冷却时间
bool bFound = false;
ct = new COOLTIME();
if (m_skillCoolTime.TryGetValue(idSkill, out ct))
{
bFound = true;
}
return bFound;
}
// Update equipment skill cool down
// 更新装备技能冷却
public void UpdateEquipSkillCoolDown(int cooldown_index = -1)
{
if (cooldown_index < 0)
{
// 更新所有装备技能
// Update all equipment skills
for (int i = 0; i < GetEquipSkillNum(); ++i)
{
CECSkill pSkill = GetEquipSkillByIndex(i);
// 检查技能冷却
// Check skill cooldown
COOLTIME temp;
if (GetSkillCoolTime(pSkill.GetSkillID(), out temp))
{
pSkill.StartCooling(temp.iMaxTime, temp.iCurTime);
continue;
}
// 检查公共冷却
// Check common cooldown
int ccd = pSkill.GetCommonCoolDown();
if (ccd == 0) continue;
for (int j = 0; j < 5; ++j)
{
if ((ccd & (1 << j)) != 0)
{
COOLTIME ct = m_aCoolTimes[(int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0 + j];
pSkill.StartCooling(ct.iMaxTime, ct.iCurTime);
break;
}
}
}
}
else
{
// 更新指定技能
// Update specified skill
if (cooldown_index > (int)CoolTimeIndex.GP_CT_SKILL_START)
{
int idSkill = cooldown_index - (int)CoolTimeIndex.GP_CT_SKILL_START;
CECSkill pSkill = GetEquipSkillByID(idSkill);
COOLTIME temp;
if (pSkill != null && GetSkillCoolTime(idSkill, out temp))
pSkill.StartCooling(temp.iMaxTime, temp.iCurTime);
}
else if (cooldown_index >= (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0 && cooldown_index <= (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN4)
{
int index = cooldown_index - (int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0;
COOLTIME ct = m_aCoolTimes[(int)CoolTimeIndex.GP_CT_SKILLCOMMONCOOLDOWN0 + index];
uint mask = (uint)(1 << index);
for (int i = 0; i < GetEquipSkillNum(); ++i)
{
CECSkill pSkill = GetEquipSkillByIndex(i);
int ccd = pSkill.GetCommonCoolDown();
if ((ccd & mask) != 0)
pSkill.StartCooling(ct.iMaxTime, ct.iCurTime);
}
}
}
}
public void RemoveObjectFromTabSels(CECObject pObject)
{
for (int i = 0; i < m_aTabSels.Count; i++)
@@ -3633,6 +3793,8 @@ namespace BrewMonster
return (fDist <= fTestDist);
}
public int GetPositiveSkillNum() { return m_aPtSkills.Count; }
public CECSkill GetPositiveSkillByIndex(int n) { return m_aPtSkills[n]; }
public bool UpdateEquipSkins()
{
@@ -4246,8 +4408,8 @@ namespace BrewMonster
{
if (IsDead())
{
/* CECGameUIMan pGameUI = g_pGame->GetGameRun()->GetUIManager()->GetInGameUIMan();
pGameUI->PopupReviveDialog(true);*/
/* CECGameUIMan pGameUI = g_pGame->GetGameRun()->GetUIManager()->GetInGameUIMan();
pGameUI->PopupReviveDialog(true);*/
PopupManager.Instance.OnPlayerDied();
}
m_bEnterGame = true;
@@ -5612,5 +5774,176 @@ namespace BrewMonster
}
}
}
public void UpdateTimers(float dwDeltaTime)
{
// Get real time tick of this frame
// Update flysword time
/*if (IsFlying() && GetRushFlyFlag())
{
CECIvtrItem pItem = m_pEquipPack.GetItem(EQUIPIVTR_FLYSWORD);
Debug.Assert(pItem != null);
if (pItem.GetClassID() == CECIvtrItem.ICID_FLYSWORD)
{
CECIvtrFlySword pFlySword = (CECIvtrFlySword)pItem;
pFlySword.TimePass(dwDeltaTime);
}
}*/
int i;
// Update skills
for (i = 0; i < m_aPtSkills.Count; i++)
m_aPtSkills[i].Tick(dwDeltaTime);
for (i = 0; i < m_aPsSkills.Count; i++)
m_aPsSkills[i].Tick(dwDeltaTime);
for (i = 0; i < m_aGoblinSkills.Count; i++)
m_aGoblinSkills[i].Tick(dwDeltaTime);
for (i = 0; i < m_aEquipSkills.Count; i++)
m_aEquipSkills[i].Tick(dwDeltaTime);
if (m_pTargetItemSkill != null)
m_pTargetItemSkill.Tick(dwDeltaTime);
//CECComboSkillState.Instance().Tick();
// Update cool times
for (i = 0; i < (int)CoolTimeIndex.GP_CT_MAX; i++)
m_aCoolTimes[i].Update(dwDeltaTime);
foreach (var kvp in m_skillCoolTime)
{
kvp.Value.Update(dwDeltaTime);
}
// Gather time counter
if (m_GatherCnt.IncCounter(dwDeltaTime))
m_GatherCnt.Reset(true);
// Incant time counter
if (m_IncantCnt.IncCounter(dwDeltaTime))
m_IncantCnt.Reset(true);
// Bind command cool counter
/* if (m_BindCmdCoolCnt.IncCounter(dwDeltaTime))
m_BindCmdCoolCnt.Reset(true);
// Auto fashion time counter
if (m_bAutoFashion && GetBoothState() != 2 && !IsShapeChanged())
{
if (m_AutoFashionCnt.IncCounter(dwDeltaTime))
{
if (!CheckAutoFashionCondition())
{
while (!EquipFashionBySuitID((m_iCurFashionSuitID + 1) % GetMaxFashionSuitNum()))
m_iCurFashionSuitID++;
m_AutoFashionCnt.Reset();
}
}
}
// Auto convert Yinpiao
if (m_AutoYinpiao.open)
{
if (m_AutoYinpiao.cnt.IncCounter(dwDeltaTime))
{
ExchangeYinpiao();
m_AutoYinpiao.cnt.Reset();
}
}
// Control the dialog of the target item
m_TargetItemDlgCtrl.Update(dwDeltaTime);
// For some reasons on server, sometimes friend list couldn't be got
// successfully. Try to get it again every 20s if this case really happen
if (m_pFriendMan != null && !m_pFriendMan.CheckInit())
{
m_iGetFriendCnt -= dwDeltaTime;
if (m_iGetFriendCnt < 0)
{
EC_Game.GetGameSession().friend_GetList();
m_iGetFriendCnt = 60000;
}
}
// Duel stopping time counter
if (m_pvp.iDuelState == DUEL_ST_PREPARE)
{
m_pvp.iDuelTimeCnt -= dwDeltaTime;
if (m_pvp.iDuelTimeCnt < 0)
m_pvp.iDuelTimeCnt = 0;
}
else if (m_pvp.iDuelState == DUEL_ST_INDUEL)
{
m_pvp.iDuelTimeCnt += dwDeltaTime;
}
else if (m_pvp.iDuelState == DUEL_ST_STOPPING)
{
m_pvp.iDuelTimeCnt -= dwDeltaTime;
if (m_pvp.iDuelTimeCnt < 0)
{
m_pvp.iDuelTimeCnt = 0;
m_pvp.iDuelState = DUEL_ST_NONE;
m_pvp.idDuelOpp = 0;
}
}
// Update pariah time counter
if (m_dwPariahTime > 0)
{
if (m_dwPariahTime > (uint)dwDeltaTime)
m_dwPariahTime -= (uint)dwDeltaTime;
else
m_dwPariahTime = 0;
}
// Update pet operation time counter
m_PetOptCnt.IncCounter(dwDeltaTime);
// Update battle result time counter
if (IsInBattle() && !IsInFortress() && m_BattleInfo.iResult != 0 && m_BattleInfo.iResultCnt != 0)
{
if ((m_BattleInfo.iResultCnt -= dwDeltaTime) < 0)
m_BattleInfo.iResultCnt = 0;
}
// Update pet corral
if (m_pPetCorral != null)
m_pPetCorral.Tick((uint)dwDeltaTime);
// Update the related people
var keysToRemove = new List<int>();
foreach (var kvp in m_RelatedPlayer)
{
m_RelatedPlayer[kvp.Key] -= dwDeltaTime;
if (m_RelatedPlayer[kvp.Key] <= 0)
keysToRemove.Add(kvp.Key);
}
foreach (var key in keysToRemove)
{
m_RelatedPlayer.Remove(key);
}*/
}
public struct COOLTIME
{
public int iCurTime;
public int iMaxTime;
public void Update(float dwDeltaTime)
{
if (iCurTime > 0)
{
iCurTime -= (int)(dwDeltaTime * 1000);
Mathf.Clamp(iCurTime, 0, float.MaxValue);
}
}
}
}
}
}
File diff suppressed because one or more lines are too long