当前位置: 首页>>代码示例>>C#>>正文


C# ParticleEffect.SetControlPoint方法代码示例

本文整理汇总了C#中ParticleEffect.SetControlPoint方法的典型用法代码示例。如果您正苦于以下问题:C# ParticleEffect.SetControlPoint方法的具体用法?C# ParticleEffect.SetControlPoint怎么用?C# ParticleEffect.SetControlPoint使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ParticleEffect的用法示例。


在下文中一共展示了ParticleEffect.SetControlPoint方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: OnValueChanged

 public static void OnValueChanged(object sender, OnValueChangeEventArgs args)
 {
     var oldOne = args.GetOldValue<KeyBind>().Active;
     var newOne = args.GetNewValue<KeyBind>().Active;
     if (oldOne == newOne) return;
     if (newOne)
     {
         _effect?.Dispose();
         _effect = Members.MyHero.AddParticleEffect("materials/ensage_ui/particles/line.vpcf");
         var frontPoint = Members.MyHero.InFront(1200);
         _effect.SetControlPoint(1, Members.MyHero.Position);
         _effect.SetControlPoint(2, frontPoint);
         _effect.SetControlPoint(3, new Vector3(255, 50, 0));
         _effect.SetControlPoint(4, new Vector3(255, 255, 255));
     }
     else
         try
         {
             _tks.Cancel();
             _effect?.Dispose();
         }
         catch (Exception)
         {
             // ignored
         }
 }
开发者ID:JumpAttacker,项目名称:EnsageSharp,代码行数:26,代码来源:ReamBlink.cs

