Example #1
0
 private void CreateObjects( )
 {
     // Create some objects
     ObjectStreamer.CreateDynamicObject("port_xr_lifeboat", new Vector3(-859.655f, -803.499f, 25.566f), new Vector3(0, 0, 0), 0);
     ObjectStreamer.CreateDynamicObject("bkr_prop_biker_bowlpin_stand", new Vector3(-959.655f, -903.499f, 25.566f), new Vector3(0, 0, 0), 0);
     ObjectStreamer.CreateDynamicObject("bkr_prop_biker_tube_crn", new Vector3(-909.655f, -953.499f, 25.566f), new Vector3(0, 0, 0), 0);
 }
Example #2
0
        public static object ListObjectsFromFile(
            [ExcelArgument(Name = "path", Description = "The path", AllowReference = true)]
            object xlPath,
            [ExcelArgument(Name = "fileName", Description = "The file name", AllowReference = true)]
            object xlFileName,
            [ExcelArgument(Name = "fileFormat", Description = "[Optional] The file format; the file extension will be used by default", AllowReference = true)]
            object xlFileFormat)
        {
            try
            {
                IExcelDataQuery fileFormatDataQuery = ExcelDataQuery.Create(xlFileFormat, "File format");

                string          fileName;
                IObjectStreamer objectStreamer;

                if (fileFormatDataQuery.IsEmpty == true)
                {
                    fileName = GetFileName(xlPath, xlFileName, ObjectStreamer.GetFileExtensions());

                    if (ObjectStreamer.TryGetObjectStreamerByFileExtension(ExtendedPath.GetExtension(fileName), out objectStreamer) == false)
                    {
                        throw new ArgumentException("Invalid file extension '" + ExtendedPath.GetExtension(fileName) + "', used default file extensions or specify the file format.");
                    }
                }
                else
                {
                    if (fileFormatDataQuery.TryGetPoolValue <IObjectStreamer>(ObjectStreamer.TryGetObjectStreamer, out objectStreamer, dataAdvice: ExcelDataAdvice.Create(ObjectStreamer.GetNames())) == false)
                    {
                        throw new ArgumentException("Invalid file format " + fileFormatDataQuery.ToString(0, 0) + ".");
                    }
                    fileName = GetFileName(xlPath, xlFileName, objectStreamer.FileExtension);
                    fileFormatDataQuery.QueryCompleted();
                }

                StreamReader        streamReader       = new StreamReader(fileName);
                IObjectStreamReader objectStreamReader = objectStreamer.GetStreamReader(streamReader);

                var objectNames = ExcelPool.GetObjectNames(objectStreamReader);
                int n           = objectNames.Count();
                object[,] output = new object[n + 1, 2];
                output[0, 0]     = "Name";
                output[0, 1]     = "Type";
                int j = 1;
                foreach (var obj in objectNames)
                {
                    output[j, 0] = obj.Item2;
                    output[j, 1] = obj.Item1.Name.String;
                    j++;
                }
                objectStreamReader.Close();
                return(ExcelDataConverter.GetExcelRangeOutput(output));
            }
            catch (Exception e)
            {
                return(ExcelDataConverter.GetExcelRangeErrorMessage(e));
            }
        }
        /// <summary>Handles the Click event of the open [file] button.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void openToolStripMenuItem_Click(object sender, EventArgs e)
        {
            StringBuilder filterStrBuilder = new StringBuilder();

            foreach (var objectStreamer in ObjectStreamer.Values)
            {
                if (filterStrBuilder.Length > 1)
                {
                    filterStrBuilder.Append("|");
                }
                filterStrBuilder.Append(objectStreamer.Name.String + " (*." + objectStreamer.FileExtension.String + ")|");
                filterStrBuilder.Append("*." + objectStreamer.FileExtension.String);
            }
            string filter = filterStrBuilder.ToString() + "|All files (*.*)|*.*";

            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.CheckFileExists = true;
            openFileDialog.CheckPathExists = true;
            openFileDialog.AddExtension    = true;
            openFileDialog.Multiselect     = false;
            openFileDialog.Title           = "Load Dodoni.net objects";
            openFileDialog.Filter          = filter;

            if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                IObjectStreamer objectStreamer;
                string          fileExtension = ExtendedPath.GetExtension(openFileDialog.FileName);
                if (ObjectStreamer.TryGetObjectStreamerByFileExtension(fileExtension, out objectStreamer) == false)
                {
                    MessageBox.Show("Invalid file extension '" + fileExtension + "'.");
                    return; // exit function
                }
                try
                {
                    StreamReader        streamReader       = new StreamReader(openFileDialog.FileName);
                    IObjectStreamReader objectStreamReader = objectStreamer.GetStreamReader(streamReader);
                    string infoMessage;
                    IEnumerable <ExcelPoolItem> excelPoolItems;
                    if (ExcelPool.TryLoadObjects(objectStreamReader, out infoMessage, out excelPoolItems) == false)
                    {
                        MessageBox.Show("Error: " + infoMessage);
                    }
                    ObjectStreamReaderInfoForm infoForm = new ObjectStreamReaderInfoForm();
                    infoForm.ShowDetails(infoMessage, excelPoolItems);

                    objectStreamReader.Close();
                }
                catch (Exception exception)
                {
                    MessageBox.Show("Error: " + exception.Message);
                }
            }
        }
