Merge branch 'feature/movement' into feature/inventory

This commit is contained in:
HungDK
2025-09-11 15:57:02 +07:00
4 changed files with 42 additions and 10 deletions
@@ -13,14 +13,18 @@ namespace PerfectWorld.Scripts.Managers
{
namespace BrewMonster.Managers
{
[Serializable]
public class EC_ManPlayer : IMsgHandler
{
public int HandlerId => (int)MANAGER_INDEX.MAN_PLAYER;
public bool ProcessMessage(ECMSG Msg)
{
Debug.LogWarning("HoangDev : EC_ManPlayerProcessMessage");
if (Msg.iSubID == 0)
{
//EC_HostPlayer.ProcessMessage(Msg);
Debug.LogWarning("HoangDev : EC_ManPlayerEC_ManPlayerEC_ManPlayer");
if (GameController.Instance == null) return true;
GameController.Instance.GetHostPlayer().ProcessMessage(Msg);
}
else if (Msg.iSubID < 0)
{
@@ -47,6 +51,7 @@ namespace PerfectWorld.Scripts.Managers
public void OnMsgPlayerInfo(ECMSG Msg)
{
Debug.LogWarning("OnMsgPlayerInfo ");
int iHostID = Convert.ToInt32(Msg.dwParam3);
int lenghtByte = Marshal.SizeOf<int>();
byte[] byteArray = new byte[lenghtByte];
@@ -95,6 +100,7 @@ namespace PerfectWorld.Scripts.Managers
{
bool isDoneWorldRender = false;
bool isDoneNPCRender = false;
Debug.Log("HostPlayerInfo1HostPlayerInfo1");
Action actLoadChar = () =>
{
if(!isDoneNPCRender || !isDoneWorldRender)
@@ -104,13 +110,18 @@ namespace PerfectWorld.Scripts.Managers
GameController.Instance.InitCharacter(info);
};
string nameScene = "NPCRender";
UnityGameSession.Instance.LoadScene(nameScene, LoadSceneMode.Single, (value) =>
/* UnityGameSession.Instance.LoadScene(nameScene, LoadSceneMode.Single, (value) =>
{
isDoneNPCRender = value;
actLoadChar?.Invoke();
});
nameScene = "WorldRender";
UnityGameSession.Instance.LoadScene(nameScene, LoadSceneMode.Additive, (value) =>
UnityGameSession.Instance.LoadScene(nameScene, LoadSceneMode.Additive, (value) =>
{
isDoneWorldRender = value;
actLoadChar?.Invoke();
});*/
UnityGameSession.Instance.LoadScene("HoangTest", LoadSceneMode.Single, (value) =>
{
isDoneWorldRender = value;
actLoadChar?.Invoke();
+13 -3
View File
@@ -14,6 +14,7 @@ using UnityEngine.InputSystem;
using UnityEngine.SceneManagement;
using UnityEngine.UI;
using Scene = UnityEngine.SceneManagement.Scene;
using System.Runtime.InteropServices;
public class CECHostPlayer : MonoBehaviour
{
@@ -186,17 +187,26 @@ public class CECHostPlayer : MonoBehaviour
switch ((int)Msg.dwMsg)
{
case int value when value == EC_MsgDef.MSG_HST_CORRECTPOS: OnMsgHstCorrectPos(Msg); break;
case int value when value == EC_MsgDef.MSG_HST_GOTO: OnMsgHstGoto(Msg); break;
}
}
public void OnMsgHstCorrectPos(in ECMSG Msg)
{
Debug.Log("OnMsgHstCorrectPos");
cmd_host_correct_pos pCmd = (cmd_host_correct_pos)Msg.dwParam1;
byte[] buf = (byte[]) Msg.dwParam1; // chỗ bạn lưu pDataBuf
GCHandle handle = GCHandle.Alloc(buf, GCHandleType.Pinned);
cmd_host_correct_pos pCmd = (cmd_host_correct_pos)Marshal.PtrToStructure(
handle.AddrOfPinnedObject(), typeof(cmd_host_correct_pos));
handle.Free();
Debug.LogWarning("pCmd.pos " + pCmd.pos);
SetPos(pCmd.pos);
}
public void OnMsgHstGoto(in ECMSG Msg)
{
Debug.Log("OnMsgHstGoto");
cmd_notify_hostpos pCmd = (cmd_notify_hostpos)Msg.dwParam1;
}
private void SetPos(Vector3 pos)
{
transform.position = pos;
+6
View File
@@ -15,6 +15,12 @@ struct cmd_host_correct_pos
public Vector3 pos;
public ushort stamp;
};
struct cmd_notify_hostpos
{
public Vector3 vPos;
public int tag;
public int line;
};
enum MoveMode
{
GP_MOVE_WALK = 0,
+9 -4
View File
@@ -26,10 +26,6 @@ public class GameController : MonoBehaviour
}
private void Awake()
{
if(instance == null)
{
instance = this;
}
}
private void Start()
@@ -43,6 +39,11 @@ public class GameController : MonoBehaviour
}
public CECHostPlayer GetHostPlayer()
{
if(hostPlayer == null)
{
hostPlayer = FindAnyObjectByType<CECHostPlayer>();
}
Debug.Log("hostPlayer " + hostPlayer);
return hostPlayer;
}
public void InitCharacter(cmd_self_info_1 info)
@@ -62,4 +63,8 @@ public class GameController : MonoBehaviour
//posGround.y -= 2f;
//ground.transform.position = posGround;
}
private void OnDestroy()
{
instance = null;
}
}