Загрузка данных



[17:44:38] Для музло: using System;using System.Linq;using NewWidget.Core;using NewWidget.Core.Native;using NewWidget.Core.Scripting;
public class Script : ScriptBase {
// === НАСТРОЙКИ === private string MainAssistNick = "Nick1"; // Ник #1: Постоянный основной Ассист private string PriorityNick = "Nick2"; // Ник #2: Имя ВРАГА (бьем СРАЗУ при появлении, игнорируя ассист)
private int SkillIdToCast = 437; // ID скилла для опрокидывания/каста при взятии цели private int AttackInterval = 100; // Задержка атаки (мс) private long lastAttackTime = 0;
public override void OnStart() { base.OnStart(); CreateTimer(15, OnTimer); }
void OnTimer() { if (Me == null || Me.IsDead || Me.IsDisabled) return;
long now = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
// 1. ПРОВЕРЯЕМ ПОЯВЛЕНИЕ ВРАГА (Ник #2) В ЗОНЕ ВИДИМОСТИ L2Live priorityEnemy = null; if (Client.Players != null) { priorityEnemy = Client.Players.FirstOrDefault(p => p != null && p.Name.Equals(PriorityNick, StringComparison.OrdinalIgnoreCase) && !p.IsDead); }
// Если Ник #2 появился и он жив — ИГНОРИРУЕМ ВСЁ и бьем только его if (priorityEnemy != null) { SwitchAndAttack(priorityEnemy, now); return; }
// 2. ЕСЛИ НИКА #2 НЕТ — РАБОТАЕМ ПО ОСНОВНОМУ АССИСТУ (Ник #1) L2Live mainTarget = GetAssistTarget(MainAssistNick);
if (mainTarget != null) { SwitchAndAttack(mainTarget, now); return; } }
// Вспомогательный метод для выбора/смены цели, каста скилла и авто-атаки со срезкой private void SwitchAndAttack(L2Live target, long now) { var currentTarget = Me.Target as L2Live;
// Переключаем таргет, если он изменился, и даем скилл 437 if (currentTarget == null || currentTarget.ObjectId != target.ObjectId) { Client.SetTarget(target); // Использование скилла 437 при взятии/смене цели Client.UseSkill(SkillIdToCast); Client.Attack(); lastAttackTime = now; return; }
// Зажимаем авто-атаку со срезкой if (now - lastAttackTime >= AttackInterval) { Client.Attack(); if (Me.IsAttacking) { Client.Attack(); } lastAttackTime = now; } }
// Поиск таргета у основного ассист-лидера (Ник #1) private L2Live GetAssistTarget(string nick) { L2Player leader = null;
if (Client.PartyMembers != null) { leader = Client.PartyMembers.FirstOrDefault(p => p != null && p.Name.Equals(nick, StringComparison.OrdinalIgnoreCase)); } if (leader == null && Client.Players != null) { leader = Client.Players.FirstOrDefault(p => p != null && p.Name.Equals(nick, StringComparison.OrdinalIgnoreCase)); }
if (leader != null && leader.Target != null) { var target = leader.Target as L2Live; if (target != null && !target.IsDead && target.ObjectId != Me.ObjectId) { bool isPartyMember = Client.PartyMembers != null && Client.PartyMembers.Any(p => p != null && p.ObjectId == target.ObjectId); if (!isPartyMember) { return target; } } } return null; }}