コード例 #1
0
        public uint GetUserID(uint localsid)
        {
            Octets        os  = new Octets().Write(localsid);
            RecvEventArgs arg = new RecvEventArgs(os);

            OnRequestRoleID(this, arg);
            Octets res = arg.Res;

            return(res.ReadUInt());
        }
コード例 #2
0
        private void OnGsSendUser(object sender, RecvEventArgs e)
        {
            Octets    os      = e.Data;
            uint      role_id = os.ReadUInt();
            Octets    data    = os.ReadOctets();
            UserProxy user;

            lock (Roles)
                if (!Roles.TryGetValue(role_id, out user))
                {
                    return;
                }
            user.SendToClient(data);
        }
コード例 #3
0
        private void OnRequestRoleID(object sender, RecvEventArgs e)
        {
            Octets os       = e.Data;
            uint   localsid = os.ReadUInt();

            lock (Roles)
                foreach (KeyValuePair <uint, UserProxy> kvpuser in Roles)
                {
                    if (kvpuser.Value.Localsid == localsid)
                    {
                        e.Res = new Octets().Write(kvpuser.Key);
                        return;
                    }
                }
            e.Res = new Octets().Write(UInt32.MaxValue);
        }
コード例 #4
0
        private void OnUserLogout(object sender, RecvEventArgs e)
        {
            Octets    os      = e.Data;
            uint      role_id = os.ReadUInt();
            UserProxy user;

            lock (Roles)
                if (!Roles.TryGetValue(role_id, out user))
                {
                    return;
                }
                else
                {
                    Roles.Remove(role_id);
                }
            user.SetRoleID(0);
        }
コード例 #5
0
        private void OnUserSetLink(object sender, RecvEventArgs e)
        {
            Octets    os       = e.Data;
            uint      user_id  = os.ReadUInt();
            uint      localsid = os.ReadUInt();
            LinkProxy link     = (LinkProxy)sender;
            UserProxy user;

            lock (Users)
                if (!Users.TryGetValue(user_id, out user))
                {
                    return;
                }
            if (user.Link == null)
            {
                Console.WriteLine("User {0} logged in from Link {1}, IP {2}", user.ID, link.ID, user);
                user.SetLink(link);
            }
            link.AddUser(user);
        }