npc leave after die
This commit is contained in:
@@ -1,14 +1,16 @@
|
||||
using BrewMonster;
|
||||
using BrewMonster;
|
||||
using BrewMonster.Network;
|
||||
using CSNetwork;
|
||||
using CSNetwork.Common;
|
||||
using CSNetwork.GPDataType;
|
||||
using CSNetwork.Protocols;
|
||||
using CSNetwork.Protocols.RPCData;
|
||||
using NUnit.Framework;
|
||||
using PerfectWorld.Scripts.Managers;
|
||||
using PerfectWorld.Scripts.Player;
|
||||
using PerfectWorld.Scripts.Task;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
@@ -45,6 +47,7 @@ public class CECHostPlayer : CECPlayer
|
||||
int m_iJumpCount = 0;
|
||||
bool m_bJumpInWater = false;
|
||||
public A3DVECTOR3 m_vVelocity; // Velocity
|
||||
List<CECObject> m_aTabSels = new List<CECObject>();
|
||||
|
||||
float playerSpeed = 5.0f;
|
||||
float jumpHeight = 1.5f;
|
||||
@@ -368,33 +371,33 @@ public class CECHostPlayer : CECPlayer
|
||||
}
|
||||
private void OnMsgHstHurtResult(ECMSG Msg)
|
||||
{
|
||||
/* BMLogger.LogError("HoangDev : OnMsgHstHurtResult");
|
||||
int cmd = Convert.ToInt32(Msg.dwParam2);
|
||||
if (cmd == CommandID.BE_HURT)
|
||||
{
|
||||
cmd_be_hurt pCmd = (cmd_be_hurt)Msg.dwParam1;
|
||||
if (pCmd.damage != 0)
|
||||
Damaged(pCmd->damage);
|
||||
}
|
||||
else if (cmd == CommandID.HURT_RESULT)
|
||||
{
|
||||
cmd_hurt_result pCmd = (cmd_hurt_result)Msg.dwParam1;
|
||||
if (pCmd.target_id == m_PlayerInfo.cid)
|
||||
return; // Host himself will receive BE_HURT, so ignore this.
|
||||
/* BMLogger.LogError("HoangDev : OnMsgHstHurtResult");
|
||||
int cmd = Convert.ToInt32(Msg.dwParam2);
|
||||
if (cmd == CommandID.BE_HURT)
|
||||
{
|
||||
cmd_be_hurt pCmd = (cmd_be_hurt)Msg.dwParam1;
|
||||
if (pCmd.damage != 0)
|
||||
Damaged(pCmd->damage);
|
||||
}
|
||||
else if (cmd == CommandID.HURT_RESULT)
|
||||
{
|
||||
cmd_hurt_result pCmd = (cmd_hurt_result)Msg.dwParam1;
|
||||
if (pCmd.target_id == m_PlayerInfo.cid)
|
||||
return; // Host himself will receive BE_HURT, so ignore this.
|
||||
|
||||
if (UnityGameSession.Instance.GameSession.ISPLAYERID(pCmd.target_id))
|
||||
{
|
||||
CECElsePlayer pTarget = m_pPlayerMan.GetElsePlayer(pCmd.target_id);
|
||||
if (pTarget)
|
||||
pTarget->Damaged(pCmd->damage);
|
||||
}
|
||||
else if (UnityGameSession.Instance.GameSession.ISNPCID(pCmd.target_id))
|
||||
{
|
||||
CECNPC pTarget = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(pCmd.target_id);
|
||||
if (pTarget)
|
||||
pTarget.Damaged(pCmd.damage);
|
||||
}
|
||||
}*/
|
||||
if (UnityGameSession.Instance.GameSession.ISPLAYERID(pCmd.target_id))
|
||||
{
|
||||
CECElsePlayer pTarget = m_pPlayerMan.GetElsePlayer(pCmd.target_id);
|
||||
if (pTarget)
|
||||
pTarget->Damaged(pCmd->damage);
|
||||
}
|
||||
else if (UnityGameSession.Instance.GameSession.ISNPCID(pCmd.target_id))
|
||||
{
|
||||
CECNPC pTarget = EC_ManMessageMono.Instance._CECNPCMan.GetNPC(pCmd.target_id);
|
||||
if (pTarget)
|
||||
pTarget.Damaged(pCmd.damage);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
public void OnMsgHstPickupItem(in ECMSG Msg)
|
||||
{
|
||||
@@ -410,9 +413,9 @@ public class CECHostPlayer : CECPlayer
|
||||
uint iSlotAmount = BitConverter.ToUInt32(data, 12);
|
||||
byte byPackage = data[16];
|
||||
byte bySlot = data[17];
|
||||
|
||||
|
||||
Debug.Log($"[Inventory] PICKUP_ITEM: tid={tid}, expire_date={expire_date}, iAmount={iAmount}, iSlotAmount={iSlotAmount}, byPackage={byPackage}, bySlot={bySlot}");
|
||||
|
||||
|
||||
// Notify pickupItem script about successful pickup
|
||||
pickupItem pickupScript = pickupItem.Instance;
|
||||
if (pickupScript != null)
|
||||
@@ -560,13 +563,11 @@ public class CECHostPlayer : CECPlayer
|
||||
{
|
||||
case CommandID.OWN_IVTR_DATA:
|
||||
{
|
||||
Debug.Log("[Inventory] OWN_IVTR_DATA received");
|
||||
PerfectWorld.Scripts.Managers.EC_Inventory.LogInventoryPacket("OWN_IVTR_DATA", data, hostId);
|
||||
break;
|
||||
}
|
||||
case CommandID.OWN_IVTR_DETAIL_DATA:
|
||||
{
|
||||
Debug.Log("[Inventory] OWN_IVTR_DETAIL_DATA received");
|
||||
PerfectWorld.Scripts.Managers.EC_Inventory.LogInventoryPacket("OWN_IVTR_DETAIL_DATA", data, hostId);
|
||||
// Parse and store
|
||||
if (data != null && data.Length >= 6)
|
||||
@@ -604,13 +605,13 @@ public class CECHostPlayer : CECPlayer
|
||||
// Message MSG_HST_SELTARGET handler
|
||||
void OnMsgHstSelTarget(ECMSG Msg)
|
||||
{
|
||||
if (Convert.ToInt32(Msg.dwParam2) == CommandID.SELECT_TARGET)
|
||||
{
|
||||
if (Convert.ToInt32(Msg.dwParam2) == CommandID.SELECT_TARGET)
|
||||
{
|
||||
var data = (byte[])Msg.dwParam1;
|
||||
cmd_select_target pCmd = GPDataTypeHelper.FromBytes<cmd_select_target>(data);
|
||||
m_idSelTarget = pCmd.idTarget;
|
||||
m_idUCSelTarget = 0;
|
||||
}
|
||||
cmd_select_target pCmd = GPDataTypeHelper.FromBytes<cmd_select_target>(data);
|
||||
m_idSelTarget = pCmd.idTarget;
|
||||
m_idUCSelTarget = 0;
|
||||
}
|
||||
else if (Convert.ToInt32(Msg.dwParam2) == CommandID.UNSELECT)
|
||||
{
|
||||
m_idSelTarget = 0;
|
||||
@@ -648,7 +649,6 @@ public class CECHostPlayer : CECPlayer
|
||||
transform.position = pos;
|
||||
SetModelHostPlayer();
|
||||
m_dwResFlags = (uint)PlayerResourcesReadyFlag.RESFG_ALL;
|
||||
Debug.LogError("Pos Character = " + pos);
|
||||
joystick = FindAnyObjectByType<Joystick>();
|
||||
EventBus.Subscribe<JoystickRealeaseEvent>(JoystickRelease);
|
||||
EventBus.Subscribe<JoystickPressEvent>(JoystickStartDrag);
|
||||
@@ -1051,7 +1051,17 @@ public class CECHostPlayer : CECPlayer
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public void RemoveObjectFromTabSels(CECObject pObject)
|
||||
{
|
||||
for (int i = 0; i < m_aTabSels.Count; i++)
|
||||
{
|
||||
if (m_aTabSels[i] == pObject)
|
||||
{
|
||||
m_aTabSels.RemoveAt(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
public bool CanTouchTarget(A3DVECTOR3 vTargetPos, float fTargetRad, int iReason, float fMaxCut = 1.0f)
|
||||
{
|
||||
A3DVECTOR3 vector = new A3DVECTOR3(gameObject.transform.position.x, gameObject.transform.position.y, gameObject.transform.position.z);
|
||||
@@ -1091,7 +1101,7 @@ public class CECHostPlayer : CECPlayer
|
||||
public float GetFlySpeed() { return m_ExtProps.mv.flight_speed; }
|
||||
public float GetSwimSpeed() { return m_ExtProps.mv.swim_speed; }
|
||||
|
||||
bool SelectTarget(int idTarget)
|
||||
public bool SelectTarget(int idTarget)
|
||||
{
|
||||
bool bRet = false;
|
||||
bool canDo = CanDo(ActionCanDo.CANDO_CHANGESELECT);
|
||||
@@ -1476,7 +1486,7 @@ public struct GNDINFO
|
||||
// Behavior id used by CanDo()
|
||||
public static class ActionCanDo
|
||||
|
||||
{
|
||||
{
|
||||
public const int CANDO_SITDOWN = 0,
|
||||
CANDO_MOVETO = 1,
|
||||
CANDO_MELEE = 2,
|
||||
|
||||
@@ -35,7 +35,7 @@ public class CharacterItemUI : MonoBehaviour
|
||||
nameCharacter.text = roleName;
|
||||
}
|
||||
|
||||
void OnClickBtn()
|
||||
public void OnClickBtn()
|
||||
{
|
||||
onClick?.Invoke(dataItem);
|
||||
}
|
||||
|
||||
@@ -7,17 +7,30 @@ using BrewMonster;
|
||||
namespace BrewMonster.UI
|
||||
{
|
||||
public class SelecScreenCharacter : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private GameObject characterItemPrefab;
|
||||
[SerializeField] private RectTransform parentItems;
|
||||
|
||||
public void InitScreen(List<RoleInfo> roleInfos, Action<RoleInfo> OnClickItemChar)
|
||||
{
|
||||
foreach(RoleInfo info in roleInfos)
|
||||
[SerializeField] private GameObject characterItemPrefab;
|
||||
[SerializeField] private RectTransform parentItems;
|
||||
|
||||
public void InitScreen(List<RoleInfo> roleInfos, Action<RoleInfo> OnClickItemChar)
|
||||
{
|
||||
CharacterItemUI item = Instantiate(characterItemPrefab, parentItems).GetComponent<CharacterItemUI>();
|
||||
item.InitItem(info, OnClickItemChar);
|
||||
#if UNITY_EDITOR
|
||||
int count = roleInfos.Count;
|
||||
#endif
|
||||
|
||||
foreach (RoleInfo info in roleInfos)
|
||||
{
|
||||
CharacterItemUI item = Instantiate(characterItemPrefab, parentItems).GetComponent<CharacterItemUI>();
|
||||
item.InitItem(info, OnClickItemChar);
|
||||
|
||||
#if UNITY_EDITOR
|
||||
count--;
|
||||
if (count <= 0)
|
||||
{
|
||||
item.OnClickBtn();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user