// 로그인 확인. 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 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 OnLeave(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_leave leavePayload; payload.Read(out leavePayload); NetworkManager.Instance.Remove(leavePayload.id); // 제거 함. }
void OnLoginFail(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_login_fail loginFailPayload; payload.Read(out loginFailPayload); //C2Session.Instance.uniqueSessionId = (Int64)loginOkPayload.id; }
private void Chat(PacketHeader header, C2PayloadVector payload, C2Session session) { throw new NotImplementedException(); sc_packet_chat chatPayload; payload.Read(out chatPayload); }
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); }
public void OnInit() { socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sendBuffer = new C2PayloadVector(); recvBuffer = new C2PayloadVector(); handler = new InitialiPacketHandler(); socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.DontLinger, true); socket.Blocking = true; socket.NoDelay = true; this.state = SessionState.Initialized; }
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; }
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); // 제거 함. } }
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 ResponseExitLogin(PacketHeader header, C2PayloadVector payload, C2Session session) { }
// 회원가입 void ResponseRegistration(PacketHeader header, C2PayloadVector payload, C2Session session) { }
// 로그인 씬에서 나감. 사실상 연결 끊기. void Leave(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_leave leavePayload; payload.Read(out leavePayload); }
void Enter(PacketHeader header, C2PayloadVector payload, C2Session session) { sc_packet_enter enterPayload; payload.Read(out enterPayload); }