Example #4
0
        public static object LoadObjectsFromFile(
            [ExcelArgument(Name = "path", Description = "The path", AllowReference = true)]
            object xlPath,
            [ExcelArgument(Name = "fileName", Description = "The file name", AllowReference = true)]
            object xlFileName,
            [ExcelArgument(Name = "objectNames", Description = "[Optional] A list of object names to load; all objects will be loaded by default", AllowReference = true)]
            object xlObjectNames,
            [ExcelArgument(Name = "fileFormat", Description = "[Optional] The file format; the file extension will be used by default", AllowReference = true)]
            object xlFileFormat)
        {
            try
            {
                IExcelDataQuery fileFormatDataQuery = ExcelDataQuery.Create(xlFileFormat, "File format");

                string          fileName;
                IObjectStreamer objectStreamer;
                if (fileFormatDataQuery.IsEmpty == true)
                {
                    fileName = GetFileName(xlPath, xlFileName, ObjectStreamer.GetFileExtensions());

                    if (ObjectStreamer.TryGetObjectStreamerByFileExtension(ExtendedPath.GetExtension(fileName), out objectStreamer) == false)
                    {
                        throw new ArgumentException("Invalid file extension '" + Path.GetExtension(fileName) + "', used default file extensions or specify the file format.");
                    }
                }
                else
                {
                    if (fileFormatDataQuery.TryGetPoolValue <IObjectStreamer>(ObjectStreamer.TryGetObjectStreamer, out objectStreamer, dataAdvice: ExcelDataAdvice.Create(ObjectStreamer.GetNames())) == false)
                    {
                        throw new ArgumentException("Invalid file format " + fileFormatDataQuery.ToString(0, 0) + ".");
                    }
                    fileName = GetFileName(xlPath, xlFileName, objectStreamer.FileExtension);
                    fileFormatDataQuery.QueryCompleted();
                }

                IExcelDataQuery      objectNamesDataQuery = ExcelDataQuery.Create(xlObjectNames, "Object names");
                IEnumerable <string> objectNames          = objectNamesDataQuery.GetColumnVector <string>();
                objectNamesDataQuery.QueryCompleted();

                StreamReader        streamReader       = new StreamReader(fileName);
                IObjectStreamReader objectStreamReader = objectStreamer.GetStreamReader(streamReader);
                string infoMessage;
                IEnumerable <ExcelPoolItem> excelPoolItems;
                ExcelPool.TryLoadObjectsByName(objectStreamReader, objectNames, out infoMessage, out excelPoolItems);
                objectStreamReader.Close();

                return(infoMessage.ToTimeStampString());
            }
            catch (Exception e)
            {
                return(ExcelDataConverter.GetExcelRangeErrorMessage(e));
            }
        }
Example #5
0
        public void CreateWorldItemObject(IPlayer player, uint objectHash, string positionJson, string rotationJson, int itemID)
        {
            Vector3 position = JsonConvert.DeserializeObject <Vector3>(positionJson);
            Vector3 rotation = JsonConvert.DeserializeObject <Vector3>(rotationJson);

            DynamicObject dynamicObject = ObjectStreamer.CreateDynamicObject(objectHash, position, rotation, player.Dimension, null, true, null, null, null, null, true, 275);

            dynamicObject.SetData("dynamicObject:ownerAccountId", player.GetAccountEntity().DbModel.Id);

            Alt.Log($"ID OBIEKTU STWORZONEGO: {dynamicObject.Id}");
            EntityHelper.Add(dynamicObject);

            player.SendSuccessNotify("Postawiono obiekt pomyślnie", "Twój obiekt został postawiony");
            player.Emit("item:synchronizateWorldObjectWithClient", dynamicObject.Id, itemID);
        }
