예제 #1
0
        public void Invoke(Session _Session, IncomingPacket _Packet)
        {
            string _ctmp = _Packet.GetString();

            string msj_f = HttpUtility.HtmlEncode(_ctmp.Replace("\\\"", "\""));

            StringBuilder sb = new StringBuilder();
            StringWriter sw = new StringWriter(sb);
            using (JsonWriter writer = new JsonTextWriter(sw))
            {
                writer.Formatting = Formatting.None;
                writer.WriteStartArray();
                writer.WriteValue((int)ServerOpcode.chat);
                writer.WriteValue(msj_f);
                writer.WriteValue(_Session.User.Name);

                if (_Session.User.rank >= 24)
                    writer.WriteValue(ChatType.CHAT_TYPE_GM); //type
                else
                    writer.WriteValue(0); //type

                if (_Session.User.guild > 0)
                    writer.WriteValue(_Session.User.guild_name);

                writer.WriteEndArray();
            }

            _Session.Broadcast(sb.ToString());
        }
예제 #2
0
        public void ProcessBytes(Session _Session, ref JArray _Data)
        {
            try
            {
                IncomingPacket IncomingPacket = new IncomingPacket(_Data);

                if (IncomingEvents.ContainsKey(IncomingPacket.opcode))
                {
                    IIncomingPacketEvent Event = IncomingEvents[IncomingPacket.opcode];

                    if (_Session != null)
                    {
                        Event.Invoke(_Session, IncomingPacket);
                    }
                }
                else
                {
                    LogConsole.Show(LogType.ERROR, "[Opcode]: {0}", (ClientOpcode)IncomingPacket.opcode);
                }
            }
            catch (Exception e)
            {
                LogConsole.Show(LogType.DEBUG, "[ProcessByte]: {0}", e.Message);
            }
        }
예제 #3
0
        protected override void OnOpen()
        {
            string _hi_p = "[9,41,\"Beginners\",0,0]";
            Send(_hi_p);

            _session = new Session(this);
            Program.SessionsManager.AddSession(_session);
        }
예제 #4
0
        public void AddSession(Session _Session)
        {
            int ID = GetFreeID();
            IDs.Add(ID);

            _Session.ID = ID;

            Sessions.Add(_Session.ID, _Session);
        }
예제 #5
0
 public void Invoke(Session _Session, IncomingPacket _Packet)
 {
     string _item = _Packet.GetString();
     string _tipop = _Packet.GetString();
     int _periodo = _Packet.GetInt();
     int _pre = _Packet.GetInt();
     _Session.Send(_Session.User.BuyItems(_item, _tipop, _periodo, _pre));
     _Session.Send(_Session.User.GetAvatars());
 }
예제 #6
0
        public void Invoke(Session _Session, IncomingPacket _Packet)
        {
            int fid = _Packet.GetInt();

            if (fid == 0)
            {
                _Session.Send(_Session.User.UpdateBoddy());
            }
            else if (fid == 1)
            {
                _Session.Send(_Session.User.Guildinfo());
            }
        }
예제 #7
0
        public void Invoke(Session _Session, IncomingPacket _Packet)
        {
            int version = _Packet.GetInt();
            int user_id = _Packet.GetInt();
            string user_key = _Packet.GetString();

            _Session.Send("[" + (int)ServerOpcode.login_profile + "]");
            _Session.User.LoadUser(version, user_id, user_key);
            _Session.Send("[" + (int)ServerOpcode.login_avatars + "]");
            _Session.User.LoadinfoAvatars();
            _Session.Send(_Session.User.PlayerInfo());

            _Session.Send(_Session.User.UpdateBoddy());

            LogConsole.Show(LogType.INFO, "Version: {0} User_id: {1} User_key: {2}", version, user_id, user_key);
        }
예제 #8
0
 public void CloseSession(Session _Session)
 {
     Sessions.Remove(_Session.ID);
     IDs.Remove(_Session.ID);
     _Session.Clear();
 }
예제 #9
0
 public void Invoke(Session _Session, IncomingPacket _Packet)
 {
     _Session.Send(_Session.User.Guildinfo());
 }
예제 #10
0
 public void Invoke(Session _Session, IncomingPacket _Packet)
 {
     _Session.Send(_Session.User.ListFriends());
 }
예제 #11
0
 public void Invoke(Session _Session, IncomingPacket _Packet)
 {
     _Session.User.UpdateEquip(_Packet.ToString());
     _Session.User.LoadinfoAvatars();
     _Session.Send(_Session.User.PlayerInfo());
 }
예제 #12
0
 public void Invoke(Session _Session, IncomingPacket _Packet)
 {
     _Session.Send(_Session.User.GetAvatars());
 }
예제 #13
0
        public void Invoke(Session _Session, IncomingPacket _Packet)
        {
            string nname = _Packet.GetString();

            _Session.Send(_Session.User.ChangeName(nname));
        }