// 이동 void OnMove(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_move movePayload; payload.Read(out movePayload); // 네트웥크 아이디 찾아서 //var go;//NetworkManager.Instance. movePayload.id; if (C2Client.Instance.serverID == movePayload.id) { C2Client.Instance.Player.MoveCharacterUsingServerPosition(-movePayload.y, movePayload.x); LocalDBManager.Instance.UpdateSchema(C2Client.Instance.Nickname, -1, -1, -1, movePayload.x, movePayload.y); } else { NetMonoBehaviour go = NetworkManager.Instance.TryGet(movePayload.id); if (go != null) { go.MoveToPositionUsingServerPostion(-movePayload.y, movePayload.x); //UnityEngine.Debug.Log($"id : {movePayload.id}, x : {movePayload.x}, y :{movePayload.y}"); } else { UnityEngine.Debug.Log($"id : {movePayload.id}, x : {movePayload.x}, y :{movePayload.y}"); } } }
// 로그인 확인. void OnLoginOk(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_login_ok loginOkPayload; payload.Read(out loginOkPayload); // user id C2Session.Instance.uniqueSessionId = (Int64)loginOkPayload.id; C2Client.Instance.serverID = loginOkPayload.id; LoadedPlayerData playerData = new LoadedPlayerData(); playerData.y = loginOkPayload.y; playerData.x = loginOkPayload.x; playerData.level = loginOkPayload.level; playerData.hp = loginOkPayload.hp; playerData.exp = loginOkPayload.exp; C2Client.Instance.PlayerData = playerData; //C2Client.Instance.PlayerData.y = .MoveCharacterUsingServerPosition(loginOkPayload.y, loginOkPayload.x); //C2Client.Instance.Player.Level = loginOkPayload.level; //C2Client.Instance.Player.SetHP(loginOkPayload.hp, loginOkPayload.level * 2); //C2Client.Instance.Player.Exp = loginOkPayload.exp; UIManager.Instance.CurrentState = UIState.Play; SceneManager.LoadSceneAsync("1_Game_mmo", LoadSceneMode.Single); // 핸들러 변경후 C2Session.Instance.SetHandler(new InGamePacketHandler()); //C2Session.Instance.gameObject.SetActive(false); }
void OnLoginFail(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_login_fail loginFailPayload; payload.Read(out loginFailPayload); //C2Session.Instance.uniqueSessionId = (Int64)loginOkPayload.id; }
// 로그인 씬에서 나감. 사실상 연결 끊기. void OnLeave(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_leave leavePayload; payload.Read(out leavePayload); NetworkManager.Instance.Remove(leavePayload.id); // 제거 함. }
private void Chat(PacketHeader header, C2PayloadVector payload, C2Session session) { throw new NotImplementedException(); sc_packet_chat chatPayload; payload.Read(out chatPayload); }
public void Start() { DontDestroyOnLoad(this); if (session == null) { session = C2Session.Instance; session.Client = this; } }
public unsafe void SendAttackPacket() { C2Session c2Session = C2Session.Instance; cs_packet_attack attackPayload; attackPayload.header.type = PacketType.C2S_ATTACK; attackPayload.header.size = (byte)Marshal.SizeOf(typeof(cs_packet_attack)); c2Session.SendPacket(attackPayload); }
public void Start() { if (session == null) { session = C2Session.Instance; session.Client = this; } nickname = "default"; }
public unsafe void SendLogoutPacket() { C2Session c2Session = C2Session.Instance; cs_packet_logout logoutPayload; logoutPayload.header.type = PacketType.C2S_LOGOUT; logoutPayload.header.size = (byte)Marshal.SizeOf(typeof(cs_packet_logout)); c2Session.SendPacket(logoutPayload); }
unsafe void OnChat(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_chat chatPayload; payload.Read(out chatPayload); short *chatPtr = chatPayload.chat; var chatString = new String((char *)chatPtr); ChatManager.Instance.AddChat(chatString, MessageType.User); }
private void OnStatChange(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_stat_change statChangePayload; payload.Read(out statChangePayload); // 스탯 업데이트 해줌. MainPlayer.Instance.SetStat(statChangePayload.level, statChangePayload.hp, statChangePayload.exp); LocalDBManager.Instance.UpdateSchema(C2Client.Instance.Nickname, statChangePayload.level, statChangePayload.exp, statChangePayload.hp); UnityEngine.Debug.Log("stat change!"); }
// 로그인 확인. void OnLoginOk(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_login_ok loginOkPayload; payload.Read(out loginOkPayload); C2Session.Instance.uniqueSessionId = (Int64)loginOkPayload.id; C2Client.Instance.Player.MoveCharacterUsingServerPostion(loginOkPayload.y, loginOkPayload.x); C2Client.Instance.Player.Level = loginOkPayload.level; C2Client.Instance.Player.SetHP(loginOkPayload.hp, loginOkPayload.level * 2); C2Client.Instance.Player.Exp = loginOkPayload.exp; }
public unsafe void SendMovePacket(sbyte direction) { C2Session c2Session = C2Session.Instance; cs_packet_move movePayload; movePayload.header.type = PacketType.C2S_MOVE; movePayload.header.size = (byte)Marshal.SizeOf(typeof(cs_packet_move)); movePayload.direction = direction; movePayload.move_time = 0; c2Session.SendPacket(movePayload); }
public unsafe void SendChatPacket(string msg) { C2Session c2Session = C2Session.Instance; cs_packet_chat chatPayload; chatPayload.header.type = PacketType.C2S_CHAT; chatPayload.header.size = (byte)Marshal.SizeOf(typeof(cs_packet_chat)); byte[] chatBytes = System.Text.Encoding.Unicode.GetBytes(msg); int chatLength = chatBytes.Length > (int)Protocol.MAX_CHAT_LEN ? (int)Protocol.MAX_CHAT_LEN : chatBytes.Length; Marshal.Copy(chatBytes, 0, (IntPtr)chatPayload.chat, chatLength); chatPayload.id = C2Client.Instance.serverID; c2Session.SendPacket(chatPayload); }
unsafe void OnEnter(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_enter enterPayload; payload.Read(out enterPayload); //UnityEngine.Debug.Log($"{enterPayload.id} enter payload : o type: {enterPayload.o_type} , y: {enterPayload.y}, x: {enterPayload.x}"); if (C2Client.Instance.serverID == enterPayload.id) { MainPlayer.Instance.ResetWhenResapwn(); C2Client.Instance.Player.MoveCharacterUsingServerPosition(-enterPayload.y, enterPayload.x); LocalDBManager.Instance.UpdateSchema(C2Client.Instance.Nickname, -1, -1, -1, enterPayload.x, enterPayload.y); } else { string nickname = new string((char *)enterPayload.name); NetworkManager.Instance.Add(enterPayload.id, enterPayload.o_type, nickname, enterPayload.y, enterPayload.x); // 제거 함. } }
/// <summary> // /// </summary> public unsafe void SendLoginPacket(int level, int exp, int hp, int x, int y) { C2Session c2Session = C2Session.Instance; cs_packet_login loginPacket; loginPacket.header.type = PacketType.C2S_LOGIN; loginPacket.header.size = (byte)Marshal.SizeOf(typeof(cs_packet_login)); byte[] unicodeByte = System.Text.Encoding.Unicode.GetBytes(C2Client.Instance.Nickname); //byte[] unicodeByte = System.Text.Encoding.Unicode.GetBytes(C2Client.Instance.Nickname); int nicknameLength = unicodeByte.Length > (int)Protocol.MAX_ID_LEN ? (int)Protocol.MAX_ID_LEN : unicodeByte.Length; Marshal.Copy(unicodeByte, 0, (IntPtr)loginPacket.name, nicknameLength); loginPacket.exp = exp; loginPacket.level = level; loginPacket.hp = hp; loginPacket.x = x; loginPacket.y = y; c2Session.SendPacket(loginPacket); }
void Enter(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_enter enterPayload; payload.Read(out enterPayload); }
void DoDefualutHandler(PacketHeader header, C2PayloadVector payload, C2Session session) { UnityEngine.Debug.Log($"DoDefualutHandler : {header}"); throw new NotImplementedException(); }
void DoDefualutHandler(PacketHeader header, C2PayloadVector payload, C2Session session) { throw new NotImplementedException(); }
// 로그인 씬에서 나감. 사실상 연결 끊기. void Leave(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_leave leavePayload; payload.Read(out leavePayload); }
public C2Client(MainPlayer playerMovement) { session = C2Session.Instance; session.Client = this; player = playerMovement; }
// 회원가입 void ResponseRegistration(PacketHeader header, C2PayloadVector payload, C2Session session) { }
// 로그인 씬에서 나감. void ResponseExitLogin(PacketHeader header, C2PayloadVector payload, C2Session session) { }