public static Vars Parse(string[] lines, bool ignoreWhiteSpace = false) { Vars vars = new Vars(); for (int i = 0; i < lines.Length; i++) { string line = lines[i]; // skip comments if (IsComment(line)) continue; line = RemoveInlineComment(line); line = RemoveExportKeyword(line); string[] keyValuePair = line.Split('='); // skip malformed lines if (keyValuePair.Length != 2) continue; if (!ignoreWhiteSpace) { keyValuePair[0] = keyValuePair[0].Trim(); keyValuePair[1] = keyValuePair[1].Trim(); } vars.Add( keyValuePair[0], keyValuePair[1] ); } return vars; }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.LSIsValidTarget()) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.LSIsValidTarget(Vars.AARange) && GameObjects.Player.HasBuff("asheqcastready") && Vars.getCheckBoxItem(Vars.QMenu, "combo")) { Vars.Q.Cast(); } if (Targets.Target.LSIsValidTarget(Vars.AARange + 20)) { return; } /// <summary> /// The W Combo Logic. /// </summary> if (Vars.W.IsReady() && !Invulnerable.Check(Targets.Target) && Targets.Target.LSIsValidTarget(Vars.W.Range) && Vars.getCheckBoxItem(Vars.WMenu, "combo")) { if (!Vars.W.GetPrediction(Targets.Target).CollisionObjects.Any()) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).UnitPosition); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The Q Clear Logics. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.HealthPercent > ManaManager.GetNeededHealth(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) && Vars.getSliderItem(Vars.QMenu, "clear") != 101) { /// <summary> /// The Q LaneClear Logic. /// </summary> if (Targets.Minions.Any()) { foreach (var minion in Targets.Minions.Where(m => Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(minion).CollisionObjects.Any(c => Targets.Minions.Contains(c))) { Vars.Q.Cast(Vars.Q.GetPrediction(minion).UnitPosition); } } } /// <summary> /// The Q JungleClear Logic. /// </summary> else if (Targets.JungleMinions.Any()) { Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition); } } }
/// <summary> /// Called on orbwalker action. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The <see cref="OrbwalkingActionArgs" /> instance containing the event data.</param> public static void OnAction(AttackableUnit target, Orbwalker.PreAttackArgs args) { /// <summary> /// The Target Forcing Logic. /// </summary> if (args.Target is AIHeroClient) { if (!GameObjects.EnemyHeroes.Any( t => t.LSIsValidTarget(Vars.AARange) && t.HasBuff("luxilluminatingfraulein"))) { Orbwalker.ForcedTarget = null; return; } Orbwalker.ForcedTarget = GameObjects.EnemyHeroes.FirstOrDefault( t => t.LSIsValidTarget(Vars.AARange) && t.HasBuff("luxilluminatingfraulein")); return; } if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LaneClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.JungleClear) || Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.LastHit)) { /// <summary> /// The 'Support Mode' Logic. /// </summary> if (Vars.getCheckBoxItem(Vars.MiscMenu, "support")) { if (args.Target is Obj_AI_Minion && GameObjects.AllyHeroes.Any(a => a.Distance(GameObjects.Player) < 2500)) { args.Process = false; } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.LSIsValidTarget(Vars.Q.Range) && Vars.getCheckBoxItem(Vars.QMenu, "combo")) { Vars.Q.CastOnUnit(Targets.Target); } /// <summary> /// The R Gapclose Logic. /// </summary> if (Vars.R.IsReady() && !Targets.Target.LSIsValidTarget(Vars.R.Range) && Targets.Target.LSIsValidTarget(Vars.R.Range * 2) && GameObjects.Player.GetBuffCount("AkaliShadowDance") >= Vars.getSliderItem(Vars.MiscMenu, "gapclose") && Vars.getSliderItem(Vars.MiscMenu, "gapclose") != 4) { foreach (var minion in Targets.Minions.Where( m => m.LSIsValidTarget(Vars.R.Range) && m.Distance(Targets.Target) < Vars.Q.Range)) { Vars.R.CastOnUnit(minion); } } }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Clear(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The Clear Q Logics. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "clear")) && Vars.getSliderItem(Vars.QMenu, "clear") != 101) { /// <summary> /// The JungleClear Q Logic. /// </summary> if (Targets.JungleMinions.Any()) { Vars.Q.Cast(Targets.JungleMinions[0].ServerPosition); } /// <summary> /// The LaneClear Q Logic. /// </summary> else if (!GameObjects.EnemyHeroes.Any( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range + 100f))) { if (Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).MinionsHit >= 3) { Vars.Q.Cast(Vars.Q.GetLineFarmLocation(Targets.Minions, Vars.Q.Width).Position); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.IsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The E Combo Logic. /// </summary> if (Vars.E.IsReady() && Targets.Target.IsValidTarget(Vars.E.Range) && !Targets.Target.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && Vars.Menu["spells"]["e"]["engager"].GetValue <MenuBool>().Value) { if (GameObjects.Player.Distance(Game.CursorPos) > GameObjects.Player.GetRealAutoAttackRange() && GameObjects.Player.ServerPosition.Extend( Game.CursorPos, Vars.E.Range - GameObjects.Player.GetRealAutoAttackRange()).CountEnemyHeroesInRange(1000f) < 3 && Targets.Target.Distance( GameObjects.Player.ServerPosition.Extend( Game.CursorPos, Vars.E.Range - GameObjects.Player.GetRealAutoAttackRange())) < GameObjects.Player.GetRealAutoAttackRange()) { Vars.E.Cast(Game.CursorPos); } } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.IsValidTarget(Vars.Q.Range) && !Vars.AnyWall(GameObjects.Player.ServerPosition, Vars.Q.GetPrediction(Targets.Target).UnitPosition) && Vars.Menu["spells"]["q"]["combo"].GetValue <MenuBool>().Value) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).UnitPosition); } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && Vars.getCheckBoxItem(Vars.EMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.E.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.E))) { Vars.E.CastOnUnit(target); return; } } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.Spellbook.GetSpell(SpellSlot.Q).ToggleState == 1 && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && Vars.GetRealHealth(t) < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.Q.Range) && !t.IsValidTarget(Vars.AaRange) && !Invulnerable.Check(t, DamageType.Magical, false) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(Targets.Target).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); return; } } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.Menu["spells"]["r"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.R.Range) && !t.IsValidTarget(Vars.AaRange) && !Invulnerable.Check(t, DamageType.Magical, false) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.R))) { Vars.R.CastOnUnit(target); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (Bools.HasSheenBuff()) { return; } /// <summary> /// The Automatic Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "logical")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => Bools.IsImmobile(t) && !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range))) { Vars.Q.Cast(target.ServerPosition); } } }
public override void Start() { engineComponent = FindObjectOfType <EngineComponent>(); aimingComponent = FindObjectOfType <AimingComponent>(); damageComponent = FindObjectOfType <DamageComponent>(); aimingComponent.PropertyChanged += (sender, args) => playerGun.ShootingAbility.shootingPeriodCoefficient = aimingComponent.Value; damageComponent.PropertyChanged += (sender, args) => playerGun.ShootingAbility.bullet.damageCoefficient = damageComponent.Value; rb = GetComponent <Rigidbody2D>(); playerCollider = GetComponent <Collider2D>(); playerGun = GetComponentInChildren <GunController>(); damagePart = Vars.GetCarPart(PartType.Damage); shootingPart = Vars.GetCarPart(PartType.Shooting); armorPart = Vars.GetCarPart(PartType.Armor); enginePart = Vars.GetCarPart(PartType.Engine); base.Start(); StartCoroutine(ApplyParts()); }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void Clear(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { /// <summary> /// The Q FarmHelper Logic. /// </summary> if (Vars.Q.IsReady() && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.Menu["spells"]["q"]["farmhelper"]) && Vars.Menu["spells"]["q"]["farmhelper"].GetValue <MenuSliderButton>().BValue) { if (Targets.Minions.Any() && Targets.Minions.Count( m => Vars.GetRealHealth(m) < GameObjects.Player.GetAutoAttackDamage(m) + (float)GameObjects.Player.GetSpellDamage(m, SpellSlot.Q) && m.Distance(GameObjects.Player.ServerPosition.Extend(Game.CursorPos, 300f)) < GameObjects.Player.GetRealAutoAttackRange()) > 1) { Vars.Q.Cast(Game.CursorPos); } } }
private void UpdateVariable(string key, HybInstance value) { if (Vars.UpdateValue(key, value) == false) { if (Ctx._this != null) { if (Ctx._this.SetPropertyOrField(key, value, AccessLevel.This)) { return; } } if (Ctx.Method.DeclaringType.SetStaticPropertyOrField(key, value, AccessLevel.This)) { return; } } else { return; } throw new SemanticViolationException($"No such variable in current context: {key}."); }
/// <summary> /// Fired when the game is updated. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void LastHit(EventArgs args) { /// <summary> /// The E LastHit Logic. /// </summary> if (Vars.E.IsReady() && Vars.getSliderItem(Vars.EMenu, "lasthit") != 101) { DelayAction.Add(Vars.getSliderItem(Vars.EMenu, "delay"), () => { foreach (var minion in Targets.Minions.Where( m => Vars.GetRealHealth(m) < (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E) + (m.HasBuffOfType(BuffType.Poison) ? (float)GameObjects.Player.LSGetSpellDamage(m, SpellSlot.E, DamageStage.Empowered) : 0))) { Vars.E.CastOnUnit(minion); } }); } }
/// <summary> /// Called on do-cast. /// </summary> /// <param name="sender">The sender.</param> /// <param name="args">The args.</param> public static void OnDoCast(Obj_AI_Base sender, GameObjectProcessSpellCastEventArgs args) { if (sender.IsMe) { if (Orbwalker.ActiveModesFlags.HasFlag(Orbwalker.ActiveModes.Combo)) { switch (args.SData.Name) { case "CaitlynEntrapment": case "CaitlynEntrapmentMissile": if (Vars.W.IsReady() && Vars.getCheckBoxItem(Vars.WMenu, "combo")) { Vars.W.Cast(Vars.E.GetPrediction(Targets.Target).CastPosition); } break; default: break; } } } }
/// <summary> /// Fired on an incoming gapcloser. /// </summary> /// <param name="sender">The object.</param> /// <param name="args">The <see cref="Events.GapCloserEventArgs" /> instance containing the event data.</param> public static void OnGapCloser(object sender, Events.GapCloserEventArgs args) { if (Vars.E.IsReady() && args.IsDirectedToPlayer && args.Sender.LSIsValidTarget(Vars.E.Range) && !Invulnerable.Check(args.Sender, DamageType.Magical, false) && Vars.getCheckBoxItem(Vars.EMenu, "gapcloser")) { if (!Vars.E.GetPrediction(args.Sender).CollisionObjects.Any()) { Vars.E.Cast(args.Sender.ServerPosition); return; } } if (Vars.W.IsReady() && args.Sender.IsValidTarget(Vars.W.Range) && !Invulnerable.Check(args.Sender, DamageType.Magical, false) && Vars.getCheckBoxItem(Vars.WMenu, "gapcloser")) { Vars.W.Cast(args.End); } }
public GCondStmt(string text) { this.Text = text; StmtType = GimpleStmtType.GCOND; Pattern = myPattern; var match = Regex.Match(text, myPattern); Op1 = match.Groups["op1"].Value; Op2 = match.Groups["op2"].Value; Op = match.Groups["op"].Value; //if ( Op == "==" || Op == "!=" ) //{ // if ( Op1.CompareTo ( Op2 ) > 0 ) // { // var temp = Op1; // Op1 = Op2; // Op2 = temp; // } //} Vars.AddRange(new[] { Op1, Op2 }.Where(x => IsValidIdentifier(x))); }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The W Combo Logic. /// </summary> if (Vars.W.IsReady() && Targets.Target.LSIsValidTarget(Vars.W.Range) && Vars.getCheckBoxItem(Vars.WMenu, "combo")) { if (!GameObjects.Player.HasBuff("TwitchFullAutomatic") && Targets.Target.GetBuffCount("twitchdeadlyvenom") <= 4) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).CastPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.LSIsValidTarget(Vars.Q.Range) && Vars.getCheckBoxItem(Vars.QMenu, "combo")) { if (!Targets.Target.LSIsValidTarget(Vars.AARange) && Vars.Q.GetPrediction(Targets.Target).Hitchance >= HitChance.High) { Vars.Q.Cast( Vars.Q.GetPrediction(Targets.Target) .UnitPosition.Extend((Vector2)GameObjects.Player.ServerPosition, -140)); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { if (!Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The Q Harass Logic. /// </summary> if (Vars.Q.IsReady() && !GameObjects.Player.IsUnderEnemyTurret() && Targets.Target.LSIsValidTarget(Vars.Q.Range) && GameObjects.Player.HealthPercent > ManaManager.GetNeededHealth(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "harass")) && Vars.getSliderItem(Vars.QMenu, "harass") != 101) { if (!Vars.Q.GetPrediction(Targets.Target).CollisionObjects.Any(c => Targets.Minions.Contains(c))) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).UnitPosition); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { if (!Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The W Harass Logic. /// </summary> if (Vars.W.IsReady() && Targets.Target.LSIsValidTarget(Vars.W.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "harass")) && Vars.getSliderItem(Vars.WMenu, "harass") != 101) { if (!Vars.W.GetPrediction(Targets.Target).CollisionObjects.Any()) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).UnitPosition); } } }
public static string[] getPath(int lv) { List <string> list = new List <string>(); List <string> L = Vars.getdata(PATHFINDER, "Barbarian"); double d = lv / 2; int num = Convert.ToInt32(Math.Floor(d)); for (int i = 0; i < num; i++) { int roll = Rolling.RollD(L.Count); string value = L[roll]; if (Vars.isDuplicate(list, value) == false) { list.Add(value); } else { num++; } } return(list.ToArray()); }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && !t.IsValidTarget(Vars.AaRange) && t.IsValidTarget(Vars.Q.Range - 100f) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { if (!Vars.Q.GetPrediction(target).CollisionObjects.Any()) { Vars.Q.Cast(Vars.Q.GetPrediction(target).UnitPosition); } } } /// <summary> /// The KillSteal E Logic. /// </summary> if (Vars.E.IsReady() && Vars.Menu["spells"]["e"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.E.Range) && !t.IsValidTarget(Vars.AaRange) && Vars.GetRealHealth(t) < GameObjects.Player.GetAutoAttackDamage(t) * 2 + (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.E))) { Vars.E.CastOnUnit(target); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Harass(EventArgs args) { if (!Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target, EloBuddy.DamageType.Magical, false)) { return; } /// <summary> /// The Q Combo Logic. /// </summary> if (Vars.Q.IsReady() && Targets.Target.LSIsValidTarget(Vars.Q.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.Q.Slot, Vars.getSliderItem(Vars.QMenu, "harass")) && Vars.getSliderItem(Vars.QMenu, "harass") != 101) { Vars.Q.Cast(Vars.Q.GetPrediction(Targets.Target).CastPosition); return; } /// <summary> /// The W Combo Logic. /// </summary> DelayAction.Add(1000, () => { if (Vars.W.IsReady() && Targets.Target.LSIsValidTarget(Vars.W.Range) && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.W.Slot, Vars.getSliderItem(Vars.WMenu, "harass")) && Vars.getSliderItem(Vars.WMenu, "harass") != 101) { Vars.W.Cast(Vars.W.GetPrediction(Targets.Target).CastPosition); } }); }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.getCheckBoxItem(Vars.QMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.Q.Range) && t.Health < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); return; } } /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.R.Range) && t.Health < (float)GameObjects.Player.LSGetSpellDamage(t, SpellSlot.R))) { Vars.R.CastOnUnit(target); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Automatic(EventArgs args) { if (GameObjects.Player.IsRecalling()) { return; } /// <summary> /// The Automatic R LastHit Logics. /// </summary> if (Vars.R.IsReady() && Variables.Orbwalker.ActiveMode != OrbwalkingMode.Combo && GameObjects.Player.ManaPercent > ManaManager.GetNeededMana(Vars.R.Slot, Vars.Menu["spells"]["r"]["farmhelper"]) && Vars.Menu["spells"]["r"]["farmhelper"].GetValue <MenuSliderButton>().BValue) { foreach (var minion in GameObjects.EnemyMinions.Where( m => m.IsValidTarget(Vars.R.Range) && !m.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()))) { if (Vars.GetRealHealth(minion) < (float) GameObjects.Player.GetSpellDamage( minion, SpellSlot.R, GameObjects.Player.HasBuff("corkimissilebarragecounterbig") ? DamageStage.Empowered : DamageStage.Default)) { if (!Vars.R.GetPrediction(minion).CollisionObjects.Any(c => Targets.Minions.Contains(c))) { Vars.R.Cast(minion.ServerPosition); } } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal W Logic. /// </summary> if (Vars.W.IsReady() && Vars.Menu["spells"]["w"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.W.Range) && !t.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.W) + (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.W.CastOnUnit(target); return; } } /// <summary> /// The KillSteal Q Logic. /// </summary> if (Vars.Q.IsReady() && Vars.Menu["spells"]["q"]["killsteal"].GetValue <MenuBool>().Value) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.IsValidTarget(Vars.Q.Range) && !t.IsValidTarget(GameObjects.Player.GetRealAutoAttackRange()) && Vars.GetRealHealth(t) < (float)GameObjects.Player.GetSpellDamage(t, SpellSlot.Q))) { Vars.Q.CastOnUnit(target); } } }
public static void Orbwalker_OnPreAttack(AttackableUnit target, Orbwalker.PreAttackArgs args) { /// <summary> /// Stop attack commands while channeling R. /// </summary> if (GameObjects.Player.HasBuff("missfortunebulletsound")) { args.Process = false; } /// <summary> /// The Target Switching Logic (Passive Stacks). /// </summary> if (args.Target is AIHeroClient && args.Target.NetworkId == Vars.PassiveTarget.NetworkId && Vars.getCheckBoxItem(Vars.MiscMenu, "passive")) { if (Vars.GetRealHealth(args.Target as AIHeroClient) > GameObjects.Player.GetAutoAttackDamage(args.Target as AIHeroClient) * 3) { if (!GameObjects.EnemyHeroes.Any( t => t.IsValidTarget(Vars.AARange) && t.NetworkId != Vars.PassiveTarget.NetworkId)) { Orbwalker.ForcedTarget = null; return; } args.Process = false; Orbwalker.ForcedTarget = GameObjects.EnemyHeroes.Where( t => t.IsValidTarget(Vars.AARange) && t.NetworkId != Vars.PassiveTarget.NetworkId).OrderByDescending(o => TargetSelector.GetPriority(o)).First(); } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal R Logic. /// </summary> if (Vars.R.IsReady() && Vars.getCheckBoxItem(Vars.RMenu, "killsteal")) { foreach (var target in GameObjects.EnemyHeroes.Where( t => !Invulnerable.Check(t) && t.LSIsValidTarget(Vars.R.Range))) { if (Vars.GetRealHealth(target) < (float)GameObjects.Player.LSGetSpellDamage(target, SpellSlot.R) + (target.HasBuff("TristanaECharge") ? (float)GameObjects.Player.LSGetSpellDamage(target, SpellSlot.E) + (float)GameObjects.Player.LSGetSpellDamage(target, SpellSlot.E, DamageStage.Buff) : 0)) { Vars.R.CastOnUnit(target); } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Killsteal(EventArgs args) { /// <summary> /// The KillSteal R Logic. /// </summary> /// var target = TargetSelector.GetTarget(Vars.R.Range, DamageType.Physical); if (target == null || !target.IsValid) { return; } if (Vars.getCheckBoxItem(Vars.RMenu, "killsteal") && Vars.R.IsReady() && target.IsValidTarget(Vars.R.Range)) { foreach (var hero in ObjectManager.Get <AIHeroClient>().Where(hero => hero.LSIsValidTarget(Vars.R.Range))) { if (ObjectManager.Player.LSGetSpellDamage(target, SpellSlot.R) > hero.Health) { Vars.R.CastOnUnit(target); } else if (ObjectManager.Player.LSGetSpellDamage(target, SpellSlot.R) < hero.Health) { foreach (var buff in hero.Buffs.Where(buff => buff.Name == "dariushemo")) { if (ObjectManager.Player.LSGetSpellDamage(target, SpellSlot.R, 1) * (1 + buff.Count / 5) - 1 > target.Health) { Vars.R.CastOnUnit(target); } } } } } }
/// <summary> /// Called when the game updates itself. /// </summary> /// <param name="args">The <see cref="EventArgs" /> instance containing the event data.</param> public static void Combo(EventArgs args) { if (Bools.HasSheenBuff() || !Targets.Target.LSIsValidTarget() || Invulnerable.Check(Targets.Target)) { return; } /// <summary> /// The E Combo Logic. /// </summary> if (Vars.E.IsReady() && Targets.Target.LSIsValidTarget(Vars.E.Range) && !GameObjects.Player.HasBuff("renektonsliceanddicedelay") && Vars.getCheckBoxItem(Vars.EMenu, "combo")) { if (Targets.Target.HealthPercent < 10 || !Targets.Target.IsUnderEnemyTurret()) { Vars.E.Cast(Targets.Target.ServerPosition); } } }
/// Execute action public override object Execute() { var pref = Context.TransformStr(Name, Transform); int? maxCount = Utils.To<int?>(Context.TransformStr(MaxCount, Transform)); for (int n = 0; (maxCount == null || n< maxCount) && ShouldRun(); ++n) { Context.CheckAbort(); Vars sv=new Vars(); sv[string.Empty] = n; object o = Context.ExecuteWithVars(baseexecute, sv, pref); if (ReturnValue.IsBreak(o)) return null; if (o!=null) return o; } return null; }
/// Complete execution protected object ProcessComplete(IFileSystemInfo from, IFileSystemInfo to, bool skip, ProcessFunc func) { string pref = Context.TransformStr(Name, Transform); Vars sv=new Vars(); sv[""]=sv["from"] = from; if (to != null) sv["to"] = to; sv["skip"] = skip; return Context.ExecuteWithVars(delegate() { Context.CheckAbort(); object ret = null; try { ret = SequenceExecute(); } catch (Exception ex) { return ReturnValue.CreateException(ex); } try { if (ret == null) ret = Context.Execute(Try); skip=Context.GetBool(pref+"skip", false); if (ret == null) ret = func(skip); } catch (Exception ex) { ret = OnError(ex); } finally { // Execute final portion Context.Execute(Finally); } return ret; }, sv, pref); }
/// Prepare to run protected object ProcessPrepare(IFileSystemInfo from, IFileSystemInfo to, PrepareFunc func) { Context.CheckAbort(); string pref = Context.TransformStr(Name, Transform); Vars sv = new Vars(); sv[""] = sv["from"] = from; if (to != null) sv["to"] = to; return Context.ExecuteWithVars(delegate() { object ret = func(); return ret; },sv,pref); }
/// Create a set of name-value pairs out of list {name1,value1,name2,value2,...} public static Vars ToVars(IEnumerable o) { Vars set = new Vars(); var en = o.GetEnumerator(); while (en.MoveNext()) { var name = To<string>(en.Current); if (en.MoveNext()) { set[name] = en.Current; } else break; } return set; }
/// <summary> /// Whether usage should be displayed for given arguments and variables /// </summary> /// <param name="args">List of script command line arguments</param> /// <param name="vars">Result of parsing the command line</param> /// <returns>true if usage needs to be displayed, false otherwise</returns> public bool ShouldDisplayUsage(IEnumerable<string> args, Vars vars) { if ((Options & UsageOptions.IfHelp) != 0 && vars.GetBool("help", false)) return true; if ((Options & UsageOptions.IfNoArguments) != 0 && (args == null || !args.GetEnumerator().MoveNext())) return true; return false; }
string createRowStatement(int rowNo,List<string> keys, Vars sv, string tableName, bool firstInBatch, SqlUpdateMode updateMode, DatabaseType dbType) { StringBuilder sbInsert = new StringBuilder(); if (updateMode == SqlUpdateMode.Merge) { appendSelect(sbInsert, rowNo, keys, sv, firstInBatch, dbType); return sbInsert.ToString(); } if (InsertSyntax == SqlInsertSyntax.Select) { if (firstInBatch || UpdateMode != SqlUpdateMode.None) { sbInsert.Append("INSERT INTO "); sbInsert.Append(tableName); sbInsert.Append(" ( "); appendColumns(sbInsert, keys, dbType); sbInsert.Append(" )"); sbInsert.AppendLine(); } appendSelect(sbInsert, rowNo, keys, sv, firstInBatch || UpdateMode != SqlUpdateMode.None, dbType); } else { sbInsert.Append("INSERT INTO "); sbInsert.Append(tableName); sbInsert.Append(" ( "); appendColumns(sbInsert, sv.Keys, dbType); sbInsert.AppendLine(" )"); sbInsert.Append("VALUES ("); bool ff = true; foreach (var v in sv.Values) { if (!ff) sbInsert.Append(","); ff = false; sbInsert.Append(SqlUtil.GetQuotedValue(dbType, v, NoQuotePrefix, Translate)); } sbInsert.AppendLine(")"); } if (updateMode == SqlUpdateMode.None) return sbInsert.ToString(); var updateKeys = (Context.TransformStr(Keys, Transform) ?? string.Empty); if (string.IsNullOrEmpty(updateKeys)) throw new ParsingException("Key columns must be specified in order to enable updates"); string[] kfield = updateKeys.Split(';', ','); StringBuilder sList = new StringBuilder(); StringBuilder sCond = new StringBuilder(); StringBuilder sUpd = new StringBuilder(); Dictionary<string,bool> k=new Dictionary<string, bool>(StringComparer.InvariantCultureIgnoreCase); for (int i=0;i<kfield.Length;++i) { string kf = kfield[i].Trim(); kfield[i] = kf; if (sList.Length!=0) sList.Append(", "); sList.Append(SqlUtil.SqlName(dbType, kf)); if (sCond.Length!=0) sCond.Append(" AND "); sCond.Append("("); sCond.Append(SqlUtil.SqlName(dbType, kf)); sCond.Append(" = "); sCond.Append(SqlUtil.GetQuotedValue(dbType, sv[kf], NoQuotePrefix, Translate)); sCond.Append(")"); k[kf] = true; } // Prepare update statement sUpd.AppendFormat("UPDATE " + tableName); sUpd.AppendLine(); sUpd.Append("SET "); bool first = true; foreach (var v in sv) if (!k.ContainsKey(v.Name)) { if (!first) sUpd.Append(", "); first = false; sUpd.Append(SqlUtil.SqlName(dbType, v.Name)); sUpd.Append("="); sUpd.Append(SqlUtil.GetQuotedValue(dbType, v.Value, NoQuotePrefix, Translate)); } sUpd.AppendLine(); var kfieldCond = sCond.ToString(); sUpd.AppendLine("WHERE "+kfieldCond); StringBuilder sb=new StringBuilder(); if (updateMode == SqlUpdateMode.MsSql) { sb.Append(sUpd.ToString()); sb.AppendLine("IF @@ROWCOUNT=0"); } else { sb.AppendFormat("IF EXISTS(SELECT {0} FROM {1} WHERE {2})", sList.ToString(), tableName, kfieldCond); sb.AppendLine(); sb.Append(sUpd.ToString()); sb.AppendLine("ELSE"); } sb.AppendLine(sbInsert.ToString()); sb.AppendLine(); return sb.ToString(); }
private void ZeroPrivateVars() { this.m_RequestVars = new RequestVars(); this.m_HttpPolicy = null; this.m_StatusCode = (HttpStatusCode) 0; this.m_StatusDescription = null; this.m_HttpVersion = null; this.m_Headers = null; this.m_SystemMeta = null; this.m_DontUpdateHeaders = false; this.m_HeuristicExpiration = false; this.m_CacheVars = new Vars(); this.m_CacheVars.Initialize(); this.m_ResponseVars = new Vars(); this.m_ResponseVars.Initialize(); }
/// Execute action public override object Execute() { string fromExpanded = Context.TransformStr(From, Transform); string toExpanded = Context.TransformStr(To, Transform); string outToExpanded = Context.TransformStr(OutTo, Transform); if (string.IsNullOrEmpty(outToExpanded)) { if (!string.IsNullOrEmpty(toExpanded)) toExpanded = UrlToLocalFileName(fromExpanded, toExpanded); } var enc = Utils.GetEncoding(Context.TransformStr(Encoding, Transform)); Uri uri = new Uri(fromExpanded); VerboseMessage("Downloading {0} => {1}...", Utils.SecureUri(fromExpanded), toExpanded); bool passive = PassiveFtp; bool ftpssl = false; bool ftp = false; var scheme = uri.Scheme; if (scheme == "ftpa" || scheme == "ftps" || scheme == "ftpas" || scheme == "ftpsa") { ftp = true; UriBuilder ub = new UriBuilder(uri); ub.Scheme = "ftp"; uri = ub.Uri; passive = !(scheme == "ftpa" || scheme == "ftpas" || scheme == "ftpsa"); ftpssl = (scheme == "ftps" || scheme == "ftpas" || scheme == "ftpsa"); } var timeout = Utils.ToTimeSpan(Context.TransformStr(Timeout, Transform)); if (uri.IsFile || uri.Scheme == "embed") { var fname = (uri.Scheme == "embed") ? uri.ToString() : uri.LocalPath; VerboseMessage("Local filename '{0}' detected. Copying instead", fname); try { if (Binary && toExpanded!=null) { if (File.Exists(toExpanded)) File.Delete(toExpanded); using (var toStr = Context.CreateStream(toExpanded)) copyFile(fname, toStr, toExpanded, true); } else { using (var ms = new MemoryStream()) { copyFile(fname, ms, "memory:///", true); if (Binary) Context.OutTo(outToExpanded, ms.ToArray()); else Context.OutTo(outToExpanded, (enc == null ? new StreamReader(ms) : new StreamReader(ms, enc)).ReadToEnd()); } } } catch { File.Delete(toExpanded); throw; } return null; } using (DownloadState state = new DownloadState(Context)) { using (WebClientEx webClient = new WebClientEx(passive, Binary)) { webClient.KeepAlive = (ftp && !passive); webClient.FtpSsl = ftpssl; webClient.CachePolicy = new RequestCachePolicy(CacheLevel); string user = Context.TransformStr(User, Transform); string password = Context.TransformStr(Password, Transform); uri = webClient.SetCredentials(uri, user, password); if (!string.IsNullOrEmpty(Post)) { webClient.HttpPost = Context.Transform(Post, Transform); if (!string.IsNullOrEmpty(PostContentType)) webClient.HttpPostContentType = Context.TransformStr(PostContentType, Transform); } webClient.HttpUserAgent = Context.TransformStr(UserAgent, Transform); webClient.Timeout = timeout; int oldPercentage = -1; long bytesReceived = -1; // We must ensure that all script components are executed in a single thread webClient.DownloadProgressChanged += state.ProgressChanged; webClient.DownloadFileCompleted += state.FileCompleted; webClient.DownloadStringCompleted += state.StringCompleted; webClient.DownloadDataCompleted += state.DataCompleted; if (enc != null) webClient.Encoding = enc; string tmp = null; if (string.IsNullOrEmpty(outToExpanded)) tmp = Direct ? toExpanded : Path.GetTempFileName(); var lastUpdate = System.Diagnostics.Stopwatch.StartNew(); WaitHandle[] wh = new WaitHandle[] { state.Completed, state.ProgressAvailable }; try { if (tmp == null) { if (Binary) webClient.DownloadDataAsync(uri); else webClient.DownloadStringAsync(uri); } else webClient.DownloadFileAsync(uri, tmp); string pref = Context.TransformStr(Name, Transform); while (true) { int n = WaitHandle.WaitAny(wh, 300, true); if (n == 0 || n == 1) { lastUpdate = System.Diagnostics.Stopwatch.StartNew(); DownloadProgress ps = state.Progress; if (n == 0) { ps = state.Progress; if (Binary && state.Result != null) ps.BytesReceived = ((byte[])state.Result).LongLength; else if (tmp != null) ps.BytesReceived = new FileInfo(tmp).Length; } if (ps.BytesReceived > 0 && ps.BytesReceived > bytesReceived) { VerboseMessage("Received: {0}", ps); Context.OnProgress(ps.ProgressPercentage, uri.ToString()); oldPercentage = ps.ProgressPercentage; if (base.Items.Count != 0) { Vars sv = new Vars(); sv.Set("", ps); Context.ExecuteWithVars(baseExecute, sv, pref); } bytesReceived = ps.BytesReceived; } } else { // Sometimes FTP hangs, seen with FileZilla 0.9.31 + VMWare a few times if (timeout.HasValue && lastUpdate.Elapsed > timeout.Value) throw new TimeoutException(); } if (n == 0) { break; } Context.OnProgress(Math.Max(oldPercentage, 0), uri.ToString()); } if (state.Error != null) { if (state.Error is TargetInvocationException) Utils.Rethrow(state.Error.InnerException); else Utils.Rethrow(state.Error); } if (tmp != null && toExpanded != tmp) { if (File.Exists(toExpanded)) File.Delete(toExpanded); using (var toStr = Context.CreateStream(toExpanded)) copyFile(tmp, toStr, toExpanded, false); VerboseMessage("Copying completed. Deleting '{0}'", tmp); File.Delete(tmp); } } catch (Exception e) { VerboseMessage("Caught exception: {0}", e.Message); webClient.CancelAsync(); state.SetCompleted(); throw; } finally { VerboseMessage("Waiting for download completion"); state.Completed.WaitOne(timeout ?? TimeSpan.FromSeconds(30), false); VerboseMessage("Waiting completed"); webClient.DownloadProgressChanged -= state.ProgressChanged; webClient.DownloadFileCompleted -= state.FileCompleted; webClient.DownloadStringCompleted -= state.StringCompleted; webClient.DownloadDataCompleted -= state.DataCompleted; try { if (webClient.IsBusy) webClient.CancelAsync(); } catch { } if (tmp == null) Context.OutTo(outToExpanded, Binary ? state.Result : state.ResultStr); else if (tmp != toExpanded) { try { File.Delete(tmp); } catch (IOException) { Thread.Sleep(500); File.Delete(tmp); } } } VerboseMessage("Download completed."); } } return null; }
// private void ZeroPrivateVars() { // Set default values for private members here m_RequestVars = new RequestVars(); m_HttpPolicy = null; m_StatusCode = (HttpStatusCode)0; m_StatusDescription = null; m_HttpVersion = null; m_Headers = null; m_SystemMeta = null; m_DontUpdateHeaders = false; m_HeuristicExpiration = false; m_CacheVars = new Vars(); m_CacheVars.Initialize(); m_ResponseVars= new Vars(); m_ResponseVars.Initialize(); }
private void appendSelect(StringBuilder sbInsert, int rowNo, List<string> keys, Vars sv, bool firstInBatch, DatabaseType dbType) { if (!firstInBatch) sbInsert.AppendLine(" UNION ALL "); if (sv.Count != keys.Count) throw new ParsingException(string.Format("Error in row #{0}. All inserted rows must contain the following columns: {{ {1} }} ", rowNo, string.Join(",", keys.ToArray()))); List<string> values = new List<string>(); foreach (string key in keys) { string value = SqlUtil.GetQuotedValue(dbType, sv[key], NoQuotePrefix, Translate); values.Add(value); } sbInsert.Append("SELECT " + string.Join(",", values.ToArray())); if ((dbType & DatabaseType.Oracle)==DatabaseType.Oracle) sbInsert.Append(" FROM dual "); }
//---------------------------------------------------------------------------------------------------------------------- public Parser(ScriptVM vm, Scanner scanner) { _scanner = scanner; Vars = new Vars(vm); }
public PostfixItem(Vars var) { vars = var; state = State.Vars; }
/// Get values of all public object fields and properties public static Vars PropsToVars(object o, IStringFilter filter) { Vars v = new Vars(); if (o != null) { Type t = o.GetType(); foreach (var p in t.GetProperties(BindingFlags.Instance|BindingFlags.Public)) { if (filter!=null && !filter.IsMatch(p.Name)) continue; var ip=p.GetIndexParameters(); if (ip != null && ip.Length != 0) continue; if (!p.CanRead) continue; try { v[p.Name] = p.GetValue(o, null); } catch { } } foreach (var f in t.GetFields(BindingFlags.Instance | BindingFlags.Public)) { if (filter != null && !filter.IsMatch(f.Name)) continue; try { v[f.Name] = f.GetValue(o); } catch { } } } return v; }
private void copyFile(string from,Stream toStr, string to, bool withProgress) { // Copy manually, as normal File.Move is likely to copy ACL from text directory as well VerboseMessage("Copying file '{0}' to '{1}'", from, to); long? len = null; try { len = new FileInfo(from).Length; } catch { } byte[] buf = new byte[65536]; long copied = 0; string pref = Context.TransformStr(Name, Transform); try { using (var fromStr = Context.OpenStream(from)) { if (withProgress) { var ps=new DownloadProgress(0, len); Context.OnProgress(0, from); if (base.Items.Count != 0) { Vars sv = new Vars(); sv.Set("", ps); Context.ExecuteWithVars(baseExecute, sv, pref); } } int n; while ((n = fromStr.Read(buf, 0, buf.Length)) != 0) { Context.CheckAbort(); toStr.Write(buf, 0, n); copied += n; if (withProgress) { var ps=new DownloadProgress(copied, len); Context.OnProgress(ps.ProgressPercentage, from); if (base.Items.Count != 0) { Vars sv = new Vars(); sv.Set("", ps); Context.ExecuteWithVars(baseExecute, sv, pref); } } } if (withProgress) { var ps = new DownloadProgress(copied, copied); Context.OnProgress(100, from); if (base.Items.Count != 0) { Vars sv = new Vars(); sv.Set("", ps); Context.ExecuteWithVars(baseExecute, sv, pref); } } } } catch (Exception e) { VerboseMessage("Copying failed: {0}. Deleting '{1}'", e.Message, to); try { File.Delete(to); } catch { } throw; } }
public void UpdateVariableDependencyValues(Vars.IVariable[] vars) { throw new NotImplementedException(); }