private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.NewValue <= 0 || args.NewValue > 1 || args.NewValue == args.OldValue || args.PropertyName != "m_iLevel") { return; } var ability = sender as Ability; if (ability == null || !ability.IsValid || ability.Id < AbilityId.antimage_mana_break) { return; } var owner = ability.Owner as Hero; if (owner == null || !owner.IsValid || owner.IsIllusion || owner.Team != enemyTeam || owner.HeroId == HeroId.npc_dota_hero_rubick) { return; } if (abilities.Contains(ability.Id)) { AddPingAbility(ability); } }
private void OnVibrationCheck(Entity sender, Int32PropertyChangeEventArgs args) { if (sender != this.owner) { return; } if (args.PropertyName == "m_iRecentDamage") { if (args.NewValue > 0) { if (!this.damageVibration) { this.StartVibration(1.0f); this.damageVibration = true; } } else { this.StopVibration(); this.damageVibration = false; } } if (args.PropertyName == "m_iHealth") { if (args.NewValue <= 0) { this.StartVibration(1.0f); } } // Log.Debug($"{args.PropertyName}: {args.OldValue} => {args.NewValue}"); }
private void OnNetworkActivity(Entity sender, Int32PropertyChangeEventArgs args) { if (sender != Me) { return; } if (!args.PropertyName.Equals("m_networkactivity", StringComparison.InvariantCultureIgnoreCase)) { return; } var order = args.NewValue; if (order == 1503 || order == 1504) { _config.Main.AbilitiesInCombo.Exort.UseAbility(); _config.Main.AbilitiesInCombo.Exort.UseAbility(); _config.Main.AbilitiesInCombo.Exort.UseAbility(); } else { _config.Main.AbilitiesInCombo.Wex.UseAbility(); _config.Main.AbilitiesInCombo.Wex.UseAbility(); _config.Main.AbilitiesInCombo.Wex.UseAbility(); } Console.WriteLine(args.NewValue); }
private void OnNetworkActivity(Entity sender, Int32PropertyChangeEventArgs args) { if (sender != this.Owner) { return; } if (!args.PropertyName.Equals("m_networkactivity", StringComparison.InvariantCultureIgnoreCase)) { return; } var newNetworkActivity = (NetworkActivity)args.NewValue; switch (newNetworkActivity) { case NetworkActivity.Attack: case NetworkActivity.Attack2: case NetworkActivity.AttackEvent: if (this.EchoSabre?.IsValid == true && Math.Abs(this.EchoSabre.Item.Cooldown) < 0.15) { return; } this.LastAttackTime = Game.RawGameTime - this.PingTime; break; } }
private void EntityOnOnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.PropertyName == "m_iTaggedAsVisibleByTeam") { var me = Shrines.Find(x => x.Unit.Equals(sender)); if (me != null) { var newValue = args.NewValue; var oldValue = args.OldValue; var isVisible = newValue == 14; if (newValue != oldValue) { bool visible; if (!_underVision.TryGetValue(me, out visible)) { _underVision.Add(me, isVisible); } else { _underVision[me] = isVisible; } } } } }
/// <summary> /// The entity_ on int 32 property change. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="args"> /// The args. /// </param> private void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (!sender.Equals(this.Unit) || args.PropertyName != "m_NetworkActivity") { return; } if (this.Unit == null || !this.Unit.IsValid) { Entity.OnInt32PropertyChange -= this.Entity_OnInt32PropertyChange; return; } if (!Game.IsInGame || Game.IsPaused) { return; } var newValue = (NetworkActivity)args.NewValue; var oldValue = (NetworkActivity)args.OldValue; if (newValue == this.lastUnitActivity || newValue == oldValue) { return; } var canCancel = this.CanCancelAttack(); var wasAttacking = false; if (!this.IsAttackOnCoolDown() || canCancel) { wasAttacking = this.isAttacking; this.lastUnitActivity = newValue; this.isAttacking = newValue == NetworkActivity.Attack || newValue == NetworkActivity.Crit || newValue == NetworkActivity.Attack2 || newValue == NetworkActivity.AttackEvent || newValue == NetworkActivity.AttackEventBash || newValue == NetworkActivity.EarthshakerTotemAttack; } if (wasAttacking && canCancel && !this.isAttacking && (oldValue == NetworkActivity.Attack || oldValue == NetworkActivity.Crit || oldValue == NetworkActivity.Attack2 || oldValue == NetworkActivity.AttackEvent || oldValue == NetworkActivity.AttackEventBash || oldValue == NetworkActivity.EarthshakerTotemAttack)) { this.AttackEnd(); } if (!this.isAttacking || (!this.isAttacking && !canCancel)) { return; } this.LastUnitAttackStart = Game.RawGameTime; this.NextUnitAttackEnd = (float)(this.LastUnitAttackStart * 1000 + UnitDatabase.GetAttackRate(this.Unit) * 1000); this.NextUnitAttackRelease = (float)(this.LastUnitAttackStart * 1000 + UnitDatabase.GetAttackPoint(this.Unit) * 1000); this.AttackOrderSent = false; this.AttackStart(); }
public void OnInt32PropertyChange(Entity entity, Int32PropertyChangeEventArgs args) { if (args.PropertyName == "m_iHealth" && args.NewValue <= 0) { OnRemoveUnit(entity as Unit); } }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (sender.Handle != manager.MyHero.Handle || args.NewValue <= 0 || args.NewValue == args.OldValue || args.PropertyName != "m_iHealth" || sleeper.Sleeping) { return; } var hp = args.NewValue; var hpPercentage = hp / manager.MyHero.MaximumHealth * 100; if (hp > menu.HpThreshold && hpPercentage > menu.HpThresholdPct) { return; } var distance = menu.EnemyDistance; if (distance <= 0 || !EntityManager <Hero> .Entities.Any( x => x.IsValid && x.IsVisible && x.Team == manager.MyHero.EnemyTeam && !x.IsIllusion && x.IsAlive && x.Distance2D(manager.MyHero.Position) <= distance)) { BuyItems(); } }
private void OnNetworkActivity(Entity sender, Int32PropertyChangeEventArgs args) { if (sender != this.Owner) { return; } if (!args.PropertyName.Equals("m_networkactivity", StringComparison.InvariantCultureIgnoreCase)) { return; } var newNetworkActivity = (NetworkActivity)args.NewValue; if (this.attackActivities.Contains(newNetworkActivity)) { if (this.EchoSabre?.IsValid == true && Math.Abs(this.EchoSabre.Item.Cooldown) < 0.15) { return; } this.LastAttackTime = Game.RawGameTime - this.PingTime; } else if (this.attackCancelActivities.Contains(newNetworkActivity)) { if (!this.CanMove(Game.RawGameTime + 0.05f)) { this.LastAttackTime = 0; } } }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (sender.Handle != manager.MyHero.Handle || args.NewValue <= 0 || args.NewValue == args.OldValue || args.PropertyName != "m_iHealth") { return; } if (!manager.MyHero.CanUseItems() || !usableAbility.CanBeCasted() || manager.MyHero.HasModifier(ModifierUtils.IceBlastDebuff)) { return; } if (menu.EnemySearchRange > 0 && !EntityManager <Hero> .Entities.Any( x => x.IsValid && x.IsVisible && x.IsAlive && !x.IsIllusion && x.Team != manager.MyHero.Team && x.Distance2D(manager.MyHero.Position) <= menu.EnemySearchRange)) { return; } var hp = args.NewValue; var hpPercentage = (hp / manager.MyHero.MaximumHealth) * 100; if (hp <= menu.HealthThreshold || hpPercentage <= menu.HealthThresholdPct) { usableAbility.Use(); } }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.NewValue == args.OldValue || args.PropertyName != "m_iStoredRuneType") { return; } var bottle = sender as Bottle; if (bottle == null || !bottle.IsValid) { return; } var owner = bottle.Owner as Hero; if (owner == null || !owner.IsValid || owner.Team != enemyTeam) { return; } if (IsRunePingEnabledFor((RuneType)args.NewValue)) { AddPingItem(bottle); } }
/// <summary> /// The entity_ on int 32 property change. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="args"> /// The args. /// </param> public void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { // if (sender.Handle == this.Unit.UnitHandle && args.PropertyName == GlobalVariables.PropertyHealth) // { // this.Unit.Health.Current = args.NewValue; // } }
private void OnInt32PropertyChanged(Entity sender, Int32PropertyChangeEventArgs args) { if (args.OldValue.Equals(args.NewValue)) { return; } var menu = mainMenu.OnChangeMenu.Int32; if (!menu.Enabled || menu.HeroesOnly && !(sender is Hero) || menu.IgnoreUseless && Data.IgnoredInt32.Contains(args.PropertyName)) { return; } const Color Color = Color.Cyan; const Logger.Type Type = Logger.Type.Int32; logger.Write("Int32 property changed", Type, Color, true); logger.Write("Sender name: " + sender.Name, Type, Color); logger.Write("Sender classID: " + sender.ClassId, Type, Color); logger.Write("Property name: " + args.PropertyName, Type, Color); logger.Write("Property values: " + args.OldValue + " => " + args.NewValue, Type, Color); logger.EmptyLine(); }
private void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.NewValue.Equals(args.OldValue) || args.PropertyName == "m_flStartSequenceCycle" || args.PropertyName == "m_iFoWFrameNumber" || args.PropertyName == "m_iNetTimeOfDay") { return; } if (sender is Creep) { return; } // Console.WriteLine(args.PropertyName + " " + args.NewValue); var propertyName = args.PropertyName; switch (propertyName) { default: // foreach (var keyValuePair in this.AbilityUnitManager.Value.Units) // { // keyValuePair.Value.DataReceiver.Entity_OnInt32PropertyChange(sender, args); // } return; case GlobalVariables.PropertyHealth: this.AbilityUnitManager.Value.Units.FirstOrDefault(x => x.Value.UnitHandle.Equals(sender.Handle)) .Value?.DataReceiver.HealthChange(args.NewValue); return; } }
private void OnNetworkActivity(Entity sender, Int32PropertyChangeEventArgs args) { if (this.Crit.Ability.Level <= 0) { return; } if (sender != this.Owner) { return; } if (args.PropertyName != "m_NetworkActivity") { return; } var newNetworkActivity = (NetworkActivity)args.NewValue; switch (newNetworkActivity) { case NetworkActivity.Attack: case NetworkActivity.Attack2: // TODO: check for allies, buildings and wards target this.CurrentCritChance = Math.Min(1.0f, this.CurrentCritChance + this.CritPrd); break; case NetworkActivity.Crit: // Pseudo-random_distribution this.CurrentCritChance = this.CritPrd; break; } }
private void EntityOnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.PropertyName == "m_iCurrentXP") { enemies.FirstOrDefault(x => x.Handle == sender.Handle)?.SetExperience(args.OldValue, args.NewValue); return; } if (!menu.Enabled || args.NewValue > 0 || args.OldValue <= 0 || args.PropertyName != "m_iHealth") { return; } var creep = sender as Creep; if (creep == null || !creep.IsValid || creep.Team != heroTeam) { return; } var exp = creep.GetGrantedExperience(); if (exp <= 0 || deadCreeps.ContainsKey(creep)) { return; } //delay check to prevent incorrect information //when multiple creeps die at the same time deadCreeps.Add(creep, exp); sleeper.Sleep(150, deadCreeps); }
public static void OnChange(Entity sender, Int32PropertyChangeEventArgs args) { var hero = sender as Hero; if (hero == null) { return; } if (hero.Team != Members.MyHero.Team || hero.IsIllusion()) { return; } if (args.PropertyName != "m_iTaggedAsVisibleByTeam") { return; } DelayAction.Add(50, () => { var visible = args.NewValue == 0x1E; var player = hero.Player; RectangleStruct st; if (!RectDictionary.TryGetValue(player, out st)) { var newRect = new Rectangle( new Vector2((float)HudInfoNew.GetTopPanelSizeX(hero), (float)HUDInfo.GetTopPanelSizeY(hero)), Clr) { Position = HudInfoNew.GetTopPanelPosition(hero) }; st = new RectangleStruct(newRect, eventArgs => newRect.Render()); RectDictionary.Add(player, st); //Log.Info($"Init new player {player.Name}({hero.GetRealName()})"); } var rect = st.Rect; var draw = st.Draw; if (visible) { if (IsEnable) { if (!rect.IsInitialized) { rect.Initialize(); rect.Color = Clr; //new ColorBGRA(0,155,255,10); Drawing.OnEndScene += draw; } } } else { if (rect.IsInitialized) { rect.Dispose(); Drawing.OnEndScene -= draw; } } }); }
// Token: 0x060003BA RID: 954 RVA: 0x0001D300 File Offset: 0x0001B500 private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { int newValue = args.NewValue; if (newValue == args.OldValue) { return; } try { Unit9 unitFast = EntityManager9.GetUnitFast(sender.Handle); if (!(unitFast == null)) { string propertyName = args.PropertyName; if (!(propertyName == "m_iHealth")) { if (propertyName == "m_NetworkActivity") { if (unitFast.IsValid) { if (this.attackActivities.Contains(newValue)) { this.AttackStarted(unitFast); } else { this.AttackStopped(unitFast); } } } } else if (newValue > 0) { UnitMonitor.HealthEventHandler unitHealthChange = this.UnitHealthChange; if (unitHealthChange != null) { unitHealthChange(unitFast, (float)newValue); } } else { unitFast.DeathTime = Game.RawGameTime; this.AttackStopped(unitFast); this.attackSleeper.Remove(unitFast.Handle); UnitMonitor.EventHandler unitDied = this.UnitDied; if (unitDied != null) { unitDied(unitFast); } } } } catch (Exception exception) { Logger.Error(exception, sender, null); } }
private void TowerOnOnFloatPropertyChange(Entity entity, Int32PropertyChangeEventArgs args) { if (args.NewValue == 0 && args.PropertyName.Equals("m_iHealth") && entity is Tower && entity.Team != Config.Main.Context.Value.Owner.Team && entity.Name.Contains("tower1")) { Time = 0; Log.Debug($"{entity.ClassId} -> {args.PropertyName} from {args.OldValue} to {args.NewValue}"); } }
private void OnInt32PropertyChange(Entity entity, Int32PropertyChangeEventArgs args) { if (args.NewValue > 0 || args.NewValue == args.OldValue || args.PropertyName != "m_iHealth") { return; } OnUnitRemoved(null, entity as Unit); }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { var newValue = args.NewValue; if (newValue == args.OldValue) { return; } try { var unit = EntityManager9.GetUnitFast(sender.Handle); if (unit == null) { return; } switch (args.PropertyName) { case "m_iHealth": { if (newValue > 0) { this.UnitHealthChange?.Invoke(unit, newValue); break; } unit.DeathTime = Game.RawGameTime; this.AttackStopped(unit); this.attackSleeper.Remove(unit.Handle); this.UnitDied?.Invoke(unit); break; } case "m_NetworkActivity": { if (this.attackActivities.Contains(newValue)) { this.AttackStarted(unit); } else { this.AttackStopped(unit); } break; } } } catch (Exception e) { Logger.Error(e, sender); } }
private async void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (sender.Handle != this.owner.HeroHandle || args.OldValue == args.NewValue || args.PropertyName != "m_iAbilityPoints") { return; } await Task.Delay(100); this.LearnAbility(args.NewValue); }
private void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { var ability = sender as Ability; // check if Q,W,E has been skilled the first time if ((ability != null) && (args.OldValue == -1) && (ability == this.invokedBase) /*&& (args.PropertyName == "m_nQuasLevel" || args.PropertyName == "m_nWexLevel" || args.PropertyName == "m_nExortLevel")*/) { DelayAction.Add(250, this.CheckCombos); } }
private static void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { var unit = sender as Unit; if (unit == null) { return; } if (args.PropertyName != "m_iTaggedAsVisibleByTeam") { return; } var player = ObjectManager.LocalPlayer; if (player == null || player.Team == Team.Observer || sender.Team != player.Team) { return; } var visible = args.NewValue == 0x1E; // heroes if (sender is Hero && Menu.Item("heroes").GetValue <bool>()) { HandleEffect(unit, visible); } // wards else if (IsWard(sender) && Menu.Item("wards").GetValue <bool>()) { HandleEffect(unit, visible); } // mines else if (IsMine(sender) && Menu.Item("mines").GetValue <bool>()) { HandleEffect(unit, visible); } // units else if (Menu.Item("units").GetValue <bool>() && IsUnit(unit)) { HandleEffect(unit, visible); } // buildings else if (sender is Building && Menu.Item("buildings").GetValue <bool>()) { HandleEffect(unit, visible); } }
private static void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { var hero = sender as Hero; if (args.PropertyName == "m_iTaggedAsVisibleByTeam" && hero != null) { var me = ObjectManager.LocalHero; var output = $"{sender.Name}: {args.OldValue} => {args.NewValue} | IsVisibleToEnemies: {!hero.IsVisibleToEnemies} | OwnTeam: {hero.Team == me?.Team} | Me: {hero == me}"; Console.WriteLine(output); } }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.NewValue == args.OldValue || args.PropertyName != "m_iParity") { return; } if (sender == this.Owner) { this.items = null; UpdateManager.BeginInvoke(this.OnInventoryUpdate); } }
private void OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.OldValue == args.NewValue || args.PropertyName != "m_nCourierState") { return; } var courier = sender as Courier; if (courier == null || !courier.IsAlive) { return; } if (bottleAbuseActive) { DisableAbuse(); } if (!menu.AutoControl) { return; } var newState = (CourierState)args.NewValue; var oldState = (CourierState)args.OldValue; if (oldState != CourierState.Deliver || newState != CourierState.BackToBase) { return; } var purchaser = courier.Inventory.Items.Select(x => x.Purchaser?.Hero) .OrderByDescending(x => x?.Handle == manager.MyHero.Handle) .FirstOrDefault(x => x?.Team == manager.MyHero.Team); if (purchaser == null) { return; } if (purchaser.Handle == manager.MyHero.Handle) { courier.DeliverItems(); } else { courier.Resend(purchaser); } }
private void EntityOnOnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.NewValue == args.OldValue || args.NewValue > 0 || args.PropertyName != "m_iHealth") { return; } var creep = sender as Creep; if (creep == null || !creep.IsValid) { return; } EvadableAbilities.RemoveAll(x => x.OwnerHandle == creep.Handle); }
private void OnCourierStateChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.OldValue == args.NewValue || args.PropertyName != "m_nCourierState") { return; } var courier = sender as Courier; if (courier == null || !courier.IsAlive) { return; } DisableCourierItemSwap(); }
private void Int32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (args.PropertyName != "m_NetworkActivity") { return; } var unit = sender as Unit; if (unit == null) { return; } this.Add(new AttackObject(unit, (NetworkActivity)args.NewValue)); }
/// <summary> /// The entity_ on int 32 property change. /// </summary> /// <param name="sender"> /// The sender. /// </param> /// <param name="args"> /// The args. /// </param> private void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { if (!sender.Equals(this.Unit) || args.PropertyName != "m_NetworkActivity") { return; } if (this.Unit == null || !this.Unit.IsValid) { Entity.OnInt32PropertyChange -= this.Entity_OnInt32PropertyChange; return; } if (!Game.IsInGame || Game.IsPaused) { return; } var newValue = (NetworkActivity)args.NewValue; var oldValue = (NetworkActivity)args.OldValue; if (newValue == this.lastUnitActivity || newValue == oldValue) { return; } var canCancel = this.CanCancelAttack(); var wasAttacking = false; if (!this.IsAttackOnCoolDown() || canCancel) { wasAttacking = this.isAttacking; this.lastUnitActivity = newValue; this.isAttacking = newValue == NetworkActivity.Attack || newValue == NetworkActivity.Crit || newValue == NetworkActivity.Attack2 || newValue == NetworkActivity.AttackEvent || newValue == NetworkActivity.AttackEventBash || newValue == NetworkActivity.EarthshakerTotemAttack; } if (wasAttacking && canCancel && !this.isAttacking && (oldValue == NetworkActivity.Attack || oldValue == NetworkActivity.Crit || oldValue == NetworkActivity.Attack2 || oldValue == NetworkActivity.AttackEvent || oldValue == NetworkActivity.AttackEventBash || oldValue == NetworkActivity.EarthshakerTotemAttack)) { this.AttackEnd(); } if (!this.isAttacking || (!this.isAttacking && !canCancel)) { return; } this.LastUnitAttackStart = Game.RawGameTime; this.NextUnitAttackEnd = (float)(this.LastUnitAttackStart * 1000 + UnitDatabase.GetAttackRate(this.Unit) * 1000); this.NextUnitAttackRelease = (float)(this.LastUnitAttackStart * 1000 + UnitDatabase.GetAttackPoint(this.Unit) * 1000); this.AttackOrderSent = false; this.AttackStart(); }
private void Entity_OnInt32PropertyChange(Entity sender, Int32PropertyChangeEventArgs args) { visionControl.OnInt32PropertyChange(sender, args); }