コード例 #1
0
        protected override void configure()
        {
            // call parent configure() method
            base.configure();

            // overwrite any configs as necessary
            missileModel = (Model)(-1479625776);                                // SAM missile
            //clusterMissileModel = (Model)737852268;		// green missile
            clusterMissileModel  = (Model)(-1146260322);                        // homing missile
            attachCamera         = true;
            explosionType        = ExplosionType.Plane;
            invertThrust         = true;
            timeout              = 15000;
            explosionDamageScale = 2.0f;
            clusterBombsReady    = false;                                                       // initially, do not allow use of cluster bombs

            // load particle FX
            particleFxAsset = new ParticleEffectAsset("scr_agencyheistb");
            particleFxAsset.Request();
            particleFxOffset = new Vector3(0f, 2.925f, 0f);
            particleFxName   = "scr_agency3b_proj_rpg_trail";

            // load targeting resources
            targetingSys    = new TargetingSystem(Game.Player.Character);
            pedMarkerSprite = new Sprite(targetingTextureDict, targetingAssetname,
                                         DrawingHelper.defaultSizeF, new PointF(0f, 0f), DrawingHelper.defaultColor, 0f, true);
        }
コード例 #2
0
        public void UpdateMenu()
        {
            if (MenuPool != null)
            {
                MenuPool.RemoveAllMenus();
            }

            MenuPool = new MenuPool();
            MainMenu = new UIMenu("Ptfx Menu");

            if (updateAvailable)
            {
                var item = new UIMenuItem("Update PTFX Database", "Database Update Available");
                MainMenu.AddMenuItem(item);
                MainMenu.OnItemSelect += (sender, selectedItem, index) =>
                {
                    if (selectedItem.Text == "Update PTFX Database")
                    {
                        WriteData();
                        UpdateMenu();
                        Notification.Show("PTFX Database Updated");
                    }
                };
            }

            MainMenu.OnMenuOpen += sender => { Game.Player.Character.IsVisible = false; };

            MenuPool.AddMenu(MainMenu);

            MainMenu.TitleColor                 = Color.FromArgb(255, 255, 255, 255);
            MainMenu.TitleBackgroundColor       = Color.FromArgb(240, 0, 0, 0);
            MainMenu.TitleUnderlineColor        = Color.FromArgb(255, 255, 90, 90);
            MainMenu.DefaultBoxColor            = Color.FromArgb(160, 0, 0, 0);
            MainMenu.DefaultTextColor           = Color.FromArgb(230, 255, 255, 255);
            MainMenu.HighlightedBoxColor        = Color.FromArgb(130, 237, 90, 90);
            MainMenu.HighlightedItemTextColor   = Color.FromArgb(255, 255, 255, 255);
            MainMenu.DescriptionBoxColor        = Color.FromArgb(255, 0, 0, 0);
            MainMenu.DescriptionTextColor       = Color.FromArgb(255, 255, 255, 255);
            MainMenu.SubsectionDefaultBoxColor  = Color.FromArgb(160, 0, 0, 0);
            MainMenu.SubsectionDefaultTextColor = Color.FromArgb(180, 255, 255, 255);

            MenuPool.SubmenuItemIndication = "  ~r~>";

            var     serializer = new JavaScriptSerializer();
            var     json       = File.ReadAllText(dataPath);
            dynamic res        = serializer.DeserializeObject(json);

            foreach (var i in res)
            {
                var subMenu     = new UIMenu(i["DictionaryName"]);
                var effectNames = ((IEnumerable)i["EffectNames"]).Cast <string>().ToList();
                foreach (var e in effectNames)
                {
                    var item = new UIMenuItem(e, i["DictionaryName"]);
                    subMenu.AddMenuItem(item);

                    subMenu.OnItemSelect += (sender, selectedItem, index) =>
                    {
                        World.RemoveAllParticleEffectsInRange(Game.Player.Character.Position, 10);
                        Game.Player.Character.RemoveParticleEffects();

                        var asset = new ParticleEffectAsset(selectedItem.Description);
                        asset.Request();

                        while (!asset.IsLoaded)
                        {
                            Wait(0);
                        }

                        var particle = World.CreateParticleEffectNonLooped(asset, selectedItem.Text,
                                                                           Game.Player.Character.Position, default, particlesSize);