Ejemplo n.º 1
0
        private static BuddyList LoadFromDb(Character chr, byte capacity)
        {
            var newlist = new BuddyList(capacity, chr);

            using (var data = CenterServer.Instance.CharacterDatabase.RunQuery(
                       "SELECT * FROM buddylist WHERE charid = @charid",
                       "@charid", chr.ID
                       ) as MySqlDataReader)
            {
                while (data.Read())
                {
                    int    buddycharid = data.GetInt32("buddy_charid");
                    string buddyname   = data.GetString("buddy_charname");
                    newlist.Add(new BuddyData(buddycharid, buddyname), false);
                }
            }

            using (var invitedata = CenterServer.Instance.CharacterDatabase.RunQuery("SELECT * FROM buddylist_pending WHERE charid = @charid", "@charid", chr.ID) as MySqlDataReader)
            {
                while (invitedata.Read())
                {
                    int    inviterid   = invitedata.GetInt32("inviter_charid");
                    string invitername = invitedata.GetString("inviter_charname");
                    newlist.BuddyRequests.Enqueue(new BuddyData(inviterid, invitername));
                }
            }


            return(newlist);
        }
Ejemplo n.º 2
0
 public Character(Packet pr)
 {
     ChannelID   = pr.ReadByte();
     LastChannel = pr.ReadByte();
     FriendsList = new BuddyList(pr);
     base.DecodeForTransfer(pr);
 }
Ejemplo n.º 3
0
        public Character AddCharacter(string name, int id, byte channel, short job, byte level, byte gm)
        {
            var chr = FindCharacter(id, false);

            if (chr == null)
            {
                chr = new Character()
                {
                    Name     = name,
                    ID       = id,
                    isCCing  = false,
                    GMLevel  = gm,
                    IsOnline = true,
                };

                CharacterStore.Add(chr);
            }
            else if (chr.isCCing)
            {
                chr.isCCing = false;
            }

            chr.ChannelID = channel;
            chr.IsOnline  = true;
            // Resetting party ID to update it on the server
            chr.PartyID = chr.PartyID;

            if (chr.FriendsList == null)
            {
                chr.FriendsList = BuddyList.LoadBuddyList(id, name);
            }

            chr.GMLevel = gm;
            Program.MainForm.LogDebug(chr.Name + " Staff? " + chr.IsGM + " GM Level: " + chr.GMLevel);
            chr.Job   = job;
            chr.Level = level;

            return(chr);
        }