Споил

jr

Administrator
Команда форума
Спойлит, масс свипает и подбирает дроп вокруг определенного персонажа. Вообще то, легко настраивается в интерфейсе, но пусть будет -)
C#:
using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;
using System.Diagnostics;

public class Script : ScriptBase {

    // пауза между спойлами в мс
    int Delay = 7000;
    // чар вокруг которого спойлить
    string Character = "0";
    // дистанция
    int Distance = 150;
    // скилл для спойла
    int Skill = 947;
    
    Stopwatch Timer = Stopwatch.StartNew();

    public override void OnStart() {
        base.OnStart();
        
        CreateTimer(300, Spoil);
    }

    void Spoil() {
        if (Mobs.Any(m => m.DistanceToUser < 200 && m.IsSweepable)) {
            Client.UseSkill(444);
        }
        
        if (Timer.ElapsedMilliseconds > Delay) {
            var memb = PartyMembers.FirstOrDefault(m => m.Name == Character);
            if (memb != null) {
                var mob = Mobs.FirstOrDefault(m => !m.IsDead && m.DistanceTo(memb) < Distance && m.IsInCombat);
                if (mob != null) {
                    if (mob.DistanceToUser > 100)
                        Client.MoveToTarget(mob, 100, 10 * 1000, () => !Enabled);
                    if (!mob.IsDead) {
                        Timer.Restart();
                        Client.SetTarget(mob);
                        Client.UseSkill(Skill, true);
                    }
                }
            }
        }
        
        var drop = Drop.OrderBy(d => d.DistanceToUser).FirstOrDefault(d => !d.Name.Contains("Mana") && d.DistanceToUser < 700);
        if (drop != null) {
            Client.FPickup(drop);
        }
    }
}
 
Сверху