//P to P : 데이터 받기 void Recv_PTP_Data(ByteData _Receive_data) { if (Game_Script == null) { return; } Relay_Protocol = 0; Relay_User_ID = 0; _Receive_data.OutPutVariable(ref Relay_Protocol); switch ((RELAY_PROTOCOL)Relay_Protocol) { case RELAY_PROTOCOL.MOVE: //유닛 이동 데이터 받기 Game_Script.Recv_Char_Move_Data(_Receive_data); break; case RELAY_PROTOCOL.SHOT: //유닛 총쏘는 데이터 받기 _Receive_data.OutPutVariable(ref Relay_User_ID); if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false) { break; } Game_Script.Char_Script[Relay_User_ID].Network_Char_Shot_Pos(_Receive_data); break; case RELAY_PROTOCOL.SHOTGUN_SHOT: //유닛 샷건 총쏘는 데이터 받기 _Receive_data.OutPutVariable(ref Relay_User_ID); if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false) { break; } Game_Script.Char_Script[Relay_User_ID].Network_Char_ShotGun_Pos(_Receive_data); break; case RELAY_PROTOCOL.GRENADE_MOVE: //수류탄 움직임 데이터 Game_Script.Recv_Grenade_Move_Data(_Receive_data); break; case RELAY_PROTOCOL.GRENADE_EXPLOSION: //수류탄 터지는 데이터 Game_Script.Recv_Explosion_Data(_Receive_data); break; case RELAY_PROTOCOL.SKILL: //유닛 스킬 데이터 받기 Game_Script.Recv_Char_Skill_Data(_Receive_data); break; case RELAY_PROTOCOL.REVENGE_OK: //복수 성공 데이터 받기 _Receive_data.OutPutVariable(ref Relay_User_ID); if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false) { break; } Game_Script.Char_Script[Relay_User_ID].Revenge_OK_Recv_Data(); break; case RELAY_PROTOCOL.BARRIER_CHECK: //방어막 데이터 받기 _Receive_data.OutPutVariable(ref Relay_User_ID); if (Game_Script.Char_Script.ContainsKey(Relay_User_ID) == false) { break; } Game_Script.Char_Script[Relay_User_ID].Barrier_Recv_Data(_Receive_data); break; case RELAY_PROTOCOL.VOICE_CHAT: //음성챗팅 데이터 받기 Game_Script.Recv_Voice_Chat_Data(_Receive_data); break; case RELAY_PROTOCOL.OBTAINITEM_MOVE: //게임획득아이템 데이터받기 Game_Script.Recv_OtainGameItem_Move_Data(_Receive_data); break; default: Disconnect(" P to P 선언 되지 않은 프로토콜 : " + Relay_Protocol); break; } }