Бесячий квест на собирателя

Модератор: IvaniuS

Ответить
dotsman30
Сообщения: 7
Зарегистрирован: Вт дек 13, 2016 8:38 pm

Пн апр 03, 2017 8:43 pm

Всегда ненавидел этот квест, поэтому набросал скрипт.
Начало квеста у Пеппи в деревне гномов. Проверки на смерть нет, т.к. с моими шмотками мне она была не нужна, прикрутить не сложно кому надо. Интерфейс на атаку настраивать под себя.
Зоны для охоты

bears:

<?xml version="1.0" encoding="utf-8"?>
<zone>
<ExternalPoly>
<points>
<point x="136455" y="-204543"/>
<point x="137442" y="-204952"/>
<point x="138694" y="-203267"/>
<point x="139367" y="-201583"/>
<point x="139440" y="-199730"/>
<point x="139801" y="-198887"/>
<point x="137226" y="-198430"/>
<point x="135060" y="-198911"/>
<point x="134963" y="-200428"/>
<point x="135685" y="-202088"/>
<point x="136287" y="-203243"/>
</points>
</ExternalPoly>
<InternalPolies/>
</zone>

tarantul:

<?xml version="1.0" encoding="utf-8"?>
<zone>
<ExternalPoly>
<points>
<point x="147811" y="-212029"/>
<point x="149757" y="-212084"/>
<point x="152356" y="-210915"/>
<point x="154071" y="-212815"/>
<point x="153748" y="-216153"/>
<point x="153868" y="-217766"/>
<point x="152617" y="-218247"/>
<point x="151390" y="-217934"/>
<point x="150162" y="-218416"/>
<point x="148453" y="-218729"/>
<point x="146985" y="-218440"/>
<point x="146239" y="-217164"/>
<point x="147130" y="-215407"/>
<point x="147731" y="-214108"/>
</points>
</ExternalPoly>
<InternalPolies/>
</zone>


var item: TL2Item;
qstat: integer;


function CheckItemCount (const itemID: Integer; const questItem: Boolean = False) : Integer;
begin
if questItem then Inventory.Quest.ByID(itemID, Item)
else Inventory.User.ByID(itemID, Item);
Result := Item.Count;
end;

procedure findtoma;
begin
while not Inventory.Quest.ByID(qstat, Item) do begin
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(2);
delay (10000);
Engine.MoveTo(168602, -209454, -3565);
Engine.MoveTo(167911, -210851, -3673);
Engine.MoveTo(166838, -211086, -3711);
Engine.MoveTo(165383, -211492, -3652);
Engine.MoveTo(164662, -212263, -3639);
Engine.MoveTo(163887, -213826, -3681);
Engine.MoveTo(163137, -214553, -3633);
Engine.MoveTo(161850, -215455, -3697);
Engine.MoveTo(160611, -215500, -3750);
Engine.MoveTo(159063, -215378, -3738);
Engine.MoveTo(157620, -215441, -3751);
Engine.MoveTo(156152, -214985, -3716);
Engine.MoveTo(155096, -215012, -3715);
Engine.MoveTo(153916, -216101, -3711);
Engine.MoveTo(153866, -217081, -3632);
Engine.MoveTo(153760, -217588, -3614);
Engine.MoveTo(154205, -219142, -3759);
Engine.MoveTo(154027, -219534, -3639);
Engine.MoveTo(154056, -219769, -3520);
Engine.MoveTo(154140, -220032, -3432);
Engine.SetTarget(30556);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.UseItem(736);
delay (25000);
if not Inventory.Quest.ByID(qstat, Item) then begin
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(2);
delay (10000);
Engine.MoveTo(169208, -207407, -3465);
Engine.MoveTo(169209, -205948, -3617);
Engine.MoveTo(169499, -205305, -3589);
Engine.MoveTo(170402, -204192, -3592);
Engine.MoveTo(170855, -203249, -3626);
Engine.MoveTo(171290, -202618, -3648);
Engine.MoveTo(172054, -202218, -3635);
Engine.MoveTo(173829, -201508, -3445);
Engine.MoveTo(175539, -200430, -3284);
Engine.MoveTo(176143, -199637, -3235);
Engine.MoveTo(176050, -198600, -3247);
Engine.MoveTo(175800, -197402, -3234);
Engine.MoveTo(176000, -196599, -3215);
Engine.MoveTo(175958, -196067, -3217);
Engine.MoveTo(175775, -194742, -3093);
Engine.MoveTo(177171, -192551, -2691);
Engine.MoveTo(177316, -191665, -2447);
Engine.MoveTo(176702, -190428, -2058);
Engine.MoveTo(177211, -189174, -1647);
Engine.MoveTo(177318, -187960, -1188);
Engine.MoveTo(177766, -187075, -863);
Engine.MoveTo(178152, -186137, -602);
Engine.MoveTo(178339, -185015, -420);
Engine.MoveTo(178756, -184407, -379);
Engine.SetTarget(30556);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.UseItem(736);
delay (25000);
end;
if not Inventory.Quest.ByID(qstat, Item) then begin
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(3);
delay (10000);
Engine.MoveTo(139744, -176465, -1567);
Engine.MoveTo(139674, -175347, -1687);
Engine.MoveTo(139098, -174498, -1759);
Engine.MoveTo(137818, -173998, -1807);
Engine.MoveTo(136656, -172765, -1807);
Engine.MoveTo(136099, -171600, -1792);
Engine.MoveTo(136084, -170480, -1759);
Engine.MoveTo(136902, -169588, -1741);
Engine.MoveTo(138034, -169493, -1584);
Engine.MoveTo(138998, -169487, -1567);
Engine.MoveTo(140653, -169585, -1807);
Engine.MoveTo(141929, -170279, -1807);
Engine.MoveTo(143992, -171469, -1807);
Engine.MoveTo(144584, -171963, -1774);
Engine.MoveTo(144621, -172867, -1578);
Engine.MoveTo(144881, -174220, -1551);
Engine.MoveTo(146273, -175250, -1547);
Engine.MoveTo(147453, -175756, -1550);
Engine.MoveTo(148929, -175853, -1551);
Engine.MoveTo(150143, -175867, -1547);
Engine.MoveTo(150625, -175872, -1592);
Engine.MoveTo(151450, -175737, -1807);
Engine.MoveTo(151560, -174903, -1807);
Engine.SetTarget(30556);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.UseItem(736);
delay (25000);
end;
end;
end;



