示例#1
0
        public virtual void LoadActorScript(Socket sender)
        {
            byte[] data = new byte[0x108];

            Buffer.BlockCopy(BitConverter.GetBytes(LuaParameters.ClassCode), 0, data, 0, sizeof(uint));
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(LuaParameters.ActorName), 0, data, 0x04, LuaParameters.ActorName.Length);
            Buffer.BlockCopy(Encoding.ASCII.GetBytes(LuaParameters.ClassName), 0, data, 0x24, LuaParameters.ClassName.Length);

            LuaParameters.WriteParameters(ref data, LuaParameters);

            SendPacket(sender, ServerOpcode.LoadClassScript, data);
        }
        public void StartClientOrderEvent(Socket sender)
        {
            byte[] data        = new byte[0x70];
            uint   characterId = User.Instance.Character.Id;

            Buffer.BlockCopy(BitConverter.GetBytes(characterId), 0, data, 0, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(Id), 0, data, 0x04, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(0x75dc1705), 0, data, 0x08, 4); //the last byte is the event type (05). the other bytes are unknown.
            Buffer.BlockCopy(BitConverter.GetBytes(ClassCode), 0, data, 0x0c, 4);

            LuaParameters parameters = new LuaParameters();

            parameters.Add(Encoding.ASCII.GetBytes("noticeEvent"));
            parameters.Add(true);

            LuaParameters.WriteParameters(ref data, parameters, 0x10);
            SendPacket(sender, ServerOpcode.StartEvent, data, sourceId: characterId);
        }
        private void NoticeEvent(Socket sender, ClientEventRequest eventRequest)
        {
            byte[] data = new byte[0x298];
            Buffer.BlockCopy(BitConverter.GetBytes(User.Instance.Character.Id), 0, data, 0, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(Id), 0, data, 0x04, 4);
            data[0x08] = eventRequest.Code;

            LuaParameters parameters = new LuaParameters();

            parameters.Add(Encoding.ASCII.GetBytes("noticeEvent"));
            parameters.Add(Encoding.ASCII.GetBytes("delegateEvent"));
            parameters.Add((Command)eventRequest.CallerId);
            parameters.Add(unchecked ((Command)0xa0f1adb1));
            parameters.Add("processTtrNomal001withHQ");
            parameters.Add(null);
            parameters.Add(null);
            parameters.Add(null);

            LuaParameters.WriteParameters(ref data, parameters, 0x09);
            SendPacket(sender, ServerOpcode.StartEventRequest, data);
        }
示例#4
0
        public virtual void RequestResponsePacket(Socket sender, Command command, List <object> additionalparameters)
        {
            byte[] data          = new byte[0x90];
            uint   parsedCommand = (0xA0F00000 | (ushort)command);

            Buffer.BlockCopy(BitConverter.GetBytes(User.Instance.Character.Id), 0, data, 0, 4);
            Buffer.BlockCopy(BitConverter.GetBytes(parsedCommand), 0, data, 0x04, 4);

            LuaParameters parameters = new LuaParameters();

            parameters.Add(Encoding.ASCII.GetBytes("commandContent"));
            parameters.Add(Encoding.ASCII.GetBytes("delegateCommand"));
            parameters.Add((Command)parsedCommand);

            foreach (object i in additionalparameters)
            {
                parameters.Add(i);
            }

            LuaParameters.WriteParameters(ref data, parameters, 0x08);
            Buffer.BlockCopy(BitConverter.GetBytes(0x0000004053b47a00), 0, data, 0x88, 8);

            SendPacket(sender, ServerOpcode.StartEventRequest, data);
        }