diff --git a/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll b/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll index 867a45d076..2ac75aa378 100644 Binary files a/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll and b/Assets/NetworkLib/Debug/netstandard2.1/CSNetwork.dll differ diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs index f7c53bbbcc..68fe1f3a89 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkMelee.cs @@ -1,4 +1,5 @@ using CSNetwork.GPDataType; +using PerfectWorld.Scripts.Player; using UnityEngine; /////////////////////////////////////////////////////////////////////////// @@ -33,7 +34,7 @@ class CECHPWorkMelee : CECHPWork } // If target turn to be un-attackable, cancel action - if (!m_pHost.AttackableJudge(m_idTarget, true)) + if (m_pHost.AttackableJudge(m_idTarget, true) == 0) { g_pGame.GetGameSession().c2s_CmdCancelAction(); m_bFinished = true; @@ -54,9 +55,9 @@ class CECHPWorkMelee : CECHPWork int idTraceTarget = 0; - if (ISPLAYERID(m_idTarget)) + if (GPDataTypeHelper.ISPLAYERID(m_idTarget)) { - CECElsePlayer* pPlayer = m_pHost.m_pPlayerMan.GetElsePlayer(m_idTarget); + EC_ElsePlayer pPlayer = m_pHost.m_pPlayerMan.GetElsePlayer(m_idTarget); if (!pPlayer || pPlayer.IsDead()) // Taget has missed ? return true; @@ -64,9 +65,9 @@ class CECHPWorkMelee : CECHPWork if (!m_pHost.CanTouchTarget(pPlayer.GetPos(), pPlayer.GetTouchRadius(), 1)) idTraceTarget = m_idTarget; } - else if (ISNPCID(m_idTarget)) + else if (GPDataTypeHelper.ISNPCID(m_idTarget)) { - CECNPC* pNPC = g_pGame.GetGameRun().GetWorld().GetNPCMan().GetNPC(m_idTarget); + CECNPC pNPC = g_pGame.GetGameRun().GetWorld().GetNPCMan().GetNPC(m_idTarget); if (!pNPC || pNPC.IsDead()) // Taget has missed ? return true; @@ -76,8 +77,8 @@ class CECHPWorkMelee : CECHPWork if (idTraceTarget && !m_pHost.IsRooting()) { - CECHPWorkTrace* pWork = (CECHPWorkTrace*)m_pWorkMan.CreateWork(WORK_TRACEOBJECT); - pWork.SetTraceTarget(pWork.CreatTraceTarget(idTraceTarget, CECHPWorkTrace::TRACE_ATTACK)); + CECHPWorkTrace pWork = (CECHPWorkTrace*)m_pWorkMan.CreateWork(WORK_TRACEOBJECT); + pWork.SetTraceTarget(pWork.CreatTraceTarget(idTraceTarget, CECHPWorkTrace.Trace_reason.TRACE_ATTACK)); class CECHPWorkPostTickCommand1 : CECHPWorkPostTickRunWorkCommand { public CECHPWorkPostTickCommand1(CECHPWork pWork) : CECHPWorkPostTickRunWorkCommand(pWork, true) diff --git a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs index 6b40748995..eb14d5d28f 100644 --- a/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs +++ b/Assets/PerfectWorld/Scripts/Managers/EC_HPWorkTrace.cs @@ -161,7 +161,7 @@ public: // Operations } -CECTracedObject* CreatTraceTarget(int iTraceObjId, int iReason, bool bForceAttack = false); +CECTracedObject CreatTraceTarget(int iTraceObjId, int iReason, bool bForceAttack = false); // Tick routine virtual bool Tick(DWORD dwDeltaTime); diff --git a/Assets/Scripts/CECHostPlayer.cs b/Assets/Scripts/CECHostPlayer.cs index 844634a97a..6c332ad289 100644 --- a/Assets/Scripts/CECHostPlayer.cs +++ b/Assets/Scripts/CECHostPlayer.cs @@ -218,7 +218,7 @@ public class CECHostPlayer : EC_Player case int value when value == EC_MsgDef.MSG_HST_TASKDATA: { OnMsgHstTaskData(Msg); - Debug.Log("[Dat]- OnMsgHstTaskData"); + Debug.LogError("[Dat]- OnMsgHstTaskData"); break; } case int value when value == EC_MsgDef.MSG_HST_ITEMOPERATION: @@ -433,18 +433,18 @@ public class CECHostPlayer : EC_Player //pData += iStorageTasksListSize; //A3DRELEASE(m_pTaskInterface); - - return; - var m_pTaskInterface = new CECTaskInterface(this); - if (!m_pTaskInterface.Init(null, 0, null, 0, - null, 0, null, 0, null, 0)) - { - //a_LogOutput(1, "CECHostPlayer::OnMsgHstTaskData, failed to initialize task interface"); - return; - } + //todo + //var m_pTaskInterface = new CECTaskInterface(this); - m_pTaskInterface.CheckPQEnterWorldInit(); + //if (!m_pTaskInterface.Init(null, 0, null, 0, + // null, 0, null, 0, null, 0)) + //{ + // //a_LogOutput(1, "CECHostPlayer::OnMsgHstTaskData, failed to initialize task interface"); + // return; + //} + + //m_pTaskInterface.CheckPQEnterWorldInit(); //// check if player has equipped goblin //if (m_pEquipPack.GetItem(EQUIPIVTR_GOBLIN) != NULL) @@ -481,8 +481,8 @@ public class CECHostPlayer : EC_Player // We should have check target isn't dead return false; } - //if (!g_pGame.GetGameRun().GetWorld().GetObject(idTarget, 1)) - // return false; + if (!EC_Game.GetGameRun().GetWorld().GetObject(idTarget, 1)) + return false; bool bStartNewWork = false; bool bUseAutoPF = false; @@ -538,7 +538,7 @@ public class CECHostPlayer : EC_Player return -1; // If target is pet, it's attacked possibility depends on it's monster - if (ISNPCID(idTarget)) + if (GPDataTypeHelper.ISNPCID(idTarget)) { CECNPC pNPC = (CECNPC)pObject; int idMaster = pNPC.GetMasterID(); @@ -561,7 +561,7 @@ public class CECHostPlayer : EC_Player int iRet = 0; - if (ISNPCID(idTarget)) + if (GPDataTypeHelper.ISNPCID(idTarget)) { CECNPC pNPC = (CECNPC)pObject; @@ -610,74 +610,75 @@ public class CECHostPlayer : EC_Player } } } - else if (ISPLAYERID(idTarget)) - { - // Check duel at first - if (m_pvp.iDuelState == DUEL_ST_INDUEL && m_pvp.idDuelOpp == idTarget) - return 1; - else if (m_pvp.iDuelState == DUEL_ST_STOPPING && m_pvp.idDuelOpp == idTarget) - return 0; + // TO DO: fix later + //else if (GPDataTypeHelper.ISPLAYERID(idTarget)) + //{ + // // Check duel at first + // if (m_pvp.iDuelState == DUEL_ST_INDUEL && m_pvp.idDuelOpp == idTarget) + // return 1; + // else if (m_pvp.iDuelState == DUEL_ST_STOPPING && m_pvp.idDuelOpp == idTarget) + // return 0; - // In sanctuary we cannot attack other players - if (m_bInSanctuary) - return 0; + // // In sanctuary we cannot attack other players + // if (m_bInSanctuary) + // return 0; - //ASSERT(pObject.GetClassID() == CECObject::OCID_ELSEPLAYER); - EC_ElsePlayer pPlayer = (EC_ElsePlayer)pObject; - ROLEBASICPROP bp = pPlayer.GetBasicProps(); - EC_GAME_SETTING gs = g_pGame.GetConfigs().GetGameSettings(); + // //ASSERT(pObject.GetClassID() == CECObject::OCID_ELSEPLAYER); + // EC_ElsePlayer pPlayer = (EC_ElsePlayer)pObject; + // ROLEBASICPROP bp = pPlayer.GetBasicProps(); + // EC_GAME_SETTING gs = g_pGame.GetConfigs().GetGameSettings(); - if (m_pvp.bFreePVP) - { - if (IsTeamMember(idTarget)) - return 0; + // if (m_pvp.bFreePVP) + // { + // if (IsTeamMember(idTarget)) + // return 0; - // In free pvp mode, for example, host is in arena. - if (bForceAttack) - iRet = 1; - else if (gs.bAtk_NoMafia && IsFactionMember(pPlayer.GetFactionID())) - iRet = 0; - else if (gs.bAtk_NoWhite && !pPlayer.IsInvader() && !pPlayer.IsPariah()) - iRet = 0; - else if (gs.bAtk_NoAlliance && g_pGame.GetFactionMan().IsFactionAlliance(pPlayer.GetFactionID())) - iRet = 0; - else if (gs.bAtk_NoForce && GetForce() > 0 && GetForce() == pPlayer.GetForce()) - iRet = 0; - else - iRet = 1; - } - else if (m_iBattleCamp != GP_BATTLE_CAMP_NONE) - { - // Host is in battle - int iCamp = pPlayer.GetBattleCamp(); - if (iCamp != GP_BATTLE_CAMP_NONE && iCamp != m_iBattleCamp) - iRet = 1; - else - iRet = 0; - } - else // Normal mode - { - if (IsTeamMember(idTarget)) - return 0; + // // In free pvp mode, for example, host is in arena. + // if (bForceAttack) + // iRet = 1; + // else if (gs.bAtk_NoMafia && IsFactionMember(pPlayer.GetFactionID())) + // iRet = 0; + // else if (gs.bAtk_NoWhite && !pPlayer.IsInvader() && !pPlayer.IsPariah()) + // iRet = 0; + // else if (gs.bAtk_NoAlliance && g_pGame.GetFactionMan().IsFactionAlliance(pPlayer.GetFactionID())) + // iRet = 0; + // else if (gs.bAtk_NoForce && GetForce() > 0 && GetForce() == pPlayer.GetForce()) + // iRet = 0; + // else + // iRet = 1; + // } + // else if (m_iBattleCamp != GP_BATTLE_CAMP_NONE) + // { + // // Host is in battle + // int iCamp = pPlayer.GetBattleCamp(); + // if (iCamp != GP_BATTLE_CAMP_NONE && iCamp != m_iBattleCamp) + // iRet = 1; + // else + // iRet = 0; + // } + // else // Normal mode + // { + // if (IsTeamMember(idTarget)) + // return 0; - if (!IsPVPOpen() || !pPlayer.IsPVPOpen() || m_BasicProps.iLevel < EC_MAXNOPKLEVEL || bp.iLevel < EC_MAXNOPKLEVEL) - iRet = 0; - else if (bForceAttack) - iRet = 1; - else if (!gs.bAtk_Player) - iRet = 0; - else if (gs.bAtk_NoMafia && IsFactionMember(pPlayer.GetFactionID())) - iRet = 0; - else if (gs.bAtk_NoWhite && !pPlayer.IsInvader() && !pPlayer.IsPariah()) - iRet = 0; - else if (gs.bAtk_NoAlliance && g_pGame.GetFactionMan().IsFactionAlliance(pPlayer.GetFactionID())) - iRet = 0; - else if (gs.bAtk_NoForce && GetForce() > 0 && GetForce() == pPlayer.GetForce()) - iRet = 0; - else - iRet = 1; - } - } + // if (!IsPVPOpen() || !pPlayer.IsPVPOpen() || m_BasicProps.iLevel < EC_MAXNOPKLEVEL || bp.iLevel < EC_MAXNOPKLEVEL) + // iRet = 0; + // else if (bForceAttack) + // iRet = 1; + // else if (!gs.bAtk_Player) + // iRet = 0; + // else if (gs.bAtk_NoMafia && IsFactionMember(pPlayer.GetFactionID())) + // iRet = 0; + // else if (gs.bAtk_NoWhite && !pPlayer.IsInvader() && !pPlayer.IsPariah()) + // iRet = 0; + // else if (gs.bAtk_NoAlliance && g_pGame.GetFactionMan().IsFactionAlliance(pPlayer.GetFactionID())) + // iRet = 0; + // else if (gs.bAtk_NoForce && GetForce() > 0 && GetForce() == pPlayer.GetForce()) + // iRet = 0; + // else + // iRet = 1; + // } + //} else { return -1;