Merge branch 'develop' into feature/else-player
# Conflicts: # Assets/Scenes/a61.unity
This commit is contained in:
@@ -28,13 +28,11 @@ using Scene = UnityEngine.SceneManagement.Scene;
|
||||
|
||||
public class CECHostPlayer : CECPlayer
|
||||
{
|
||||
[SerializeField] private TextMeshProUGUI txtName;
|
||||
[SerializeField] private CharacterController controller;
|
||||
|
||||
[SerializeField] private Joystick joystick;
|
||||
[SerializeField] private Button btnJump;
|
||||
[SerializeField] private Button btnRun;
|
||||
[SerializeField] private Transform parentModel;
|
||||
|
||||
PlayerStateMachine _playerStateMachine;
|
||||
PlayerMoveState _moveState;
|
||||
@@ -110,16 +108,6 @@ public class CECHostPlayer : CECPlayer
|
||||
RoleInfo RoleInfo = UnityGameSession.Instance.GetRoleInfo();
|
||||
}
|
||||
|
||||
public void SetModelHostPlayer()
|
||||
{
|
||||
_pPlayerModel = NPCManager.Instance.GetModelPlayer();
|
||||
Scene scene = SceneManager.GetSceneByName("a61");
|
||||
SceneManager.MoveGameObjectToScene(_pPlayerModel, scene);
|
||||
_pPlayerModel.transform.SetParent(parentModel);
|
||||
_pPlayerModel.transform.localPosition = Vector3.zero;
|
||||
_pPlayerModel.SetActive(true);
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
mainCam = Camera.main;
|
||||
@@ -588,25 +576,23 @@ public class CECHostPlayer : CECPlayer
|
||||
// Add item to inventory
|
||||
EC_Inventory.SetItem(byPackage, bySlot, newItem);
|
||||
|
||||
//Debug.Log($"[Inventory] Successfully added item {tid} to package {byPackage}, slot {bySlot} with count {iAmount}");
|
||||
//Debug.Log($"[Inventory] Successfully added item {tid} to package {byPackage}, slot {bySlot} with count {iAmount}");
|
||||
|
||||
// Trigger UI refresh if an EC_InventoryUI is present in scene
|
||||
var ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
|
||||
if (ui != null)
|
||||
{
|
||||
ui.RefreshAll();
|
||||
}
|
||||
}
|
||||
else
|
||||
// Trigger UI refresh if an EC_InventoryUI is present in scene
|
||||
var ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
|
||||
if (ui != null)
|
||||
{
|
||||
Debug.LogWarning("[Inventory] PICKUP_ITEM: Invalid data length");
|
||||
ui.RefreshAll();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogWarning("[Inventory] PICKUP_ITEM: Invalid data length");
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void OnMsgHstItemOperation(ECMSG Msg)
|
||||
{
|
||||
var data = Msg.dwParam1 as byte[];
|
||||
@@ -879,24 +865,31 @@ public class CECHostPlayer : CECPlayer
|
||||
public void InitCharacter(cmd_self_info_1 role)
|
||||
{
|
||||
SetUpPlayer();
|
||||
string roleName = Encoding.Unicode.GetString(UnityGameSession.Instance.GetRoleInfo().name.ByteArray);
|
||||
controller = GetComponent<CharacterController>();
|
||||
if (!controller)
|
||||
{
|
||||
BMLogger.LogError("HostPlayer InitCharacter no CharacterController");
|
||||
}
|
||||
|
||||
//if (role.name != null && role.name.ByteArray != null)
|
||||
//{
|
||||
// roleName = Encoding.UTF8.GetString(role.name.ByteArray, 0, role.name.Length);
|
||||
//}
|
||||
SetPlayerInfor(new INFO(role.cid, role.crc_e, role.crc_c));
|
||||
SetModelHostPlayer();
|
||||
|
||||
Vector3 pos = new Vector3(role.pos.x, role.pos.y, role.pos.z);
|
||||
string roleName = Encoding.Unicode.GetString(UnityGameSession.Instance.GetRoleInfo().name.ByteArray);
|
||||
if (txtName != null) txtName.text = roleName;
|
||||
EventBus.Publish(new InfoHostPlayer(roleName));
|
||||
transform.position = pos;
|
||||
SetModelHostPlayer();
|
||||
m_dwResFlags = (uint)PlayerResourcesReadyFlag.RESFG_ALL;
|
||||
joystick = FindAnyObjectByType<Joystick>();
|
||||
EventBus.Subscribe<JoystickRealeaseEvent>(JoystickRelease);
|
||||
EventBus.Subscribe<JoystickPressEvent>(JoystickStartDrag);
|
||||
if (TryGetComponent<PlayerVisual>(out var visual))
|
||||
{
|
||||
visual.InitHostPlayerEventDoneHandler();
|
||||
visual.InitPlayerEventDoneHandler();
|
||||
}
|
||||
|
||||
m_aabb.Center = GPDataTypeHelper.g_vOrigin;
|
||||
@@ -937,7 +930,7 @@ public class CECHostPlayer : CECPlayer
|
||||
if (txtName != null) txtName.text = roleName;
|
||||
transform.position = pos;
|
||||
SetModelHostPlayer();
|
||||
Debug.LogError("Pos Character = " + pos);
|
||||
//Debug.LogError("Pos Character = " + pos);
|
||||
}
|
||||
|
||||
#region Task
|
||||
@@ -1787,12 +1780,14 @@ public struct NPCINFO
|
||||
public string Name; // Movement properties
|
||||
public int CurrentHealth;
|
||||
public int MaxHealth; // Attacking properties
|
||||
public int IDNPC; // Attacking properties
|
||||
|
||||
public NPCINFO(string name, int currentHealth, int maxHealth)
|
||||
public NPCINFO(string name, int currentHealth, int maxHealth,int idnpc)
|
||||
{
|
||||
Name = name;
|
||||
CurrentHealth = currentHealth;
|
||||
MaxHealth = maxHealth;
|
||||
IDNPC = idnpc;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -12,25 +12,34 @@ public class CECUIManager : MonoSingleton<CECUIManager>
|
||||
|
||||
[SerializeField] private HUDNPC npsUI;
|
||||
|
||||
[SerializeField] private int currentTargetNPCID;
|
||||
|
||||
protected override void Awake()
|
||||
{
|
||||
base.Awake();
|
||||
EventBus.Subscribe<NPCINFO>(ShowUINPC);
|
||||
//EventBus.Subscribe<NPCDiedEvent>(TryHideUINPC);
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
EventBus.Unsubscribe<NPCINFO>(ShowUINPC);
|
||||
EventBus.Unsubscribe<NPCDiedEvent>(TryHideUINPC);
|
||||
|
||||
}
|
||||
|
||||
private void ShowUINPC(NPCINFO obj)
|
||||
{
|
||||
BMLogger.LogError("HoangDEv: ShowUINPC");
|
||||
npsUI.gameObject.SetActive(true);
|
||||
npsUI.SetText($"{obj.CurrentHealth}/{obj.MaxHealth}",obj.Name,"");
|
||||
npsUI.SetHealthImage((float)obj.CurrentHealth / (float)obj.MaxHealth);
|
||||
currentTargetNPCID = obj.IDNPC;
|
||||
}
|
||||
|
||||
private void HideUINPC(NPCINFO obj)
|
||||
private void TryHideUINPC(NPCDiedEvent obj)
|
||||
{
|
||||
if (obj.NPCID != currentTargetNPCID) return;
|
||||
npsUI.gameObject.SetActive(false);
|
||||
}
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ public class GameController : MonoBehaviour
|
||||
{
|
||||
private static GameController instance;
|
||||
|
||||
[SerializeField] private CECHostPlayer characterPrefab;
|
||||
[SerializeField] private GameObject characterPrefab;
|
||||
[SerializeField] private CECMonster monsterPrefab;
|
||||
[SerializeField] private CECNPCServer npcServerPrefab;
|
||||
[SerializeField] private CinemachineCamera cinemachineCamera;
|
||||
@@ -62,7 +62,7 @@ public class GameController : MonoBehaviour
|
||||
return;
|
||||
}
|
||||
CECPlayer.InitStaticRes();
|
||||
hostPlayer = Instantiate(characterPrefab, transform);
|
||||
hostPlayer = Instantiate(characterPrefab, transform).AddComponent<CECHostPlayer>();
|
||||
hostPlayer.InitCharacter(info);
|
||||
cinemachineCamera.Follow = hostPlayer.transform;
|
||||
cinemachineCamera.ForceCameraPosition(hostPlayer.transform.position, Quaternion.identity);
|
||||
@@ -99,8 +99,7 @@ public class GameController : MonoBehaviour
|
||||
Debug.LogError("null prefab");
|
||||
return null;
|
||||
}
|
||||
CECHostPlayer character = Instantiate(characterPrefab, transform);
|
||||
character.InitCharacter(info);
|
||||
GameObject character = Instantiate(characterPrefab, transform);
|
||||
return character.gameObject;
|
||||
}
|
||||
private void OnDestroy()
|
||||
|
||||
@@ -15,6 +15,7 @@ public class PlayerVisual : MonoBehaviour
|
||||
[SerializeField] private AnimancerState _currentState;
|
||||
[SerializeField] private Queue<string> _animationQueue = new Queue<string>();
|
||||
[SerializeField] private bool isHit;
|
||||
[SerializeField] private int id;
|
||||
|
||||
QueueActionEvent queueActionEvent;
|
||||
|
||||
@@ -26,12 +27,12 @@ public class PlayerVisual : MonoBehaviour
|
||||
BMLogger.LogError("HoangDev: PlayActionEventHandler Failed " + @event.AnimationName);
|
||||
}
|
||||
}
|
||||
public void InitHostPlayerEventDoneHandler()
|
||||
public void InitPlayerEventDoneHandler()
|
||||
{
|
||||
namedAnimancer = GetComponentInChildren<NamedAnimancerComponent>();
|
||||
if (namedAnimancer == null)
|
||||
{
|
||||
BrewMonster.BMLogger.LogError("animancer == null");
|
||||
BrewMonster.BMLogger.LogError("InitPlayerEventDoneHandler animancer == null");
|
||||
return;
|
||||
}
|
||||
var player = GetComponentInParent<CECPlayer>();
|
||||
@@ -40,7 +41,10 @@ public class PlayerVisual : MonoBehaviour
|
||||
BrewMonster.BMLogger.LogError("player == null");
|
||||
return;
|
||||
}
|
||||
BrewMonster.BMLogger.LogError("HoangDev: player:"+ player);
|
||||
|
||||
_playerInfo = player.GetPlayInfo();
|
||||
id = _playerInfo.cid;
|
||||
EventBus.SubscribeChannel<PlayActionEvent>(_playerInfo.cid, PlayActionEventHandler);
|
||||
EventBus.SubscribeChannelClass<QueueActionEvent>(_playerInfo.cid, QueueActionEventHandler);
|
||||
EventBus.SubscribeChannel<CleearComActFlagAllRankNodesEvent>(_playerInfo.cid, CleearComActFlagAllRankNodesEventHandler);
|
||||
|
||||
Reference in New Issue
Block a user