Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

квест 1я профа на шк(хэпл)

Рег
10 Окт 2016
Сообщения
14
Реакции
0
зависаю на лоурейт - хотел запилить скрипт на квест 1й профы но застопорился на проверке квестовых итемов , набил 13 черепов и не останавливается


var obj: TL2NPC; obj21: TL2Effect;

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


begin

//от тп до вирджила
if user.inrange(-12791, 122871, -3104,800,500) then begin
Engine.MoveTo(-12296, 122888, -3080);
Engine.MoveTo(-12259, 123470, -3086);
Engine.MoveTo(-12696, 123368, -3096);
Engine.MoveTo(-12696, 123192, -3080);

Engine.SetTarget(30329); // берем квест у вирджила
delay(4000);
engine.dlgOpen(); // открывает диалог
delay(4000);
engine.dlgsel(2) ;
delay(2000);
engine.dlgsel(1) ;
delay(2000);
engine.dlgsel(1) ;
//бежим к гк
Engine.MoveTo(-12696, 123528, -3104);
Engine.MoveTo(-12264, 123368, -3088);
Engine.MoveTo(-12376, 122744, -3088);
Engine.MoveTo(-12744, 122792, -3104);

//летим к эльфам
Engine.SetTarget(30256); // выделяет гк глудио
delay(4000);
engine.dlgOpen();
delay(4000);
engine.dlgsel(2) ;
delay(2000);
engine.dlgsel(10) ;
delay(2000);
engine.dlgsel(1) ;
delay(2000);
end;

//летим в нейтрал зону
Engine.SetTarget(30146); // выделяет гк эльфам деревня
delay(4000);
engine.dlgOpen();
delay(4000);
engine.dlgsel(1) ;
delay(2000);
engine.dlgsel(8) ;
delay(4000);
engine.dlgsel(1) ;
delay(2000);

//пробегаем на поляну
Engine.MoveTo(-9496, 77320, -3504);
Engine.MoveTo(-9384, 77688, -3472);
Engine.MoveTo(-8978, 77991, -3456);
Engine.FaceControl(0,true);// включается бот


//фармим ликантропов желательно указать в приоритете в боте
while true do begin
if User.Dead then begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(15000);
if user.inrange (4907,49218,-3056,1500,500) then begin // меняйте значение 1500 если не хочет идти, или другие проблемы
engine.MOVETO(45190,50002,-3056);
engine.MOVETO(46630,50437,-3086);
engine.MOVETO(47113,50904,-3022);
engine.MOVETO(46962,51314,-2992);
engine.MOVETO(46927,51470,-3003);
end;
//летим в нейтрал зону
Engine.SetTarget(30146); // выделяет гк эльфам деревня
delay(4000);
engine.dlgOpen();
delay(4000);
engine.dlgsel(1) ;
delay(2000);
engine.dlgsel(8) ;
delay(4000);
engine.dlgsel(1) ;
delay(2000);
end;
// набили 13 черепов вырубаем бот
if CheckItemCount(1238, True) > 12 then
Engine.FaceControl(0,false);
end;

//продолжение следует если поправить чек итем


end.

где затупил?
 
без табуляции плохо видно. проверка на итемы должна быть тоже в цикле. то есть летим в зону, включаем фарм мобов с условием

while(CheckItemCount(1238, True) < 13) do
begin
engine.FaceControl(0,true);
delay(500);
end;

после того как итемов будет 13+ пишем дальнейший код прохождения квеста.
 
Пробовал заменить но всеравно - упорно фармит дальше .

Добил квест руками....... :(
 
@aspirin, квест итемы хоть правильно считались? Дебаг GetItemCount в виде вывода в логи бота не помешал бы :)
 
Uses SysUtils, Classes;

var Item: TL2Item; Npc: TL2Npc; obj: TL2NPC; L2Skill: TL2Skill; buff:TL2buff; obj21: TL2Effect;


//пробегаем на поляну
Engine.MoveTo(-9496, 77320, -3504);
Engine.MoveTo(-9384, 77688, -3472);
Engine.MoveTo(-8978, 77991, -3456);
if User.InRange(-8978, 77991, -3456,100,100) then
Engine.LoadZone('название твой зоны фарма');
Engine.loadconfig('название твоего профиля');
Engine.Facecontrol(0,True);
end;
if Inventory.Quest.ByID(1238, Item) and (Item.count = 13) then
Engine.Facecontrol(0,False);
print('набили 13 итемов тп в город');
delay(100);
engine.clearzone;
Engine.UseItem(ID сое);
Delay(25000);





попробуй так , у меня работает
 
SARCAZM написал(а):
Дебаг GetItemCount в виде вывода в логи бота
неплохая идея, в следующих квестах учту.

За ноч выкачался до 28го мб к завтрашнему вечеру квест на альтернативную 2ю профу сделаю скрипт а с этим уже поздно ...
 
@CMAK, попробую такой вид, спасибо
Если заработает то так на любой квест можно переделать, только дописать проверку на этап квеста, но этот скрипт я уже гдето на форуме видел. :10:
 
Назад
Сверху