示例2: Tombstone

        public Tombstone(Unit unit)
        {
            this.unit = unit;
            PositionCorrection = new Vector2(25);
            var level = (uint)char.GetNumericValue(unit.Name.Last());
            Radius =
                Ability.GetAbilityDataByName(AbilityName)
                    .AbilitySpecialData.First(x => x.Name == "radius")
                    .GetValue(level - 1);
            Duration =
                Ability.GetAbilityDataByName(AbilityName)
                    .AbilitySpecialData.First(x => x.Name == "duration")
                    .GetValue(level - 1);
            Position = unit.Position;
            Texture = Drawing.GetTexture("materials/ensage_ui/other/tombstone");
            Handle = unit.Handle;
            TextureSize = new Vector2(40);
            EndTime = Game.RawGameTime + Duration;
            ShowTimer = Menu.TimerEnabled(AbilityName);

            if (Menu.RangeEnabled(AbilityName))
            {
                ParticleEffect = new ParticleEffect("particles/ui_mouseactions/drag_selected_ring.vpcf", Position);
                ParticleEffect.SetControlPoint(1, new Vector3(128, 128, 128));
                ParticleEffect.SetControlPoint(2, new Vector3(Radius, 255, 0));
            }
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:27,代码来源:Tombstone.cs

示例3: DrawLine

 private static void DrawLine(Vector3 position, float size, int directionf, int directionu)
 {
     var effect = new ParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf", position);
     ParticleEffects.Add(effect);
     effect.SetControlPoint(1, new Vector3(0, 125, 0));
     effect.SetControlPoint(2, new Vector3(size, 255, 0));
     effect.SetControlPointOrientation(4, new Vector3(directionf, 0, 0), new Vector3(directionu, 0, 0), new Vector3(0, 0, 0));
 }
开发者ID:dendimonster,项目名称:Ensage,代码行数:8,代码来源:Program.cs

示例4: DrawRange

        private void DrawRange()
        {
            if (ParticleEffect == null)
            {
                return;
            }

            ParticleEffect = new ParticleEffect("particles/ui_mouseactions/drag_selected_ring.vpcf", Position);
            ParticleEffect.SetControlPoint(1, new Vector3(255, 255, 0));
            ParticleEffect.SetControlPoint(2, new Vector3(Radius, 255, 0));
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:11,代码来源:ObserverWard.cs

示例5: DrawTarget

 private static void DrawTarget()
 {
     if (particleEffect == null)
     {
         particleEffect = new ParticleEffect(@"particles\ui_mouseactions\range_finder_tower_aoe.vpcf", e);
         particleEffect.SetControlPoint(2, new Vector3(me.Position.X, me.Position.Y, me.Position.Z));
         particleEffect.SetControlPoint(6, new Vector3(1, 0, 0));
         particleEffect.SetControlPoint(7, new Vector3(e.Position.X, e.Position.Y, e.Position.Z));
     }
     else
     {
         particleEffect.SetControlPoint(2, new Vector3(me.Position.X, me.Position.Y, me.Position.Z));
         particleEffect.SetControlPoint(6, new Vector3(1, 0, 0));
         particleEffect.SetControlPoint(7, new Vector3(e.Position.X, e.Position.Y, e.Position.Z));
     }
 }
开发者ID:VickTheRock,项目名称:ReworkAllScripts,代码行数:16,代码来源:Program.cs

示例6: Tick

 public static void Tick(EventArgs args)
 {
     if (!Game.IsInGame || Game.IsWatchingGame)
         return;
     me = ObjectMgr.LocalHero;
     if (me == null)
         return;
     if (me.ClassID == ClassID.CDOTA_Unit_Hero_Meepo)
     {
         List<Hero> meepo = ObjectMgr.GetEntities<Hero>().Where(x => x.Team == me.Team && x.Name == me.Name).ToList();
         uint i = 0;
         foreach(Hero m in meepo)
         {
             i++;
             if (m.IsAlive)
             {
                 if (rangedisplay_meepo[i] == null)
                     rangedisplay_meepo[i] = m.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                 if (rangedisplay_meepo[i].GetHighestControlPoint() != 2)
                 {
                     rangedisplay_meepo[i] = m.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                     rangedisplay_meepo[i].SetControlPoint(1, new Vector3(255, 255, 0));
                     rangedisplay_meepo[i].SetControlPoint(2, new Vector3(_range_exp, 255    , 0));
                 }
             }
             else
                 rangedisplay_meepo[i].Dispose();
         }
     }
     else
     {
         if (me.IsAlive)
         {
             if (rangedisplay == null)
                 rangedisplay = me.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
             if (rangedisplay.GetHighestControlPoint() != 2)
             {
                 rangedisplay = me.AddParticleEffect(@"particles\ui_mouseactions\drag_selected_ring.vpcf");
                 rangedisplay.SetControlPoint(1, new Vector3(255, 255, 0));
                 rangedisplay.SetControlPoint(2, new Vector3(_range_exp, 255, 0));
             }
         }
         else
             rangedisplay.Dispose();
     }
 }
开发者ID:jaddyknight,项目名称:EnsageSharp,代码行数:46,代码来源:EXP_RANGE.cs

示例7: TreantEye

        public TreantEye(Unit unit)
        {
            this.unit = unit;
            PositionCorrection = new Vector2(25);
            Radius =
                Ability.GetAbilityDataByName(AbilityName).AbilitySpecialData.First(x => x.Name == "vision_aoe").Value;
            Position = unit.Position;
            Texture = Drawing.GetTexture("materials/ensage_ui/other/eyes_in_the_forest");
            Handle = unit.Handle;
            TextureSize = new Vector2(40);

            if (Menu.RangeEnabled(AbilityName))
            {
                ParticleEffect = new ParticleEffect("particles/ui_mouseactions/drag_selected_ring.vpcf", Position);
                ParticleEffect.SetControlPoint(1, new Vector3(50, 205, 50));
                ParticleEffect.SetControlPoint(2, new Vector3(Radius, 255, 0));
            }
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:18,代码来源:TreantEye.cs

示例8: DrawRedCircle

        public static void DrawRedCircle(Vector3 position)
        {
            if (!Menu.DrawMap)
            {
                return;
            }

            if (redCirclePartcile == null)
            {
                redCirclePartcile = new ParticleEffect(
                    @"materials\ensage_ui\particles\drag_selected_ring_mod.vpcf",
                    position);
                redCirclePartcile.SetControlPoint(1, new Vector3(255, 0, 0));
                redCirclePartcile.SetControlPoint(2, new Vector3(70, 255, 0));
            }

            redCirclePartcile.SetControlPoint(0, position);
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:18,代码来源:Debugger.cs

示例9: PlagueWard

        public PlagueWard(Unit unit)
        {
            this.unit = unit;
            PositionCorrection = new Vector2(25);
            Radius = 600;
            Duration =
                Ability.GetAbilityDataByName(AbilityName).AbilitySpecialData.First(x => x.Name == "duration").Value;
            Position = unit.Position;
            Texture = Drawing.GetTexture("materials/ensage_ui/other/plague_ward");
            Handle = unit.Handle;
            TextureSize = new Vector2(40);
            EndTime = Game.RawGameTime + Duration;
            ShowTimer = Menu.TimerEnabled(AbilityName);

            if (Menu.RangeEnabled(AbilityName))
            {
                ParticleEffect = new ParticleEffect("particles/ui_mouseactions/drag_selected_ring.vpcf", Position);
                ParticleEffect.SetControlPoint(1, new Vector3(153, 153, 0));
                ParticleEffect.SetControlPoint(2, new Vector3(Radius, 255, 0));
            }
        }
开发者ID:IdcNoob,项目名称:Ensage,代码行数:21,代码来源:PlagueWard.cs

示例10: AddEffect

        public void AddEffect(Unit target, ParticleEffect eff, float range)
        {
            var handle = target.Handle;
            ParticleEffect effect;
            if (!_effectDictionary.TryGetValue(handle, out effect))
            {
                _effectDictionary.Add(handle, eff);
                Printer.Print($"[{_name}][NewEffect]: {target.Name}");
                Game.OnUpdate += args =>
                {
                    if (!Game.IsInGame) return;
                    try
                    {
                        if (eff == null || !eff.IsValid || eff.IsDestroyed) return;
                        if (target.HasModifier("modifier_boots_of_travel_incoming"))
                        {
                            RemoveEffect(target);
                            return;
                        }
                        var frontPoint = Helper.InFront(Members.MyHero, target, range);
                        eff.SetControlPoint(1, target.Position);
                        eff.SetControlPoint(2, frontPoint);
                    }
                    catch (Exception)
                    {

                    }

                };
            }
            else
            {
                effect.Dispose();
                _effectDictionary.Remove(handle);
                AddEffect(target, eff);
                Printer.Print($"[{_name}][Remove&NewEffect]: {target.Name}");
            }
        }
开发者ID:JumpAttacker,项目名称:EnsageSharp,代码行数:38,代码来源:ParticleEffectHelper.cs

示例11: DrawRanges

        public static void DrawRanges(EventArgs args)
        {
			if (!Game.IsInGame || Game.IsPaused || Game.IsWatchingGame || !Utils.SleepCheck("VisibilitySleep"))
				return;
			//Utils.Sleep(150, "VisibilitySleep");
				
            me = ObjectMgr.LocalHero;
            if (me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Tinker)
                return;
		
			aether = me.FindItem("item_aether_lens");
			
			if (aether == null)
				aetherrange = 0;
			else
				aetherrange = 200;
		
			

			if (Menu.Item("Show Direction").GetValue<bool>())
			{
				/*
				ParticleEffect effect3;
						
				if (me.IsChanneling() && !Prediction.IsTurning(me))
				{
					if (VisibleUnit3.TryGetValue(me, out effect3)) return;
					effect3 = me.AddParticleEffect(@"particles\ui_mouseactions\range_finder_directional_b.vpcf");
					effect3.SetControlPoint(1, me.Position);
					effect3.SetControlPoint(2, FindVector(me.Position, me.Rotation, 1200+aetherrange));
					VisibleUnit3.Add(me, effect3);
				}
				else if (!me.IsChanneling())
				{
					if (!VisibleUnit3.TryGetValue(me, out effect3)) return;
					effect3.Dispose();
					VisibleUnit3.Remove(me);
				}*/
				
				
				if (me.IsChanneling())// && !Prediction.IsTurning(me))
				{
					if (effect3 == null)
					{
						//effect3 = new ParticleEffect(@"particles\ui_mouseactions\range_finder_directional_b.vpcf", me);     
						effect3 = new ParticleEffect(@"particles\ui_mouseactions\range_finder_d_glow.vpcf", me);     
						
						effect3.SetControlPoint(1, me.Position);
						effect3.SetControlPoint(2, FindVector(me.Position, me.Rotation, 1200+aetherrange + ensage_error));
					}
					else 
					{
						effect3.SetControlPoint(1, me.Position);
						effect3.SetControlPoint(2, FindVector(me.Position, me.Rotation, 1200+aetherrange + ensage_error));
					} 
				}
				else if (effect3 != null)
				{
				   effect3.Dispose();
				   effect3 = null;
				}  
				
			}
			

			
			
			if (Menu.Item("Show Target Effect").GetValue<bool>())
			{
				if (target != null && target.IsValid && !target.IsIllusion && target.IsAlive && target.IsVisible && me.Distance2D(target.Position) < 2000)
				{
					if (effect4 == null)
					{
						effect4 = new ParticleEffect(@"particles\ui_mouseactions\range_finder_tower_aoe.vpcf", target);     
						effect4.SetControlPoint(2, me.Position);
						effect4.SetControlPoint(6, new Vector3(1, 0, 0));
						effect4.SetControlPoint(7, target.Position);
					}
					else 
					{
						effect4.SetControlPoint(2, me.Position);
						effect4.SetControlPoint(6, new Vector3(1, 0, 0));
						effect4.SetControlPoint(7, target.Position);
					} 
				}
				else if (effect4 != null)
				{
				   effect4.Dispose();
				   effect4 = null;
				}  
			}
			
			/*
			{
				if (linedisplay == null)
				{
					linedisplay = me.AddParticleEffect(@"particles\ui_mouseactions\range_finder_directional_b.vpcf");
					linedisplay.SetControlPoint(1, me.Position);
					linedisplay.SetControlPoint(2, FindVector(me.Position, me.Rotation, 1200+aetherrange));
				}
//.........这里部分代码省略.........
开发者ID:Air13,项目名称:ESharp,代码行数:101,代码来源:Tinker_Air13.cs

示例12: Game_OnUpdate

        private static void Game_OnUpdate(EventArgs args)
        {
            if (!loaded)
            {
                me = ObjectMgr.LocalHero;
                if (!Game.IsInGame || Game.IsWatchingGame || me == null || me.ClassID != ClassID.CDOTA_Unit_Hero_Huskar)
                {
                    return;
                }
                loaded = true;

                // Spells
                spellQ = me.Spellbook.SpellQ;
                spellR = me.Spellbook.SpellR;


                //Aghs = me.FindItem("item_ultimate_scepter");
            }

            if (me == null || !me.IsValid)
            {
                loaded = false;
                me = ObjectMgr.LocalHero;
                if (rangeDisplay == null)
                {
                    return;
                }
                rangeDisplay = null;
                return;
            }

            if (Game.IsPaused)
            {
                return;
            }

            // Items
            Urn = me.FindItem("item_urn_of_shadows");

            Abyssal = me.FindItem("item_abyssal_blade");

            Blademail = me.FindItem("item_blade_mail");

            Mjollnir = me.FindItem("item_mjollnir");

            Orchid = me.FindItem("item_orchid");

            Halberd = me.FindItem("item_heavens_halberd");

            Satanic = me.FindItem("item_satanic");

            Hex = me.FindItem("item_sheepstick");

            Medallion = me.FindItem("item_medallion_of_courage");

            SolarCrest = me.FindItem("item_solar_crest");

            Blink = me.FindItem("item_blink");

            Armlet = me.FindItem("item_armlet");


            if (rangeDisplay == null)
            {
                rangeDisplay = me.AddParticleEffect(@"particles\ui_mouseactions\range_display.vpcf");
                lastRange = me.GetAttackRange() + me.HullRadius + 25;
                rangeDisplay.SetControlPoint(1, new Vector3(lastRange, 0, 0));
            }
            else
            {
                if (lastRange != (me.GetAttackRange() + me.HullRadius + 25))
                {
                    lastRange = me.GetAttackRange() + me.HullRadius + 25;
                    rangeDisplay.Dispose();
                    rangeDisplay = me.AddParticleEffect(@"particles\ui_mouseactions\range_display.vpcf");
                    rangeDisplay.SetControlPoint(1, new Vector3(lastRange, 0, 0));
                }
            }

            if (target != null && (!target.IsValid || !target.IsVisible || !target.IsAlive || target.Health <= 0))
            {
                target = null;
            }
            var canCancel = Orbwalking.CanCancelAnimation();
            if (canCancel)
            {
                if (target != null && !target.IsVisible && !Orbwalking.AttackOnCooldown(target))
                {
                    target = me.ClosestToMouseTarget();
                }
                else if (target == null || !Orbwalking.AttackOnCooldown(target))
                {
                    var bestAa = me.BestAATarget();
                    if (bestAa != null)
                    {
                        target = me.BestAATarget();
                    }
                }
            }

//.........这里部分代码省略.........
开发者ID:delid,项目名称:EnsageSharp,代码行数:101,代码来源:Program.cs

示例13: Game_OnUpdate

        private static void Game_OnUpdate(EventArgs args)
        {
            if (!_loaded)
            {
                _me = ObjectMgr.LocalHero;
                _player = ObjectMgr.LocalPlayer;
                if (!Game.IsInGame || _me == null || _me.ClassID != ClassID.CDOTA_Unit_Hero_Techies)
                {
                    return;
                }
                _loaded = true;
                PrintSuccess("> Techies Annihilation loaded!");
            }

            if (!Game.IsInGame || _me == null || _me.ClassID != ClassID.CDOTA_Unit_Hero_Techies)
            {
                _loaded = false;
                PrintInfo("> Techies Annihilation Unloaded!");
                return;
            }
            if (Game.IsPaused)
            {
                return;
            }

            if (_player == null || _player.Team == Team.Observer)
                return;

            #region UpdateInfo

            var ultimate = _me.Spellbook.Spell6;
            var suic = _me.Spellbook.Spell3;
            var suicideLevel = suic.Level;
            var bombLevel = ultimate.Level;
            if (LvlSpell3 != suicideLevel)
            {
                var firstOrDefault = suic.AbilityData.FirstOrDefault(x => x.Name == "damage");
                if (firstOrDefault != null)
                {
                    _currentSuicDamage = firstOrDefault.GetValue(suicideLevel - 1);
                    //PrintError("_currentSuicDamage: " + _currentSuicDamage.ToString(CultureInfo.InvariantCulture));
                }
                LvlSpell3 = suicideLevel;
            }

            if (LvlSpell6 != bombLevel)
            {
                var firstOrDefault = ultimate.AbilityData.FirstOrDefault(x => x.Name == "damage");
                if (firstOrDefault != null)
                {
                    _currentBombDamage = firstOrDefault.GetValue(ultimate.Level - 1);
                    _currentBombDamage += _me.FindItem("item_ultimate_scepter") != null
                        ? 150
                        : 0;
                    //PrintError("_currentBombDamage: " + _currentBombDamage.ToString(CultureInfo.InvariantCulture));
                }
                LvlSpell6 = bombLevel;
            }

            #endregion

            var bombs = ObjectMgr.GetEntities<Unit>()
                .Where(
                    x =>
                        x.ClassID == ClassID.CDOTA_NPC_TechiesMines && x.Team == _player.Team);
            var bombsList = bombs as IList<Unit> ?? bombs.ToList();
            var enumerable = bombs as IList<Unit> ?? bombsList.ToList();
            //PrintError(Game.IsKeyDown(Key.RightCtrl).ToString());
            if (Game.IsKeyDown(0x11))
            {
                if (_forceStaffRange == null)
                {
                    _forceStaffRange = _me.AddParticleEffect(@"particles\ui_mouseactions\range_display.vpcf");
                    _forceStaffRange.SetControlPoint(1, new Vector3(800, 0, 0));
                }
            }
            else
            {
                if (_forceStaffRange != null)
                {
                    _forceStaffRange.Dispose();
                    _forceStaffRange = null;
                }
            }
            foreach (var s in enumerable)
            {
                //add effect
                HandleEffect(s, s.Spellbook.Spell1 != null);

                //Init bomb damage
                if (!s.Spellbook.Spell1.CanBeCasted()) continue;
                float dmg;
                if (!BombDamage.TryGetValue(s, out dmg))
                {
                    //PrintError("_currentBombDamage: "+_currentBombDamage.ToString());
                    BombDamage.Add(s, _currentBombDamage);
                }

            }
            var enemies =
//.........这里部分代码省略.........
开发者ID:anon2281,项目名称:EnsageSharp-1,代码行数:101,代码来源:Program.cs

示例14: Game_OnUpdate

        private static void Game_OnUpdate(EventArgs args)
        {
            var me = ObjectMgr.LocalHero;
            if (!_loaded)
            {
                if (!Game.IsInGame || me == null)
                {
                    return;
                }
                _loaded = true;
                PrintSuccess("> Spawn Box loaded! v" + Ver);
            }
            if (!Game.IsInGame || me == null)
            {
                _loaded = false;
                PrintInfo("> Spawn Box unLoaded");
                Effect.Clear();
                Effect2.Clear();
                Effect3.Clear();
                Effect4.Clear();
                return;
            }
            if (!Game.IsInGame || !_loaded || !Utils.SleepCheck("Refer")) return;
            Utils.Sleep(500, "Refer");
            for (var i = 0; i < 12; i++)
            {
                var coint1 = Math.Floor(Math.Floor((decimal) (Spots[i, 2] - Spots[i, 0]))/50);
                var coint2 = Math.Abs(Math.Floor(Math.Floor((decimal) (Spots[i, 3] - Spots[i, 1]))/50));
                ParticleEffect effect;
                Vector2 screen;

                if (Drawing.WorldToScreen(new Vector3(Spots[i, 0], Spots[i, 1], 0), out screen))
                {
                    for (var a = 1; a < coint1; a++)
                    {
                        var first = new Vector3(Spots[i, 0] + a*50, Spots[i, 1], 500);
                        var second = new Vector3(Spots[i, 2] - a*50, Spots[i, 3], 500);
                        if (!Effect.ContainsKey(string.Format("{0} / {1}", i, a)))
                        {
                            effect = new ParticleEffect(EffectPath,
                                first);
                            effect.SetControlPoint(0, first);
                            Effect.Add(string.Format("{0} / {1}", i, a), effect);
                        }
                        if (!Effect2.ContainsKey(string.Format("{0} / {1}", i, a)))
                        {
                            effect = new ParticleEffect(EffectPath,
                                second);
                            effect.SetControlPoint(0, second);
                            Effect2.Add(string.Format("{0} / {1}", i, a), effect);
                        }
                    }
                    for (var a = 1; a < coint2; a++)
                    {
                        var first = new Vector3(Spots[i, 0], Spots[i, 1] - a*50, 500);
                        var second = new Vector3(Spots[i, 2], Spots[i, 3] + a*50, 500);
                        if (!Effect3.ContainsKey(string.Format("{0} / {1}", i, a)))
                        {
                            effect = new ParticleEffect(EffectPath,
                                first);
                            effect.SetControlPoint(0, first);
                            Effect3.Add(string.Format("{0} / {1}", i, a), effect);
                        }
                        if (!Effect4.ContainsKey(string.Format("{0} / {1}", i, a)))
                        {
                            effect = new ParticleEffect(EffectPath,
                                second);
                            effect.SetControlPoint(0, second);
                            Effect4.Add(string.Format("{0} / {1}", i, a), effect);
                        }
                    }
                }
                else
                {
                    for (var a = 1; a < coint1; a++)
                    {
                        if (Effect.TryGetValue(string.Format("{0} / {1}", i, a), out effect))
                        {
                            effect.Dispose();
                            Effect.Remove(string.Format("{0} / {1}", i, a));
                        }
                        if (Effect2.TryGetValue(string.Format("{0} / {1}", i, a), out effect))
                        {
                            effect.Dispose();
                            Effect2.Remove(string.Format("{0} / {1}", i, a));
                        }
                    }
                    for (var a = 1; a < coint2; a++)
                    {
                        if (Effect3.TryGetValue(string.Format("{0} / {1}", i, a), out effect))
                        {
                            effect.Dispose();
                            Effect3.Remove(string.Format("{0} / {1}", i, a));
                        }
                        if (Effect4.TryGetValue(string.Format("{0} / {1}", i, a), out effect))
                        {
                            effect.Dispose();
                            Effect4.Remove(string.Format("{0} / {1}", i, a));
                        }
                    }
//.........这里部分代码省略.........
开发者ID:kobra322,项目名称:EnsageSharp-1,代码行数:101,代码来源:Program.cs

示例15: OnCalc

        public static void OnCalc(EventArgs args)
        {
            if (_rangeEfeectMaster == null)
                _rangeEfeectMaster = new LineHelpers();
            if (_debugLines == null)
                _debugLines = new DebugLines();

            var tempTarget = TargetSelector.ClosestToMouse(Members.MyHero);
            if ((tempTarget == null && Target != null) || (tempTarget!=null && Target!=null && !tempTarget.Equals(Target)))
            {
                if (Target != null)
                {
                    var i = 0;
                    while (_debugLines.Dispose(Target))
                    {
                        Printer.Print($"[Dispose]# {++i}");
                    }
                }
                if (_targetRange != null)
                {
                    _targetRange.Dispose();
                    _targetRange = null;
                }
            }
            Target = tempTarget;
            if (Target==null)
                return;
            if (_targetRange == null)
            {
                if (DrawRange)
                {
                    _targetRange =
                        Target.AddParticleEffect("materials/ensage_ui/particles/range_display_mod.vpcf");
                    _targetRange.SetControlPoint(1, new Vector3(575, 255, 0));
                    _targetRange.SetControlPoint(2, new Vector3(75, 75, 75));
                }
            }
            var trees = ObjectManager.GetEntities<Entity>()
                .Where(x => x.Name == "ent_dota_tree" && x.IsAlive && x.IsValid && x.Distance2D(Target.Position) < 575 && x.IsAlive).ToList();

            var units = ObjectManager.GetEntities<Unit>()
                .Where(
                    x =>
                        !Target.Equals(x) && x.Distance2D(Target.Position) < 575 && x.IsAlive &&
                        x.Team == Members.MyHero.GetEnemyTeam() && x.IsVisible).ToList();

            //trees.AddRange(units);
            var list=new List<Vector3>();
            foreach (var entity in trees)
            {
                var angle = (float)Math.Max(
                    Math.Abs(Members.MyHero.FindAngleBetween(entity.Position, true) -
                             Members.MyHero.FindAngleBetween(Target.Position, true)) - .21, 0);
                _rangeEfeectMaster.DrawEffect(entity, "materials/ensage_ui/particles/line.vpcf", angle == 0);
                _debugLines.DrawEffect(entity, "materials/ensage_ui/particles/line.vpcf", angle == 0);

                var ang = Target.FindAngleBetween(entity.Position, true);
                for (var i = 1; i < 16; i++)
                {
                    var tempPos = Target.Position -
                          new Vector3((float)(i * 50 * Math.Cos(ang)), (float)(i * 50 * Math.Sin(ang)), 0);
                    if (NavMesh.GetCellFlags(tempPos) == NavMeshCellFlags.Walkable)
                        list.Add(tempPos);
                }

            }

            foreach (var entity in units)
            {
                var angle = (float)Math.Max(
                    Math.Abs(Members.MyHero.FindAngleBetween(entity.Position, true) -
                             Members.MyHero.FindAngleBetween(Target.Position, true)) - .21, 0);
                _rangeEfeectMaster.DrawEffect(entity, "materials/ensage_ui/particles/line.vpcf", angle == 0);
                _debugLines.DrawEffect(entity, "materials/ensage_ui/particles/line.vpcf", angle == 0);
                var ang = Target.FindAngleBetween(entity.Position, true);
                for (var i = 1; i < 16; i++)
                {
                    var tempPos = Target.Position -
                          new Vector3((float)(i * 50 * Math.Cos(ang)), (float)(i * 50 * Math.Sin(ang)), 0);
                    if (NavMesh.GetCellFlags(tempPos) == NavMeshCellFlags.Walkable)
                        list.Add(tempPos);
                }
            }
            Members.BestPoinits = list;
        }
开发者ID:JumpAttacker,项目名称:EnsageSharp,代码行数:85,代码来源:ShackleshotCalculation.cs


注:本文中的ParticleEffect.SetControlPoint方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。