public void castIgnite(AIHeroClient target) { if (ignite != SpellSlot.Unknown && sumBook.CanUseSpell(ignite) == SpellState.Ready) { sumBook.CastSpell(ignite, target); } }
public void castIgnite(AIHeroClient target) { // SmoothMouse.addMouseEvent(target.Position); if (ignite != SpellSlot.Unknown && sumBook.CanUseSpell(ignite) == SpellState.Ready) { sumBook.CastSpell(ignite, target); } }
void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args) { if (!IsActive()) { return; } if (_latestSpellSlot != SpellSlot.Unknown && sender.Owner.IsMe && IsWard(sender, args)) { _drawSpots = false; foreach (WardSpot wardSpot in WardSpots) { if (!wardSpot.SafeWard && Vector3.Distance(wardSpot.Pos, new Vector3(args.StartPosition.X, args.StartPosition.Y, args.StartPosition.Z)) <= 250 && !_wardAlreadyCorrected) { args.Process = false; _wardAlreadyCorrected = true; //SendPacket //var sCastPacket = new byte[28]; //var writer = new BinaryWriter(new MemoryStream(sCastPacket)); //writer.Write((byte)0x9A); //writer.Write(mNetworkId); //writer.Write(spellId); //writer.Write(unknown); //writer.Write(wardSpot.Pos.X); //writer.Write(wardSpot.Pos.Y); //writer.Write(wardSpot.Pos.X); //writer.Write(wardSpot.Pos.Y); //writer.Write(tNetworkId); //Game.SendPacket(sCastPacket, PacketChannel.C2S, PacketProtocolFlags.Reliable); sender.CastSpell( args.Slot, new Vector3( wardSpot.Pos.X, wardSpot.Pos.Y, NavMesh.GetHeightForPosition(wardSpot.Pos.X, wardSpot.Pos.Y))); //Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(decoded.TargetNetworkId, decoded.Slot, decoded.SourceNetworkId, // wardSpot.Pos.X, wardSpot.Pos.Y, wardSpot.Pos.X, wardSpot.Pos.Y, decoded.SpellFlag)).Send(); //TODO: Check if its correct _wardAlreadyCorrected = false; return; } if (wardSpot.SafeWard && Vector3.Distance(wardSpot.MagneticPos, new Vector3(args.StartPosition.X, args.StartPosition.Y, args.StartPosition.Z)) <= 250 && !_wardAlreadyCorrected) { args.Process = false; ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(wardSpot.MovePos.X, wardSpot.MovePos.Y, wardSpot.MovePos.Z)); _latestWardSpot = wardSpot; return; } } } }
private void OnSpellbookCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args) { try { if (sender == null || args == null || !sender.Owner.IsMe || !IsWardSlot(args.Slot)) { return; } var spot = GetNearestWardSpot(Game.CursorPos); if (spot.Equals(default(WardSpot)) || args.EndPosition.Equals(spot.ClickPosition)) { return; } if (!Menu.Item(Name + "Hotkey").IsActive() && !Menu.Item(Name + "PermaShow").GetValue <bool>() && args.EndPosition.Distance(spot.MagneticPosition) <= Menu.Item(Name + "DrawingRadius").GetValue <Slider>().Value) { args.Process = false; _lastWardSpot = default(WardSpot); } if (!Menu.Item(Name + "Hotkey").IsActive() && !Menu.Item(Name + "PermaShow").GetValue <bool>()) { return; } if (spot.SafeSpot) { if (Game.CursorPos.Distance(spot.MagneticPosition) <= Menu.Item(Name + "DrawingRadius").GetValue <Slider>().Value) { args.Process = false; if (_lastWardSpot.Equals(default(WardSpot))) { _lastWardSpot = spot; _lastWardSlot = args.Slot; ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, spot.MovePosition); } } } else { if (Game.CursorPos.Distance(spot.MagneticPosition) <= Menu.Item(Name + "DrawingRadius").GetValue <Slider>().Value) { args.Process = false; sender.CastSpell(args.Slot, spot.ClickPosition); } } } catch (Exception ex) { Global.Logger.AddItem(new LogItem(ex)); } }
private IEnumerator Attack(int spellIndex) //called in CastSpell() { yield return(null); Spell newSpell = spellBook.CastSpell(spellIndex); //newSpell stores the chosen spell based on spellIndex float saveSpeed = speed; //Player Speed saved for casting animation slow down Vector2 currentTarget = MyTarget; //so changing myTarget wouldnt effect the Attack() // ----- ATTACK LOGIC ------ if (!isAttacking) //conditions for attacking { isAttacking = true; //for attack layer to be activated PlayerLookAtTarget(); if (newSpell.MyStartAttackAnimation) // ANIMATION CASE { speed = 2.5f; //Player Speed slowed myAnimator.SetBool("attack", isAttacking); //set attack to true if (newSpell.MyInstantInstantiate) //if for Instantiate Before cooldown { Instantiate(newSpell.MySpellPrefab, transform.position, Quaternion.identity); } yield return(new WaitForSeconds(newSpell.MyCastTime)); //do animation for the time of the spell speed = saveSpeed; //speed back to normal after spell cast } AttackLogic(spellIndex, newSpell, currentTarget); StopAttack(); } }
void Spellbook_OnCastSpell(Spellbook sender, SpellbookCastSpellEventArgs args) { if (!IsActive()) return; if (_latestSpellSlot != SpellSlot.Unknown && sender.Owner.IsMe && IsWard(sender, args)) { _drawSpots = false; foreach (WardSpot wardSpot in WardSpots) { if (!wardSpot.SafeWard && Vector3.Distance(wardSpot.Pos, new Vector3(args.StartPosition.X, args.StartPosition.Y, args.StartPosition.Z)) <= 250 && !_wardAlreadyCorrected) { args.Process = false; _wardAlreadyCorrected = true; //SendPacket //var sCastPacket = new byte[28]; //var writer = new BinaryWriter(new MemoryStream(sCastPacket)); //writer.Write((byte)0x9A); //writer.Write(mNetworkId); //writer.Write(spellId); //writer.Write(unknown); //writer.Write(wardSpot.Pos.X); //writer.Write(wardSpot.Pos.Y); //writer.Write(wardSpot.Pos.X); //writer.Write(wardSpot.Pos.Y); //writer.Write(tNetworkId); //Game.SendPacket(sCastPacket, PacketChannel.C2S, PacketProtocolFlags.Reliable); sender.CastSpell( args.Slot, new Vector3( wardSpot.Pos.X, wardSpot.Pos.Y, NavMesh.GetHeightForPosition(wardSpot.Pos.X, wardSpot.Pos.Y))); //Packet.C2S.Cast.Encoded(new Packet.C2S.Cast.Struct(decoded.TargetNetworkId, decoded.Slot, decoded.SourceNetworkId, // wardSpot.Pos.X, wardSpot.Pos.Y, wardSpot.Pos.X, wardSpot.Pos.Y, decoded.SpellFlag)).Send(); //TODO: Check if its correct _wardAlreadyCorrected = false; return; } if (wardSpot.SafeWard && Vector3.Distance(wardSpot.MagneticPos, new Vector3(args.StartPosition.X, args.StartPosition.Y, args.StartPosition.Z)) <= 250 && !_wardAlreadyCorrected) { args.Process = false; ObjectManager.Player.IssueOrder(GameObjectOrder.MoveTo, new Vector3(wardSpot.MovePos.X, wardSpot.MovePos.Y, wardSpot.MovePos.Z)); _latestWardSpot = wardSpot; return; } } } }
/// <summary> /// Called on postattack. /// </summary> /// <param name="args">The <see cref="OnPostAttackEventArgs" /> instance containing the event data.</param> private static void OnPostAttack(OnPostAttackEventArgs args) { if (!UtilityClass.Player.IsMelee || args.Target.IsStructure()) { return; } var hydraItems = new[] { ItemID.TitanicHydra, ItemID.RavenousHydra, ItemID.Tiamat }; if (MenuClass.Hydra != null) { var getFirstHydraItem = LocalPlayer.Instance.InventorySlots.FirstOrDefault(i => hydraItems.Contains((ItemID)i.ItemID)); if (getFirstHydraItem == null) { return; } var hydra = LocalPlayer.Instance.GetItem((ItemID)getFirstHydraItem.ItemID); if (hydra != null) { switch (Orbwalker.Mode) { case OrbwalkingMode.Combo: if (!MenuClass.Hydra["combo"].Enabled) { return; } break; case OrbwalkingMode.Harass: if (!MenuClass.Hydra["mixed"].Enabled) { return; } break; case OrbwalkingMode.LaneClear: if (!MenuClass.Hydra["laneclear"].Enabled) { return; } break; case OrbwalkingMode.LastHit: if (!MenuClass.Hydra["lasthit"].Enabled) { return; } break; default: if (!MenuClass.Hydra["manual"].Enabled) { return; } break; } var hydraSpellSlot = hydra.Slot; if (hydraSpellSlot != SpellSlot.Unknown && UtilityClass.Player.Spellbook.GetSpellState(hydraSpellSlot).HasFlag(SpellState.Ready)) { Spellbook.CastSpell(hydraSpellSlot); } } } }