private void OnParticleAdded(ParticleAddedEventArgs args) { try { var particleName = args.Particle.Name; if (!this.addedParticles.TryGetValue(particleName, out var abilityId)) { return; } if (!(this.evadableAbilities.Find(x => x.Ability.Id == abilityId) is IParticle ability)) { return; } var allyAbility = EntityManager9.Heroes.Any( x => x.IsAlly(this.owner.Team) && (x.Id == HeroId.npc_dota_hero_rubick || x.Id == HeroId.npc_dota_hero_morphling) && x.IsAlive && x.Abilities.Any(z => z.Id == abilityId && z.TimeSinceCasted < 0.5f)); if (allyAbility) { return; } ability.AddParticle(args.Particle, particleName); } catch (Exception e) { Logger.Error(e); } }
private void OnParticleAdded(ParticleAddedEventArgs e) { if (e.Particle.Name == "particles/units/heroes/hero_disruptor/disruptor_glimpse_targetend.vpcf") { this.glimpseParticle = e.Particle; } }
private void OnParticleAdded(ParticleAddedEventArgs e) { try { var particle = e.Particle; if (particle.Owner?.Handle != this.playerHandle) { return; } switch (e.Particle.Name) { case "particles/units/heroes/hero_kunkka/kunkka_spell_x_spot.vpcf": case "particles/econ/items/kunkka/divine_anchor/hero_kunkka_dafx_skills/kunkka_spell_x_spot_fxset.vpcf": { UpdateManager.BeginInvoke(() => this.xMark.Position = particle.GetControlPoint(0)); break; } case "particles/units/heroes/hero_kunkka/kunkka_ghostship_marker.vpcf": { var time = GameManager.RawGameTime - (GameManager.Ping / 2000); UpdateManager.BeginInvoke(() => this.ship.CalculateTimings(particle.GetControlPoint(0), time)); break; } } } catch (Exception ex) { Logger.Error(ex); } }
private static void ParticleSpecific(ParticleAddedEventArgs e) { var particle = e.Particle; if (particle.Owner == General.localHero) { return; } Hero hero = null; if (particle.Owner is Hero == false) { return; } hero = particle.Owner as Hero; if (!hero.IsEnemy(General.localHero)) { return; } if (particle.Name == "particles/units/heroes/hero_earthshaker/earthshaker_echoslam_start.vpcf") { AddSpecific(hero, AbilityId.earthshaker_echo_slam); return; } if (particle.Name == "particles/units/heroes/hero_void_spirit/aether_remnant/void_spirit_aether_remnant_pre.vpcf") { AddSpecific(hero, AbilityId.void_spirit_aether_remnant); return; } if (particle.Name == "particles/units/heroes/hero_shredder/shredder_whirling_death.vpcf") { AddSpecific(hero, AbilityId.shredder_whirling_death); return; } if (particle.Name == "particles/units/heroes/hero_pangolier/pangolier_swashbuckler_dash.vpcf") { AddSpecific(hero, AbilityId.pangolier_swashbuckle); return; } if (particle.Name == "particles/units/heroes/hero_pangolier/pangolier_tailthump_cast.vpcf") { AddSpecific(hero, AbilityId.pangolier_shield_crash); return; } if (particle.Name == "particles/units/heroes/hero_skywrath_mage/skywrath_mage_concussive_shot_cast.vpcf") { AddSpecific(hero, AbilityId.skywrath_mage_concussive_shot); return; } if (particle.Name == "particles/units/heroes/hero_pudge/pudge_rot.vpcf") { AddSpecific(hero, AbilityId.pudge_rot); return; } }
private void OnParticleAdded(ParticleAddedEventArgs e) { var particle = e.Particle; switch (particle.Name) { case "particles/items2_fx/teleport_start.vpcf": case "particles/econ/items/tinker/boots_of_travel/teleport_start_bots.vpcf": case "particles/econ/events/ti10/teleport/teleport_start_ti10.vpcf": case "particles/econ/events/ti10/teleport/teleport_start_ti10_lvl2.vpcf": case "particles/econ/events/ti10/teleport/teleport_start_ti10_lvl3.vpcf": UpdateManager.BeginInvoke(100, () => this.CheckTeleport(particle, true)); break; case "particles/items2_fx/teleport_end.vpcf": case "particles/econ/items/tinker/boots_of_travel/teleport_end_bots.vpcf": case "particles/econ/events/ti10/teleport/teleport_end_ti10.vpcf": case "particles/econ/events/ti10/teleport/teleport_end_ti10_lvl2.vpcf": case "particles/econ/events/ti10/teleport/teleport_end_ti10_lvl3.vpcf": UpdateManager.BeginInvoke(() => this.CheckTeleport(particle, false)); break; //default: //{ // var name = args.Particle.Name; // if ((name.Contains("teleport_start") || name.Contains("teleport_end")) && !name.Contains("furion")) // { // Logger.Error("TP Particle", name); // } // break; //} } }
private void ParticleManager_ParticleAdded(ParticleAddedEventArgs e) { if (e.IsCollection) { return; } Console.WriteLine(e.Particle.Handle + " " + e.Particle.Index); }
private void OnParticleAdded(ParticleAddedEventArgs e) { try { if (!this.abilityData.Particles.TryGetValue(e.Particle.Name, out var data)) { return; } /*if (data.ParticleReleaseData) * { * return; * }*/ UpdateManager.BeginInvoke( () => { try { var particle = e.Particle; if (!particle.IsValid) { return; } data.AddDrawableAbility( this.drawableAbilities, particle, this.allyTeam, this.notificationsEnabled ? this.notificator : null); } catch (Exception ex) { Logger.Error(ex); } }); } catch (Exception ex) { Logger.Error(ex); } }
private async void EntityOnParticleEffectAdded(ParticleAddedEventArgs e) { if (e.IsCollection) { return; } var particle = e.Particle; if (!this.IsValid(particle)) { return; } var item = new LogItem(LogType.Particle, Color.LightGreen, "Particle added"); item.AddLine("Name: " + particle.Name, particle.Name); await Task.Delay(1); if (this.IsValid(particle)) { item.AddLine("Highest control point: " + particle.HighestControlPoint, particle.HighestControlPoint); if (this.showCpValues) { for (var i = 0; i <= particle.HighestControlPoint; i++) { var point = particle.GetControlPoint(i); if (this.ignoreZeroCp && point.IsZero) { continue; } item.AddLine("CP " + i + ": " + point, point); } } } this.log.Display(item); }
private void OnParticleEffectAdded(ParticleAddedEventArgs e) { try { var particle = e.Particle; if (!particle.IsValid) { return; } if (this.ignoredParticles.Contains(particle.Name)) { return; } UpdateManager.BeginInvoke( () => { try { if (!particle.IsValid) { return; } this.ParticleAdded?.Invoke(new Particle9(particle, particle.Name, particle.Owner, false)); } catch (Exception ex) { Logger.Error(ex); } }); } catch (Exception ex) { Logger.Error(ex); } }
private void OnParticleAdded(ParticleAddedEventArgs e) { try { var owner = e.Particle.Owner; if (owner == null || owner.Handle != this.Handle || e.Particle.Name != "particles/items_fx/immunity_sphere.vpcf") { return; } if (this.linkensSphereTalent?.IsValid != true || this.linkensSphereTalent.Level <= 0) { return; } this.talentSleeper.Sleep(this.linkensSphereTalent.SpellBlockCooldown); } catch (Exception ex) { Logger.Error(ex); } }
private void OnParticleAddedTemp(Entity sender, ParticleAddedEventArgs args) { //todo delete try { var name = args.Particle.Name; foreach (var key in this.particles.Keys) { if (!name.Contains(key) || this.knownParticles.Contains(name)) { continue; } Logger.Error("Particle", name); break; } } catch (Exception e) { Logger.Error(e); } }
private void OnParticleAdded(ParticleAddedEventArgs e) { var particle = e.Particle; switch (particle.Name) { case "particles/units/heroes/hero_sandking/sandking_sandstorm.vpcf": { UpdateManager.BeginInvoke(async() => { try { if (!particle.IsValid) { return; } var position = particle.GetControlPoint(0); var sandStorm = EntityManager9.Abilities.FirstOrDefault(x => x.Id == AbilityId.sandking_sand_storm && x.Owner.Distance(position) < 500); if (sandStorm == null || sandStorm.Owner.Team == this.Owner.Team) { return; } while (particle.IsValid) { if (this.ForceUse(sandStorm.Owner, position, 0.5f)) { break; } await Task.Delay(300); } } catch (Exception ex) { Logger.Error(ex); } }); } break; case "particles/units/heroes/hero_nyx_assassin/nyx_assassin_vendetta_start.vpcf": { UpdateManager.BeginInvoke(() => { try { if (!particle.IsValid) { return; } var position = particle.GetControlPoint(0); var vendetta = EntityManager9.Abilities.FirstOrDefault(x => x.Id == AbilityId.nyx_assassin_vendetta && x.Owner.Distance(position) < 500); if (vendetta == null || vendetta.Owner.Team == this.Owner.Team) { return; } this.ForceUse(vendetta.Owner, position); } catch (Exception ex) { Logger.Error(ex); } }); } break; } }
private void OnParticleAdded(ParticleAddedEventArgs e) { try { var particle = e.Particle; if (!particle.IsValid) { return; } var name = particle.Name; var entity = particle.Owner; if (ParticleCorrection.IgnoreParticles.Any(x => name.Contains(x))) { return; } if (name.Contains("generic_hit_blood")) { var isRoshan = entity.NetworkName == "CDOTA_Unit_Roshan"; if (!isRoshan && entity.NetworkName != "CDOTA_BaseNPC_Creep_Neutral") { return; } UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } JungleScan(entity, isRoshan, particle.GetControlPoint(0)); }); } if (AncientApparitionIceBlast.Particle(particle, name)) { return; } if (InvokerEMP.Particle(particle, name)) { return; } if (PudgeHook.Particle(particle, name)) { return; } if (WindrunnerPowershot.Particle(particle, name)) { return; } if (MiranaArrow.Particle(particle, name)) { return; } if (PartialMapHackMenu.SpellsItem) { var spellsCP0 = ParticleDictionaries.CP0.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(spellsCP0.Key)) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } Spells(spellsCP0.Value, name, particle.GetControlPoint(0)); }); return; } var spellsCP1 = ParticleDictionaries.CP1.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(spellsCP1.Key)) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } Spells(spellsCP1.Value, name, particle.GetControlPoint(1)); }); return; } var spellsCP2 = ParticleDictionaries.CP2.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(spellsCP2.Key)) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } Spells(spellsCP2.Value, name, particle.GetControlPoint(2)); }); return; } var spellsCP5 = ParticleDictionaries.CP5.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(spellsCP5.Key)) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } Spells(spellsCP5.Value, name, particle.GetControlPoint(5)); }); return; } var spellsCP1Plus = ParticleDictionaries.CP1Plus.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(spellsCP1Plus.Key)) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } var position = particle.GetControlPoint(1); if (position.ToVector2() == particle.GetControlPoint(0).ToVector2()) { return; } Spells(spellsCP1Plus.Value, name, position); }); return; } } if (PartialMapHackMenu.ItemsItem) { var itemsCP1 = ParticleDictionaries.ItemsCP1.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(itemsCP1.Key)) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } Items(entity as Hero, itemsCP1.Value, name, particle.GetControlPoint(1)); }); return; } if (name.Contains("blink_dagger_end")) { blinkHeroEnd = entity as Hero; return; } if (name.Contains("blink_dagger_start")) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } Items(blinkHeroEnd, AbilityId.item_blink, name, particle.GetControlPoint(0)); }); return; } if (name.Contains("refresher")) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } Items(entity as Hero, AbilityId.item_refresher, name, particle.GetControlPoint(0)); }); return; } if (name.Contains("battlefury_cleave")) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } var position = particle.GetControlPoint(1); if (position.ToVector2() == particle.GetControlPoint(0).ToVector2()) { return; } Items(entity as Hero, AbilityId.item_bfury, name, position); }); return; } var itemsSemiNullCP0 = ParticleDictionaries.ItemsSemiNullCP0.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(itemsSemiNullCP0.Key)) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } var abilityId = itemsSemiNullCP0.Value; Items(FindHeroWithItems(abilityId), abilityId, name, particle.GetControlPoint(0)); }); return; } var itemsSemiNullCP1 = ParticleDictionaries.ItemsSemiNullCP1.FirstOrDefault(x => name.Contains(x.Key)); if (!string.IsNullOrEmpty(itemsSemiNullCP1.Key)) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } var abilityId = itemsSemiNullCP1.Value; Items(FindHeroWithItems(abilityId), abilityId, name, particle.GetControlPoint(1)); }); return; } if (name.Contains("dagon.vpcf")) { UpdateManager.BeginInvoke(1, () => { if (!particle.IsValid) { return; } var abilityId = ParticleCorrection.DagonId; Items(FindHeroWithItems(abilityId), abilityId.First(), name, particle.GetControlPoint(1)); }); return; } } if (PartialMapHackMenu.TeleportItem) { if (name.Contains("/teleport_start") || name.Contains("/teleport_end")) { UpdateManager.BeginInvoke(() => { if (!particle.IsValid) { return; } var particleColor = particle.GetControlPoint(2); var position = particle.GetControlPoint(0); if (particleColor.IsZero || position.IsZero) { return; } Teleport(AbilityId.item_tpscroll, name, position, particleColor); }); } } if (PartialMapHackMenu.SmokeItem) { if (name.Contains("smoke_of_deceit.vpcf")) { UpdateManager.BeginInvoke(() => { if (EntityManager.GetEntities <Hero>().Any(x => x.IsAlly(LocalHero) && x.HasModifier("modifier_smoke_of_deceit"))) { return; } if (!particle.IsValid) { return; } Items(null, AbilityId.item_smoke_of_deceit, name, particle.GetControlPoint(0)); }); return; } } } catch (Exception ex) { Log.Error(ex); } }