Example #1
0
 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;
            }
        }