public Vector3 CalculateReturnPos() { if (Missile != null && Missile.IsValidMissile() && Target.IsValidTarget()) { var finishPosition = Missile.Position; if (Missile.SData.Name.ToLower() == MissileName.ToLower()) { finishPosition = MissileEndPos; } var misToPlayer = Player.Distance(finishPosition); var tarToPlayer = Player.Distance(Target); if (misToPlayer > tarToPlayer) { var misToTarget = Target.Distance(finishPosition); if (misToTarget < QWER.Range && misToTarget > 50) { var cursorToTarget = Target.Distance(Player.Position.Extend(Game.CursorPos, 100)); var ext = finishPosition.Extend(Target.ServerPosition, cursorToTarget + misToTarget); if (ext.Distance(Player.Position) < 800 && ext.CountEnemiesInRange(400) < 2) { if (getCheckBoxItem("drawHelper")) { Utility.DrawCircle(ext.To3D(), 100, Color.White, 1, 1); } return(ext.To3D()); } } } } return(Vector3.Zero); }
private void OnCreate(GameObject spell, EventArgs args) { if (spell.GetType() == typeof(MissileClient)) { MissileClient miss = spell as MissileClient; if (miss.IsValidMissile() && miss.SpellCaster.NetworkId == Player.Instance.NetworkId && miss.SData.Name == "FlashFrostSpell") { Chat.Print("Casted Q"); missile = miss; } } }