Merge pull request 'develop' (#51) from develop into feature/load-all-equipments

Reviewed-on: https://git.brew.monster/Unity/perfect-world-unity/pulls/51
This commit is contained in:
anhld
2025-11-12 03:23:37 +00:00
15 changed files with 105 additions and 93 deletions
@@ -64,7 +64,6 @@ public class CECAttacksMan : MonoSingleton<CECAttacksMan>
nTimeFly // timeToDoDamage
);
m_AttackLinkedList.AddLast(newEvent);
BMLogger.LogError("HoangDev: AddMeleeAttack CECAttackEvent: " + m_AttackLinkedList.Count);
newEvent.UpdateTargetFlag();
return m_AttackLinkedList.Last.Value;
@@ -455,7 +454,6 @@ bool DoFire()
TARGET_DATA data = m_targets[i];
int idTarget = data.idTarget;
string strName;
BMLogger.LogError("HoangDev: GPDataTypeHelper.ISPLAYERID(idTarget) " + GPDataTypeHelper.ISPLAYERID(idTarget));
if (GPDataTypeHelper.ISNPCID(idTarget))
{
@@ -480,7 +478,7 @@ bool DoFire()
{
CECPlayer pPlayer = EC_ManMessageMono.Instance.GetECManPlayer.GetPlayer(idTarget);
BMLogger.LogError("HoangDev: CECPlayer pPlayer = " + pPlayer );
//BMLogger.LogError("HoangDev: CECPlayer pPlayer = " + pPlayer );
if (!pPlayer)
return true;
@@ -348,7 +348,6 @@ public class CECNPCMan : IMsgHandler
}
case CommandID.NPC_INFO_00:
{
BMLogger.LogError("HoangDev: NPCMAN NPC_INFO_00");
var buffer = (byte[])msg.dwParam1;
cmd_npc_info_00 pCmd = GPDataTypeHelper.FromBytes<cmd_npc_info_00>(buffer);
@@ -362,7 +361,6 @@ public class CECNPCMan : IMsgHandler
ep.bs.max_hp = pCmd.iMaxHP;
pNPC.SetSelectedTarget(pCmd.iTargetID);
pNPC.SetWorldHealthImage((float)pCmd.iHP , (float)pCmd.iMaxHP);
BMLogger.LogError("HoangDev: publish NPCMAN NPC_INFO_00");
EventBus.Publish(new NPCINFO(pNPC.GetName(),pCmd.iHP,pCmd.iMaxHP, pCmd.idNPC));
}
+1 -5
View File
@@ -182,7 +182,7 @@ public class CECNPC : CECObject
}
public void OnMsgAttackHostResult(int idHost, int nDamage, int nFlag, int nSpeed)
{
BMLogger.LogError("HoangDev: OnMsgAttackHostResultNPC");
//BMLogger.LogError("HoangDev: OnMsgAttackHostResultNPC");
if (!IsDead())
{
// 🔹 Quay mặt về mục tiêu
@@ -273,8 +273,6 @@ public class CECNPC : CECObject
int nAttackSpeed,
int nSection = 0)
{
BMLogger.LogError("HoangDev: PlayAttackEffectNPC");
if (m_pNPCModelPolicy == null)
return;
@@ -392,8 +390,6 @@ public class CECNPC : CECObject
private bool PlayAttackAction(int nAttackSpeed, CECAttackEvent attackevent)
{
BMLogger.LogError("HoangDev: PlayAttackActionNPC");
return m_pNPCModelPolicy.PlayAttackAction(nAttackSpeed, attackevent);
}
void NPCTurnFaceTo(int idTarget, float dwTime = 0)
@@ -1,6 +1,7 @@
using CSNetwork.GPDataType;
using System;
using System.Numerics;
using System.Runtime.InteropServices;
namespace CSNetwork.C2SCommand
{
@@ -1,3 +1,4 @@
using BrewMonster;
using CSNetwork.GPDataType;
using CSNetwork.S2CCommand;
using System;
@@ -182,7 +183,10 @@ namespace CSNetwork.C2SCommand
return;
}
WriteBasicValue(octets, array.Length);
if (array.Length != 1 )
{
WriteBasicValue(octets, array.Length);
}
var elementType = array.GetType().GetElementType();
if (NeedsCustomSerialization(elementType))
@@ -258,8 +262,9 @@ namespace CSNetwork.C2SCommand
skillId = idSkill,
pvpMask = byPVPMask,
targetCount = (byte)iNumTarget,
targets = null
};
if(iNumTarget > 0)
if (iNumTarget > 0)
{
if (iNumTarget > 0)
{
@@ -267,7 +272,9 @@ namespace CSNetwork.C2SCommand
cmd.targets[0] = aTargets;
}
}
return SerializeCommand(CommandID.CAST_SKILL, cmd);
var cmdBuf = SerializeCommand(CommandID.CAST_SKILL, cmd);
return cmdBuf;
}
public static short FloatToFix8(float x)
@@ -605,8 +605,7 @@ namespace CSNetwork
pGameUI->EndNPCService();*/
}
else if
(pCmd.iMessage ==
108 /*&& pGameRun->GetHostPlayer()->GetOfflineShopCtrl()->GetNPCSevFlag() != COfflineShopCtrl::NPCSEV_NULL*/
(pCmd.iMessage == 108 /*&& pGameRun->GetHostPlayer()->GetOfflineShopCtrl()->GetNPCSevFlag() != COfflineShopCtrl::NPCSEV_NULL*/
)
{
/* CECGameUIMan* pGameUI = pGameRun->GetUIManager()->GetInGameUIMan();
@@ -49,7 +49,6 @@ namespace PerfectWorld.Scripts.Player
SetModelHostPlayer();
string roleName = Encoding.Unicode.GetString(roleInfo.name.ByteArray);
BMLogger.LogError("HoangDev: roleName:" + roleName);
if (txtName != null) txtName.text = roleName;
m_cdr.fStepHeight = m_MoveConst.fStepHei;
@@ -47,11 +47,11 @@ namespace BrewMonster.Assets.PerfectWorld.Scripts.Skills
}
else
{
BMLogger.LogError("HoangDev: Shortcut: IsGoblinSkill else");
//BMLogger.LogError("HoangDev: Shortcut: IsGoblinSkill else");
if (pHost.GetActionSwitcher() == null || !pHost.GetActionSwitcher().OnRideToSkillAction(m_pSkill.GetSkillID(), false, 0, -1))
{
BMLogger.LogError("HoangDev: Shortcut: pHost->GetActionSwitcher()");
//BMLogger.LogError("HoangDev: Shortcut: pHost->GetActionSwitcher()");
pHost.ApplySkillShortcut(m_pSkill.GetSkillID());
}
@@ -141,7 +141,6 @@ namespace BrewMonster.Scripts.Skills
public void RecvNPCServiceList(Octets Data)
{
m_npcListData = Data;
BMLogger.LogError("HoangDev: m_npcListData= "+ m_npcListData.Length);
if (!m_bInitialized)
{
return;
@@ -12,7 +12,7 @@ public class ShopCategoryManager : MonoBehaviour
{
"Category 1", // Original category 1
"Category 2", // Original category 2
"Categories 3-5", // Merged categories 3, 4, 5
"Categories 1, 3, 4", // Merged categories 1, 3, 4
"Category 6", // Original category 6
"Category 7", // Original category 7
"Category 8" // Original category 8
@@ -27,7 +27,7 @@ public class ShopCategoryManager : MonoBehaviour
public Color disabledButtonColor = Color.gray;
private int currentSelectedCategory = 0;
private ShopUIManager shopManager;
public ShopUIManager shopManager;
void Start()
{
@@ -68,13 +68,9 @@ public class ShopCategoryManager : MonoBehaviour
currentSelectedCategory = categoryIndex;
UpdateCategoryDisplay();
// Notify shop manager
// Notify shop manager to actually update the item list
if (shopManager != null)
{
// Use reflection to call the private method, or make it public
// For now, we'll assume there's a public method to handle category change
Debug.Log($"Category {categoryIndex} selected: {categoryNames[categoryIndex]}");
}
shopManager.SetCategoryIndex(categoryIndex);
}
void UpdateCategoryDisplay()
@@ -124,12 +120,12 @@ public class ShopCategoryManager : MonoBehaviour
public bool IsItemInCategory(GShopItem item, int categoryIndex)
{
// Category mapping: 0=1, 1=2, 2=3+4+5, 3=6, 4=7, 5=8
// Category mapping: 0=1, 1=2, 2=1+3+4, 3=6, 4=7, 5=8
switch (categoryIndex)
{
case 0: return item.mainType == 0; // Category 1
case 1: return item.mainType == 1; // Category 2
case 2: return item.mainType >= 2 && item.mainType <= 4; // Categories 3, 4, 5 merged
case 2: return item.mainType == 0 || item.mainType == 2 || item.mainType == 3; // Categories 1, 3, 4 merged
case 3: return item.mainType == 5; // Category 6
case 4: return item.mainType == 6; // Category 7
case 5: return item.mainType == 7; // Category 8
@@ -146,8 +142,8 @@ public class ShopCategoryManager : MonoBehaviour
{
int originalCategory = item.mainType;
if (originalCategory >= 2 && originalCategory <= 4)
return "Categories 3-5";
if (originalCategory == 0 || originalCategory == 2 || originalCategory == 3)
return "Categories 1, 3, 4";
if (originalCategory < categoryNames.Length)
return categoryNames[originalCategory];
@@ -91,7 +91,7 @@ public class ShopUIManager : MonoBehaviour
{
if (shopMainPanel != null)
{
shopMainPanel.SetActive(true);
OnCategorySelected(0);
RefreshShopDisplay();
}
}
@@ -129,6 +129,12 @@ public class ShopUIManager : MonoBehaviour
Debug.Log($"Category switch to {categoryIndex} completed in {switchTime * 1000f:F2}ms");
}
// Allow external components (e.g., ShopCategoryManager) to switch category
public void SetCategoryIndex(int categoryIndex)
{
OnCategorySelected(categoryIndex);
}
public void RefreshShopDisplay()
{
// Return all current panels to pool
@@ -144,9 +150,11 @@ public class ShopUIManager : MonoBehaviour
List<GShopItem> categoryItems = GetItemsForCategory(currentCategory);
// Create item panels using pooling
int siblingIndexCounter = 0;
foreach (GShopItem item in categoryItems)
{
CreateItemPanelFromPool(item);
CreateItemPanelFromPool(item, siblingIndexCounter);
siblingIndexCounter++;
}
}
@@ -170,20 +178,20 @@ public class ShopUIManager : MonoBehaviour
bool IsItemInCategory(GShopItem item, int categoryIndex)
{
// Category mapping: 0=1, 1=2, 2=3+4+5, 3=6, 4=7, 5=8
// Category mapping: 0=1, 1=2, 2=1+3+4, 3=6, 4=7, 5=8
switch (categoryIndex)
{
case 0: return item.mainType == 0; // Category 1
case 1: return item.mainType == 1; // Category 2
case 2: return item.mainType >= 2 && item.mainType <= 4; // Categories 3, 4, 5 merged
case 3: return item.mainType == 5; // Category 6
case 1: return item.mainType == 2; // Category 2
case 2: return item.mainType == 5; // Categories 1, 3, 4 merged
case 3: return item.mainType == 1 || item.mainType == 3 || item.mainType == 4; // Category 6
case 4: return item.mainType == 6; // Category 7
case 5: return item.mainType == 7; // Category 8
default: return false;
}
}
void CreateItemPanelFromPool(GShopItem item)
void CreateItemPanelFromPool(GShopItem item, int targetSiblingIndex)
{
GameObject itemPanel = null;
@@ -204,8 +212,10 @@ public class ShopUIManager : MonoBehaviour
if (itemPanel != null && itemContainer != null)
{
// Set parent and position
itemPanel.transform.SetParent(itemContainer);
itemPanel.transform.SetParent(itemContainer, false);
itemPanel.transform.localScale = Vector3.one;
// Ensure deterministic ordering regardless of pool retrieval order
itemPanel.transform.SetSiblingIndex(targetSiblingIndex);
// Setup the panel
ShopItemPanel itemPanelScript = itemPanel.GetComponent<ShopItemPanel>();
+53 -38
View File
@@ -368,9 +368,9 @@ RectTransform:
- {fileID: 8761838049529348566}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -82.4}
m_SizeDelta: {x: 147, y: 116.8}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &424813723601076052
@@ -974,9 +974,9 @@ RectTransform:
- {fileID: 2635347666608474034}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -557.43335}
m_SizeDelta: {x: 147, y: 115}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2783001383898350917
@@ -1458,9 +1458,9 @@ RectTransform:
- {fileID: 3465129417775596107}
m_Father: {fileID: 6921900574306804872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 253.67606, y: -34.225502}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 166.4507, y: 61.887}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2471496789853926854
@@ -1750,9 +1750,9 @@ RectTransform:
- {fileID: 6607009122237547209}
m_Father: {fileID: 6921900574306804872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 753.02814, y: -34.225502}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 166.4507, y: 61.887}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6604777758543866085
@@ -2132,9 +2132,9 @@ RectTransform:
- {fileID: 7453030741144867795}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -438.9}
m_SizeDelta: {x: 147, y: 115}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5113860492054378637
@@ -2253,9 +2253,9 @@ RectTransform:
- {fileID: 7881121413444915257}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -675.9667}
m_SizeDelta: {x: 147, y: 115}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &188443220859053986
@@ -2670,11 +2670,11 @@ MonoBehaviour:
m_Content: {fileID: 720995613977598853}
m_Horizontal: 0
m_Vertical: 1
m_MovementType: 0
m_MovementType: 1
m_Elasticity: 0.1
m_Inertia: 1
m_DecelerationRate: 0.91
m_ScrollSensitivity: 4
m_DecelerationRate: 0.135
m_ScrollSensitivity: 1
m_Viewport: {fileID: 7377597886310921903}
m_HorizontalScrollbar: {fileID: 0}
m_VerticalScrollbar: {fileID: 0}
@@ -2871,9 +2871,9 @@ RectTransform:
- {fileID: 3953026038879993000}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -201.83334}
m_SizeDelta: {x: 147, y: 115}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5160228589296753130
@@ -3302,9 +3302,9 @@ RectTransform:
- {fileID: 7368110207669039191}
m_Father: {fileID: 6921900574306804872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 420.12674, y: -34.225502}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 166.4507, y: 61.887}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5818043599573700572
@@ -3695,7 +3695,7 @@ RectTransform:
m_Father: {fileID: 4310760051865461200}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: -0.22351074, y: 0.023500443}
m_SizeDelta: {x: -24.1577, y: -6.6333}
m_Pivot: {x: 0.5, y: 0.5}
@@ -3846,9 +3846,9 @@ RectTransform:
- {fileID: 1824832118339051429}
m_Father: {fileID: 6921900574306804872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 87.22535, y: -34.225502}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 166.4507, y: 61.887}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &5876619622367789936
@@ -3967,9 +3967,9 @@ RectTransform:
- {fileID: 1529712157810231189}
m_Father: {fileID: 6921900574306804872}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 586.57745, y: -34.225502}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 166.4507, y: 61.887}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4405492307389281063
@@ -5158,6 +5158,7 @@ GameObject:
- component: {fileID: 720995613977598853}
- component: {fileID: 6400593268502276303}
- component: {fileID: 5246174072855755290}
- component: {fileID: 2179490036099150762}
m_Layer: 5
m_Name: Content
m_TagString: Untagged
@@ -5225,6 +5226,20 @@ MonoBehaviour:
maxPoolSize: 100
expandPool: 1
poolParent: {fileID: 720995613977598853}
--- !u!114 &2179490036099150762
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6592005461581952019}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3245ec927659c4140ac4f8d17403cc18, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalFit: 0
m_VerticalFit: 2
--- !u!1 &6608932894056258649
GameObject:
m_ObjectHideFlags: 0
@@ -5529,7 +5544,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
m_IsActive: 0
--- !u!224 &1845571473519222713
RectTransform:
m_ObjectHideFlags: 0
@@ -5886,9 +5901,9 @@ RectTransform:
- {fileID: 5424053570241907517}
m_Father: {fileID: 6279944142683492433}
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: 73.5, y: -320.36667}
m_SizeDelta: {x: 147, y: 115}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6316976477275547731
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:f08a2358f441f066ff36ff6a98d580219dcd8b7629d6675b97643a1f3e09953b
size 33030989
oid sha256:951300c91d8eb0444ef6f6d4231547c757908cba80c036bc743d186711fca527
size 33032375
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:91a4f3bbfdf36a272974726c5c2a620c1ff0300fd1e0762af085e6fadcabb009
size 530349610
oid sha256:4500e3329ef68f0370414228d113f02bbe72321b04ac5e9292e13addf04dc827
size 530349701
+6 -12
View File
@@ -413,7 +413,7 @@ public partial class CECHostPlayer : CECPlayer
pCmd.skill_count = GPDataTypeHelper.FromBytes<uint>((byte[])Msg.dwParam1);
int offset = sizeof(uint);
int skillSize = Marshal.SizeOf<cmd_skill_data.SKILL>();
pCmd.skill_list = new cmd_skill_data.SKILL[2];
pCmd.skill_list = new cmd_skill_data.SKILL[pCmd.skill_count];
for (int i = 0; i < pCmd.skill_count; i++)
{
pCmd.skill_list[i] = GPDataTypeHelper.FromBytes<cmd_skill_data.SKILL>((byte[])Msg.dwParam1, offset);
@@ -456,7 +456,6 @@ public partial class CECHostPlayer : CECPlayer
// Load skill data from command
// C++: GNET::ElementSkill::LoadSkillData(pCmd);
ElementSkill.LoadSkillData(pCmd);
// Create skill objects from command data
for (int i = 0; i < pCmd.skill_count; i++)
{
@@ -476,7 +475,6 @@ public partial class CECHostPlayer : CECPlayer
m_aPsSkills.Add(skill);
}
}
// Restore and convert shortcuts after loading new skills
/* if (hostPlayer.HostIsReady())
{
@@ -574,7 +572,6 @@ public partial class CECHostPlayer : CECPlayer
}
void OnMsgHstAttacked(ECMSG Msg)
{
BMLogger.LogError($"HoangDev OnMsgHstAttacked ");
var m_pPlayerMan = EC_ManMessageMono.Instance.EC_ManPlayer;
cmd_host_attacked pCmd = GPDataTypeHelper.FromBytes<cmd_host_attacked>(Msg.dwParam1 as byte[]);
@@ -645,7 +642,7 @@ public partial class CECHostPlayer : CECPlayer
}*/
private void OnMsgHstHurtResult(ECMSG Msg)
{
BMLogger.LogError("HoangDev : OnMsgHstHurtResult");
//BMLogger.LogError("HoangDev : OnMsgHstHurtResult");
/* int cmd = Convert.ToInt32(Msg.dwParam2);
if (cmd == CommandID.BE_HURT)
{
@@ -1028,7 +1025,7 @@ public partial class CECHostPlayer : CECPlayer
// Message MSG_HST_SELTARGET handler
void OnMsgHstSelTarget(ECMSG Msg)
{
BMLogger.LogError("HoangDev: OnMsgHstSelTarget");
//BMLogger.LogError("HoangDev: OnMsgHstSelTarget");
if (Convert.ToInt32(Msg.dwParam2) == CommandID.SELECT_TARGET)
{
var data = (byte[])Msg.dwParam1;
@@ -1876,9 +1873,6 @@ public partial class CECHostPlayer : CECPlayer
public bool CastSkill(int idTarget, bool bForceAttack, CECObject pTarget = null)
{
byte byPVPMask = glb_BuildPVPMask(bForceAttack);
BMLogger.LogError("HoangDev: HostPlayer CastSkill SkillID=" + m_pPrepSkill.GetSkillID() +
" TargetID=" + idTarget + " bForceAttack=" + bForceAttack +
" byPVPMask=" + byPVPMask);
UnityGameSession.c2s_CmdCastSkill(m_pPrepSkill.GetSkillID(), byPVPMask, 1, idTarget);
return true;
}
@@ -1913,7 +1907,7 @@ public partial class CECHostPlayer : CECPlayer
}
public bool SelectTarget(int idTarget)
{
BMLogger.LogError("HoangDev: HostPlayer SelectTarget");
//BMLogger.LogError("HoangDev: HostPlayer SelectTarget");
bool bRet = false;
bool canDo = CanDo(ActionCanDo.CANDO_CHANGESELECT);
bool canselect = CanSelectTarget(idTarget);
@@ -1922,12 +1916,12 @@ public partial class CECHostPlayer : CECPlayer
bRet = true;
if (idTarget == 0)
{
BMLogger.LogError("HoangDev: HostPlayer Unsetlect npc");
//BMLogger.LogError("HoangDev: HostPlayer Unsetlect npc");
UnityGameSession.c2s_CmdUnselect();
}
else
{
BMLogger.LogError("HoangDev: HostPlayer setlect npc");
//BMLogger.LogError("HoangDev: HostPlayer setlect npc");
UnityGameSession.c2s_CmdSelectTarget(idTarget);
}
}