ТТ рецепты

jr

Administrator
Команда форума
Довольно простой скрипт на тт рецепты. Для некоторых серверов придётся конкретно переделать.

C#:
using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;

public class Script : ScriptBase {
    int quest;
    int questStage;
    
    
    
    public class ScriptProgress
    {
        public string charName {get; set;}
        public int quest {get; set;}
        public int questStage {get; set;}
    }
    
    
    public override void OnStart() {
        
        base.OnStart();
        init();
        EnabledChanged(true, init);
        CreateTimer(1000, scriptControl);
        EnabledChanged(true, () => Client.Pve.Enabled = true);

    }
    
    void init()
    {
            writeChekpoint(40, 1);
    }
    
    void scriptControl()
    {

        switch(questStage)
        {
            case 0:
                break;
            case 1:
                q1();
                break;
            case 2:
                q2();
                break;
            case 3:
                q3();
                break;
            case 4:
                q4();
                break;
            case 5:
                q5();
                break;
            case 6:
                q6();
                break;
            case 7:
                q7();
                break;
            case 8:
                q8();
                break;
            case 81:
                q81();
                break;
            case 9:
                q9();
                break;
            case 10:
                q10();
                break;
            case 11:
                q11();
                break;
            case 31:
                q31();
                break;
            case 32:
                q32();
                break;
            case 41:
                q41();
                break;
            case 42:
                q42();
                break;
        }
    }
    
    void q1()
    {
        Client.MoveToLocation(new Vector(149522, -112673, -2064), 0, 25000);
        NpcDialogOpen(31521);
        Wait(1500);
        Client.DialogSelect(0);
        Wait(1500);
        Client.DialogSelect(0);
        Wait(1500);
        Client.DialogSelect(0);
        Wait(1000);
        NpcDialogOpen(31521);
        Wait(1500);
        Client.DialogSelect(0);
        Wait(1500);
        Client.DialogSelect(1);
        Wait(1500);
        Client.DialogSelect(0);
        
        writeChekpoint(40, 2);
    }
    
