public virtual void Read(BgoProtocolReader pr) { ManeuverType = (ManeuverType)pr.ReadByte(); }
public override void ParseMessage(int index, BgoProtocolReader br) { ushort msgType = br.ReadUInt16(); switch ((Request)msgType) { case Request.RecruitLevel: SendRecruitLevel(index); break; case Request.PartyInvitePlayer: uint partyInvitedPlayerId = br.ReadUInt32(); if (Server.GetClientByPlayerId(partyInvitedPlayerId.ToString()).Character.partyId != 0) { SendPartyIgnore(Server.GetClientByPlayerId(partyInvitedPlayerId.ToString()).index, Server.GetClientByIndex(index).Character.name, 1); break; } Party p = Server.GetPartyById(Server.GetClientByIndex(index).Character.partyId); if (p == null) { SendPartyInvite(Server.GetClientByPlayerId(partyInvitedPlayerId.ToString()).index, (uint)index, Server.GetClientByIndex(index).playerId, Server.GetClientByIndex(index).Character.name); break; } p.InviteMember(partyInvitedPlayerId, index); break; case Request.PartyAccept: uint partyAcceptPartyId = br.ReadUInt32(); uint partyAcceptInviterId = br.ReadUInt32(); bool partyAcceptBool = br.ReadBoolean(); if (!partyAcceptBool) { SendPartyIgnore(Server.GetClientByPlayerId(partyAcceptInviterId.ToString()).index, Server.GetClientByIndex(index).Character.name, 2); break; } Party p2 = Server.GetPartyById(partyAcceptPartyId); if (p2 == null) { Server.Parties.Add(partyAcceptPartyId, new Party(Server.GetClientByPlayerId(partyAcceptInviterId.ToString()))); Party p3 = Server.GetPartyById(partyAcceptPartyId); p3.AddMember(Server.GetClientByIndex(index)); break; } p2.AddMember(Server.GetClientByIndex(index)); break; case Request.PartyLeave: Party p4 = Server.GetPartyById(Server.GetClientByIndex(index).Character.partyId); if (p4 != null) { p4.RemoveMember(Server.GetClientByIndex(index)); } break; default: Log.Add(LogSeverity.ERROR, string.Format("Unknown msgType \"{0}\" on {1}Protocol.", (Request)msgType, protocolID)); break; } }