fix: update auto move for HP.

This commit is contained in:
Tungdv
2025-10-28 19:20:41 +07:00
parent b4f2e78def
commit 4283029b1f
12 changed files with 212 additions and 52 deletions
@@ -440,7 +440,7 @@ public class CECNPCMan : IMsgHandler
tid = 4249;
dataType = edm.get_data_type((uint)tid, ID_SPACE.ID_SPACE_ESSENCE);
}
BMLogger.LogError("HoangDev: CreateNPC TID = " + tid.ToString() + " DataType= " + (DATA_TYPE)dataType + " bPet: "+ bPet);
//BMLogger.LogError("HoangDev: CreateNPC TID = " + tid.ToString() + " DataType= " + (DATA_TYPE)dataType + " bPet: "+ bPet);
if (bPet)
{
//pNPC = new CECPet(this);
@@ -413,7 +413,7 @@ namespace BrewMonster.Scripts
{
if (pWorkMove.GetAutoMove())
{
//pWorkMove.Finish();
pWorkMove.Finish();
}
else
{
@@ -606,6 +606,67 @@ namespace BrewMonster.Scripts
StartAwaitingWorks();
}
}
public bool IsFollowing()
{
return IsWorkRunning(CECHPWork.Host_work_ID.WORK_FOLLOW);
}
public bool IsMovingToPosition()
{
return IsWorkRunning(CECHPWork.Host_work_ID.WORK_MOVETOPOS);
}
public bool IsTracing()
{
return IsWorkRunning(CECHPWork.Host_work_ID.WORK_TRACEOBJECT);
}
bool IsWorkRunning(int iWorkID)
{
bool result = false;
if (ValidatePriority(m_iCurPriority))
{
WorkList workList = m_WorkStack[m_iCurPriority];
if(workList != null)
{
for (int i = 0; i < workList.Count; ++i)
{
if (iWorkID == workList[i].GetWorkID())
{
result = true;
break;
}
}
}
}
return result;
}
public void FinishRunningWork(int idWork)
{
if (!IsWorkRunning(idWork))
{
return;
}
WorkList workList = m_WorkStack[m_iCurPriority];
if(workList != null)
{
for (int i = 0; i < workList.Count;)
{
if (workList[i].GetWorkID() != idWork)
{
++i;
continue;
}
KillWork(m_iCurPriority, i);
}
if (workList == null)
{
StartAwaitingWorks();
}
}
}
}
public abstract class CECHPWorkPostTickCommand
@@ -62,7 +62,7 @@ namespace BrewMonster.Scripts
m_vMoveDest = vMoveDest;
m_bHaveDest = true;
m_bGliding = false;
//m_pHost->SetAdjustOrient(false); // 2014-9-10 徐文彬:在 CECHPWorkMove 创建的时候都会调用此函数,会导致其它时机通过 SetDestDirAndUp 调用对人物的朝向调整失效。
//m_pHost.SetAdjustOrient(false); // 2014-9-10 徐文彬:在 CECHPWorkMove 创建的时候都会调用此函数,会导致其它时机通过 SetDestDirAndUp 调用对人物的朝向调整失效。
// 重现方法为:月仙“望月咏”技能释放后、马上按住'A'或'D'等移动键并摁住不放,将导致人物施法方向偏离目标而朝向移动方向(需多次尝试)
//清空任务信息
@@ -92,7 +92,7 @@ namespace BrewMonster.Scripts
else if (IsAutoPF())
{
// TO DO: fix later
//m_vCurDir = CECIntelligentRoute::Instance().GetCurDest() - m_pHost->GetPos();
//m_vCurDir = CECIntelligentRoute::Instance().GetCurDest() - m_pHost.GetPos();
//m_vCurDir.y = 0.0f;
//m_vCurDir.Normalize();
//if (m_bUseAutoMoveDialog)
@@ -181,7 +181,7 @@ namespace BrewMonster.Scripts
// if (m_iNPCTempleId)
// {
// CECNPC pNPC = g_pGame.GetGameRun().GetWorld().GetNPCMan().FindNPCByTempleID(m_iNPCTempleId);
// if (pNPC && m_pHost.SelectTarget(pNPC->GetNPCID()))
// if (pNPC && m_pHost.SelectTarget(pNPC.GetNPCID()))
// {
// CECHPWorkTrace pWork = m_pWorkMan.CreateNPCTraceWork(pNPC, m_iTaskId);
// if (pWork)
@@ -203,15 +203,15 @@ namespace BrewMonster.Scripts
// if (!m_pHost.IsJumping() && !m_pHost.IsPlayingAction(CECPlayer::ACT_TRICK_RUN) &&
// m_pHost.m_iMoveMode != CECPlayer::MOVE_SLIDE && !m_bMeetSlide)
// {
// int iAction = m_pHost->GetMoveStandAction(true);
// int iAction = m_pHost.GetMoveStandAction(true);
// m_pHost.PlayAction(iAction, false);
// }
// Tick_Walk(fDeltaTime);
//}
//else // (m_pHost->m_iMoveEnv == CECPlayer::MOVEENV_AIR || m_pHost->m_iMoveEnv == CECPlayer::MOVEENV_WATER)
//else // (m_pHost.m_iMoveEnv == CECPlayer::MOVEENV_AIR || m_pHost.m_iMoveEnv == CECPlayer::MOVEENV_WATER)
//{
// m_pHost->ResetJump();
// m_pHost.ResetJump();
// // Play appropriate actions
// if (!m_bGliding)
@@ -273,9 +273,33 @@ namespace BrewMonster.Scripts
bool IsAutoPF() { return m_iDestType == Types.DEST_AUTOPF; }
// Finish work
void Finish()
public void Finish()
{
m_bFinished = true;
Cancel();
// Close 'Win_AutoPlay' dialog if it exists
//CECGameUIMan* pGameUI = g_pGame.GetGameRun().GetUIManager().GetInGameUIMan();
//pGameUI.AutoMoveShowDialog(false);
if (m_bUseAutoMoveDialog)
{
if (m_bAutoLand)
{
m_bAutoLand = false;
//if (g_pGame.GetGameRun().GetHostPlayer().IsFlying())
// g_pGame.GetGameRun().GetHostPlayer().CmdFly(false);
}
m_bUseAutoMoveDialog = false;
m_fAutoHeight = -1.0f;
m_bAutoFly = false;
m_bReachedHeight = true;
}
//清空任务追踪数据
m_iNPCTempleId = 0;
m_iTaskId = 0;
}
void SetTaskNPCInfo(int tid, int taskid)
@@ -288,8 +312,8 @@ namespace BrewMonster.Scripts
//int tid, taskid;
//tid = m_iNPCTempleId;
//taskid = m_iTaskId;
//CECGameUIMan* pGameUI = g_pGame->GetGameRun()->GetUIManager()->GetInGameUIMan();
//pGameUI->SetAutoMoveShowDialogTarget((int)m_vMoveDest.x, (int)m_vMoveDest.z);
//CECGameUIMan* pGameUI = g_pGame.GetGameRun().GetUIManager().GetInGameUIMan();
//pGameUI.SetAutoMoveShowDialogTarget((int)m_vMoveDest.x, (int)m_vMoveDest.z);
//SetDestination(CECHPWorkMove::DEST_2D, m_vMoveDest);
//SetTaskNPCInfo(tid, taskid);
//SetUseAutoMoveDialog(true);
@@ -346,12 +370,12 @@ namespace BrewMonster.Scripts
// bool bSwitchTo2D(true);
// while (true)
// {
// if (m_pHost->IsFlying())
// if (m_pHost.IsFlying())
// {
// break;
// }
// CECHostBrushTest brushTester(m_pHost->GetPos(), m_pHost->m_CDRInfo.vExtent, m_pHost->m_CDRInfo.fStepHeight);
// if (CECIntelligentRoute::Instance().Search(m_pHost->GetPos(), m_vMoveDest, &brushTester) != CECIntelligentRoute::enumSearchSuccess)
// CECHostBrushTest brushTester(m_pHost.GetPos(), m_pHost.m_CDRInfo.vExtent, m_pHost.m_CDRInfo.fStepHeight);
// if (CECIntelligentRoute::Instance().Search(m_pHost.GetPos(), m_vMoveDest, &brushTester) != CECIntelligentRoute::enumSearchSuccess)
// {
// break;
// }
@@ -152,11 +152,11 @@ public abstract class CECTracedObject
fTouchRadius = pNPC.GetTouchRadius();
return m_pHost.CanTouchTarget(vHostPos, vTargetPos, fTouchRadius, iTouchReason, fMaxCut);
}
//else if (GPDataTypeHelper.ISMATTERID(m_iObjectId))
//{
// CECMatter pMatter = (pObject) as CECMatter;
// return pMatter.CalcDist(vHostPos, true) < pMatter.GetGatherDist();
//}
else if (GPDataTypeHelper.ISMATTERID(m_iObjectId))
{
//CECMatter pMatter = (pObject) as CECMatter;
//return pMatter.CalcDist(vHostPos, true) < pMatter.GetGatherDist();
}
break;
}
return false;
@@ -601,18 +601,18 @@ public class CECHPWorkTrace : CECHPWork
{
if (IsGoodTimeToTouch())
{
OnTouchTarget();
return true;
//if (m_pTraceObject.CanTouchFrom(m_pHost.GetPos()))
//{
// OnTouchTarget();
// return true;
//}
//OnTouchTarget();
//return true;
if (m_pTraceObject.CanTouchFrom(m_pHost.GetPos() + new A3DVECTOR3(0f, m_pHost.m_CDRInfo.vExtent.y, 0f)))
{
OnTouchTarget();
return true;
}
}
}
m_bCheckTouch = true;
return true; // TO DO: remove later
//return true; // TO DO: remove later
if (!m_pHost.IsRooting())
{
// Continue tracing object
@@ -829,6 +829,7 @@ public class CECHPWorkTrace : CECHPWork
vCurPos = m_pHost.m_MoveCtrl.GroundMove(m_vCurDirH, m_pHost.GetGroundSpeed(), fDeltaTime);
if (m_pHost.m_MoveCtrl.MoveBlocked() >= 3)
{
Debug.LogError("SendStopMoveCmd");
m_pHost.m_MoveCtrl.SetSlideLock(true);
m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(), (int)GPMoveMode.GP_MOVE_SLIDE);
m_bFinished = true;
@@ -840,6 +841,7 @@ public class CECHPWorkTrace : CECHPWork
//{
// CECIntelligentRoute::Instance().OnPlayerPosChange(vCurPos);
//}
Debug.LogError("SendMoveCmd");
m_pHost.m_MoveCtrl.SendMoveCmd(vCurPos, 2, GPDataTypeHelper.g_vOrigin, EC_Utility.ToA3DVECTOR3(cdr.vAbsVelocity), (int)GPMoveMode.GP_MOVE_SLIDE);
}
}
@@ -875,7 +877,7 @@ public class CECHPWorkTrace : CECHPWork
}
vCurPos = m_pHost.m_MoveCtrl.GroundMove(m_vCurDirH, m_pHost.GetGroundSpeed(), fDeltaTime, m_pHost.m_fVertSpeed);
Debug.LogError(vCurPos);
m_pHost.SetPos(EC_Utility.ToVector3(vCurPos));
//if (GetUseAutoPF() && CECIntelligentRoute::Instance().IsMoveOn())
//{
@@ -892,11 +894,15 @@ public class CECHPWorkTrace : CECHPWork
if (m_pHost.m_MoveCtrl.MoveBlocked() >= 3)
{
// m_pHost.m_MoveCtrl.SendStopMoveCmd(vCurPos, m_pHost.GetGroundSpeed(), iMoveMode);
Debug.LogError("SendStopMoveCmd");
m_pHost.m_MoveCtrl.SendStopMoveCmd(EC_Utility.ToVector3(vCurPos), m_pHost.GetGroundSpeed(), iMoveMode);
PressCancel();
}
else
{
Debug.LogError("SendMoveCmd");
m_pHost.m_MoveCtrl.SendMoveCmd(vCurPos, 0, vTargetPos, EC_Utility.ToA3DVECTOR3(cdr.vAbsVelocity), iMoveMode);
}
}
else // m_bMeetSlide == true
{
@@ -947,6 +947,7 @@ public abstract class CECPlayer : CECObject
public float GetGroundSpeed()
{
// return m_bWalkRun ? g_pGame.GetConfigs().GetHostRunSpeed() : m_ExtProps.mv.walk_speed;
return 5f;
return m_bWalkRun ? m_ExtProps.mv.run_speed : m_ExtProps.mv.walk_speed;
}
+6 -5
View File
@@ -176,7 +176,7 @@ namespace BrewMonster.Scripts
}
Vector3 vVelDir = vVelocity;
float fVelSpeed = vVelDir.magnitude;
vVelDir = vVelDir.normalized;
//vVelDir = vVelDir.normalized;
if (fVelSpeed > 1e-6f)
{
vVelDir /= fVelSpeed;
@@ -220,15 +220,16 @@ namespace BrewMonster.Scripts
//bool hasHit = CollideWithEnv_BoxCast(vStart, vDelta, vExt, mask,
// out RaycastHit hit, out float fFraction, out Vector3 hitNormal, out bool bStartSolid);
Vector3 posFoot = vStart - Vector3.up * vExt.y;
bool bClear = !Physics.Raycast(posFoot, vVelocity.normalized, out RaycastHit hit, fDeltaDist, mask);
bool bClear = !Physics.Raycast(posFoot, (posFoot + vVelocity).normalized, out RaycastHit hit, fDeltaDist, mask);
nTry++;
if (bClear)
{
vFinalPos = vStart + vDelta;
Debug.DrawLine(posFoot, vFinalPos, Color.red, 10f);
CDRInfo.fMoveDist += fDeltaDist;
break;
}
Debug.LogError("Hit");
//if (bStartSolid)
//{
// CDRInfo.fMoveDist = 0f;
@@ -249,13 +250,13 @@ namespace BrewMonster.Scripts
//float skin = 0.01f;
posFoot = vStart - Vector3.up * vExt.y;
Vector3 vStartUp = new Vector3(0f, CDRInfo.fStepHeight, 0f);
bPull = !Physics.Raycast(posFoot, vStartUp.normalized, out hit, mask);
bPull = !Physics.Raycast(posFoot, (posFoot + vStartUp).normalized, out hit, mask);
if (bPull)
{
vStart += Vector3.up * CDRInfo.fStepHeight;
posFoot = vStart - Vector3.up * vExt.y;
Vector3 vDelta2 = vVelocity;
bool bMove = !Physics.Raycast(posFoot, vVelocity.normalized, out hit, mask);
bool bMove = !Physics.Raycast(posFoot, (posFoot + vVelocity).normalized, out hit, mask);
if (!bMove)
{
//vDelta2 *= frac2;
+1 -1
View File
@@ -805,7 +805,7 @@ public class CECNPC : CECObject
{
tid = GetNPCInfo().tid;
}
BMLogger.LogError("HoangDev: GetVisibleModel NPC TID=" + tid + ", ModelFile=" + szModelFile);
//BMLogger.LogError("HoangDev: GetVisibleModel NPC TID=" + tid + ", ModelFile=" + szModelFile);
return tid > 0;
}
public bool GetModelFile(int tid, out string szModelFile)
@@ -60,7 +60,7 @@ public class CECNPCModelDefaultPolicy
*/
bool result = false;
bool ignoreRef = false;
BMLogger.LogError("HoangDev: NPCActionIndex: " + (NPCActionIndex)iAction);
//BMLogger.LogError("HoangDev: NPCActionIndex: " + (NPCActionIndex)iAction);
if (iAction == (int)NPCActionIndex.ACT_WOUNDED)
{
string szAct = GetActionName(iAction);
@@ -1315,5 +1315,18 @@ namespace CSNetwork.GPDataType
{
public int idTarget;
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_host_notify_root
{
public A3DVECTOR3 pos;
public byte type;
};
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct cmd_host_dispel_root
{
public byte type;
};
}
@@ -453,9 +453,8 @@ namespace CSNetwork
if (pCmd.iMessage == 2)
{
// Attack target is too far
//pGameRun->PostMessage(MSG_HST_TARGETISFAR, MAN_PLAYER, 0, (DWORD)pDataBuf, pCmdHeader->cmd);
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_TARGETISFAR, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
}
else if (pCmd.iMessage == 20)
{
@@ -517,6 +516,10 @@ namespace CSNetwork
break;
}
case CommandID.HOST_NOTIFY_ROOT:
case CommandID.HOST_DISPEL_ROOT:
EC_ManMessage.PostMessage(EC_MsgDef.MSG_HST_ROOTNOTIFY, MANAGER_INDEX.MAN_PLAYER, 0, pDataBuf, pCmdHeader);
break;
}
}
+5 -1
View File
@@ -47,6 +47,8 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 2cd22b82fc76bed46ac948cef9c7119d, type: 3}
m_Name:
m_EditorClassIdentifier:
m_iMMIndex: 0
m_idAttackTarget: 0
m_fMoveSpeed: 0
_characterController: {fileID: -2400324395862947468}
--- !u!114 &-3520322077839857420
@@ -62,6 +64,8 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
namedAnimancer: {fileID: 0}
isDebug: 0
animName1:
--- !u!143 &-2400324395862947468
CharacterController:
m_ObjectHideFlags: 0
@@ -102,7 +106,7 @@ BoxCollider:
serializedVersion: 2
m_Bits: 0
m_LayerOverridePriority: 0
m_IsTrigger: 0
m_IsTrigger: 1
m_ProvidesContacts: 0
m_Enabled: 1
serializedVersion: 3
+60 -13
View File
@@ -41,7 +41,7 @@ public class CECHostPlayer : CECPlayer
public CECHostMove m_MoveCtrl;
CECHPWorkMan m_pWorkMan; // Host work manager
uint m_dwLIES; // Logic-influence extend states
uint m_dwLIES = 0; // Logic-influence extend states
FACTION_FORTRESS_ENTER m_fortressEnter; // ½øÈë»ùµØÐÅÏ¢
PVPINFO m_pvp; // pvp information
bool m_bInSanctuary = false; // true, player is in sanctuary
@@ -95,7 +95,7 @@ public class CECHostPlayer : CECPlayer
ccRadius = controller.radius;
ccSkin = controller.skinWidth;
}
m_CDRInfo.fStepHeight = -1610612736;
//m_CDRInfo.fStepHeight = -1610612736;
}
@@ -353,6 +353,7 @@ public class CECHostPlayer : CECPlayer
case int value when value == EC_MsgDef.MSG_HST_ATKRESULT: OnMsgHstAttackResult(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_ATTACKED: OnMsgHstAttacked(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_HURTRESULT: OnMsgHstHurtResult(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_ROOTNOTIFY: OnMsgHstRootNotify(Msg); break;
}
}
void OnMsgHstAttacked(ECMSG Msg)
@@ -363,10 +364,10 @@ public class CECHostPlayer : CECPlayer
if (pCmd.iDamage != 0 && (pCmd.cEquipment & 0x7f) != 0x7f)
{
/* char cEquip = (char)(pCmd.cEquipment & 0x7f);
CECIvtrEquip pEquip = (CECIvtrEquip)m_pEquipPack->GetItem(cEquip);
if (pEquip)
pEquip->AddCurEndurance(ARMOR_RUIN_SPEED);*/
/* char cEquip = (char)(pCmd.cEquipment & 0x7f);
CECIvtrEquip pEquip = (CECIvtrEquip)m_pEquipPack.GetItem(cEquip);
if (pEquip)
pEquip.AddCurEndurance(ARMOR_RUIN_SPEED);*/
}
// The host player is attacked, we should make an effect here
@@ -381,7 +382,7 @@ public class CECHostPlayer : CECPlayer
pAttacker.TurnFaceTo(GetPlayerInfo().cid);
}
int useless_attacktime = 0;
pAttacker.PlayAttackEffect(GetCharacterID(), 0, 0, pCmd.iDamage, (uint)pCmd.attack_flag, pCmd.speed * 50,ref useless_attacktime);
pAttacker.PlayAttackEffect(GetCharacterID(), 0, 0, pCmd.iDamage, (uint)pCmd.attack_flag, pCmd.speed * 50, ref useless_attacktime);
pAttacker.EnterFightState();
}
}
@@ -431,7 +432,7 @@ public class CECHostPlayer : CECPlayer
{
cmd_be_hurt pCmd = (cmd_be_hurt)Msg.dwParam1;
if (pCmd.damage != 0)
Damaged(pCmd->damage);
Damaged(pCmd.damage);
}
else if (cmd == CommandID.HURT_RESULT)
{
@@ -443,7 +444,7 @@ public class CECHostPlayer : CECPlayer
{
CECElsePlayer pTarget = m_pPlayerMan.GetElsePlayer(pCmd.target_id);
if (pTarget)
pTarget->Damaged(pCmd->damage);
pTarget.Damaged(pCmd.damage);
}
else if (UnityGameSession.Instance.GameSession.ISNPCID(pCmd.target_id))
{
@@ -453,6 +454,43 @@ public class CECHostPlayer : CECPlayer
}
}*/
}
void OnMsgHstRootNotify(ECMSG Msg)
{
if (Convert.ToInt32(Msg.dwParam2) == CommandID.HOST_NOTIFY_ROOT)
{
cmd_host_notify_root pCmd = GPDataTypeHelper.FromBytes<cmd_host_notify_root>((byte[])Msg.dwParam1);
m_dwLIES |= (1u << pCmd.type);
if (pCmd.type != 3)
{
// Force pull host to specified position
SetPos(EC_Utility.ToVector3(pCmd.pos));
}
if (IsRooting())
{
if (m_pWorkMan.IsFollowing())
{
m_pWorkMan.FinishRunningWork(CECHPWork.Host_work_ID.WORK_FOLLOW);
}
if (m_pWorkMan.IsMovingToPosition())
{
m_pWorkMan.FinishRunningWork(CECHPWork.Host_work_ID.WORK_MOVETOPOS);
}
if (m_pWorkMan.IsTracing())
{
m_pWorkMan.FinishRunningWork(CECHPWork.Host_work_ID.WORK_TRACEOBJECT);
}
}
}
else if (Convert.ToInt32(Msg.dwParam2) == CommandID.HOST_DISPEL_ROOT)
{
cmd_host_dispel_root pCmd = GPDataTypeHelper.FromBytes<cmd_host_dispel_root>((byte[])Msg.dwParam1);
m_dwLIES &= ~(1u << pCmd.type);
}
}
public void OnMsgHstPickupItem(in ECMSG Msg)
{
var data = Msg.dwParam1 as byte[];
@@ -714,7 +752,14 @@ public class CECHostPlayer : CECPlayer
m_aabb.Extents.Set(0.3f, 0.9f, 0.3f);
m_aabbServer = m_aabb;
CalcPlayerAABB();
// Update upper body radius using new AABB
//m_CDRInfo.vExtent = m_aabbServer.Extents;
m_CDRInfo.vTPNormal = Vector3.up; //pos.y < fHei + 0.1f ? vNormal : g_vOrigin;
//m_CDRInfo.fYVel = 0.0f;
//m_CDRInfo.fSlopeThresh = 0.5f;
m_CDRInfo.fStepHeight = 0.8f;//m_MoveConst.fStepHei;
//a_LogOutput(1, "m_CDRInfo.fStepHeight = %d", m_CDRInfo.fStepHeight);
//m_CDRInfo.vAbsVelocity = Vector3.zero;
// Create work manager
m_pWorkMan = new CECHPWorkMan(this);
if (m_pWorkMan == null)
@@ -1066,6 +1111,8 @@ public class CECHostPlayer : CECPlayer
else
fRange = m_ExtProps.ak.AttackRange * 0.7f;
fRange = 2.31f;
if (fDist - fTargetRad <= fRange)
return true;
@@ -1272,7 +1319,7 @@ public class CECHostPlayer : CECPlayer
case ActionCanDo.CANDO_ASSISTSEL:
if (IsDead() || !GPDataTypeHelper.ISPLAYERID(m_idSelTarget) || m_idSelTarget == m_PlayerInfo.cid /*||
!m_pTeam || !m_pTeam->GetMemberByID(m_idSelTarget) || m_iBuddyId || IsPassiveMove() ||
!m_pTeam || !m_pTeam.GetMemberByID(m_idSelTarget) || m_iBuddyId || IsPassiveMove() ||
m_playerLimits.test(PLAYER_LIMIT_NOCHANGESELECT)*/)
bRet = false;
@@ -1399,7 +1446,7 @@ public class CECHostPlayer : CECPlayer
// if (IsDead() || IsAboutToDie() || IsTrading() || IsUsingTrashBox() || IsTalkingWithNPC() ||
// IsJumping() || IsFlashMoving() || IsFalling() || IsChangingFace() || GetBoothState() != 0 || IsTakingOff() ||
// m_pWorkMan->HasWorkRunningOnPriority(CECHPWorkMan::PRIORITY_2) ||
// m_pWorkMan.HasWorkRunningOnPriority(CECHPWorkMan::PRIORITY_2) ||
// m_iBuddyId || IsOperatingPet() || IsRebuildingPet() || IsUsingItem() || IsPassiveMove())
// bRet = false;
@@ -1411,7 +1458,7 @@ public class CECHostPlayer : CECPlayer
// IsMeleeing() || IsTrading() || IsUsingTrashBox() || IsTalkingWithNPC() ||
// IsChangingFace() || IsReviving() || IsSpellingMagic() || IsPicking() ||
// IsGathering() || IsRooting() || GetBoothState() != 0 ||
// !m_pWorkMan->IsStanding() || m_iBuddyId ||
// !m_pWorkMan.IsStanding() || m_iBuddyId ||
// IsOperatingPet() || IsRebuildingPet() || IsUsingItem() || GetShapeType() == PLAYERMODEL_DUMMYTYPE2 || IsPassiveMove() ||
// m_playerLimits.test(PLAYER_LIMIT_NOBIND))
// bRet = false;