fix: Update attack normal HP.
This commit is contained in:
@@ -12,6 +12,7 @@ using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
using TMPro;
|
||||
using UnityEditor.Experimental.GraphView;
|
||||
using UnityEngine;
|
||||
using UnityEngine.InputSystem;
|
||||
using UnityEngine.SceneManagement;
|
||||
@@ -70,6 +71,7 @@ public class CECHostPlayer : EC_Player
|
||||
// cache tùy chọn (không bắt buộc)
|
||||
float ccRadius, ccSkin;
|
||||
RaycastHit lastGroundHit;
|
||||
Camera mainCam;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
@@ -99,6 +101,11 @@ public class CECHostPlayer : EC_Player
|
||||
}
|
||||
private void Start()
|
||||
{
|
||||
mainCam = Camera.main;
|
||||
if (mainCam == null)
|
||||
{
|
||||
mainCam = FindFirstObjectByType<Camera>();
|
||||
}
|
||||
_playerStateMachine.InitState(_idleState);
|
||||
// btnJump.onClick.AddListener(HandleJump);
|
||||
}
|
||||
@@ -111,6 +118,90 @@ public class CECHostPlayer : EC_Player
|
||||
// ccRadius = controller.radius; ccSkin = controller.skinWidth;
|
||||
|
||||
_playerStateMachine.UpdateState();
|
||||
|
||||
if (Input.GetMouseButtonDown(1) && mainCam != null)
|
||||
{
|
||||
int idTraceTarget = 0, idSelTarget = 0;
|
||||
bool bForceAttack = false;
|
||||
int iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_NONE;
|
||||
bool bWikiMonster = false;
|
||||
|
||||
Ray ray = mainCam.ScreenPointToRay(Input.mousePosition);
|
||||
RaycastHit hit;
|
||||
|
||||
if (Physics.Raycast(ray, out hit))
|
||||
{
|
||||
CECObject clickedObject = hit.collider.gameObject.GetComponent<CECObject>();
|
||||
|
||||
if(clickedObject != null)
|
||||
{
|
||||
int idObject = CECObject.GetObjectID(clickedObject);
|
||||
if (idObject != 0)
|
||||
{
|
||||
CECNPC pNPC = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(idObject);
|
||||
if(pNPC != null)
|
||||
{
|
||||
if (!pNPC.IsDead())
|
||||
{
|
||||
idTraceTarget = idObject;
|
||||
}
|
||||
if (idTraceTarget != 0)
|
||||
{
|
||||
if (AttackableJudge(idObject, bForceAttack) == 1)
|
||||
iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_ATTACK;
|
||||
else if (pNPC.IsServerNPC())
|
||||
{
|
||||
if (!IsInBattle() || InSameBattleCamp(pNPC))
|
||||
iTraceReason = CECHPWorkTrace.Trace_reason.TRACE_TALK;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (idTraceTarget != 0)
|
||||
{
|
||||
//if (m_pWorkMan.IsSitting())
|
||||
//{
|
||||
// g_pGame.GetGameSession().c2s_CmdStandUp();
|
||||
// return;
|
||||
//}
|
||||
// Trace a object
|
||||
if (iTraceReason == CECHPWorkTrace.Trace_reason.TRACE_ATTACK)
|
||||
{
|
||||
//if (!CanDo(CANDO_MELEE))
|
||||
// return;
|
||||
Debug.LogError("Attack");
|
||||
NormalAttackObject(idTraceTarget, bForceAttack);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// if (!CanDo(CANDO_MOVETO))
|
||||
// return;
|
||||
|
||||
// if (iTraceReason == CECHPWorkTrace::TRACE_PICKUP)
|
||||
// {
|
||||
// PickupObject(idTraceTarget, false);
|
||||
// }
|
||||
// else if (iTraceReason == CECHPWorkTrace::TRACE_GATHER)
|
||||
// {
|
||||
// PickupObject(idTraceTarget, true);
|
||||
// }
|
||||
// else if (CECHPWork * pWork = m_pWorkMan.GetWork(CECHPWork::WORK_TRACEOBJECT))
|
||||
// {
|
||||
// CECHPWorkTrace* pWorkTrace = dynamic_cast<CECHPWorkTrace*>(pWork);
|
||||
// pWorkTrace.SetTraceTarget(pWorkTrace.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
|
||||
// }
|
||||
// else if (m_pWorkMan.CanStartWork(CECHPWork::WORK_TRACEOBJECT) && !bWikiMonster)
|
||||
// {
|
||||
// CECHPWorkTrace* pWork = (CECHPWorkTrace*)m_pWorkMan.CreateWork(CECHPWork::WORK_TRACEOBJECT);
|
||||
// pWork.SetTraceTarget(pWork.CreatTraceTarget(idTraceTarget, iTraceReason, bForceAttack));
|
||||
// m_pWorkMan.StartWork_p1(pWork);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
public void StopMovement()
|
||||
{
|
||||
@@ -229,7 +320,7 @@ public class CECHostPlayer : EC_Player
|
||||
case int value when value == EC_MsgDef.MSG_HST_TASKDATA:
|
||||
{
|
||||
OnMsgHstTaskData(Msg);
|
||||
Debug.LogError("[Dat]- OnMsgHstTaskData");
|
||||
//Debug.LogError("[Dat]- OnMsgHstTaskData");
|
||||
break;
|
||||
}
|
||||
case int value when value == EC_MsgDef.MSG_HST_ITEMOPERATION:
|
||||
@@ -837,7 +928,7 @@ public class CECHostPlayer : EC_Player
|
||||
//{
|
||||
// if (m_pPrepSkill)
|
||||
// {
|
||||
// float fRange = m_pPrepSkill->GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
|
||||
// float fRange = m_pPrepSkill.GetCastRange(m_ExtProps.ak.AttackRange, GetPrayDistancePlus());
|
||||
// if (fRange > 0.0f)
|
||||
// {
|
||||
// if (fDist - fTargetRad <= fRange)
|
||||
@@ -911,12 +1002,12 @@ public class CECHostPlayer : EC_Player
|
||||
// while (true)
|
||||
// {
|
||||
// if (!IsUnderWater()) break;
|
||||
// //CECWorld* pWorld = g_pGame->GetGameRun()->GetWorld();
|
||||
// //CECWorld* pWorld = g_pGame.GetGameRun().GetWorld();
|
||||
// //if (!pWorld) break;
|
||||
|
||||
// const A3DVECTOR3 vPos = GetPos();
|
||||
// float fTerrainHeight = pWorld->GetTerrainHeight(vPos);
|
||||
// float fWaterHeight = pWorld->GetWaterHeight(vPos);
|
||||
// float fTerrainHeight = pWorld.GetTerrainHeight(vPos);
|
||||
// float fWaterHeight = pWorld.GetWaterHeight(vPos);
|
||||
// if (fWaterHeight <= fTerrainHeight) break;
|
||||
|
||||
// float fBorderLine = fWaterHeight - 2.0f;
|
||||
|
||||
Reference in New Issue
Block a user