本文整理汇总了C#中GameObjectProcessSpellCastEventArgs类的典型用法代码示例。如果您正苦于以下问题:C# GameObjectProcessSpellCastEventArgs类的具体用法?C# GameObjectProcessSpellCastEventArgs怎么用?C# GameObjectProcessSpellCastEventArgs使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
GameObjectProcessSpellCastEventArgs类属于命名空间,在下文中一共展示了GameObjectProcessSpellCastEventArgs类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: OnDoCast
/// <summary>
/// Called when a cast has been executed.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="args">The args.</param>
public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
/// <summary>
/// Load the Ohmwrecker logic.
/// </summary>
if (sender != null &&
args.Target != null &&
args.Target.IsAlly &&
sender.IsValid<Obj_AI_Turret>() &&
args.Target.IsValid<Obj_AI_Hero>() &&
Variables.Menu.Item($"{Variables.MainMenuName}.defensives").GetValue<bool>())
{
Ohmwrecker.Execute(sender, args);
}
/// <summary>
/// Load the Offensive items.
/// </summary>
if (sender.IsMe &&
Orbwalking.IsAutoAttack(args.SData.Name) &&
Variables.Menu.Item($"{Variables.MainMenuName}.resetters").GetValue<bool>() &&
(Variables.Menu.Item($"{Variables.MainMenuName}.combo_button").GetValue<KeyBind>().Active ||
Variables.Menu.Item($"{Variables.MainMenuName}.laneclear_button").GetValue<KeyBind>().Active))
{
Resetters.Execute(sender, args);
}
}
示例2: SpellCast
public static void SpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (!sender.IsMe) return;
if ((Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) &&
Manager.MenuManager.UseQLC && Variables._Player.ManaPercent >= Manager.MenuManager.UseQLCMana) &&
Manager.SpellManager.Q.IsReady())
{
if (Orbwalker.CanAutoAttack)
{
return;
}
foreach (var minion in EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy,
Variables._Player.ServerPosition, Variables._Player.GetAutoAttackRange()))
{
if (minion == null) return;
var dmg = Variables._Player.GetSpellDamage(minion, SpellSlot.Q) +
Variables._Player.GetAutoAttackDamage(minion);
if (Prediction.Health.GetPrediction(minion, (int)(Variables._Player.AttackDelay * 1000)) <= dmg / 2 &&
(Orbwalker.LastTarget == null || Orbwalker.LastTarget.NetworkId != minion.NetworkId))
{
Player.CastSpell(SpellSlot.Q, Game.CursorPos);
}
}
}
}
示例3: Weaving
/// <summary>
/// Called on do-cast.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="args">The args.</param>
public static void Weaving(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (!(args.Target is AIHeroClient) ||
Invulnerable.Check(args.Target as AIHeroClient, DamageType.Magical))
{
return;
}
/// <summary>
/// The Q Combo Weaving Logic.
/// </summary>
if (Vars.Q.IsReady() &&
(args.Target as AIHeroClient).LSIsValidTarget(Vars.Q.Range) &&
Vars.getCheckBoxItem(Vars.QMenu, "combo"))
{
Vars.Q.Cast(Vars.Q.GetPrediction(args.Target as AIHeroClient).CastPosition);
return;
}
/// <summary>
/// The R Combo Weaving Logic.
/// </summary>
if (Vars.R.IsReady() &&
(args.Target as AIHeroClient).HasBuff("dianamoonlight") &&
(args.Target as AIHeroClient).LSIsValidTarget(Vars.R.Range) &&
Vars.getCheckBoxItem(Vars.RMenu, "combo"))
{
Vars.R.CastOnUnit(args.Target as AIHeroClient);
}
}
示例4: ProcessSpell_TwitchSprayandPrayAttack
private void ProcessSpell_TwitchSprayandPrayAttack(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
{
if (spellData.spellName == "TwitchSprayandPrayAttack")
{
spellData.spellDelay = hero.AttackCastDelay * 1000;
}
}
示例5: SpellCast
internal static void SpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (!Helper.GetBool("Evade.WTS", YasuoMenu.EvadeM) || sender.IsAlly || !SpellSlot.W.IsReady() || (!Helper.GetBool("Evade.FOW", YasuoMenu.EvadeM) && !sender.IsVisible))
{
return;
}
if (args.SData.Name.Equals("MissFortuneBulletTime"))
{
var ssdata = GetSpell(args.SData.Name);
if (ssdata.IsEnabled)
{
var end = args.Start.LSTo2D().LSExtend(args.End.LSTo2D(), 1400);
EvadeA.Geometry.Rectangle rect = new EvadeA.Geometry.Rectangle(args.Start.LSTo2D(), end, args.SData.LineWidth);
var topoly = rect.ToPolygon();
var newls = new LittleStruct { poly = topoly, argss = args, RealEndPos = end, StartTick = YasuoEvade.TickCount, data = ssdata };
DetectedPolygons.Add(newls);
LeagueSharp.Common.Utility.DelayAction.Add(3000, () => DetectedPolygons.Clear());
}
}
if (!args.Target.IsMe)
{
return;
}
//Console.WriteLine(args.SData.Name + " " + sender.BaseSkinName);
var sdata = GetSpell(args.SData.Name);
if (sdata != null && sdata.IsEnabled)
{
var castpos = Helper.Yasuo.ServerPosition.LSExtend(args.Start, 50);
LeagueSharp.Common.Utility.DelayAction.Add((int)sdata.delay, () => Helper.Spells[Helper.W].Cast(castpos));
}
}
示例6: Obj_AI_Base_OnProcessSpellCast
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
var enabled = Variable.Config["Enabled"].GetValue<MenuBool>().Value;
if (!enabled || !Variable.Player.IsTargetable || (sender == null || sender.Team == Variable.Player.Team))
{
return;
}
foreach (var champ in Variable.ExistingChampions)
{
var champion = Variable.Config["CAS"][champ.CharName];
if (champion == null || champion[champ.Slot.ToString()] == null || !champion[champ.Slot.ToString()].GetValue<MenuBool>().Value)
{
continue;
}
if (champ.Slot != (sender as Obj_AI_Hero).GetSpellSlot(args.SData.Name) ||
(!(Variable.Player.Distance(sender.Position) <= champ.Range) && args.Target != Variable.Player))
{
continue;
}
var vector =
new Vector3(
Variable.Player.Position.X +
((sender.Position.X - Variable.Player.Position.X)*(Internal.MoveTo(champ.Movement))/
Variable.Player.Distance(sender.Position)),
Variable.Player.Position.Y +
((sender.Position.Y - Variable.Player.Position.Y)*(Internal.MoveTo(champ.Movement))/
Variable.Player.Distance(sender.Position)), 0);
Variable.Player.IssueOrder(GameObjectOrder.MoveTo, vector);
Orbwalker.Movement = false;
DelayAction.Add((int) (champ.CastTime + 0.1)*1000, () => Orbwalker.Movement = true);
}
}
示例7: ExecuteComboLogic
internal static void ExecuteComboLogic(GameObjectProcessSpellCastEventArgs args)
{
if (args.Target is Obj_AI_Hero)
{
var qReady = Variables.spells[SpellSlot.Q].IsEnabledAndReady();
var wReady = Variables.spells[SpellSlot.W].IsEnabledAndReady();
var eReady = Variables.spells[SpellSlot.E].IsEnabledAndReady();
var target_ex = args.Target as Obj_AI_Hero;
if (qReady)
{
ExtendedQ();
}
if (qReady && (target_ex.Distance(ObjectManager.Player) < Variables.spells[SpellSlot.Q].Range - 65f + 0.25f * target_ex.MoveSpeed) && !LucianHooks.HasPassive)
{
Variables.spells[SpellSlot.Q].CastOnUnit(target_ex);
LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f),
() =>
{
ExecuteComboLogic(args);
});
TargetSelector.SetTarget(args.Target as Obj_AI_Hero);
}
if (wReady
&& !qReady
&& target_ex.IsValidTarget(Variables.spells[SpellSlot.W].Range)
&& !LucianHooks.HasPassive)
{
Variables.spells[SpellSlot.W].Cast(Variables.spells[SpellSlot.W].GetPrediction(target_ex).CastPosition);
LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f), () =>
{
ExecuteComboLogic(args);
});
TargetSelector.SetTarget(args.Target as Obj_AI_Hero);
}
if (eReady
&& target_ex.IsValidTarget(Variables.spells[SpellSlot.Q].Range + 300f + 65)
&& !LucianHooks.HasPassive
&& !ObjectManager.Player.IsWindingUp)
{
var eProvider = new EPositionProvider();;
var eEndPosition = eProvider.GetEPosition();
if (eEndPosition != Vector3.Zero && eEndPosition.Distance(target_ex.ServerPosition) < Orbwalking.GetRealAutoAttackRange(target_ex))
{
Variables.spells[SpellSlot.E].Cast(eEndPosition);
LeagueSharp.Common.Utility.DelayAction.Add((int)(250 + Game.Ping / 2f + ObjectManager.Player.AttackCastDelay + 560f),
() =>
{
Orbwalking.ResetAutoAttackTimer();
ExecuteComboLogic(args);
});
TargetSelector.SetTarget(args.Target as Obj_AI_Hero);
}
}
}
}
示例8: OnProcessSpellCast
protected override void OnProcessSpellCast(Obj_AI_Base unit, GameObjectProcessSpellCastEventArgs spell)
{
if (!unit.IsMe && unit.IsEnemy)
{
if (!spell.SData.IsAutoAttack() && spell.Target.IsMe && E.IsReady())
{
if (unit.IsChampion(unit.BaseSkinName))
{
if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.Combo)
{
if (config.Item("UseECombo").GetValue<bool>())
{
Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast());
}
}
if (myOrbwalker.ActiveMode == myOrbwalker.OrbwalkingMode.Harass)
{
if (config.Item("UseEHarass").GetValue<bool>())
{
Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast());
}
}
if (config.Item("UseEMisc").GetValue<bool>())
{
Utility.DelayAction.Add(myUtility.RandomDelay(0, 200), () => E.Cast());
}
}
}
}
}
示例9: SpellDetector_OnProcessSpecialSpell
private void SpellDetector_OnProcessSpecialSpell(Obj_AI_Base hero, GameObjectProcessSpellCastEventArgs args, SpellData spellData, SpecialSpellEventArgs specialSpellArgs)
{
if (spellData.spellName == "TaricE")
{
var sdata = new SpellData();
sdata.charName = "Taric";
sdata.name = "TaricE2";
sdata.spellName = "TaricE";
sdata.range = 750;
sdata.radius = 100;
sdata.fixedRange = true;
sdata.spellDelay = 1000;
sdata.projectileSpeed = int.MaxValue;
sdata.dangerlevel = 3;
var partner = HeroManager.Enemies.FirstOrDefault(x => x.HasBuff("taricwleashactive"));
if (partner != null && partner.ChampionName != "Taric")
{
var start = partner.ServerPosition.LSTo2D();
var direction = (args.End.LSTo2D() - start).LSNormalized();
var end = start + direction * spellData.range;
SpellDetector.CreateSpellData(partner, start.To3D(), end.To3D(), sdata);
}
}
}
示例10: Obj_AI_Base_OnProcessSpellCast
private static void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (sender.IsMe)
{
_lastAaTick = Environment.TickCount;
}
}
示例11: Obj_AI_Base_OnProcessSpellCast
private void Obj_AI_Base_OnProcessSpellCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (sender.IsMe && args.Slot == QWER.Slot)
{
MissileEndPos = args.End;
}
}
示例12: Specials
/// <summary>
/// Called on do-cast.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="args">The args.</param>
public static void Specials(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (!Vars.TypesMenu["defensives"].Cast<CheckBox>().CurrentValue)
{
return;
}
if (sender != null &&
args.Target != null)
{
/// <summary>
/// The Ohmwrecker logic.
/// </summary>
if (Items.CanUseItem(3056) &&
sender.LSIsValidTarget(750f))
{
if (args.Target.IsAlly &&
sender is Obj_AI_Turret &&
args.Target is AIHeroClient)
{
Items.UseItem(3056, sender);
}
}
}
}
示例13: OnDoCast
/// <summary>
/// Called when the sender is done doing the windup time for a spell/AA
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="args">The <see cref="GameObjectProcessSpellCastEventArgs"/> instance containing the event data.</param>
private void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
try
{
if (sender.IsMe && args.Slot == SpellSlot.R)
{
var QPosition = Provider.GetSOLOVayneQPosition();
if (QPosition != Vector3.Zero)
{
Variables.spells[SpellSlot.Q].Cast(QPosition);
return;
}
var secondaryQPosition = ObjectManager.Player.ServerPosition.Extend(Game.CursorPos, 300f);
if (!secondaryQPosition.UnderTurret(true))
{
Variables.spells[SpellSlot.Q].Cast(secondaryQPosition);
}
}
}
catch (Exception e)
{
LogHelper.AddToLog(new LogItem("AutoQifR", e, LogSeverity.Error));
}
}
示例14: OnProcessSCast
private static void OnProcessSCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (sender.IsMe && !args.SData.IsAutoAttack())
{
IsRunning = false;
}
}
示例15: Weaving
/// <summary>
/// Called on do-cast.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="args">The args.</param>
public static void Weaving(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args)
{
if (!(args.Target is AIHeroClient) ||
Invulnerable.Check(args.Target as AIHeroClient))
{
return;
}
/// <summary>
/// The W Weaving Logic.
/// </summary>
if (Vars.W.IsReady() &&
Menus.getCheckBoxItem(Vars.WMenu, "combo"))
{
Vars.W.Cast();
return;
}
/// <summary>
/// The Q Weaving Logic.
/// </summary>
if (Vars.Q.IsReady() &&
Menus.getCheckBoxItem(Vars.QMenu, "combo"))
{
Vars.Q.Cast(
Vars.Q.GetPrediction(Targets.Target)
.UnitPosition.Extend((Vector2)GameObjects.Player.ServerPosition, -140));
}
}