本文整理汇总了C#中Obj_AI_Base.IsHunted方法的典型用法代码示例。如果您正苦于以下问题:C# Obj_AI_Base.IsHunted方法的具体用法?C# Obj_AI_Base.IsHunted怎么用?C# Obj_AI_Base.IsHunted使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Obj_AI_Base
的用法示例。
在下文中一共展示了Obj_AI_Base.IsHunted方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CastBushwhack
// Human W Logic
internal static void CastBushwhack(Obj_AI_Base target, string mode)
{
// if not harass mode ignore mana check
if (!KL.CatForm() && KL.CanUse(KL.Spells["Bushwhack"], true, mode))
{
if (KL.Player.ManaPercent <= 65 && target.IsHunted() && target.CanMove)
{
return;
}
if (mode != "ha" || KL.Player.ManaPercent > 65)
{
if (target.IsValidTarget(KL.Spells["Bushwhack"].Range))
{
// try bushwhack prediction
if (getBoxItem(wHMenu, "ndhwforce") == 0)
{
if (target.IsChampion())
KL.Spells["Bushwhack"].CastIfHitchanceEquals(target, HitChance.VeryHigh);
else
KL.Spells["Bushwhack"].Cast(target.ServerPosition);
}
// try bushwhack behind target
if (getBoxItem(wHMenu, "ndhwforce") == 1)
{
var unitpos = KL.Spells["Bushwhack"].GetPrediction(target).UnitPosition;
KL.Spells["Bushwhack"].Cast(unitpos.Extend(KL.Player.ServerPosition, -75f));
}
}
}
}
}
示例2: CastBushwhack
// Human W Logic
internal static void CastBushwhack(Obj_AI_Base target, string mode)
{
// if not harass mode ignore mana check
if (!KL.CatForm() && KL.CanUse(KL.Spells["Bushwhack"], true, mode))
{
if (!target.IsValidTarget(KL.Spells["Bushwhack"].Range))
return;
if (KL.Player.ManaPercent <= 75 && target.IsHunted())
return;
if (mode == "ha" && KL.Player.ManaPercent < 65)
return;
// try bushwhack prediction
if (KN.Root.Item("ndhwforce").GetValue<StringList>().SelectedIndex == 0)
{
if (target.IsChampion())
KL.Spells["Bushwhack"].CastIfHitchanceEquals(target, HitChance.VeryHigh);
else
{
if ((KL.CanUse(KL.Spells["Javelin"], true, "jg") ||
KL.SpellTimer["Javelin"] > 4f) && target.Distance(KL.Player.ServerPosition) > 165f)
KL.Spells["Bushwhack"].Cast(target.Position.Extend(KL.Player.ServerPosition, 305f));
else
KL.Spells["Bushwhack"].Cast(target.Position.Extend(KL.Player.ServerPosition, 100f));
}
}
// try bushwhack behind target
if (KN.Root.Item("ndhwforce").GetValue<StringList>().SelectedIndex == 1)
{
if (target.IsChampion())
{
var unitpos = KL.Spells["Bushwhack"].GetPrediction(target).UnitPosition;
KL.Spells["Bushwhack"].Cast(unitpos.Extend(KL.Player.ServerPosition, -75f));
}
else
{
if ((KL.CanUse(KL.Spells["Javelin"], true, "jg") ||
KL.SpellTimer["Javelin"] > 4f) && target.Distance(KL.Player.ServerPosition) > 265f)
KL.Spells["Bushwhack"].Cast(target.Position.Extend(KL.Player.ServerPosition, +305f));
else
KL.Spells["Bushwhack"].Cast(target.Position.Extend(KL.Player.ServerPosition, 100f));
}
}
}
}
示例3: SwitchForm
//.........这里部分代码省略.........
}
}
}
}
// human -> catform
if (!KL.CatForm() && KL.CanUse(KL.Spells["Aspect"], true, mode))
{
switch (mode)
{
case "jg":
if (KL.Counter < getSliderItem(jungleMenu, "aareq") &&
getKeyBindItem(jungleMenu, "jgaacount"))
{
return;
}
break;
case "gap":
if (target.LSIsValidTarget(375))
{
KL.Spells["Aspect"].Cast();
return;
}
break;
case "wc":
if (target.LSIsValidTarget(375) && target.IsMinion)
{
KL.Spells["Aspect"].Cast();
return;
}
break;
}
if (target.IsHunted())
{
// force switch no swipe/takedown req
if (!getCheckBoxItem(rHMenu, "ndhrcreq") && mode == "co" ||
!getCheckBoxItem(rHMenu, "ndhrjreq") && mode == "jg")
{
KL.Spells["Aspect"].Cast();
return;
}
if (target.LSDistance(KL.Player) > KL.Spells["Takedown"].Range + 50 &&
!KL.CanUse(KL.Spells["Pounce"], false, mode))
return;
// or check if pounce timer is ready before switch
if (KL.Spells["Aspect"].IsReady() && target.LSIsValidTarget(KL.Spells["ExPounce"].Range))
{
// dont change form if swipe or takedown isn't ready
if ((KL.SpellTimer["Takedown"].IsReady() || KL.SpellTimer["Swipe"].IsReady()) &&
KL.SpellTimer["Pounce"].IsReady(1))
KL.Spells["Aspect"].Cast();
}
}
else
{
// check if in pounce range
if (target.LSIsValidTarget(KL.Spells["Pounce"].Range + 55))
{
if (mode != "jg")
{
// switch to cougar if can kill target
if (KL.CatDamage(target)*3 >= target.Health)
{
示例4: CastPounce
// Cougar W Logic
internal static void CastPounce(Obj_AI_Base target, string mode)
{
// check the actual spell timer and if we have it enabled in our menu
if (!KL.CatForm() || !KL.CanUse(KL.Spells["Pounce"], false, mode))
return;
// check if target is hunted in 750 range
if (!target.LSIsValidTarget(KL.Spells["ExPounce"].Range))
return;
if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo))
{
if (KL.Player.HealthPercent <= getSliderItem(wCMenu, "ndcwcHPChecl"))
{
return;
}
if (KL.Player.CountEnemiesInRange(750) >= getSliderItem(wCMenu, "ndcwcEnemy") && target.IsHunted())
{
return;
}
}
if (target.IsHunted())
{
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.LSDistance(KL.Player.BBox.Minimum) + 1;
// force pounce if menu item enabled
if (target.IsHunted() && getCheckBoxItem(wCMenu, "ndcwhunt") ||
// or of target is greater than my attack range
target.LSDistance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without farm distance check)
mode == "jg" || mode == "wc" && !getCheckBoxItem(wCMenu, "ndcwdistwc") ||
// or combo mode and ignoring distance check
!target.IsHunted() && mode == "co" && !getCheckBoxItem(wCMenu, "ndcwdistco"))
{
if (getCheckBoxItem(jungleMenu, "kitejg") && mode == "jg" &&
target.LSDistance(Game.CursorPos) > 600 && target.LSDistance(KL.Player.ServerPosition) <= 300)
{
KL.Spells["Pounce"].Cast(Game.CursorPos);
return;
}
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
}
// if target is not hunted
else
{
// check if in the original pounce range
if (target.LSDistance(KL.Player.ServerPosition) > KL.Spells["Pounce"].Range)
return;
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.LSDistance(KL.Player.BBox.Minimum) + 1;
// check minimum distance before pouncing
if (target.LSDistance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without distance checking)
mode == "jg" || mode == "wc" && !getCheckBoxItem(wCMenu, "ndcwdistwc") ||
// or combo mode with no distance checking
mode == "co" && !getCheckBoxItem(wCMenu, "ndcwdistco"))
{
if (target.IsChampion())
{
if (getCheckBoxItem(wCMenu, "ndcwcheck"))
{
var voutout = KL.Spells["Pounce"].GetPrediction(target);
if (voutout.Hitchance >= (HitChance) getBoxItem(wCMenu, "ndcwch") + 3)
{
KL.Spells["Pounce"].Cast(voutout.CastPosition);
}
}
else
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
else
{
// check pouncing near enemies
if (mode == "wc" && getCheckBoxItem(wCMenu, "ndcwene") &&
target.ServerPosition.CountEnemiesInRange(550) > 0)
return;
// check pouncing under turret
if (mode == "wc" && getCheckBoxItem(wCMenu, "ndcwtow") &&
target.ServerPosition.UnderTurret(true))
return;
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
}
}
//.........这里部分代码省略.........
示例5: CastPounce
// Cougar W Logic
internal static void CastPounce(Obj_AI_Base target, string mode)
{
if (!ES.CatForm())
return;
// check the actual spell timer and if we have it enabled in our menu
if (!ES.SpellTimer["Pounce"].IsReady() || !KN.Root.Item("ndcw" + mode).GetValue<bool>())
return;
// check if target is hunted in 750 range
if (!target.IsValidTarget(ES.Spells["ExPounce"].Range))
return;
if (target.IsHunted())
{
var radius = ES.Player.AttackRange + ES.Player.Distance(ES.Player.BBox.Minimum) + 1;
// force pounce if menu item enabled
if (target.IsHunted() && KN.Root.Item("ndcwhunt").GetValue<bool>() ||
// or of target is greater than my attack range
target.Distance(ES.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without farm distance check)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode and ignoring distance check
mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
// allow kiting between pounce if desired
if (mode == "jg" && target.Distance(ES.Player.ServerPosition) < 250)
ES.Spells["Pounce"].Cast(!KN.Root.Item("jgsticky").GetValue<bool>()
? Game.CursorPos : target.ServerPosition);
else
ES.Spells["Pounce"].Cast(target.ServerPosition);
}
}
// if target is not hunted
else
{
if (target.Distance(ES.Player.ServerPosition) > ES.Spells["Pounce"].Range)
return;
var radius = ES.Player.AttackRange + ES.Player.Distance(ES.Player.BBox.Minimum) + 1;
// check minimum distance before pouncing
if (target.Distance(ES.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without distance checking)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode with no distance checking
mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
if (target.IsChampion())
{
// todo: update with vector prediction
if (KN.Root.Item("ndcwcheck").GetValue<bool>())
ES.Spells["Pounce"].Cast(target.ServerPosition);
else
ES.Spells["Pounce"].Cast(target.ServerPosition);
}
else
{
// check pouncing near enemies
if (mode == "wc" && KN.Root.Item("ndcwhunt").GetValue<bool>() &&
target.ServerPosition.CountEnemiesInRange(850) > 0)
return;
// check pouncing under turret
if (mode == "wc" && KN.Root.Item("ndcwtow").GetValue<bool>() &&
target.ServerPosition.UnderTurret(true))
return;
// allow kiting between pounce if desired
if (mode == "jg" && target.Distance(ES.Player.ServerPosition) < 250)
ES.Spells["Pounce"].Cast(!KN.Root.Item("jgsticky").GetValue<bool>()
? Game.CursorPos : target.ServerPosition);
else
ES.Spells["Pounce"].Cast(target.ServerPosition);
}
}
}
}
示例6: SwitchForm
internal static void SwitchForm(Obj_AI_Base target, string mode)
{
if (!target.IsValidTarget(ES.Spells["Javelin"].Range))
return;
// catform -> human
if (ES.CatForm() && ES.Spells["Aspect"].IsReady() && KN.Root.Item("ndcr" + mode).GetValue<bool>())
{
var radius = ES.Player.AttackRange + ES.Player.Distance(ES.Player.BBox.Minimum) + 1;
// change form if Q is ready and meets hitchance
if (ES.SpellTimer["Javelin"].IsReady())
{
if (target.IsChampion())
{
HitChance hitchance;
var objHero = target as Obj_AI_Hero;
var pos = SPrediction.Prediction.GetPredictionMethod2(target, ES.Spells["Javelin"],
objHero.GetWaypoints(), objHero.AvgMovChangeTime(), objHero.LastMovChangeTime(),
objHero.AvgPathLenght(), out hitchance, ES.Player.ServerPosition);
if (!ES.Spells["Javelin"].DoesCollide(pos) && hitchance >= HitChance.Low)
ES.Spells["Aspect"].Cast();
}
}
// is jungling
if (mode == "jg")
{
if (Game.CursorPos.Distance(ES.Player.ServerPosition) >= 375)
{
if (!KN.Root.Item("jgsticky").GetValue<bool>())
ES.Spells["Aspect"].Cast();
}
if (ES.SpellTimer["Bushwhack"].IsReady() || ES.SpellTimer["Javelin"].IsReady())
{
if (!ES.Spells["Javelin"].DoesCollide(target.ServerPosition.To2D()))
{
if (!ES.SpellTimer["Swipe"].IsReady() && !ES.SpellTimer["Takedown"].IsReady() &&
!ES.SpellTimer["Pounce"].IsReady(2))
ES.Spells["Aspect"].Cast();
}
}
}
else
{
// change to human if out of pounce range and can die
if (!ES.SpellTimer["Pounce"].IsReady() && target.Distance(ES.Player.ServerPosition) <= 525)
{
if (target.Distance(ES.Player.ServerPosition) > radius)
{
if (ES.Player.GetAutoAttackDamage(target, true) * 3 >= target.Health)
ES.Spells["Aspect"].Cast();
}
}
}
}
// human -> catform
if (ES.CatForm() || !ES.Spells["Aspect"].IsReady() || !KN.Root.Item("ndhr" + mode).GetValue<bool>())
return;
if (mode == "jg" && ES.Counter < 2 && KN.Root.Item("jgaacount").GetValue<bool>())
return;
if (mode == "gap")
{
if (target.IsValidTarget(375))
{
ES.Spells["Aspect"].Cast();
return;
}
}
// pounce only hunted
if (KN.Root.Item("ndhrwh").GetValue<StringList>().SelectedIndex == 1)
{
if (target.IsValidTarget(ES.Spells["ExPounce"].Range) && target.IsHunted())
ES.Spells["Aspect"].Cast();
}
// pounce always any condition
if (KN.Root.Item("ndhrwh").GetValue<StringList>().SelectedIndex == 2)
{
if (mode == "wc")
{
if (target.IsValidTarget(375) && target.IsMinion)
{
ES.Spells["Aspect"].Cast();
return;
}
}
if (target.IsValidTarget(ES.Spells["ExPounce"].Range) && target.IsHunted())
ES.Spells["Aspect"].Cast();
if (target.IsValidTarget(ES.Spells["Pounce"].Range) && !target.IsHunted())
//.........这里部分代码省略.........
示例7: SwitchForm
internal static void SwitchForm(Obj_AI_Base target, string mode)
{
if (!target.IsValidTarget(KL.Spells["Javelin"].Range))
return;
// catform -> human
if (KL.CatForm() && KL.Spells["Aspect"].IsReady() && KN.Root.Item("ndcr" + mode).GetValue<bool>())
{
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.Distance(KL.Player.BBox.Minimum) + 1;
// dont switch if have Q buff and near target
if (KL.SpellTimer["Takedown"].IsReady() && KL.Player.HasBuff("Takedown") &&
target.Distance(KL.Player.ServerPosition) <= KL.Spells["Takedown"].Range + 45f)
{
return;
}
// change form if Q is ready and meets hitchance
if (KL.SpellTimer["Javelin"].IsReady() && target.IsChampion())
{
var poutput = KL.Spells["Javelin"].GetPrediction(target);
if (poutput.Hitchance >= HitChance.High)
{
KL.Spells["Aspect"].Cast();
}
}
// is jungling
if (mode == "jg")
{
if (KL.SpellTimer["Bushwhack"].IsReady() && KL.Spells["Bushwhack"].Level > 0 ||
KL.SpellTimer["Javelin"].IsReady() && KL.Spells["Javelin"].Level > 0)
{
if (KL.Spells["Javelin"].Cast(target) != Spell.CastStates.Collision &&
KL.SpellTimer["Javelin"].IsReady() || KL.SpellTimer["Bushwhack"].IsReady())
{
if (!KL.SpellTimer["Swipe"].IsReady() || !KL.SpellTimer["Takedown"].IsReady() ||
KL.Player.Distance(target.ServerPosition) > 355)
{
KL.Spells["Aspect"].Cast();
}
}
}
}
else
{
// change to human if out of pounce range and can die
if (!KL.SpellTimer["Pounce"].IsReady() && target.Distance(KL.Player.ServerPosition) <= 525)
{
if (target.Distance(KL.Player.ServerPosition) > radius)
{
if (KL.Player.GetAutoAttackDamage(target, true) * 3 >= target.Health)
KL.Spells["Aspect"].Cast();
}
}
}
}
// human -> catform
if (!KL.CatForm() && KL.Spells["Aspect"].IsReady() && KN.Root.Item("ndhr" + mode).GetValue<bool>())
{
if (mode == "jg")
{
if (KL.Counter < KN.Root.Item("aareq").GetValue<Slider>().Value &&
KN.Root.Item("jgaacount").GetValue<KeyBind>().Active)
{
return;
}
}
if (mode == "gap")
{
if (target.IsValidTarget(375))
{
KL.Spells["Aspect"].Cast();
return;
}
}
if (mode == "wc")
{
if (target.IsValidTarget(375) && target.IsMinion)
{
KL.Spells["Aspect"].Cast();
return;
}
}
if (target.IsHunted())
{
// force switch no swipe/takedown req
if (!KN.Root.Item("ndhrcreq").GetValue<bool>() && mode == "co" ||
!KN.Root.Item("ndhrjreq").GetValue<bool>() && mode == "jg")
{
KL.Spells["Aspect"].Cast();
return;
}
if (target.Distance(KL.Player) > KL.Spells["Takedown"].Range + 50 &&
//.........这里部分代码省略.........
示例8: CastPounce
// Cougar W Logic
internal static void CastPounce(Obj_AI_Base target, string mode)
{
// check the actual spell timer and if we have it enabled in our menu
if (!KL.CatForm() || !KL.SpellTimer["Pounce"].IsReady() || !KN.Root.Item("ndcw" + mode).GetValue<bool>())
return;
// check if target is hunted in 750 range
if (!target.IsValidTarget(KL.Spells["ExPounce"].Range))
return;
if (target.IsHunted())
{
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.Distance(KL.Player.BBox.Minimum) + 1;
// force pounce if menu item enabled
if (target.IsHunted() && KN.Root.Item("ndcwhunt").GetValue<bool>() ||
// or of target is greater than my attack range
target.Distance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without farm distance check)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode and ignoring distance check
!target.IsHunted() && mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
if (KN.Root.Item("kitejg").GetValue<bool>() && mode == "jg" &&
target.Distance(Game.CursorPos) > 700 &&
target.Distance(KL.Player.ServerPosition) <= 300)
{
KL.Spells["Pounce"].Cast(Game.CursorPos);
return;
}
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
}
// if target is not hunted
else
{
// check if in the original pounce range
if (target.Distance(KL.Player.ServerPosition) > KL.Spells["Pounce"].Range)
return;
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.Distance(KL.Player.BBox.Minimum) + 1;
// check minimum distance before pouncing
if (target.Distance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without distance checking)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode with no distance checking
mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
if (target.IsChampion())
{
if (KN.Root.Item("ndcwcheck").GetValue<bool>())
{
var voutout = KL.Spells["Pounce"].GetPrediction(target);
if (voutout.Hitchance >= (HitChance) KN.Root.Item("ndcwch").GetValue<StringList>().SelectedIndex + 3)
{
KL.Spells["Pounce"].Cast(voutout.CastPosition);
}
}
else
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
else
{
// check pouncing near enemies
if (mode == "wc" && KN.Root.Item("ndcwene").GetValue<bool>() &&
target.ServerPosition.CountEnemiesInRange(550) > 0)
return;
// check pouncing under turret
if (mode == "wc" && KN.Root.Item("ndcwtow").GetValue<bool>() &&
target.ServerPosition.UnderTurret(true))
return;
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
}
}
}
示例9: SwitchForm
//.........这里部分代码省略.........
}
}
}
}
// human -> catform
if (!KL.CatForm() && KL.CanUse(KL.Spells["Aspect"], true, mode))
{
switch (mode)
{
case "jg":
if (KL.Counter < KN.Root.Item("aareq").GetValue<Slider>().Value &&
KN.Root.Item("jgaacount").GetValue<KeyBind>().Active)
{
return;
}
break;
case "gap":
if (target.IsValidTarget(375))
{
KL.Spells["Aspect"].Cast();
return;
}
break;
case "wc":
if (target.IsValidTarget(375) && target.IsMinion)
{
KL.Spells["Aspect"].Cast();
return;
}
break;
}
if (target.IsHunted())
{
// force switch no swipe/takedown req
if (!KN.Root.Item("ndhrcreq").GetValue<bool>() && mode == "co" ||
!KN.Root.Item("ndhrjreq").GetValue<bool>() && mode == "jg")
{
KL.Spells["Aspect"].Cast();
return;
}
// dis b for level 1 nid
// stop form switch when W is not leveled or disabled.
if (!KL.CanUse(KL.Spells["Pounce"], false, mode))
{
// block the form switch if greater than couger Q range
if (target.Distance(KL.Player) > KL.Spells["Takedown"].Range + 50)
{
return;
}
}
// or check if pounce timer is ready before switch
if (KL.Spells["Aspect"].IsReady() && target.IsValidTarget(KL.Spells["ExPounce"].Range))
{
// dont change form if swipe or takedown isn't ready
if ((KL.SpellTimer["Takedown"].IsReady() || KL.SpellTimer["Swipe"].IsReady()) &&
KL.SpellTimer["Pounce"].IsReady(1))
KL.Spells["Aspect"].Cast();
}
}
else
{
// check if in pounce range
示例10: CastPounce
// Cougar W Logic
internal static void CastPounce(Obj_AI_Base target, string mode)
{
// check the actual spell timer and if we have it enabled in our menu
if (!KL.CatForm() || !KL.CanUse(KL.Spells["Pounce"], false, mode))
return;
// check if target is hunted in 750 range
if (!target.IsValidTarget(KL.Spells["ExPounce"].Range))
return;
if (target.IsHunted())
{
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.Distance(KL.Player.BBox.Minimum) + 1;
// force pounce if menu item enabled
if (target.IsHunted() && KN.Root.Item("ndcwhunt").GetValue<bool>() ||
// or of target is greater than my attack range
target.Distance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without farm distance check)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode and ignoring distance check
!target.IsHunted() && mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
if (KN.Root.Item("kitejg").GetValue<bool>() && mode == "jg")
{
if (target.Distance(Game.CursorPos) > 600 && target.Distance(KL.Player.ServerPosition) <= 300)
{
KL.Spells["Pounce"].Cast(Game.CursorPos);
return;
}
}
KL.Spells["Pounce"].Cast(target.ServerPosition);
}
}
// if target is not hunted
else
{
// check if in the original pounce range
if (target.Distance(KL.Player.ServerPosition) > KL.Spells["Pounce"].Range)
return;
// get hitbox
var radius = KL.Player.AttackRange + KL.Player.Distance(KL.Player.BBox.Minimum) + 1;
// if greater than our hitbox radius pounce!
if (target.Distance(KL.Player.ServerPosition) > radius ||
// or is jungling or waveclearing (without distance checking)
mode == "jg" || mode == "wc" && !KN.Root.Item("ndcwdistwc").GetValue<bool>() ||
// or combo mode with no distance checking
mode == "co" && !KN.Root.Item("ndcwdistco").GetValue<bool>())
{
if (target.IsChampion())
{
if (KN.Root.Item("ndcwcheck").GetValue<bool>())
{
switch (KN.Root.Item("ppred").GetValue<StringList>().SelectedValue)
{
case "OKTW":
PredictionInput pi;
pi = new PredictionInput();
pi.Aoe = false;
pi.Collision = true;
pi.Speed = 1300f;
pi.Delay = 0.25f;
pi.Range = 1500f;
pi.From = KN.Player.ServerPosition;
pi.Radius = 40f;
pi.Unit = target;
pi.Type = SkillshotType.SkillshotLine;
var po = Prediction.GetPrediction(pi);
if (po.Hitchance >= (SebbyLib.Prediction.HitChance)(KN.Root.Item("ndhqch").GetValue<StringList>().SelectedIndex + 3))
{
KL.Spells["Javelin"].Cast(po.CastPosition);
}
break;
case "SPrediction":
var so = KL.Spells["Javelin"].GetSPrediction((Obj_AI_Hero)target);
if (so.HitChance >= (HitChance)(KN.Root.Item("ndhqch").GetValue<StringList>().SelectedIndex + 3))
{
KL.Spells["Javelin"].Cast(so.CastPosition);
}
break;
case "Common":
var co = KL.Spells["Javelin"].GetPrediction(target);
if (co.Hitchance >= (HitChance)(KN.Root.Item("ndhqch").GetValue<StringList>().SelectedIndex + 3))
{
KL.Spells["Javelin"].Cast(co.CastPosition);
}
break;
}
//.........这里部分代码省略.........