- Рег
- 28 Ноя 2015
- Сообщения
- 126
- Реакции
- 0
Собственно делаю скрипт для ХФ хроник на куру, я еще полный ноль, делал смотря в другие скрипты. Косяков наверное много, подскажите что где не так. Скрипт при запуске сразу же отключается, но ошибок не выдает.
Наверняка проблема в переменных\классах. Нужно будет конечно его еще сильно доработать) В каких случаях вообще нужно описывать процедуру?
Наверняка проблема в переменных\классах. Нужно будет конечно его еще сильно доработать) В каких случаях вообще нужно описывать процедуру?
Uses SysUtils, Classes;
var Item: TL2Item; Npc: TL2Npc; obj: TL2NPC; L2Skill: TL2Skill; // кто может объяснить в каких случаях какие классы используются ?
function CheckStatus: Boolean;
begin
Result:= true;
if User.Dead then begin
Delay(1000);
Engine.FaceControl(0, false);
Engine.GoHome;
Delay(10000);
end;
Result := false;
end;
procedure CheckLoading (NpcID: integer); // взял это с другого скрипта, но так и не понял нужна ли вообще тут эта проверка?
begin
while(engine.delay(100)) do
begin
Engine.GetNpcList.ByID(NpcID, obj);
if ((User.DistTo (obj)) < 9000) then Engine.Settarget(30827);// 9000 - Дистанция на которой сканируются NPC
break;
end;
end;
procedure TAKEQUESTGLUDIO; //берем кв у ланди
begin
if User.inrange (-13943,123353, -3112, 1000, 150) then begin
Engine.Settarget(30827); //Взять в таргет ланди;
Delay(1500);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1); //берем квест
Delay(5000);
//идем в магаз оружия
Engine.MoveTo(-14424, 123584, -3143);
Engine.MoveTo(-14564, 123737, -3143);
Engine.MoveTo(-14701, 123848, -3143);
Engine.MoveTo(-14788, 123925, -3143);
Engine.MoveTo(-14751, 123412, -3143);
Engine.MoveTo(-14760, 123432, -3143);
Engine.MoveTo(-14802, 123409, -3143);
Engine.MoveTo(-15029, 123417, -3134);
Engine.MoveTo(-15091, 123371, -3134);
Engine.MoveTo(-15123, 123371, -3134);
Engine.MoveTo(-15124, 123376, -3134);
Engine.Settarget(30321); // target сидни в магазине оружия
Engine.Dlgopen;
Delay(1000);
Engine.DlgSel(1);
Delay(300);
Engine.DlgSel(1);
Engine.NPCTrade(false,[8824,1]); //купить молот за 425,250 аден
Delay(1000);
//идем к ланди
Engine.MoveTo(-14894, 123442, -3104);
Engine.MoveTo(-14683, 123477, -3143);
Engine.MoveTo(-14376, 123431, -3143);
Engine.MoveTo(-14057, 123375, -3143);
Engine.MoveTo(-13905, 123357, -3143);
Engine.MoveTo(-13954, 123353, -3143);
Engine.MoveTo(-13946, 123347, -3143);
Engine.Settarget(30827); //Взять в таргет ланди;
Delay(1500);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1);
Delay(1000);
//идем за баффом от ланди
Engine.MoveTo(-14227, 123122, -3143);
Engine.MoveTo(-14093, 122589, -3143);
Engine.MoveTo(-14142, 122334, -3079);
Engine.MoveTo(-14099, 122240, -3031);
Engine.MoveTo(-13959, 122014, -3015);
Engine.Settarget(31077);
Engine.Dlgopen;
Engine.DlgSel(2);
Engine.DlgSel(1);
Delay(500);
end;
end;
//идем фармить итемы на лизардов
procedure farmQuest;
begin
Engine.MoveTo(-14575, 123317, -3143);
Engine.MoveTo(-14914, 123884, -3143);
Engine.MoveTo(-17332, 124307, -3183);
Engine.MoveTo(-18052, 124301, -3175);
Engine.MoveTo(-19326, 123564, -3225);
Engine.MoveTo(-19914, 122657, -3340);
Engine.LoadZone('квест кура 27 лвл.zmap');
Delay(500);
Engine.LoadConfig('сх 27 квест кура'); //загружаем конфиг для темного мистика
Delay(500);
Engine.Facecontrol(0,True); //включаем конфиг
if Inventory.User.ByID(7552, Item) and (Item.count = 30) then //если квест итемов =>30
Engine.Facecontrol(0,False);
Engine.UseItem(736); //юзаем сое в город
Delay(10000);
end;
procedure TAKECOUR;
begin
if User.inrange (-14366, 123692, -3112, 5000, 150) then begin
Engine.MoveTo(-14366, 123692, -3112); //идем в центр города
Engine.MoveTo(-13914, 123311, -3143); //идем к ланди
Engine.SetTarget(30827);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1);
Delay(1000);
end;
//идем к орку
Engine.MoveTo(-14132, 123709, -3143);
Engine.MoveTo(-14261, 124430, -3146);
Engine.MoveTo(-14202, 125735, -3169);
Engine.MoveTo(-13826, 126059, -3171);
Engine.MoveTo(-13251, 126173, -3171);
Engine.MoveTo(-12699, 124884, -3155);
Engine.MoveTo(-12823, 124887, -3126);
Engine.SetTarget(30505);
Engine.Dlgopen;
Engine.DlgSel(5);
Engine.DlgSel(1);
Delay(500); //идем к ланди
Engine.MoveTo(-12252, 124384, -3131);
Engine.MoveTo(-12128, 123799, -3124);
Engine.MoveTo(-13804, 123488, -3143);
Engine.MoveTo(-13892, 123349, -3143);
Engine.SetTarget(30827);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1); //взяли обменник
Delay(1000);
Engine.SetTarget(30827); //меняем на куру
Engine.Dlgopen;
Engine.DlgSel(6);
Engine.DlgSel(1); //получаем куру
end;
begin
end.
var Item: TL2Item; Npc: TL2Npc; obj: TL2NPC; L2Skill: TL2Skill; // кто может объяснить в каких случаях какие классы используются ?
function CheckStatus: Boolean;
begin
Result:= true;
if User.Dead then begin
Delay(1000);
Engine.FaceControl(0, false);
Engine.GoHome;
Delay(10000);
end;
Result := false;
end;
procedure CheckLoading (NpcID: integer); // взял это с другого скрипта, но так и не понял нужна ли вообще тут эта проверка?
begin
while(engine.delay(100)) do
begin
Engine.GetNpcList.ByID(NpcID, obj);
if ((User.DistTo (obj)) < 9000) then Engine.Settarget(30827);// 9000 - Дистанция на которой сканируются NPC
break;
end;
end;
procedure TAKEQUESTGLUDIO; //берем кв у ланди
begin
if User.inrange (-13943,123353, -3112, 1000, 150) then begin
Engine.Settarget(30827); //Взять в таргет ланди;
Delay(1500);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1); //берем квест
Delay(5000);
//идем в магаз оружия
Engine.MoveTo(-14424, 123584, -3143);
Engine.MoveTo(-14564, 123737, -3143);
Engine.MoveTo(-14701, 123848, -3143);
Engine.MoveTo(-14788, 123925, -3143);
Engine.MoveTo(-14751, 123412, -3143);
Engine.MoveTo(-14760, 123432, -3143);
Engine.MoveTo(-14802, 123409, -3143);
Engine.MoveTo(-15029, 123417, -3134);
Engine.MoveTo(-15091, 123371, -3134);
Engine.MoveTo(-15123, 123371, -3134);
Engine.MoveTo(-15124, 123376, -3134);
Engine.Settarget(30321); // target сидни в магазине оружия
Engine.Dlgopen;
Delay(1000);
Engine.DlgSel(1);
Delay(300);
Engine.DlgSel(1);
Engine.NPCTrade(false,[8824,1]); //купить молот за 425,250 аден
Delay(1000);
//идем к ланди
Engine.MoveTo(-14894, 123442, -3104);
Engine.MoveTo(-14683, 123477, -3143);
Engine.MoveTo(-14376, 123431, -3143);
Engine.MoveTo(-14057, 123375, -3143);
Engine.MoveTo(-13905, 123357, -3143);
Engine.MoveTo(-13954, 123353, -3143);
Engine.MoveTo(-13946, 123347, -3143);
Engine.Settarget(30827); //Взять в таргет ланди;
Delay(1500);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1);
Delay(1000);
//идем за баффом от ланди
Engine.MoveTo(-14227, 123122, -3143);
Engine.MoveTo(-14093, 122589, -3143);
Engine.MoveTo(-14142, 122334, -3079);
Engine.MoveTo(-14099, 122240, -3031);
Engine.MoveTo(-13959, 122014, -3015);
Engine.Settarget(31077);
Engine.Dlgopen;
Engine.DlgSel(2);
Engine.DlgSel(1);
Delay(500);
end;
end;
//идем фармить итемы на лизардов
procedure farmQuest;
begin
Engine.MoveTo(-14575, 123317, -3143);
Engine.MoveTo(-14914, 123884, -3143);
Engine.MoveTo(-17332, 124307, -3183);
Engine.MoveTo(-18052, 124301, -3175);
Engine.MoveTo(-19326, 123564, -3225);
Engine.MoveTo(-19914, 122657, -3340);
Engine.LoadZone('квест кура 27 лвл.zmap');
Delay(500);
Engine.LoadConfig('сх 27 квест кура'); //загружаем конфиг для темного мистика
Delay(500);
Engine.Facecontrol(0,True); //включаем конфиг
if Inventory.User.ByID(7552, Item) and (Item.count = 30) then //если квест итемов =>30
Engine.Facecontrol(0,False);
Engine.UseItem(736); //юзаем сое в город
Delay(10000);
end;
procedure TAKECOUR;
begin
if User.inrange (-14366, 123692, -3112, 5000, 150) then begin
Engine.MoveTo(-14366, 123692, -3112); //идем в центр города
Engine.MoveTo(-13914, 123311, -3143); //идем к ланди
Engine.SetTarget(30827);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1);
Delay(1000);
end;
//идем к орку
Engine.MoveTo(-14132, 123709, -3143);
Engine.MoveTo(-14261, 124430, -3146);
Engine.MoveTo(-14202, 125735, -3169);
Engine.MoveTo(-13826, 126059, -3171);
Engine.MoveTo(-13251, 126173, -3171);
Engine.MoveTo(-12699, 124884, -3155);
Engine.MoveTo(-12823, 124887, -3126);
Engine.SetTarget(30505);
Engine.Dlgopen;
Engine.DlgSel(5);
Engine.DlgSel(1);
Delay(500); //идем к ланди
Engine.MoveTo(-12252, 124384, -3131);
Engine.MoveTo(-12128, 123799, -3124);
Engine.MoveTo(-13804, 123488, -3143);
Engine.MoveTo(-13892, 123349, -3143);
Engine.SetTarget(30827);
Engine.Dlgopen;
Engine.DlgSel(8);
Engine.DlgSel(1); //взяли обменник
Delay(1000);
Engine.SetTarget(30827); //меняем на куру
Engine.Dlgopen;
Engine.DlgSel(6);
Engine.DlgSel(1); //получаем куру
end;
begin
end.