begin
Engine.SetTarget(30524);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(2);
delay(1000);
Engine.DlgSel(1);
Engine.MoveTo(115886, -183278, -1472);
Engine.MoveTo(115959, -183251, -1510);
Engine.MoveTo(116406, -182447, -1537);
Engine.MoveTo(116601, -181555, -1453);
Engine.MoveTo(116624, -180530, -1264);
Engine.MoveTo(116503, -179883, -1179);
Engine.MoveTo(115899, -179212, -1034);
Engine.MoveTo(115574, -178791, -986);
Engine.MoveTo(115565, -178212, -953);
Engine.MoveTo(115870, -177843, -920);
Engine.MoveTo(115986, -177762, -888);
Engine.MoveTo(116094, -177726, -880);
Engine.MoveTo(116110, -177698, -911);
Engine.MoveTo(116242, -177546, -911);
Engine.SetTarget(30519);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
while not Engine.QuestStatus(417, 4) do begin
if Inventory.Quest.ByID(1648, item) then begin
Engine.MoveTo(116142, -177694, -880);
Engine.MoveTo(116097, -177720, -911);
Engine.MoveTo(115474, -177924, -948);
Engine.MoveTo(115600, -178903, -995);
Engine.MoveTo(116541, -179805, -1171);
Engine.MoveTo(116626, -181000, -1359);
Engine.MoveTo(116237, -181513, -1391);
Engine.MoveTo(116152, -181223, -1366);
Engine.MoveTo(116184, -181103, -1366);
Engine.SetTarget(30517);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.MoveTo(116174, -181358, -1375);
Engine.MoveTo(116621, -181402, -1430);
Engine.MoveTo(116646, -180528, -1266);
Engine.MoveTo(116476, -179828, -1174);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -1044);
Engine.MoveTo(115951, -179177, -992);
Engine.MoveTo(115667, -178775, -988);
Engine.MoveTo(115661, -178378, -967);
Engine.MoveTo(115827, -177927, -921);
Engine.MoveTo(115986, -177760, -920);
Engine.MoveTo(116162, -177713, -911);
Engine.MoveTo(116245, -177533, -911);
Engine.SetTarget(30519);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
end;
if Inventory.Quest.ByID(1647, item) then begin
Engine.MoveTo(116142, -177694, -880);
Engine.MoveTo(116092, -177715, -911);
Engine.MoveTo(115683, -177869, -922);
Engine.MoveTo(115637, -178928, -999);
Engine.MoveTo(116467, -179729, -1161);
Engine.MoveTo(116638, -180298, -1221);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1420);
Engine.MoveTo(116592, -181357, -1368);
Engine.MoveTo(116343, -182164, -1515);
Engine.MoveTo(115698, -182216, -1474);
Engine.MoveTo(115449, -182212, -1468);
Engine.MoveTo(115410, -182338, -1440);
Engine.MoveTo(115419, -182404, -1468);
Engine.SetTarget(30525);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(5);
delay (1000);
Engine.MoveTo(115410, -182338, -1440);
Engine.MoveTo(115466, -182218, -1468);
Engine.MoveTo(115942, -182116, -1478);
Engine.MoveTo(116621, -181697, -1476);
Engine.MoveTo(116638, -180633, -1289);
Engine.MoveTo(116473, -179786, -1168);
Engine.MoveTo(115927, -179140, -1037);
Engine.MoveTo(115667, -178664, -983);
Engine.MoveTo(115687, -178191, -955);
Engine.MoveTo(115840, -177925, -921);
Engine.MoveTo(115993, -177763, -920);
Engine.MoveTo(116126, -177697, -911);
Engine.MoveTo(116245, -177542, -911);
Engine.SetTarget(30519);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
end;
if Inventory.Quest.ByID(1649, item) then begin
Engine.MoveTo(116142, -177694, -880);
Engine.MoveTo(116100, -177720, -911);
Engine.MoveTo(115721, -177823, -920);
Engine.MoveTo(115092, -178326, -913);
Engine.MoveTo(114787, -178501, -849);
Engine.MoveTo(114501, -178612, -840);
Engine.MoveTo(114437, -178657, -840);
Engine.SetTarget(30538);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay (1000);
Engine.DlgSel(1);
delay (1000);
Engine.MoveTo(114664, -178544, -840);
Engine.MoveTo(115386, -178321, -954);
Engine.MoveTo(115835, -177881, -920);
Engine.MoveTo(116024, -177735, -918);
Engine.MoveTo(116112, -177714, -911);
Engine.MoveTo(116249, -177543, -911);
Engine.SetTarget(30519);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
end;
end;
Engine.MoveTo(116142, -177694, -880);
Engine.MoveTo(116085, -177715, -911);
Engine.MoveTo(115986, -177762, -888);
Engine.MoveTo(115714, -177917, -920);
Engine.MoveTo(115466, -178254, -954);
qstat:=1653;
findtoma;
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(5);
delay (10000);
Engine.MoveTo(126258, -198973, -3725);
Engine.MoveTo(126971, -199221, -3443);
Engine.MoveTo(129653, -199590, -3446);
Engine.MoveTo(131176, -200675, -3389);
Engine.MoveTo(132480, -200712, -3461);
Engine.MoveTo(135085, -200536, -3764);
Engine.MoveTo(136610, -201079, -3752);
Engine.MoveTo(137033, -201642, -3752);
Engine.loadzone ('bears');
Engine.Facecontrol (0, true);
while not CheckItemCount (1655, true) = 5 do delay (5000);
Engine.Facecontrol (0, false);
Engine.UseItem(736);
delay (20000);
qstat:=1654;
findtoma;
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(2);
delay (10000);
Engine.MoveTo(168582, -209651, -3563);
Engine.MoveTo(167941, -210816, -3670);
Engine.MoveTo(166580, -211159, -3711);
Engine.MoveTo(165834, -211376, -3661);
Engine.MoveTo(164917, -211912, -3641);
Engine.MoveTo(164296, -212952, -3657);
Engine.MoveTo(163441, -214187, -3655);
Engine.MoveTo(162846, -214765, -3618);
Engine.MoveTo(161262, -215419, -3731);
Engine.MoveTo(159539, -215284, -3749);
Engine.MoveTo(157713, -215371, -3752);
Engine.MoveTo(155970, -214926, -3716);
Engine.MoveTo(154743, -215137, -3720);
Engine.MoveTo(153221, -215393, -3570);
Engine.MoveTo(152124, -215268, -3390);
Engine.MoveTo(150724, -215282, -3423);
Engine.loadzone ('tarantul');
Engine.Facecontrol (0, true);
while not CheckItemCount (1656, true) = 20 do delay (5000);
Engine.Facecontrol (0, false);
Engine.UseItem(736);
delay (20000);
qstat:=1657;
findtoma;
Engine.MoveTo(116720, -180328, -1184);
Engine.MoveTo(116188, -179472, -1103);
Engine.MoveTo(115665, -178803, -991);
Engine.MoveTo(115303, -178366, -949);
Engine.MoveTo(115303, -178366, -896);
Engine.MoveTo(115120, -178206, -915);
Engine.SetTarget(30540);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
delay (10000);
Engine.MoveTo(-80706, 149822, -3040);
Engine.MoveTo(-81699, 150909, -3155);
Engine.MoveTo(-82704, 151558, -3155);
Engine.MoveTo(-83001, 152045, -3155);
Engine.MoveTo(-83036, 153166, -3204);
Engine.MoveTo(-83042, 153757, -3204);
Engine.MoveTo(-83026, 153932, -3204);
Engine.MoveTo(-82597, 153930, -3204);
Engine.MoveTo(-82324, 153694, -3204);
Engine.MoveTo(-82244, 153465, -3200);
Engine.MoveTo(-82222, 153426, -3168);
Engine.MoveTo(-82138, 153388, -3200);
Engine.MoveTo(-81961, 153487, -3200);
Engine.SetTarget(30316);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
Engine.DlgSel(1);
delay (1000);
Engine.MoveTo(-82201, 153401, -3200);
Engine.MoveTo(-82082, 153426, -3168);
Engine.MoveTo(-82201, 153401, -3200);
Engine.MoveTo(-82268, 153512, -3200);
Engine.MoveTo(-82308, 153744, -3204);
Engine.MoveTo(-82826, 153936, -3204);
Engine.MoveTo(-83071, 153912, -3204);
Engine.MoveTo(-83057, 153101, -3204);
Engine.MoveTo(-82982, 152342, -3155);
Engine.MoveTo(-82832, 151772, -3155);
Engine.MoveTo(-82462, 151368, -3155);
Engine.MoveTo(-81783, 150789, -3155);
Engine.MoveTo(-81229, 150363, -3155);
Engine.MoveTo(-80999, 150165, -3070);
Engine.MoveTo(-80868, 150001, -3070);
Engine.MoveTo(-80869, 149845, -3070);
Engine.MoveTo(-80798, 149730, -3040);
Engine.MoveTo(-80770, 149739, -3070);
Engine.SetTarget(30320);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(6);
delay (10000);
Engine.SetTarget(30256);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(6);
delay (10000);
Engine.SetTarget(30059);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(2);
delay (10000);
Engine.SetTarget(30080);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(7);
delay (10000);
Engine.MoveTo(71908, 118662, -3677);
Engine.MoveTo(71124, 118884, -3669);
Engine.MoveTo(70765, 119218, -3635);
Engine.MoveTo(70458, 120132, -3619);
Engine.MoveTo(70149, 121088, -3614);
Engine.MoveTo(70466, 122356, -3643);
Engine.MoveTo(70633, 123455, -3624);
Engine.MoveTo(70745, 124408, -3615);
Engine.MoveTo(70896, 124535, -3596);
Engine.SetTarget(30557);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
Engine.UseItem(736);
delay (20000);
Engine.MoveTo(83061, 148395, -3495);
Engine.MoveTo(82857, 148354, -3495);
Engine.MoveTo(82880, 148935, -3495);
Engine.MoveTo(83271, 148910, -3431);
Engine.MoveTo(83370, 148481, -3431);
Engine.MoveTo(83427, 148229, -3431);
Engine.MoveTo(83532, 148058, -3431);
Engine.MoveTo(83478, 147911, -3431);
Engine.SetTarget(30080);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
delay (10000);
Engine.SetTarget(30059);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(1);
delay (10000);
Engine.SetTarget(30256);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(1);
delay(1000);
Engine.DlgSel(5);
delay (10000);
Engine.MoveTo(-80985, 150273, -3070);
Engine.MoveTo(-82303, 151268, -3155);
Engine.MoveTo(-82965, 151821, -3155);
Engine.MoveTo(-82993, 152313, -3155);
Engine.MoveTo(-83060, 153086, -3204);
Engine.MoveTo(-83018, 153771, -3204);
Engine.MoveTo(-82994, 153961, -3204);
Engine.MoveTo(-82647, 153922, -3204);
Engine.MoveTo(-82340, 153721, -3204);
Engine.MoveTo(-82272, 153607, -3202);
Engine.MoveTo(-82283, 153652, -3176);
Engine.MoveTo(-82251, 153431, -3200);
Engine.MoveTo(-82072, 153395, -3200);
Engine.MoveTo(-81967, 153486, -3200);
Engine.SetTarget(30316);
Engine.DlgOpen();
delay(1000);
Engine.DlgSel(3);
delay(1000);
end.
dotsman30
Сообщения: 7
Зарегистрирован: Вт дек 13, 2016 8:38 pm

Вс янв 21, 2018 10:34 am

Не могу отвечать в личку поэтому выложу эту версию для тех у кого не работает проверка. Все зоны те же.

https://yadi.sk/d/gpU_oeBd3Re8H2
heaven66
Сообщения: 19
Зарегистрирован: Чт янв 14, 2016 12:53 am

Ср окт 30, 2019 1:45 am

У меня на сервере (интерлюд) нумерация строчек в диалогах несколько другая, но в целом хороший скрипт. Жаль обновленный зачем-то закодирован, не могу изменить там dlgsel
Ответить