    void q2()
    {
        Client.MoveToLocation(new Vector(149110, -112453, -2067), 0, 25000);
        Client.MoveToLocation(new Vector(148173, -112937, -2140), 0, 25000);
        Client.MoveToLocation(new Vector(147855, -113375, -2117), 0, 25000);
        Client.MoveToLocation(new Vector(147538, -113305, -2112), 0, 25000);
        
        NpcDialogOpen(31547);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 3);
    }
    
    void q3()
    {
        Client.MoveToLocation(new Vector(147506, -113246, -2111), 0, 25000);
        Client.MoveToLocation(new Vector(148232, -113189, -2121), 0, 25000);
        Client.MoveToLocation(new Vector(149967, -114008, -1979), 0, 25000);
        Client.MoveToLocation(new Vector(150733, -114764, -1689), 0, 25000);
        Client.MoveToLocation(new Vector(151892, -114777, -1574), 0, 25000);
        Client.MoveToLocation(new Vector(153472, -114793, -1564), 0, 25000);
        Client.MoveToLocation(new Vector(155176, -115099, -1578), 0, 25000);
        Client.MoveToLocation(new Vector(156645, -115408, -1831), 0, 25000);
        Client.MoveToLocation(new Vector(157556, -115368, -1903), 0, 25000);
        
        NpcDialogOpen(31543);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 4);
    }
    
    void q4()
    {
        Client.MoveToLocation(new Vector(157018, -114574, -1828), 0, 25000);
        Client.MoveToLocation(new Vector(156446, -113729, -1741), 0, 25000);
        Client.MoveToLocation(new Vector(156220, -112469, -1822), 0, 25000);
        Client.MoveToLocation(new Vector(156251, -112062, -1938), 0, 25000);
        Client.MoveToLocation(new Vector(156496, -111521, -2406), 0, 25000);
        Client.MoveToLocation(new Vector(156098, -110705, -2607), 0, 25000);
        Client.MoveToLocation(new Vector(156137, -109886, -2651), 0, 25000);
        Client.MoveToLocation(new Vector(156434, -108590, -2636), 0, 25000);
        Client.MoveToLocation(new Vector(156534, -107517, -2635), 0, 25000);
        Client.MoveToLocation(new Vector(156033, -106380, -2736), 0, 25000);
        Client.MoveToLocation(new Vector(155641, -105736, -2754), 0, 25000);
        
        NpcDialogOpen(31544);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 5);

    }
    
    void q5()
    {
        Client.MoveToLocation(new Vector(155266, -105157, -2745), 0, 25000);
        Client.MoveToLocation(new Vector(153834, -103088, -2978), 0, 25000);
        Client.MoveToLocation(new Vector(153763, -101550, -2927), 0, 25000);
        Client.MoveToLocation(new Vector(153483, -100989, -2926), 0, 25000);
        Client.MoveToLocation(new Vector(151326, -101453, -2895), 0, 25000);
        Client.MoveToLocation(new Vector(149454, -100974, -2913), 0, 25000);
        Client.MoveToLocation(new Vector(147167, -101010, -3111), 0, 25000);
        Client.MoveToLocation(new Vector(145444, -100849, -3255), 0, 25000);
        Client.MoveToLocation(new Vector(144848, -100757, -3285), 0, 25000);
        Client.MoveToLocation(new Vector(144302, -102896, -3545), 0, 25000);
        Client.MoveToLocation(new Vector(143072, -103901, -3590), 0, 25000);
        Client.MoveToLocation(new Vector(141545, -104884, -3641), 0, 25000);
        Client.MoveToLocation(new Vector(140720, -105445, -3632), 0, 25000);
        
        NpcDialogOpen(31545);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 6);
    }
    
    void q6()
    {
        Client.MoveToLocation(new Vector(140750, -106303, -3627), 0, 25000);
        Client.MoveToLocation(new Vector(140773, -108341, -3649), 0, 25000);
        Client.MoveToLocation(new Vector(140836, -108617, -3627), 0, 25000);
        Client.MoveToLocation(new Vector(141682, -108786, -3573), 0, 25000);
        Client.MoveToLocation(new Vector(141670, -109401, -3590), 0, 25000);
        
        NpcDialogOpen(31546);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(500);
        NpcDialogOpen(31546);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        
        writeChekpoint(40, 7);
        
    }
    
    void q7()
    {
        Client.MoveToLocation(new Vector(141676, -108973, -3568), 0, 25000);
        Client.MoveToLocation(new Vector(141741, -108142, -3562), 0, 25000);
        Client.MoveToLocation(new Vector(140867, -106676, -3628), 0, 25000);
        Client.MoveToLocation(new Vector(140651, -105517, -3632), 0, 25000);
        
        NpcDialogOpen(31545);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 8);
    }
    
    void q8()
    {
        Client.MoveToLocation(new Vector(141105, -105210, -3624), 0, 25000);
        Client.MoveToLocation(new Vector(142325, -104368, -3622), 0, 25000);
        Client.MoveToLocation(new Vector(143763, -103517, -3593), 0, 25000);
        Client.MoveToLocation(new Vector(144384, -102460, -3528), 0, 25000);
        Client.MoveToLocation(new Vector(144977, -100646, -3262), 0, 25000);
        Client.MoveToLocation(new Vector(146071, -100882, -3188), 0, 25000);
        Client.MoveToLocation(new Vector(148401, -100935, -2971), 0, 25000);
        Client.MoveToLocation(new Vector(151127, -101432, -2894), 0, 25000);
        Client.MoveToLocation(new Vector(152867, -101194, -2922), 0, 25000);
        Client.MoveToLocation(new Vector(153781, -101157, -2932), 0, 25000);
        Client.MoveToLocation(new Vector(154094, -102440, -2891), 0, 25000);
        Client.MoveToLocation(new Vector(154595, -103508, -2806), 0, 25000);
        Client.MoveToLocation(new Vector(154982, -104456, -2773), 0, 25000);
        Client.MoveToLocation(new Vector(155141, -105015, -2745), 0, 25000);
        Client.MoveToLocation(new Vector(155600, -105697, -2754), 0, 25000);
        
        NpcDialogOpen(31544);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 81);
    }
    
    void q81()
    {
        Client.MoveToLocation(new Vector(155334, -106690, -2702), 0, 25000);
        Client.MoveToLocation(new Vector(154568, -108316, -2692), 0, 25000);
        Client.MoveToLocation(new Vector(153760, -110404, -2677), 0, 25000);
        Client.MoveToLocation(new Vector(152632, -111186, -2532), 0, 25000);
        Client.MoveToLocation(new Vector(151174, -112316, -2274), 0, 25000);
        Client.MoveToLocation(new Vector(150291, -113481, -2063), 0, 25000);
        Client.MoveToLocation(new Vector(150602, -114990, -1705), 0, 25000);
        Client.MoveToLocation(new Vector(153958, -115005, -1546), 0, 25000);
        Client.MoveToLocation(new Vector(155962, -115280, -1701), 0, 25000);
        Client.MoveToLocation(new Vector(157612, -115369, -1903), 0, 25000);
        
        NpcDialogOpen(31543);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 9);
    }
    
    void q9()
    {
        Client.MoveToLocation(new Vector(156712, -115432, -1842), 0, 25000);
        Client.MoveToLocation(new Vector(155479, -115332, -1617), 0, 25000);
        Client.MoveToLocation(new Vector(153661, -115420, -1528), 0, 25000);
        Client.MoveToLocation(new Vector(150810, -114867, -1671), 0, 25000);
        Client.MoveToLocation(new Vector(149495, -113661, -2044), 0, 25000);
        Client.MoveToLocation(new Vector(148112, -113072, -2133), 0, 25000);
        Client.MoveToLocation(new Vector(147559, -113276, -2112), 0, 25000);
        
        NpcDialogOpen(31547);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        writeChekpoint(40, 10);
    }
    
    void q10()
    {
        Client.MoveToLocation(new Vector(147584, -113260, -2112), 0, 25000);
        Client.MoveToLocation(new Vector(148320, -112954, -2136), 0, 25000);
        Client.MoveToLocation(new Vector(148899, -112578, -2084), 0, 25000);
        Client.MoveToLocation(new Vector(149201, -112405, -2065), 0, 25000);
        Client.MoveToLocation(new Vector(149498, -112678, -2064), 0, 25000);
        
        NpcDialogOpen(31521);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        NpcDialogOpen(31521);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        Client.DialogSelect(1);
        Wait(1000);
        Client.DialogSelect(0);
        Wait(1000);
        
        Client.UseItem(736);
        Wait(25000);
        
        writeChekpoint(40, 11);
    }
    
    void q11()
    {
        IEnumerable<Vector> spawnGdd1 = new Vector[]{
            new Vector(146795, -55674, -2781),
            new Vector(146130, -56214, -2781),
            new Vector(146373, -56468, -2781),
            new Vector(147144, -55984, -2781)};
        
        IEnumerable<Vector> spawnGdd2 = new Vector[]{
            new Vector(149254, -58096, -2981),
            new Vector(149156, -57933, -2981),
            new Vector(148967, -58018, -2981),
            new Vector(149091, -58190, -2981)};
        
        IEnumerable<Vector> spawnGdd3 = new Vector[]{
            new Vector(148496, -55762, -2781),
            new Vector(149337, -56247, -2781),
            new Vector(149038, -56678, -2781),
            new Vector(148160, -55986, -2781)};
        
        IEnumerable<Vector> spawnGdd4 = new Vector[]{
            new Vector(144688, -56880, -2981),
            new Vector(144860, -56867, -2981),
            new Vector(144853, -56636, -2981),
            new Vector(144615, -56684, -2981)};
        
        IEnumerable<Vector> spawnGdd5 = new Vector[]{
            new Vector(148421, -58360, -2981),
            new Vector(148352, -58140, -2981),
            new Vector(148076, -58241, -2981),
            new Vector(148269, -58472, -2981)};
        
        IEnumerable<Vector> spawnGdd6 = new Vector[]{
            new Vector(147586, -58307, -2981),
            new Vector(147751, -58311, -2981),
            new Vector(147756, -58114, -2981),
            new Vector(147536, -58136, -2981)};
        
        
        IEnumerable<Vector> spawnGdd7 = new Vector[]{
            new Vector(149796, -57358, -2981),
            new Vector(149967, -57400, -2981),
            new Vector(149930, -57520, -2981),
            new Vector(149795, -57489, -2981)};
        
        IEnumerable<Vector> spawnGdd8 = new Vector[]{
            new Vector(150405, -56881, -2981),
            new Vector(150503, -56703, -2981),
            new Vector(150346, -56658, -2981),
            new Vector(150306, -56814, -2981)};
        
        IEnumerable<Vector> spawnGdd9 = new Vector[]{
            new Vector(146334, -58254, -2981),
            new Vector(146375, -58148, -2981),
            new Vector(146216, -58092, -2981),
            new Vector(146188, -58207, -2981)};
        
        IEnumerable<Vector> spawnGdd10 = new Vector[]{
            new Vector(147951, -56316, -2781),
            new Vector(147907, -57198, -2781),
            new Vector(147412, -57120, -2781),
            new Vector(147449, -56211, -2781)};
        
        IEnumerable<Vector> spawnGdd11 = new Vector[]{
            new Vector(145059, -57390, -2981),
            new Vector(145573, -56993, -2981),
            new Vector(145180, -55183, -2981),
            new Vector(144549, -55168, -2981)};
        
        IEnumerable<Vector> spawnGdd12 = new Vector[]{
            new Vector(144399, -54976, -2981),
            new Vector(144391, -55202, -2981),
            new Vector(144569, -55236, -2981),
            new Vector(144606, -54995, -2981)};
        
        IEnumerable<Vector> spawnGdd13 = new Vector[]{
            new Vector(147327, -58582, -2981),
            new Vector(147356, -58289, -2981),
            new Vector(147090, -58287, -2981),
            new Vector(147077, -58558, -2981)};
        
        IEnumerable<Vector> spawnGdd14 = new Vector[]{
            new Vector(145548, -57580, -2981),
            new Vector(145242, -57355, -2981),
            new Vector(145138, -57625, -2981),
            new Vector(145571, -57888, -2981)};
        
        IEnumerable<Vector> spawnGdd15 = new Vector[]{
            new Vector(150625, -55576, -2981),
            new Vector(150829, -55616, -2981),
            new Vector(150763, -55895, -2981),
            new Vector(150571, -55881, -2981)};
        
        IEnumerable<Vector> spawnGdd16 = new Vector[]{
            new Vector(145578, -57748, -2981),
            new Vector(145627, -57565, -2981),
            new Vector(145800, -57643, -2981),
            new Vector(145717, -57828, -2981)};
        
        
        if(Me.Location.IsInPolygon(spawnGdd1))
            q21();
        
        if(Me.Location.IsInPolygon(spawnGdd2))
            q22();
        
        if(Me.Location.IsInPolygon(spawnGdd3))
            q23();
        
        if(Me.Location.IsInPolygon(spawnGdd4))
            q24();
        
        if(Me.Location.IsInPolygon(spawnGdd5))
            q25();
        
        if(Me.Location.IsInPolygon(spawnGdd6))
            q26();
        
        if(Me.Location.IsInPolygon(spawnGdd7))
            q27();
        
        if(Me.Location.IsInPolygon(spawnGdd8))
            q28();
        
        if(Me.Location.IsInPolygon(spawnGdd9))
            q29();
        
        if(Me.Location.IsInPolygon(spawnGdd10))
            q210();
        
        if(Me.Location.IsInPolygon(spawnGdd11))
            q211();
        
        if(Me.Location.IsInPolygon(spawnGdd12))
            q212();
        
        if(Me.Location.IsInPolygon(spawnGdd13))
            q213();
        
        if(Me.Location.IsInPolygon(spawnGdd14))
            q214();
        
        if(Me.Location.IsInPolygon(spawnGdd15))
            q215();
        
        if(Me.Location.IsInPolygon(spawnGdd16))
            q216();
        
    }
    
    void q210()
    {
        Client.MoveToLocation(new Vector(147708, -57274, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(147704, -58232, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146502, -58222, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146132, -58026, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146384, -57562, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q211()
    {
        Client.MoveToLocation(new Vector(144808, -56445, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145534, -57577, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146145, -58071, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146405, -57555, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q212()
    {
        Client.MoveToLocation(new Vector(144833, -55562, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(144999, -56534, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145658, -57605, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146114, -58108, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146415, -57542, -2967), 0, 25000);
        writeChekpoint(40, 31);
        
    }
    
    void q214()
    {
        Client.MoveToLocation(new Vector(145733, -57982, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146095, -58115, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146423, -57542, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q213()
    {
        Client.MoveToLocation(new Vector(146688, -58362, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146102, -58104, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146415, -57544, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q215()
    {
        Client.MoveToLocation(new Vector(150145, -57442, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149260, -58017, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149114, -57658, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149318, -57474, -2968), 0, 25000);
        
        
        writeChekpoint(40, 32);
    }
    
    void q216()
    {
        Client.MoveToLocation(new Vector(145596, -57955, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146129, -58085, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146404, -57551, -2967), 0, 25000);
        writeChekpoint(40, 31);
    }
    
    void q21()
    {
        Client.MoveToLocation(new Vector(146218, -56367, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(145318, -57078, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145843, -57894, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146133, -58011, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146409, -57546, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q22()
    {
        Client.MoveToLocation(new Vector(149197, -57848, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149127, -57659, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149313, -57489, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q23()
    {
        Client.MoveToLocation(new Vector(149224, -56376, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(149895, -56862, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(150054, -57157, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149487, -57882, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149240, -57909, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149120, -57702, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149314, -57486, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q24()
    {
        Client.MoveToLocation(new Vector(145214, -57310, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145808, -57769, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146195, -57964, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146413, -57543, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q25()
    {
        Client.MoveToLocation(new Vector(148823, -58179, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149181, -57853, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149119, -57646, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149320, -57469, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q26()
    {
        Client.MoveToLocation(new Vector(148164, -58156, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(148590, -58183, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149182, -57863, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149120, -57648, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149329, -57470, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q27()
    {
        Client.MoveToLocation(new Vector(149568, -57812, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149252, -57929, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149097, -57652, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149316, -57474, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q28()
    {
        Client.MoveToLocation(new Vector(150131, -57234, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149724, -57810, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149231, -57974, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149084, -57671, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149310, -57484, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q29()
    {
        Client.MoveToLocation(new Vector(146151, -58026, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146409, -57550, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    ///вх - маг лавка - центр
    void q31()
    {
        Client.MoveToLocation(146424, -57546, -2993, 0, 15000);
        Client.MoveToLocation(146420, -57553, -2967, 80, 15000);
        Client.SetTarget(31267);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(3);  //  Quest.
        Client.DialogSelect(0);  //  "Jeremy sent me to get some adena."
        Client.MoveToLocation(146268, -57844, -2993, 0, 15000);
        Client.MoveToLocation(146111, -58123, -3007, 0, 15000);
        Client.MoveToLocation(146694, -58193, -3007, 0, 15000);
        Client.MoveToLocation(148748, -58061, -3007, 0, 15000);
        Client.MoveToLocation(149224, -57860, -3007, 0, 15000);
        Client.MoveToLocation(149116, -57673, -2994, 0, 15000);
        Client.MoveToLocation(149264, -57530, -2994, 0, 15000);
        Client.MoveToLocation(149328, -57470, -2994, 0, 15000);
        Client.MoveToLocation(149321, -57475, -2968, 80, 15000);
        Client.SetTarget(31584);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(0);  //  Quest
        Client.DialogSelect(0);  //  "Jeremy sent me."
        Client.MoveToLocation(149179, -57624, -2994, 0, 15000);
        Client.MoveToLocation(149126, -57724, -2994, 0, 15000);
        Client.MoveToLocation(149254, -57960, -3007, 0, 15000);
        Client.MoveToLocation(148703, -58236, -3007, 0, 15000);
        Client.MoveToLocation(147827, -58149, -3007, 0, 15000);
        Client.MoveToLocation(147681, -58035, -3007, 0, 15000);
        Client.MoveToLocation(147694, -57532, -2897, 0, 15000);
        Client.MoveToLocation(147714, -56850, -2807, 0, 15000);
        Client.MoveToLocation(147708, -56109, -2807, 0, 15000);
        Client.MoveToLocation(147752, -55478, -2760, 0, 15000);
        Client.MoveToLocation(147857, -55235, -2760, 0, 15000);
        Client.MoveToLocation(147853, -55242, -2735, 80, 15000);
        Client.SetTarget(35000);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(2);  //  Mage Set
        Client.DialogSelect(14);  //
        writeChekpoint(40, 41);
    }
    
    ///маг лавка - вх - центр
    void q32()
    {
        
        Client.MoveToLocation(149297, -57447, -2968, 80, 15000);
        Client.SetTarget(31584);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(0);  //  Quest
        Client.DialogSelect(0);
        Client.MoveToLocation(149192, -57602, -2994, 0, 15000);
        Client.MoveToLocation(149146, -57752, -2994, 0, 15000);
        Client.MoveToLocation(149193, -57915, -3007, 0, 15000);
        Client.MoveToLocation(148949, -58059, -3007, 0, 15000);
        Client.MoveToLocation(147973, -58192, -3007, 0, 15000);
        Client.MoveToLocation(146965, -58192, -3007, 0, 15000);
        Client.MoveToLocation(146326, -58120, -3007, 0, 15000);
        Client.MoveToLocation(146206, -57953, -3007, 0, 15000);
        Client.MoveToLocation(146321, -57684, -2993, 0, 15000);
        Client.MoveToLocation(146393, -57526, -2967, 80, 15000);
        Client.SetTarget(31267);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(3);  //  Quest.
        Client.DialogSelect(0);
        Client.MoveToLocation(146258, -57816, -2993, 0, 15000);
        Client.MoveToLocation(146206, -58125, -3007, 0, 15000);
        Client.MoveToLocation(146941, -58205, -3007, 0, 15000);
        Client.MoveToLocation(147758, -58098, -3007, 0, 15000);
        Client.MoveToLocation(147697, -57441, -2858, 0, 15000);
        Client.MoveToLocation(147752, -56685, -2807, 0, 15000);
        Client.MoveToLocation(147844, -55974, -2793, 0, 15000);
        Client.MoveToLocation(147910, -55510, -2760, 0, 15000);
        Client.MoveToLocation(147908, -55518, -2735, 80, 15000);
        Client.SetTarget(35000);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(2);  //  Mage Set
        
        writeChekpoint(40, 41);
    }
    
    void q41()
    {
        Client.MoveToLocation(147835, -55306, -2760, 0, 15000);
        Client.MoveToLocation(147909, -55336, -2760, 0, 15000);
        Client.MoveToLocation(147982, -55229, -2760, 0, 15000);
        Client.MoveToLocation(147981, -55235, -2735, 80, 15000);
        Client.SetTarget(31275);
        Client.DialogOpen();
        Wait(3000);
        Client.DialogSelect(0);  //  Teleport
        Client.DialogSelect(10);  //  Hot Springs - 9300 Adena
        Wait(5000);
        
        
        writeChekpoint(40, 42);
    }
    
    void q42()
    {
        Client.MoveToLocation(new Vector(145300, -113084, -2519), 0, 25000);
        Client.MoveToLocation(new Vector(146440, -112502, -2371), 0, 25000);
        Client.MoveToLocation(new Vector(147885, -112549, -2166), 0, 25000);
        Client.MoveToLocation(new Vector(148964, -112480, -2081), 0, 25000);
        Client.MoveToLocation(new Vector(149431, -112534, -2064), 0, 25000);
        
        writeChekpoint(40, 1);
    }
    
    
    void selfBuffs()
    {
        if(Me.Buffs.Any(b => b.Id == 411 && b.EndTime > 10000 && b.EndTime < 25000))
            Client.UseSkill(411);
        if(Me.SkillCooltime(4) < 900)
            Client.FUseSkill(4);
        if(Me.IsDead)
        {
            Wait(1000);
            Client.RestartPoint(RestartPointTypes.Town);
            writeChekpoint(40, 11);
        }
    }
    
    ///записать в сетингс текущий прогресс
    void writeChekpoint(int _quest, int _stage)
    {
        quest = _quest;
        questStage = _stage;
    }
    ///берет в таргет нпс, открывает диалог
    void NpcDialogOpen(int a){
        var NpcTarget = Npcs.FirstOrDefault(n => n.Id == a);
        if(NpcTarget != null)
        {
            Client.SetTarget(NpcTarget);
            if(Me.Target == NpcTarget)
            {
                Client.DialogOpen();
                Wait(1500);
            }
        }
    }
}
 

z_t

New member
Оптимизирован. Проверка на застревание, при смерти не тупит долго стоя в городе.
Код:
using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;

public class Script : ScriptBase {
    int quest;
    int questStage;
    bool running = false;
    Vector oldLocation;
    
    
    
    public class ScriptProgress
    {
        public string charName {get; set;}
        public int quest {get; set;}
        public int questStage {get; set;}
        public bool running;
        public Vector oldLocation;
    }
    
    
    public override void OnStart() {
        
        base.OnStart();
        init();
        EnabledChanged(true, init);
        CreateTimer(1000, scriptControl);
        CreateTimer(100, selfBuffs);
        CreateTimer(1000, checkAfk);
        EnabledChanged(true, () => Client.Pve.Enabled = true);

    }
    
    void init()
    {
        writeChekpoint(40, 1);
    }
    
    void scriptControl()
    {

        switch(questStage)
        {
            case 0:
                break;
            case 1:
                q1();
                break;
            case 2:
                q2();
                break;
            case 3:
                q3();
                break;
            case 4:
                q4();
                break;
            case 5:
                q5();
                break;
            case 6:
                q6();
                break;
            case 7:
                q7();
                break;
            case 8:
                q8();
                break;
            case 81:
                q81();
                break;
            case 9:
                q9();
                break;
            case 10:
                q10();
                break;
            case 11:
                q11();
                break;
            case 31:
                q31();
                break;
            case 32:
                q32();
                break;
            case 41:
                q41();
                break;
            case 42:
                q42();
                break;
        }
    }
    
    void q1() //Jeremy
    {
        running = true;
        Client.MoveToLocation(new Vector(149522, -112673, -2064), 0, 25000);
        NpcDialogOpen(31521);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(5000);
        NpcDialogOpen(31521);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 2);
    }
    
    void q2() //Beolin
    {
        Client.MoveToLocation(new Vector(149110, -112453, -2067), 0, 25000);
        Client.MoveToLocation(new Vector(148173, -112937, -2140), 0, 25000);
        Client.MoveToLocation(new Vector(147855, -113375, -2117), 0, 25000);
        Client.MoveToLocation(new Vector(147538, -113305, -2112), 0, 25000);
        
        NpcDialogOpen(31547);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 3);
    }
    
    void q3() //Pulin
    {
        Client.MoveToLocation(new Vector(147506, -113246, -2111), 0, 25000);
        Client.MoveToLocation(new Vector(148232, -113189, -2121), 0, 25000);
        Client.MoveToLocation(new Vector(149967, -114008, -1979), 0, 25000);
        Client.MoveToLocation(new Vector(150733, -114764, -1689), 0, 25000);
        Client.MoveToLocation(new Vector(151892, -114777, -1574), 0, 25000);
        Client.MoveToLocation(new Vector(153472, -114793, -1564), 0, 25000);
        Client.MoveToLocation(new Vector(155176, -115099, -1578), 0, 25000);
        Client.MoveToLocation(new Vector(156645, -115408, -1831), 0, 25000);
        Client.MoveToLocation(new Vector(157320, -115176, -1888), 0, 25000);
        Client.MoveToLocation(new Vector(157556, -115368, -1903), 0, 25000);
        
        NpcDialogOpen(31543);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 4);
    }
    
    void q4() //Naff
    {
        Client.MoveToLocation(new Vector(157018, -114574, -1828), 0, 25000);
        Client.MoveToLocation(new Vector(156446, -113729, -1741), 0, 25000);
        Client.MoveToLocation(new Vector(156220, -112469, -1822), 0, 25000);
        Client.MoveToLocation(new Vector(156251, -112062, -1938), 0, 25000);
        Client.MoveToLocation(new Vector(156496, -111521, -2406), 0, 25000);
        Client.MoveToLocation(new Vector(156098, -110705, -2607), 0, 25000);
        Client.MoveToLocation(new Vector(156137, -109886, -2651), 0, 25000);
        Client.MoveToLocation(new Vector(156434, -108590, -2636), 0, 25000);
        Client.MoveToLocation(new Vector(156534, -107517, -2635), 0, 25000);
        Client.MoveToLocation(new Vector(156033, -106380, -2736), 0, 25000);
        Client.MoveToLocation(new Vector(155641, -105736, -2754), 0, 25000);
        
        NpcDialogOpen(31544);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 5);

    }
    
    void q5() //Crocus
    {
        Client.MoveToLocation(new Vector(155266, -105157, -2745), 0, 25000);
        Client.MoveToLocation(new Vector(153834, -103088, -2978), 0, 25000);
        Client.MoveToLocation(new Vector(153763, -101550, -2927), 0, 25000);
        Client.MoveToLocation(new Vector(153483, -100989, -2926), 0, 25000);
        Client.MoveToLocation(new Vector(151326, -101453, -2895), 0, 25000);
        Client.MoveToLocation(new Vector(149454, -100974, -2913), 0, 25000);
        Client.MoveToLocation(new Vector(147167, -101010, -3111), 0, 25000);
        Client.MoveToLocation(new Vector(145444, -100849, -3255), 0, 25000);
        Client.MoveToLocation(new Vector(144848, -100757, -3285), 0, 25000);
        Client.MoveToLocation(new Vector(144302, -102896, -3545), 0, 25000);
        Client.MoveToLocation(new Vector(143072, -103901, -3590), 0, 25000);
        Client.MoveToLocation(new Vector(141545, -104884, -3641), 0, 25000);
        Client.MoveToLocation(new Vector(140720, -105445, -3632), 0, 25000);
        
        NpcDialogOpen(31545);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 6);
    }
    
    void q6() //Kuber
    {
        Client.MoveToLocation(new Vector(140750, -106303, -3627), 0, 25000);
        Client.MoveToLocation(new Vector(140773, -108341, -3649), 0, 25000);
        Client.MoveToLocation(new Vector(140836, -108617, -3627), 0, 25000);
        Client.MoveToLocation(new Vector(141682, -108786, -3573), 0, 25000);
        Client.MoveToLocation(new Vector(141670, -109401, -3590), 0, 25000);
        
        NpcDialogOpen(31546);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        NpcDialogOpen(31546);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        
        if (running)
            writeChekpoint(40, 7);
        
    }
    
    void q7() //Crocus
    {
        Client.MoveToLocation(new Vector(141676, -108973, -3568), 0, 25000);
        Client.MoveToLocation(new Vector(141741, -108142, -3562), 0, 25000);
        Client.MoveToLocation(new Vector(140867, -106676, -3628), 0, 25000);
        Client.MoveToLocation(new Vector(140651, -105517, -3632), 0, 25000);
        
        NpcDialogOpen(31545);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 8);
    }
    
    void q8() //Naff
    {
        Client.MoveToLocation(new Vector(141105, -105210, -3624), 0, 25000);
        Client.MoveToLocation(new Vector(142325, -104368, -3622), 0, 25000);
        Client.MoveToLocation(new Vector(143763, -103517, -3593), 0, 25000);
        Client.MoveToLocation(new Vector(144384, -102460, -3528), 0, 25000);
        Client.MoveToLocation(new Vector(144977, -100646, -3262), 0, 25000);
        Client.MoveToLocation(new Vector(146071, -100882, -3188), 0, 25000);
        Client.MoveToLocation(new Vector(148401, -100935, -2971), 0, 25000);
        Client.MoveToLocation(new Vector(151127, -101432, -2894), 0, 25000);
        Client.MoveToLocation(new Vector(152867, -101194, -2922), 0, 25000);
        Client.MoveToLocation(new Vector(153781, -101157, -2932), 0, 25000);
        Client.MoveToLocation(new Vector(154094, -102440, -2891), 0, 25000);
        Client.MoveToLocation(new Vector(154595, -103508, -2806), 0, 25000);
        Client.MoveToLocation(new Vector(154982, -104456, -2773), 0, 25000);
        Client.MoveToLocation(new Vector(155141, -105015, -2745), 0, 25000);
        Client.MoveToLocation(new Vector(155600, -105697, -2754), 0, 25000);
        
        NpcDialogOpen(31544);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 81);
    }
    
    void q81() //Pulin
    {
        Client.MoveToLocation(new Vector(155334, -106690, -2702), 0, 25000);
        Client.MoveToLocation(new Vector(154568, -108316, -2692), 0, 25000);
        Client.MoveToLocation(new Vector(153760, -110404, -2677), 0, 25000);
        Client.MoveToLocation(new Vector(152632, -111186, -2532), 0, 25000);
        Client.MoveToLocation(new Vector(151174, -112316, -2274), 0, 25000);
        Client.MoveToLocation(new Vector(150291, -113481, -2063), 0, 25000);
        Client.MoveToLocation(new Vector(150602, -114990, -1705), 0, 25000);
        Client.MoveToLocation(new Vector(153958, -115005, -1546), 0, 25000);
        Client.MoveToLocation(new Vector(156645, -115408, -1831), 0, 25000);
        Client.MoveToLocation(new Vector(157320, -115176, -1888), 0, 25000);
        Client.MoveToLocation(new Vector(157612, -115369, -1903), 0, 25000);
        
        NpcDialogOpen(31543);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 9);
    }
    
    void q9() //Beolin
    {
        Client.MoveToLocation(new Vector(156712, -115432, -1842), 0, 25000);
        Client.MoveToLocation(new Vector(155479, -115332, -1617), 0, 25000);
        Client.MoveToLocation(new Vector(153661, -115420, -1528), 0, 25000);
        Client.MoveToLocation(new Vector(150810, -114867, -1671), 0, 25000);
        Client.MoveToLocation(new Vector(149495, -113661, -2044), 0, 25000);
        Client.MoveToLocation(new Vector(148112, -113072, -2133), 0, 25000);
        Client.MoveToLocation(new Vector(147559, -113276, -2112), 0, 25000);
        
        NpcDialogOpen(31547);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        if(Client.HtmlActions.Count() > 0)
            Client.DialogSelect(0);
        
        if (running)
            writeChekpoint(40, 10);
    }
    
    void q10() //Jeremy
    {
        Client.MoveToLocation(new Vector(147584, -113260, -2112), 0, 25000);
        Client.MoveToLocation(new Vector(148320, -112954, -2136), 0, 25000);
        Client.MoveToLocation(new Vector(148899, -112578, -2084), 0, 25000);
        Client.MoveToLocation(new Vector(149201, -112405, -2065), 0, 25000);
        Client.MoveToLocation(new Vector(149498, -112678, -2064), 0, 25000);
        
        NpcDialogOpen(31521);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        NpcDialogOpen(31521);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        Client.DialogSelect(1);
        Wait(500);
        Client.DialogSelect(0);
        Wait(500);
        
        Client.FUseSkill(2099); //SoE
        Wait(30000);
        
        writeChekpoint(40, 11);
    }
    
    void q11()
    {
        IEnumerable<Vector> spawnGdd1 = new Vector[]{
            new Vector(146795, -55674, -2781),
            new Vector(146130, -56214, -2781),
            new Vector(146373, -56468, -2781),
            new Vector(147144, -55984, -2781)};
        
        IEnumerable<Vector> spawnGdd2 = new Vector[]{
            new Vector(149254, -58096, -2981),
            new Vector(149156, -57933, -2981),
            new Vector(148967, -58018, -2981),
            new Vector(149091, -58190, -2981)};
        
        IEnumerable<Vector> spawnGdd3 = new Vector[]{
            new Vector(148496, -55762, -2781),
            new Vector(149337, -56247, -2781),
            new Vector(149038, -56678, -2781),
            new Vector(148160, -55986, -2781)};
        
        IEnumerable<Vector> spawnGdd4 = new Vector[]{
            new Vector(144688, -56880, -2981),
            new Vector(144860, -56867, -2981),
            new Vector(144853, -56636, -2981),
            new Vector(144615, -56684, -2981)};
        
        IEnumerable<Vector> spawnGdd5 = new Vector[]{
            new Vector(148421, -58360, -2981),
            new Vector(148352, -58140, -2981),
            new Vector(148076, -58241, -2981),
            new Vector(148269, -58472, -2981)};
        
        IEnumerable<Vector> spawnGdd6 = new Vector[]{
            new Vector(147586, -58307, -2981),
            new Vector(147751, -58311, -2981),
            new Vector(147756, -58114, -2981),
            new Vector(147536, -58136, -2981)};
        
        
        IEnumerable<Vector> spawnGdd7 = new Vector[]{
            new Vector(149796, -57358, -2981),
            new Vector(149967, -57400, -2981),
            new Vector(149930, -57520, -2981),
            new Vector(149795, -57489, -2981)};
        
        IEnumerable<Vector> spawnGdd8 = new Vector[]{
            new Vector(150405, -56881, -2981),
            new Vector(150503, -56703, -2981),
            new Vector(150346, -56658, -2981),
            new Vector(150306, -56814, -2981)};
        
        IEnumerable<Vector> spawnGdd9 = new Vector[]{
            new Vector(146334, -58254, -2981),
            new Vector(146375, -58148, -2981),
            new Vector(146216, -58092, -2981),
            new Vector(146188, -58207, -2981)};
        
        IEnumerable<Vector> spawnGdd10 = new Vector[]{
            new Vector(147951, -56316, -2781),
            new Vector(147907, -57198, -2781),
            new Vector(147412, -57120, -2781),
            new Vector(147449, -56211, -2781)};
        
        IEnumerable<Vector> spawnGdd11 = new Vector[]{
            new Vector(145059, -57390, -2981),
            new Vector(145573, -56993, -2981),
            new Vector(145180, -55183, -2981),
            new Vector(144549, -55168, -2981)};
        
        IEnumerable<Vector> spawnGdd12 = new Vector[]{
            new Vector(144399, -54976, -2981),
            new Vector(144391, -55202, -2981),
            new Vector(144569, -55236, -2981),
            new Vector(144606, -54995, -2981)};
        
        IEnumerable<Vector> spawnGdd13 = new Vector[]{
            new Vector(147327, -58582, -2981),
            new Vector(147356, -58289, -2981),
            new Vector(147090, -58287, -2981),
            new Vector(147077, -58558, -2981)};
        
        IEnumerable<Vector> spawnGdd14 = new Vector[]{
            new Vector(145548, -57580, -2981),
            new Vector(145242, -57355, -2981),
            new Vector(145138, -57625, -2981),
            new Vector(145571, -57888, -2981)};
        
        IEnumerable<Vector> spawnGdd15 = new Vector[]{
            new Vector(150625, -55576, -2981),
            new Vector(150829, -55616, -2981),
            new Vector(150763, -55895, -2981),
            new Vector(150571, -55881, -2981)};
        
        IEnumerable<Vector> spawnGdd16 = new Vector[]{
            new Vector(145578, -57748, -2981),
            new Vector(145627, -57565, -2981),
            new Vector(145800, -57643, -2981),
            new Vector(145717, -57828, -2981)};
        
        
        if(Me.Location.IsInPolygon(spawnGdd1))
            q21();
        
        if(Me.Location.IsInPolygon(spawnGdd2))
            q22();
        
        if(Me.Location.IsInPolygon(spawnGdd3))
            q23();
        
        if(Me.Location.IsInPolygon(spawnGdd4))
            q24();
        
        if(Me.Location.IsInPolygon(spawnGdd5))
            q25();
        
        if(Me.Location.IsInPolygon(spawnGdd6))
            q26();
        
        if(Me.Location.IsInPolygon(spawnGdd7))
            q27();
        
        if(Me.Location.IsInPolygon(spawnGdd8))
            q28();
        
        if(Me.Location.IsInPolygon(spawnGdd9))
            q29();
        
        if(Me.Location.IsInPolygon(spawnGdd10))
            q210();
        
        if(Me.Location.IsInPolygon(spawnGdd11))
            q211();
        
        if(Me.Location.IsInPolygon(spawnGdd12))
            q212();
        
        if(Me.Location.IsInPolygon(spawnGdd13))
            q213();
        
        if(Me.Location.IsInPolygon(spawnGdd14))
            q214();
        
        if(Me.Location.IsInPolygon(spawnGdd15))
            q215();
        
        if(Me.Location.IsInPolygon(spawnGdd16))
            q216();
        
    }
    
    void q210()
    {
        Client.MoveToLocation(new Vector(147708, -57274, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(147704, -58232, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146502, -58222, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146132, -58026, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146384, -57562, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q211()
    {
        Client.MoveToLocation(new Vector(144808, -56445, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145534, -57577, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146145, -58071, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146405, -57555, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q212()
    {
        Client.MoveToLocation(new Vector(144833, -55562, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(144999, -56534, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145658, -57605, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146114, -58108, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146415, -57542, -2967), 0, 25000);
        writeChekpoint(40, 31);
        
    }
    
    void q214()
    {
        Client.MoveToLocation(new Vector(145733, -57982, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146095, -58115, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146423, -57542, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q213()
    {
        Client.MoveToLocation(new Vector(146688, -58362, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146102, -58104, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146415, -57544, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
    
    void q215()
    {
        Client.MoveToLocation(new Vector(150145, -57442, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149260, -58017, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149114, -57658, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149318, -57474, -2968), 0, 25000);
        
        
        writeChekpoint(40, 32);
    }
    
    void q216()
    {
        Client.MoveToLocation(new Vector(145596, -57955, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146129, -58085, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146404, -57551, -2967), 0, 25000);
        writeChekpoint(40, 31);
    }
    
    void q21()
    {
        Client.MoveToLocation(new Vector(146218, -56367, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(145318, -57078, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145843, -57894, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146133, -58011, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146409, -57546, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q22()
    {
        Client.MoveToLocation(new Vector(149197, -57848, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149127, -57659, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149313, -57489, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q23()
    {
        Client.MoveToLocation(new Vector(149224, -56376, -2781), 0, 25000);
        Client.MoveToLocation(new Vector(149895, -56862, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(150054, -57157, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149487, -57882, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149240, -57909, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149120, -57702, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149314, -57486, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q24()
    {
        Client.MoveToLocation(new Vector(145214, -57310, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(145808, -57769, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146195, -57964, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146413, -57543, -2967), 0, 25000);

        writeChekpoint(40, 31);
    }
    
    void q25()
    {
        Client.MoveToLocation(new Vector(148823, -58179, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149181, -57853, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149119, -57646, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149320, -57469, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q26()
    {
        Client.MoveToLocation(new Vector(148164, -58156, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(148590, -58183, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149182, -57863, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149120, -57648, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149329, -57470, -2968), 0, 25000);

        writeChekpoint(40, 32);
    }
    
    void q27()
    {
        Client.MoveToLocation(new Vector(149568, -57812, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149252, -57929, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149097, -57652, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149316, -57474, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q28()
    {
        Client.MoveToLocation(new Vector(150131, -57234, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149724, -57810, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149231, -57974, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(149084, -57671, -2968), 0, 25000);
        Client.MoveToLocation(new Vector(149310, -57484, -2968), 0, 25000);
        
        writeChekpoint(40, 32);
    }
    
    void q29()
    {
        Client.MoveToLocation(new Vector(146151, -58026, -2981), 0, 25000);
        Client.MoveToLocation(new Vector(146409, -57550, -2967), 0, 25000);
        
        writeChekpoint(40, 31);
    }
 

z_t

New member
Продолжение кода
Код:
///вх - маг лавка - центр
    void q31()
    {
        Client.MoveToLocation(146424, -57546, -2993, 0, 15000);
        Client.MoveToLocation(146420, -57553, -2967, 80, 15000);
        Client.SetTarget(31267);
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(3);  //  Quest.
        Client.DialogSelect(0);  //  "Jeremy sent me to get some adena."
        Client.MoveToLocation(146268, -57844, -2993, 0, 15000);
        Client.MoveToLocation(146111, -58123, -3007, 0, 15000);
        Client.MoveToLocation(146694, -58193, -3007, 0, 15000);
        Client.MoveToLocation(148748, -58061, -3007, 0, 15000);
        Client.MoveToLocation(149224, -57860, -3007, 0, 15000);
        Client.MoveToLocation(149116, -57673, -2994, 0, 15000);
        Client.MoveToLocation(149264, -57530, -2994, 0, 15000);
        Client.MoveToLocation(149328, -57470, -2994, 0, 15000);
        Client.MoveToLocation(149321, -57475, -2968, 80, 15000);
        Client.SetTarget(31584);
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(0);  //  Quest
        Client.DialogSelect(0);  //  "Jeremy sent me."
        Client.MoveToLocation(149179, -57624, -2994, 0, 15000);
        Client.MoveToLocation(149126, -57724, -2994, 0, 15000);
        Client.MoveToLocation(149254, -57960, -3007, 0, 15000);
        Client.MoveToLocation(148703, -58236, -3007, 0, 15000);
        Client.MoveToLocation(147827, -58149, -3007, 0, 15000);
        Client.MoveToLocation(147681, -58035, -3007, 0, 15000);
        Client.MoveToLocation(147694, -57532, -2897, 0, 15000);
        Client.MoveToLocation(147714, -56850, -2807, 0, 15000);
        Client.MoveToLocation(147708, -56109, -2807, 0, 15000);
        Client.MoveToLocation(147640, -55976, -2784, 0, 15000);
        Client.MoveToLocation(147640, -55000, -2728, 0, 15000);
        Client.MoveToLocation(147880, -55160, -2728, 80, 15000);
        Client.SetTarget(70045); //  Nps buff
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(4);  //  Buff Fighter Set
        Wait(2000);
        Client.DialogSelect(3);  //  Buff Mage Set
        Wait(2000);
        Client.SetTarget(70042);  // GK
        Client.DialogOpen();
        Wait(1500);
        Client.DialogSelect(11);  //  TP HotSprings

        writeChekpoint(40, 1);
    }
   
    ///маг лавка - вх - центр
    void q32()
    {
       
        Client.MoveToLocation(149297, -57447, -2968, 80, 15000);
        Client.SetTarget(31584);
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(0);  //  Quest
        Client.DialogSelect(0);
        Client.MoveToLocation(149192, -57602, -2994, 0, 15000);
        Client.MoveToLocation(149146, -57752, -2994, 0, 15000);
        Client.MoveToLocation(149193, -57915, -3007, 0, 15000);
        Client.MoveToLocation(148949, -58059, -3007, 0, 15000);
        Client.MoveToLocation(147973, -58192, -3007, 0, 15000);
        Client.MoveToLocation(146965, -58192, -3007, 0, 15000);
        Client.MoveToLocation(146326, -58120, -3007, 0, 15000);
        Client.MoveToLocation(146206, -57953, -3007, 0, 15000);
        Client.MoveToLocation(146321, -57684, -2993, 0, 15000);
        Client.MoveToLocation(146393, -57526, -2967, 80, 15000);
        Client.SetTarget(31267);
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(3);  //  Quest.
        Client.DialogSelect(0);
        Client.MoveToLocation(146258, -57816, -2993, 0, 15000);
        Client.MoveToLocation(146206, -58125, -3007, 0, 15000);
        Client.MoveToLocation(146941, -58205, -3007, 0, 15000);
        Client.MoveToLocation(147758, -58098, -3007, 0, 15000);
        Client.MoveToLocation(147697, -57441, -2858, 0, 15000);
        Client.MoveToLocation(147752, -56685, -2807, 0, 15000);
        Client.MoveToLocation(147640, -55976, -2784, 0, 15000);
        Client.MoveToLocation(147640, -55000, -2728, 0, 15000);
        Client.MoveToLocation(147880, -55160, -2728, 80, 15000);
        Client.SetTarget(70045); //  Nps buff
        Client.DialogOpen();
        Wait(500);
        Client.DialogSelect(4);  //  Buff Fighter Set
        Wait(2000);
        Client.DialogSelect(3);  //  Buff Mage Set
        Wait(2000);
        Client.MoveToLocation(147832, -55272, -2728, 0, 15000);
        Client.SetTarget(70042);  // GK
        Client.DialogOpen();
        Wait(1500);
        Client.DialogSelect(11);  //  TP HotSprings
       
        writeChekpoint(40, 1);
    }
   
    void q41()
    {
        Client.MoveToLocation(147835, -55306, -2760, 0, 15000);
        Client.MoveToLocation(147909, -55336, -2760, 0, 15000);
        Client.MoveToLocation(147982, -55229, -2760, 0, 15000);
        Client.MoveToLocation(147981, -55235, -2735, 80, 15000);
        Client.SetTarget(31275);
        Client.DialogOpen();
        //Wait(1500);
        Client.DialogSelect(0);  //  Teleport
        Client.DialogSelect(10);  //  Hot Springs - 9300 Adena
        //Wait(5000);
       
       
        writeChekpoint(40, 42);
    }
   
    void q42()
    {
        Client.MoveToLocation(new Vector(145300, -113084, -2519), 0, 25000);
        Client.MoveToLocation(new Vector(146440, -112502, -2371), 0, 25000);
        Client.MoveToLocation(new Vector(147885, -112549, -2166), 0, 25000);
        Client.MoveToLocation(new Vector(148964, -112480, -2081), 0, 25000);
        Client.MoveToLocation(new Vector(149431, -112534, -2064), 0, 25000);
       
        writeChekpoint(40, 1);
    }
   
   
    void selfBuffs()
    {
        if (Me.Buffs.Any(b => Me.BuffEndtime(411) < 5000))
            Client.UseSkill(411);
        if(Me.SkillCooltime(4) < 50)
            Client.FUseSkill(4);
        if(Me.IsDead)
        {
            Wait(1000);
            Client.RestartPoint(RestartPointTypes.Town);
            running = false;
            writeChekpoint(40, 11);
        }
    }
   
    void checkAfk()
    {
        oldLocation = Me.Location;
        Wait(40000);
        if (Me.Location == oldLocation)
        {
            Client.FUseSkill(2099); //SoE
            Wait(30000);
            running = false;
            writeChekpoint(40, 11);
        }
    }
   
    ///записать в сетингс текущий прогресс
    void writeChekpoint(int _quest, int _stage)
    {
        quest = _quest;
        questStage = _stage;
    }
    ///берет в таргет нпс, открывает диалог
    void NpcDialogOpen(int a){
        var NpcTarget = Npcs.FirstOrDefault(n => n.Id == a);
        if(NpcTarget != null)
        {
            Client.SetTarget(NpcTarget);
            if(Me.Target == NpcTarget)
            {
                Client.DialogOpen();
                Wait(1500);
            }
        }
    }
}
 
Сверху