Example #6
0
        private async Task OnConsoleCommand(string name, string[] args)
        {
            // destroy all objects
            if (name == "dao")
            {
                ObjectStreamer.DestroyAllDynamicObjects( );
                Console.WriteLine($"all objects destroyed.");
            }

            // create all objects
            if (name == "cao")
            {
                ObjectStreamer.DestroyAllDynamicObjects( );
                CreateObjects( );
            }

            // destroy object
            if (name == "do")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                if (ObjectStreamer.DestroyDynamicObject(objId))
                {
                    Console.WriteLine($"Object with ID { objId } deleted!");
                }
            }

            // change rotation
            if (name == "cr")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    Vector3 rot = obj.Rotation;
                    obj.Rotation = new Vector3(rot.X, rot.Y, rot.Z + 5f);
                    Console.WriteLine($"Object rotation increased on Z with +5f");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change visible
            if (name == "cv")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    obj.Visible = !obj.Visible;
                    Console.WriteLine($"Object visibility set to { obj.Visible }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change lod distance
            if (name == "cld")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    obj.LodDistance += 100;
                    Console.WriteLine($"Object LOD Dist increased by 100");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change texture variation
            if (name == "ctv")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    var variations = Enum.GetValues(typeof(TextureVariation));

                    obj.TextureVariation = ( TextureVariation )variations.GetValue(new Random( ).Next(variations.Length));
                    Console.WriteLine($"Object texture variation changed to a random variation");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change dynamic
            if (name == "cd")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    obj.Dynamic = !obj.Dynamic;
                    Console.WriteLine($"Object dynamic changed to: { obj.Dynamic }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change on fire(EXPERIMENTAL, DOESNT WORK VERY WELL AS OF RIGHT NOW!)
            if (name == "cof")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    obj.OnFire = !obj.OnFire;
                    Console.WriteLine($"Object on fire changed to: { obj.OnFire }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change frozen
            if (name == "cf")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    obj.Frozen = !obj.Frozen;
                    Console.WriteLine($"Object frozen changed to: { obj.Frozen }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change light color
            if (name == "clc")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    Random r = new Random( );
                    obj.LightColor = new Rgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256));
                    Console.WriteLine($"Object lightcolor changed to random value");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change model
            if (name == "cm")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    // change object into a house
                    obj.Model = "lf_house_17_";
                    Console.WriteLine($"Object changed into a house.");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // change pos
            if (name == "cp")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    Console.WriteLine($"obj pos: { obj.Position.Z }");

                    obj.Position += new Vector3(0, 0, 5);
                    Console.WriteLine($"Object position increased on Z with +5f { obj.Position.Z }");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // get object by ID
            if (name == "go")
            {
                if (args.Length == 0)
                {
                    return;
                }

                ulong objId = Convert.ToUInt64(args[0]);
                var   obj   = ObjectStreamer.GetDynamicObject(objId);
                if (obj != null)
                {
                    Console.WriteLine($"Object found, data: { obj.Model }, { obj.Rotation.X }, { obj.Rotation.Y }, { obj.Rotation.Z }, { obj.Frozen }, ...!");
                }
                else
                {
                    Console.WriteLine($"Couldnt find object with ID { objId }");
                }
            }

            // get closest object
            if (name == "gc")
            {
                IPlayer player = Alt.GetAllPlayers( ).First( );

                if (player != null)
                {
                    (DynamicObject obj, float distance) = ObjectStreamer.GetClosestDynamicObject(player.Position);

                    if (obj == null)
                    {
                        Console.WriteLine("Couldn't find any object near player.");
                        return;
                    }

                    Console.WriteLine($"Closest object ID is { obj.Id } at a distance of { distance }.");
                }
                else
                {
                    Console.WriteLine($"Couldnt find any players.");
                }
            }

            // count objects
            if (name == "countobj")
            {
                Console.WriteLine($"total objects created: { ObjectStreamer.GetAllDynamicObjects( ).Count }");
            }
        }
Example #7
0
 public override void OnStop( )
 {
     ObjectStreamer.DestroyAllDynamicObjects( );
     Console.WriteLine($"Server stopped.");
 }
Example #8
0
 public void CreateObjectTestCMD(IPlayer player, string name)
 {
     ObjectStreamer.CreateDynamicObject(name, new Vector3(player.Position.X, player.Position.Y, player.Position.Z), new Vector3(0, 0, 0), 0);
     player.SendSuccessNotify("Utworzono obiekt", name);
 }