protected override void ParseMessage(IncomingMessage inMessage)
 {
     active = inMessage.ReadBool();
     sound = inMessage.ReadString();
 }
Пример #2
0
        public TestClass()
        {
            SetupDebug();

            // const int ServerPort = 200;
            const int ServerPort = 5001;
            const int ClientPort = 6666;

            IPHostEntry IPHost = Dns.GetHostEntry("cedeno-dxp.corp.multiverse.net");
            IPAddress[] addr = IPHost.AddressList;
            IPEndPoint sendpt = new IPEndPoint(addr[0], ServerPort);

            RdpClient rdpClient = new RdpClient(ClientPort, 100, 1000, true);
            RdpClient rdpClient2 = new RdpClient(ClientPort + 1, 100, 1000, false);
            //RdpServer rdpServer = new RdpServer(ServerPort, 100, 1000, true);

            RdpConnection rdpClientConn = rdpClient.Connect(sendpt);
            RdpConnection rdpClientConn2 = rdpClient2.Connect(sendpt);
            // RdpConnection rdpServerConn = rdpServer.Accept();

            rdpClientConn.WaitForState(ConnectionState.Open);
            rdpClientConn2.WaitForState(ConnectionState.Open);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            OutgoingMessage outMessage = new OutgoingMessage();
            outMessage.Write("Good morning");
            outMessage.Send(rdpClientConn);

            outMessage.Send(rdpClientConn2);

            // byte[] msg = Encoding.ASCII.GetBytes("Test");

            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);

            IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 0);
            IncomingMessage inMessage;

            inMessage = new IncomingMessage(rdpClientConn);
            Console.WriteLine("Got message: {0}", inMessage.ReadString());

            inMessage = new IncomingMessage(rdpClientConn2);
            Console.WriteLine("Got message2: {0}", inMessage.ReadString());

            //            for (int i = 0; i < 3; ++i) {
            //                byte[] rcvdMessage = rdpServerConn.Receive(ref remoteEP);
            //                Console.WriteLine("Server got message from {1}: '{0}'",
            //                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
            //                rdpServerConn.Send(msg);
            //            }
            //
            //            for (int i = 0; i < 3; ++i) {
            //                byte[] rcvdMessage = rdpClientConn.Receive(ref remoteEP);
            //                Console.WriteLine("Client got message from {1}: '{0}'",
            //                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
            //            }
            //
            //            rdpServerConn.Close();

            Thread.Sleep(100);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            Thread.Sleep(31000);

            //            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            FinishDebug();

            //rdpConn.Open(false, 1, 2, 3, 4, true);
            //rdpConn.Send(new Multiverse.Network.Rdp.RdpPacket(50));
            //this.Hide();
            //this.WindowState = FormWindowState.Minimized;
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     slotName = inMessage.ReadString();
     effectName = inMessage.ReadString();
     orientation = inMessage.ReadQuaternion();
     velocityMultiplier = inMessage.ReadSingle();
     particleSizeMultiplier = inMessage.ReadSingle();
     particleBooleans = inMessage.ReadByte();
     if (GetFlag(Flags.HasColor))
         color = inMessage.ReadColor();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     uiModules = new List<string>();
     int numModules = inMessage.ReadInt32();
     for (int i = 0; i < numModules; ++i)
         uiModules.Add(inMessage.ReadString());
     try {
         // introduced in 1.0
         keyBindingsFile = inMessage.ReadString();
     } catch (Exception) {
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     int stateCount = inMessage.ReadInt32();
     while (stateCount > 0) {
         string key = inMessage.ReadString();
         int val = inMessage.ReadInt32();
         states[key] = val;
         stateCount--;
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     configKind = inMessage.ReadString();
     configString = inMessage.ReadString();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     name = inMessage.ReadString();
     location = inMessage.ReadIntVector();
     orientation = inMessage.ReadQuaternion();
     scale = inMessage.ReadVector();
     objectType = (ObjectNodeType)inMessage.ReadInt32();
     followTerrain = inMessage.ReadBool();
     try {
         direction = inMessage.ReadVector();
         lastInterp = inMessage.ReadTimestamp();
     } catch (System.IO.EndOfStreamException) {
         // ignore this - it means we got an old style response
     }
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            newSoundEntries = new Dictionary<string, PropertyMap>();
            freeSoundEntries = new List<string>();
            clearSounds = false;

            int numEntries = inMessage.ReadInt32();
            for (int i = 0; i < numEntries; ++i) {
                string msgType = inMessage.ReadString();
                switch (msgType) {
                    case "on": {
                            string soundName = inMessage.ReadString();
                            PropertyMap propertyMap = new PropertyMap();
                            propertyMap.ParseMessage(inMessage);
                            newSoundEntries[soundName] = propertyMap;
                        }
                        break;
                    case "off":
                        freeSoundEntries.Add(inMessage.ReadString());
                        break;
                    case "clear":
                        clearSounds = true;
                        break;
                }
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     lightType = (LightNodeType)inMessage.ReadInt32();
     name = inMessage.ReadString();
     diffuse = inMessage.ReadColor();
     specular = inMessage.ReadColor();
     attenuationRange = inMessage.ReadSingle();
     attenuationConstant = inMessage.ReadSingle();
     attenuationLinear = inMessage.ReadSingle();
     attenuationQuadratic = inMessage.ReadSingle();
     switch (lightType) {
         case LightNodeType.Point:
             location = inMessage.ReadIntVector();
             break;
         case LightNodeType.Directional:
             orientation = inMessage.ReadQuaternion();
             break;
         case LightNodeType.Spotlight:
             location = inMessage.ReadIntVector();
             orientation = inMessage.ReadQuaternion();
             spotlightInnerAngle = inMessage.ReadSingle();
             spotlightOuterAngle = inMessage.ReadSingle();
             spotlightFalloff = inMessage.ReadSingle();
             break;
         default:
             throw new Exception("Invalid light node type: " + lightType);
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     int numEntries = inMessage.ReadInt32();
     for (int i = 0; i < numEntries; ++i) {
         AbilityEntry entry = new AbilityEntry();
         entry.name = inMessage.ReadString();
         entry.icon = inMessage.ReadString();
         entry.category = inMessage.ReadString();
         entries.Add(entry);
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     imageName = inMessage.ReadString();
     positionX = inMessage.ReadInt32();
     positionZ = inMessage.ReadInt32();
     sizeX = inMessage.ReadSingle();
     sizeZ = inMessage.ReadSingle();
     rotation = inMessage.ReadSingle();
     priority = inMessage.ReadInt32();
     expireTime = inMessage.ReadInt64();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     startTime = inMessage.ReadTimestamp();
     interpKind = inMessage.ReadString();
     speed = inMessage.ReadSingle();
     terrainString = inMessage.ReadString();
     int count = inMessage.ReadInt32();
     pathPoints = new List<Vector3>();
     for (int i=0; i<count; i++)
         pathPoints.Add(inMessage.ReadIntVector().ToVector3());
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            name = inMessage.ReadString();
            icon = inMessage.ReadString();
            description = inMessage.ReadString();

            int numCooldowns = inMessage.ReadInt32();
            for (int i = 0; i < numCooldowns; i++)
                cooldowns.Add(inMessage.ReadString());

            int numProperties = inMessage.ReadInt32();
            for (int i = 0; i < numProperties; i++) {
                string key = inMessage.ReadString();
                string value = inMessage.ReadString();
                properties[key] = value;
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     log.InfoFormat("LoginResponseMessage.ParseMessage - Oid: {0}", oid);
     success = inMessage.ReadBool();
     message = inMessage.ReadString();
 }
 public override void ParseMessage(IncomingMessage inMessage)
 {
     meshFile = inMessage.ReadString();
     int submeshCount = inMessage.ReadInt32();
     // submesh count of zero means we leave the submesh list null
     if (submeshCount != 0)
         submeshList = new List<SubmeshInfo>();
     for (int i = 0; i < submeshCount; ++i) {
         SubmeshInfo submeshInfo = new SubmeshInfo();
         submeshInfo.submeshName = inMessage.ReadString();
         submeshInfo.materialName = inMessage.ReadString();
         submeshInfo.castShadows = true;
         submeshInfo.receiveShadows = true;
         submeshList.Add(submeshInfo);
         log.InfoFormat("submesh name: {0}; material: {1}", submeshInfo.SubmeshName, submeshInfo.MaterialName);
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     material = inMessage.ReadString();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     int numProperties = inMessage.ReadInt32();
     for (int i = 0; i < numProperties; i++) {
         string key = inMessage.ReadString();
         string value = inMessage.ReadString();
         properties[key] = value;
     }
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            int numEntries = inMessage.ReadInt32();
            for (int i = 0; i < numEntries; ++i) {
                string type = inMessage.ReadString();
                switch (type) {
                    case "add":
                        SoundEntry entry = new SoundEntry();
                        entry.soundName = inMessage.ReadString();
                        if (entry.soundName == "idle") {
                            sounds.Clear();
                            clear = true;
                            break;
                        } else if (entry.soundName == "strike") {
                            entry.soundName = "swing.wav";
                        } else if (entry.soundName == "run") {
                            entry.soundName = "gravelwalk.wav";
                        } else if (entry.soundName == "death") {
                            entry.soundName = "ugh.wav";
                        }

                        entry.soundSpeed = 1.0f;
                        entry.soundGain = 1.0f;
                        entry.loop = inMessage.ReadBool();
                        log.InfoFormat("Playing Sound {0}, looping = {1}",
                                       entry.soundName, entry.loop);
                        if (sounds.Count > 0) {
                            SoundEntry last = sounds[sounds.Count - 1];
                            if (last.loop)
                                sounds.RemoveAt(sounds.Count - 1);
                        }
                        sounds.Add(entry);
                        break;
                    case "clear":
                        sounds.Clear();
                        clear = true;
                        break;
                    default:
                        log.ErrorFormat("Invalid sound message type: {0}", type);
                        break;
                }
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     worldId = inMessage.ReadString();
     characterId = inMessage.ReadInt64();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     statValues.Clear();
     int numElements = inMessage.ReadInt32();
     for (int i = 0; i < numElements; ++i) {
         string statName = inMessage.ReadString();
         int statValue = inMessage.ReadInt32();
         statValues[statName] = statValue;
     }
 }
 // This is used to read CharacterResponse,
 // CharacterDeleteResponse, and CharacterCreateResponse
 // messages, but nothing else
 public void OldParseMessage(IncomingMessage inMessage)
 {
     int numProperties = inMessage.ReadInt32();
     for (int i = 0; i < numProperties; i++) {
         string key = inMessage.ReadString();
         string type = inMessage.ReadString();
         string value = inMessage.ReadString();
         switch (type) {
         case "S":
             properties[key] = value;
             break;
         case "B":
             properties[key] = bool.Parse(value);
             break;
         case "I":
             properties[key] = int.Parse(value);
             break;
         case "L":
             properties[key] = long.Parse(value);
             break;
         case "F":
             properties[key] = float.Parse(value);
             break;
         case "V":
             properties[key] = Vector3.Parse(value);
             break;
         case "Q":
             properties[key] = Quaternion.Parse(value);
             break;
         default:
             throw new System.IO.InvalidDataException("unknown property type");
         }
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     particleOid = inMessage.ReadInt64();
     timeToImpact = inMessage.ReadInt32();
     timestamp = inMessage.ReadTimestamp();
     targetSocket = inMessage.ReadString();
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            questId = inMessage.ReadInt64();
            title = inMessage.ReadString();
            description = inMessage.ReadString();
            objective = inMessage.ReadString();
            int rewardCount = inMessage.ReadInt32();
            for (int i = 0; i < rewardCount; ++i) {
                ItemEntry entry = new ItemEntry();
                entry.name = inMessage.ReadString();
                entry.icon = inMessage.ReadString();
                entry.count = inMessage.ReadInt32();

                rewardItems.Add(entry);
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     base.ParseMessage(inMessage);
     int numItems = inMessage.ReadInt32();
     for (int i = 0; i < numItems; ++i) {
         InvItemInfo info = new InvItemInfo();
         info.itemId = inMessage.ReadInt64();
         info.name = inMessage.ReadString();
         info.icon = inMessage.ReadString();
         offer1.Add(info);
     }
     accepted1 = inMessage.ReadBool();
     numItems = inMessage.ReadInt32();
     for (int i = 0; i < numItems; ++i) {
         InvItemInfo info = new InvItemInfo();
         info.itemId = inMessage.ReadInt64();
         info.name = inMessage.ReadString();
         info.icon = inMessage.ReadString();
         offer2.Add(info);
     }
     accepted2 = inMessage.ReadBool();
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     questId = inMessage.ReadInt64();
     int numEntries = inMessage.ReadInt32();
     for (int i = 0; i < numEntries; ++i)
         objectives.Add(inMessage.ReadString());
 }
        protected override void ParseMessage(IncomingMessage inMessage)
        {
            version = inMessage.ReadString();
            worldToken = inMessage.ReadBytes();
            error = inMessage.ReadString();

            int entryCount = inMessage.ReadInt32();
            entries = new List<PropertyMap>();
            for (int i = 0; i < entryCount; ++i) {
                PropertyMap entry = new PropertyMap();
                entry.OldParseMessage(inMessage);
                entries.Add(entry);
            }
        }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     worldName = inMessage.ReadString();
     status = inMessage.ReadBool();
     hostname = inMessage.ReadString();
     port = inMessage.ReadInt32();
     try {
         patcherUrl = inMessage.ReadString();
         updateUrl = inMessage.ReadString();
     } catch (System.IO.EndOfStreamException) {
         log.Warn("Got old style world resolve response");
         // ignore this - it means we got an old style response
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     int numEntries = inMessage.ReadInt32();
     for (int i = 0; i < numEntries; ++i) {
         string type = inMessage.ReadString();
         switch (type) {
             case "add":
                 AnimationEntry entry = new AnimationEntry();
                 entry.animationName = inMessage.ReadString();
                 entry.animationSpeed = 1.0f;
                 entry.loop = inMessage.ReadBool();
                 if (animations.Count > 0) {
                     AnimationEntry last = animations[animations.Count - 1];
                     if (last.loop)
                         animations.RemoveAt(animations.Count - 1);
                 }
                 animations.Add(entry);
                 break;
             case "clear":
                 animations.Clear();
                 clear = true;
                 break;
             default:
                 log.WarnFormat("Invalid animation message type: {0}", type);
                 break;
         }
     }
 }
 protected override void ParseMessage(IncomingMessage inMessage)
 {
     name = inMessage.ReadString();
     points = new List<Vector3>();
     int numPoints = inMessage.ReadInt32();
     for (int i = 0; i < numPoints; ++i) {
         IntVector3 point = inMessage.ReadIntVector();
         points.Add(point.ToVector3());
     }
     try {
         halfWidth = inMessage.ReadInt32();
     } catch (System.IO.EndOfStreamException) {
         log.Warn("Got old style road message");
         // ignore this - it means we got an old style message
         halfWidth = -1; // Use default
     }
 }
 public static void RunIncoming()
 {
     int receiveCount = 0;
     long lastReceiveCounterResetTime = CurrentTime;
     try {
         while (true) {
             long currentTime = CurrentTime;
             long interval = currentTime - lastReceiveCounterResetTime;
             if (interval > 1000) {
                 lastReceiveCounterResetTime = currentTime;
                 Logit("Received " + receiveCount + " messages" + " in the last " + interval + "ms");
                 receiveCount = 0;
             }
             Debug.Assert(rdpConnection != null, "In TestRDPClient.RunIncoming, rdpConnection is null!");
             IncomingMessage inMessage = new IncomingMessage(rdpConnection);
             receiveCount++;
             Trace.TraceInformation("TestRDPClient got message '" + inMessage.ReadString());
         }
     }
     catch(Exception e) {
         Logit("TestRDPClient.RunIncoming got error: " + e.ToString());
     }
 }
        public TestClass()
        {
            SetupDebug();

            // const int ServerPort = 200;
            const int ServerPort = 5001;
            const int ClientPort = 6666;

            IPHostEntry IPHost = Dns.GetHostEntry("cedeno-dxp.corp.multiverse.net");

            IPAddress[] addr   = IPHost.AddressList;
            IPEndPoint  sendpt = new IPEndPoint(addr[0], ServerPort);


            RdpClient rdpClient  = new RdpClient(ClientPort, 100, 1000, true);
            RdpClient rdpClient2 = new RdpClient(ClientPort + 1, 100, 1000, false);
            //RdpServer rdpServer = new RdpServer(ServerPort, 100, 1000, true);

            RdpConnection rdpClientConn  = rdpClient.Connect(sendpt);
            RdpConnection rdpClientConn2 = rdpClient2.Connect(sendpt);

            // RdpConnection rdpServerConn = rdpServer.Accept();

            rdpClientConn.WaitForState(ConnectionState.Open);
            rdpClientConn2.WaitForState(ConnectionState.Open);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            OutgoingMessage outMessage = new OutgoingMessage();

            outMessage.Write("Good morning");
            outMessage.Send(rdpClientConn);

            outMessage.Send(rdpClientConn2);

            // byte[] msg = Encoding.ASCII.GetBytes("Test");

            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);
            // rdpClientConn.Send(msg);

            IPEndPoint      remoteEP = new IPEndPoint(IPAddress.Any, 0);
            IncomingMessage inMessage;

            inMessage = new IncomingMessage(rdpClientConn);
            Console.WriteLine("Got message: {0}", inMessage.ReadString());

            inMessage = new IncomingMessage(rdpClientConn2);
            Console.WriteLine("Got message2: {0}", inMessage.ReadString());

            //            for (int i = 0; i < 3; ++i) {
//                byte[] rcvdMessage = rdpServerConn.Receive(ref remoteEP);
//                Console.WriteLine("Server got message from {1}: '{0}'",
//                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
//                rdpServerConn.Send(msg);
//            }
//
//            for (int i = 0; i < 3; ++i) {
//                byte[] rcvdMessage = rdpClientConn.Receive(ref remoteEP);
//                Console.WriteLine("Client got message from {1}: '{0}'",
//                                  Encoding.ASCII.GetString(rcvdMessage), remoteEP);
//            }
//
//            rdpServerConn.Close();

            Thread.Sleep(100);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            Thread.Sleep(31000);

//            Console.WriteLine("Server State = " + rdpServerConn.ConnectionState);
            Console.WriteLine("Client State = " + rdpClientConn.ConnectionState);

            FinishDebug();

            //rdpConn.Open(false, 1, 2, 3, 4, true);
            //rdpConn.Send(new Multiverse.Network.Rdp.RdpPacket(50));
            //this.Hide();
            //this.WindowState = FormWindowState.Minimized;
        }