// 클라/서버에 각각 작성한다. 수신된 패킷 종류에 따라 어떻게 처리할지 작성한다. // 해당 함수는 매니저에서 호출된다. public static void C_PlayerInfoReqHandler(PacketSession packetSession, IPacket packet) { C_PlayerInfoReq p = packet as C_PlayerInfoReq; Console.WriteLine($"Player Info Required : {p.playerId} ({p.playerName})"); foreach (C_PlayerInfoReq.Skill skill in p.skills) { Console.WriteLine($"Skill [{skill.id}] : {skill.level} 레벨 (지속시간: {skill.duration}초)"); } }
public static void C_PlayerInfoReq(PacketSession session, IPacket packet) { C_PlayerInfoReq p = packet as C_PlayerInfoReq; Console.WriteLine($"PlayerInfoReq : {p.playerId}, {p.name}"); foreach (C_PlayerInfoReq.Skill skill in p.skills) { Console.WriteLine($"Skill({skill.id}) ({skill.level}) ({skill.duration})"); } }
public override void OnConnected(EndPoint endPoint) { Console.WriteLine($"OnConnected : {endPoint}"); C_PlayerInfoReq packet = new C_PlayerInfoReq() { playerId = 1001, name = "ABCD" }; var skill = new C_PlayerInfoReq.Skill() { id = 101, level = 1, duration = 3.0f }; skill.attributes.Add(new C_PlayerInfoReq.Skill.Attribute() { att = 77 }); packet.skills.Add(skill); packet.skills.Add(new C_PlayerInfoReq.Skill() { id = 201, level = 2, duration = 4.0f }); packet.skills.Add(new C_PlayerInfoReq.Skill() { id = 301, level = 3, duration = 5.0f }); packet.skills.Add(new C_PlayerInfoReq.Skill() { id = 401, level = 4, duration = 6.0f }); //보낸다 //for (int i = 0; i < 5; i++) { ArraySegment <byte> s = packet.Write(); if (s != null) { Send(s); } } }