{1-40 by gglol
NPCIDList:
0-Buffer kamael
1-MasterSkillov Kamael
2-GkKamael
3-GkGludio
4-GkDion
5-DionBuffer
6-DionArmorMerchant
7-DionWeaponMerchant
8-DionEtcMerchant
9-MasterSkillov Dion
EventsList:
1-NgPuha
2-Skilli na 15
3-Profa na 20
4-To Dion
5-Zakup v dione
6-Prouchka skilov na 20
ItemsList:
0-NGPuha
1-DSoski
2-Soe
3-DPuha
4-NgTelo
5-NgWtani
6-NgWlem}
uses
Classes, SysUtils;
const
GkDelay=15000;
DlgDelay=500;
AlarmNick= 'necrs';
Message:array[0..1]of string=('DAI DENEG','YA 20 VAZMI PROFU');
FirstProfID = 10;
Cities:array[0..11]of string=
('Talking','Heine','Dion','Giran',
'Aden','Goddard','Gludio','Gludin',
'Stuttgard','Rune','Oren','Kamael');
ZoneNames:array[0..3]of string=
('Defo.Gremlins','Defo.Stronghold1 ','Defo.Stronghold2','Defo.Cruma');
ConfigNames:array[0..3]of string=
('qqTesterok','qqTesterok','qqTesterok','qqTesterok');
NPC:array[0..9]of integer=
(32135,32155,32163,30256,30059,
32327,30061,30060,30063,30069);
Items:array[0..6]of integer=
(10474,3948,736,11672,1101,1104,44);
Locks:array[0..3]of string=
('Gremlins','Stronghold1','Stronghold3','Cruma');
function GetCity:string;
var
City:string;
begin
if User.InRange(-114295,255150,User.Z,5000,10) then City := Cities[0]; //Talking
if User.InRange(111434,220426,User.Z,5000,10) then City := Cities[1]; //Heine
if User.InRange(18591,144708,User.Z,5000,10) then City := Cities[2]; //Dion
if User.InRange(82876,148960,User.Z,5000,10) then City := Cities[3]; //Giran
if User.InRange(147509,25928,User.Z,5000,10) then City := Cities[4]; //Aden
if User.InRange(147713,-56202,User.Z,5000,10) then City := Cities[5]; //Goddard
if User.InRange(-14236,123701,User.Z,5000,10) then City := Cities[6]; //Gludio
if User.InRange(-81311,152663,User.Z,5000,10) then City := Cities[7]; //Gludin
if User.InRange(88041,-142502,User.Z,5000,10) then City := Cities[8]; //Stuttgard
if User.InRange(43838,-48222,User.Z,5000,10)
or User.InRange(38283,-48102,User.Z,5000,10) then City := Cities[9]; //Rune
if User.InRange(81150,54880,User.Z,5000,10) then City := Cities[10]; //Oren
if User.InRange(-117447, 45935,User.Z,5000,10) then City := Cities[11]; //Kamael
if Length(City) < 1 then begin
GoHome;
City := GetCity;
end;
Result:=City;
end;
function GetLock():string;
begin
if(user.level>=1)and(user.level<8)then Result:=Locks[0];
if(user.level>=8)and(user.level<15)then Result:=Locks[1];
if(user.level>=15)and(user.level<20)then Result:=Locks[2];
if(user.level>=20)and(user.level<40)then Result:=Locks[3];
end;
function InCity:boolean;
var
City:string;
begin
if User.InRange(-114295,255150,User.Z,5000,10) then City := Cities[0]; //Talking
if User.InRange(111434,220426,User.Z,5000,10) then City := Cities[1]; //Heine
if User.InRange(18591,144708,User.Z,5000,10) then City := Cities[2]; //Dion
if User.InRange(82876,148960,User.Z,5000,10) then City := Cities[3]; //Giran
if User.InRange(147509,25928,User.Z,5000,10) then City := Cities[4]; //Aden
if User.InRange(147713,-56202,User.Z,5000,10) then City := Cities[5]; //Goddard
if User.InRange(-14236,123701,User.Z,5000,10) then City := Cities[6]; //Gludio
if User.InRange(-81311,152663,User.Z,5000,10) then City := Cities[7]; //Gludin
if User.InRange(88041,-142502,User.Z,5000,10) then City := Cities[8]; //Stuttgard
if User.InRange(43838, -48222,User.Z,5000,10)
or User.InRange(38283,-48102,User.Z,5000,10) then City := Cities[9]; //Rune
if User.InRange(81150,54880,User.Z,5000,10) then City := Cities[10]; //Oren
if User.InRange(-117447, 45935,User.Z,5000,10) then City := Cities[11]; //Kamael
if Length(City) < 1 then Result:=false else Result:=True;
end;
function InLock():boolean;
var
lock:string;
begin
lock:=GetLock;
Result:=False;
if user.inrange(-90797, 248153, -3597,1500,300)
and ansisametext(Locks[0],Lock) then Result:=True;
if user.inrange(-122354, 72156, -3020,5000,500)
and ansisametext(Locks[1],Lock) then Result:=True;
if user.inrange(-87933, 38161, -2327,5000,500)
and ansisametext(Locks[2],Lock) then Result:=True;
if user.inrange(14238, 114205, -3583 ,5000,500)
and ansisametext(Locks[3],Lock) then Result:=True;
end;
function NeedProf():boolean;
begin
Result:=False;
if (user.classid=FirstProfID) and (user.level>=20)
then begin
Result:=True;
end;
end;
procedure ToGk;
var
obj:tl2npc;
move:boolean;
NewResp:TStringList;
City:string;
begin
City:=GetCity;
if ansisametext(City,Cities[1])//heine
then begin
end;
if ansisametext(City,Cities[2])//dion
then begin
if User.InRange(17096,144904,-3008, 250, 150) then begin
Engine.MoveTo(16920,144648,-2992);
Engine.MoveTo(15672,142968,-2688);
end;
if User.InRange(19272,146152,-3048, 250, 150) then begin
Engine.MoveTo(19288,146040,-3048);
Engine.MoveTo(19272,145832,-3048);
Engine.MoveTo(19256,145672,-3072);
Engine.MoveTo(17560,145528,-3056);
Engine.MoveTo(16984,145000,-3008);
Engine.MoveTo(15688,142984,-2688);
end;
if User.InRange(19576,144552,-3072, 250, 150) then begin
Engine.MoveTo(19544,144552,-3072);
Engine.MoveTo(19304,144552,-3088);
Engine.MoveTo(18600,144408,-3056);
Engine.MoveTo(18008,144072,-3040);
Engine.MoveTo(16968,144152,-2992);
Engine.MoveTo(16056,143288,-2768);
Engine.MoveTo(15688,142952,-2688);
end;
if User.InRange(16312,142328,-2672, 250, 150) then begin
Engine.MoveTo(16040,142360,-2672);
Engine.MoveTo(15944,142440,-2672);
Engine.MoveTo(15960,142824,-2672);
Engine.MoveTo(15928,142984,-2704);
Engine.MoveTo(15640,142952,-2688);
end;
if User.InRange(16280,146200,-3080, 250, 150) then begin
Engine.MoveTo(16248,146072,-3096);
Engine.MoveTo(15640,142968,-2688);
end;
if User.InRange(19656,143128,-3008, 250, 150) then begin
Engine.MoveTo(19576,143160,-3008);
Engine.MoveTo(19400,143256,-3016);
Engine.MoveTo(19144,143672,-3040);
Engine.MoveTo(18472,145000,-3064);
Engine.MoveTo(18040,145528,-3056);
Engine.MoveTo(17576,145432,-3056);
Engine.MoveTo(16968,144792,-2992);
Engine.MoveTo(15688,142968,-2688);
end;
if User.InRange(18024,144600,-3024, 250, 150) then begin
Engine.MoveTo(18200,144712,-3024);
Engine.MoveTo(18472,144808,-3056);
Engine.MoveTo(18296,145384,-3072);
Engine.MoveTo(17496,145448,-3056);
Engine.MoveTo(16952,144824,-2992);
Engine.MoveTo(15672,142968,-2688);
end;
if User.InRange(20104,143240,-3032, 250, 150) then begin
Engine.MoveTo(20088,143128,-3032);
Engine.MoveTo(19928,142840,-3024);
Engine.MoveTo(19624,142696,-3024);
Engine.MoveTo(19032,142808,-3040);
Engine.MoveTo(19000,143560,-3016);
Engine.MoveTo(18968,143944,-3040);
Engine.MoveTo(18264,144232,-3040);
Engine.MoveTo(17864,144040,-3024);
Engine.MoveTo(16872,144152,-2976);
Engine.MoveTo(16504,143736,-2864);
Engine.MoveTo(15720,142984,-2688);
Engine.MoveTo(15656,142952,-2688);
Engine.MoveTo(15544,142984,-2688);
end;
if User.InRange(20808,144536,-3048, 250, 150) then begin
Engine.MoveTo(20760,144680,-3048);
Engine.MoveTo(20440,144712,-3072);
Engine.MoveTo(19880,144168,-3072);
Engine.MoveTo(19144,144184,-3072);
Engine.MoveTo(18760,144488,-3072);
Engine.MoveTo(18008,144120,-3040);
Engine.MoveTo(17224,144120,-3024);
Engine.MoveTo(16792,144152,-2976);
Engine.MoveTo(15688,142968,-2688);
end;
if User.InRange(19134,144847,-3096, 250, 150) then begin
Engine.MoveTo(19134,144847,-3096);
Engine.MoveTo(18041,144052,-3057);
Engine.MoveTo(16727,144111,-2980);
Engine.MoveTo(15933,143331,-2771);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18954,144428,-3096, 250, 150) then begin
Engine.MoveTo(18954,144428,-3096);
Engine.MoveTo(18600,144387,-3070);
Engine.MoveTo(17733,143924,-3037);
Engine.MoveTo(16711,144167,-2980);
Engine.MoveTo(16622,144034,-2932);
Engine.MoveTo(15963,143381,-2784);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19012,145140,-3120, 250, 150) then begin
Engine.MoveTo(19012,145140,-3120);
Engine.MoveTo(19021,145126,-3123);
Engine.MoveTo(17600,145497,-3079);
Engine.MoveTo(16468,144129,-2964);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19613,145607,-3104, 250, 150) then begin
Engine.MoveTo(19613,145607,-3104);
Engine.MoveTo(17638,145591,-3084);
Engine.MoveTo(16214,143659,-2863);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18576,145136,-3104, 250, 150) then begin
Engine.MoveTo(18576,145136,-3104);
Engine.MoveTo(17727,145541,-3082);
Engine.MoveTo(16414,144174,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(17398,145456,-3048, 250, 150) then begin
Engine.MoveTo(17398,145456,-3048);
Engine.MoveTo(17727,145541,-3082);
Engine.MoveTo(16414,144174,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(17144,145055,-3024, 250, 150) then begin
Engine.MoveTo(17144,145055,-3024);
Engine.MoveTo(16350,143905,-2923);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18078,145925,-3112, 250, 150) then begin
Engine.MoveTo(18078,145925,-3112);
Engine.MoveTo(16559,144353,-2987);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19150,143941,-3056, 250, 150) then begin
Engine.MoveTo(19150,143941,-3056);
Engine.MoveTo(18112,145633,-3104);
Engine.MoveTo(17108,145059,-3031);
Engine.MoveTo(16469,144176,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18512,145536,-3120, 250, 150) then begin
Engine.MoveTo(18512,145536,-3120);
Engine.MoveTo(17226,145360,-3048);
Engine.MoveTo(16419,143955,-2935);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18717,145711,-3080, 250, 150) then begin
Engine.MoveTo(18717,145711,-3080);
Engine.MoveTo(17226,145360,-3048);
Engine.MoveTo(16419,143955,-2935);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(15628,142920,-2704, 250, 150) then Move := true;
end;
if ansisametext(City,Cities[3])//giran
then begin
if user.inrange(79784,146568,-3504,600,100) then begin
Engine.MoveTo(80040,146760,-3504);
Engine.MoveTo(80088,146968,-3520);
Engine.MoveTo(81112,146920,-3512);
Engine.MoveTo(81432,146904,-3520);
Engine.MoveTo(81544,147256,-3512);
Engine.MoveTo(81560,147608,-3456);
Engine.CancelTarget;
Engine.MoveTo(82776,147880,-3456);
Engine.MoveTo(83064,148008,-3456);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(79672,150728,-3496,600,100) then begin
Engine.MoveTo(79624,150648,-3504);
Engine.MoveTo(79576,150264,-3504);
Engine.MoveTo(79576,150088,-3520);
Engine.MoveTo(79800,149000,-3520);
Engine.MoveTo(79816,148632,-3520);
Engine.MoveTo(80344,148616,-3520);
Engine.MoveTo(80824,148584,-3456);
Engine.MoveTo(81832,148280,-3456);
Engine.CancelTarget;
Engine.MoveTo(83112,148008,-3440);
Engine.MoveTo(83368,147944,-3384);
end;
if user.inrange(82856,149320,-3456,600,100) then begin
Engine.MoveTo(82872,149192,-3456);
Engine.MoveTo(83080,148264,-3448);
Engine.MoveTo(83384,147960,-3384);
end;
if user.inrange(80440,149192,-3488,600,100) then begin
Engine.MoveTo(80408,149176,-3488);
Engine.MoveTo(80152,149016,-3488);
Engine.MoveTo(79816,149000,-3520);
Engine.MoveTo(79800,148712,-3520);
Engine.MoveTo(80376,148632,-3520);
Engine.MoveTo(80840,148584,-3456);
Engine.MoveTo(81704,148264,-3456);
Engine.MoveTo(83080,148008,-3448);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(78968,149288,-3576,600,100) then begin
Engine.MoveTo(78968,149272,-3576);
Engine.MoveTo(79016,148904,-3576);
Engine.MoveTo(79016,148728,-3568);
Engine.MoveTo(79224,148680,-3536);
Engine.MoveTo(79896,148648,-3520);
Engine.MoveTo(80456,148616,-3512);
Engine.MoveTo(80888,148600,-3456);
Engine.MoveTo(83064,148008,-3456);
Engine.MoveTo(83400,147944,-3384);
end;
if user.inrange(80440,147864,-3488,600,100) then begin
Engine.MoveTo(80376,147784,-3488);
Engine.MoveTo(80072,147624,-3488);
Engine.MoveTo(79944,147592,-3520);
Engine.MoveTo(80024,147384,-3512);
Engine.MoveTo(81384,146856,-3512);
Engine.MoveTo(81496,147224,-3512);
Engine.MoveTo(81592,147592,-3456);
Engine.MoveTo(82728,147848,-3456);
Engine.MoveTo(83064,147992,-3456);
Engine.MoveTo(83384,147960,-3384);
end;
if user.inrange(86120,148648,-3384,600,100) then begin
Engine.MoveTo(86040,148600,-3384);
Engine.MoveTo(83800,148616,-3376);
Engine.MoveTo(83640,148440,-3384);
Engine.MoveTo(83416,147976,-3392);
end;
if user.inrange(85368,146264,-3384,600,100) then begin
Engine.MoveTo(85272,146472,-3384);
Engine.MoveTo(84200,146488,-3392);
Engine.MoveTo(83912,147032,-3384);
Engine.MoveTo(83640,147928,-3384);
Engine.MoveTo(83384,147944,-3384);
end;
if user.inrange(85336,153064,-3480,600,100) then begin
Engine.MoveTo(85464,153096,-3480);
Engine.MoveTo(85784,152920,-3480);
Engine.MoveTo(85832,152776,-3480);
Engine.MoveTo(85800,150520,-3512);
Engine.MoveTo(85816,150072,-3376);
Engine.MoveTo(85752,149784,-3376);
Engine.MoveTo(85128,149624,-3376);
Engine.MoveTo(83400,148008,-3392);
end;
if user.inrange(81032,150680,-3496,600,100) then begin
Engine.MoveTo(81048,150520,-3520);
Engine.MoveTo(81160,150296,-3512);
Engine.MoveTo(81496,150264,-3520);
Engine.MoveTo(81560,149608,-3456);
Engine.MoveTo(83256,148056,-3392);
Engine.MoveTo(83384,147976,-3392);
end;
if user.inrange(77496,148200,-3576,600,100) then begin
Engine.MoveTo(77528,148232,-3576);
Engine.MoveTo(77576,148536,-3584);
Engine.MoveTo(79016,148568,-3568);
Engine.MoveTo(79240,148584,-3520);
Engine.MoveTo(80424,148616,-3512);
Engine.MoveTo(80664,148616,-3448);
Engine.MoveTo(81960,148216,-3456);
Engine.MoveTo(83096,147992,-3448);
Engine.MoveTo(83352,147960,-3384);
end;
if user.inrange(79672,145512,-3472,600,100) then begin
Engine.MoveTo(79752,145576,-3480);
Engine.MoveTo(80056,145816,-3480);
Engine.MoveTo(80264,145848,-3520);
Engine.MoveTo(81144,145544,-3512);
Engine.MoveTo(81416,145544,-3520);
Engine.MoveTo(81544,147256,-3512);
Engine.MoveTo(81544,147704,-3456);
Engine.MoveTo(82728,147848,-3456);
Engine.MoveTo(83096,148008,-3448);
Engine.MoveTo(83384,147944,-3384);
end;
if user.inrange(80472,144504,-3512,600,100) then begin
Engine.MoveTo(80648,144504,-3520);
Engine.MoveTo(81416,144760,-3520);
Engine.MoveTo(81544,147064,-3520);
Engine.MoveTo(81560,147576,-3448);
Engine.MoveTo(83000,147960,-3456);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(83208,146728,-3448,600,100) then begin
Engine.MoveTo(83000,146664,-3448);
Engine.MoveTo(82696,146664,-3448);
Engine.MoveTo(81656,146584,-3520);
Engine.MoveTo(81544,147224,-3512);
Engine.MoveTo(81544,147512,-3448);
Engine.MoveTo(82712,147976,-3456);
Engine.MoveTo(83352,147960,-3384);
end;
if User.InRange(81376,148095,-3464, 250, 150) then begin
Engine.MoveTo(81376,148095,-3464);
Engine.MoveTo(81881,148025,-3467);
Engine.MoveTo(83027,148020,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82292,149450,-3464, 250, 150) then begin
Engine.MoveTo(82292,149450,-3464);
Engine.MoveTo(82865,148876,-3467);
Engine.MoveTo(83054,148281,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81562,147782,-3464, 250, 150) then begin
Engine.MoveTo(81562,147782,-3464);
Engine.MoveTo(82284,148077,-3467);
Engine.MoveTo(83077,148159,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83409,148578,-3400, 250, 150) then begin
Engine.MoveTo(83409,148578,-3400);
Engine.MoveTo(83427,148206,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81440,149119,-3464, 250, 150) then begin
Engine.MoveTo(81440,149119,-3464);
Engine.MoveTo(82200,149222,-3467);
Engine.MoveTo(82722,148485,-3467);
Engine.MoveTo(83087,148101,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82496,148095,-3464, 250, 150) then begin
Engine.MoveTo(82496,148095,-3464);
Engine.MoveTo(83092,148094,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83473,149223,-3400, 250, 150) then begin
Engine.MoveTo(83473,149223,-3400);
Engine.MoveTo(83355,148728,-3403);
Engine.MoveTo(83358,148292,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82272,147801,-3464, 250, 150) then begin
Engine.MoveTo(82272,147801,-3464);
Engine.MoveTo(82565,148080,-3467);
Engine.MoveTo(83101,148099,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82480,149087,-3464, 250, 150) then begin
Engine.MoveTo(82480,149087,-3464);
Engine.MoveTo(82623,148694,-3467);
Engine.MoveTo(83087,148157,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81637,149427,-3464, 250, 150) then begin
Engine.MoveTo(81637,149427,-3464);
Engine.MoveTo(82229,149197,-3467);
Engine.MoveTo(82610,148669,-3467);
Engine.MoveTo(83088,148170,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81062,148144,-3464, 250, 150) then begin
Engine.MoveTo(81062,148144,-3464);
Engine.MoveTo(81574,147997,-3467);
Engine.MoveTo(82302,147975,-3467);
Engine.MoveTo(83070,148109,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83426,148835,-3400, 250, 150) then begin
Engine.MoveTo(83426,148835,-3400);
Engine.MoveTo(83422,148276,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81033,148883,-3464, 250, 150) then begin
Engine.MoveTo(81033,148883,-3464);
Engine.MoveTo(81769,149191,-3467);
Engine.MoveTo(82322,149192,-3467);
Engine.MoveTo(82622,148656,-3467);
Engine.MoveTo(83079,148163,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83415,148235,-3400, 250, 150) then begin
Engine.MoveTo(83415,148235,-3400);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83402,147946,-3403,250,150) then Move := true;
end;
if ansisametext(City,Cities[4])//aden
then begin
end;
if ansisametext(City,Cities[5])//goddard
then begin
end;
if ansisametext(City,Cities[6])//gludio
then begin
//GLUDIO
if user.inrange(-15176,123368,-3088,500,10) then begin
Engine.MoveTo(-15080,123416,-3088);
Engine.MoveTo(-14760,123432,-3096);
Engine.MoveTo(-13384,123592,-3096);
Engine.MoveTo(-12376,123464,-3088);
Engine.MoveTo(-12344,122888,-3080);
Engine.MoveTo(-12744,122776,-3104);
end;
if user.inrange(-12712,123160,-3080,500,10) then begin
Engine.MoveTo(-12712,123240,-3080);
Engine.MoveTo(-12696,123416,-3104);
Engine.MoveTo(-12280,123320,-3088);
Engine.MoveTo(-12328,122856,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-12712,123160,-3080,500,10) then begin
Engine.MoveTo(-12712,123240,-3080);
Engine.MoveTo(-12696,123416,-3104);
Engine.MoveTo(-12280,123320,-3088);
Engine.MoveTo(-12328,122856,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-14840,124520,-3096,500,10) then begin
Engine.MoveTo(-14840,124360,-3096);
Engine.MoveTo(-14904,124168,-3096);
Engine.MoveTo(-14920,123976,-3104);
Engine.MoveTo(-13864,123736,-3104);
Engine.MoveTo(-12328,123400,-3088);
Engine.MoveTo(-12376,122840,-3088);
Engine.MoveTo(-12744,122776,-3104);
end;
if user.inrange(-13384,121704,-2952,500,10) then begin
Engine.MoveTo(-13144,121704,-2952);
Engine.MoveTo(-13096,121960,-2944);
Engine.MoveTo(-13080,122280,-2976);
Engine.MoveTo(-13288,122408,-2968);
Engine.MoveTo(-13288,122680,-3032);
Engine.MoveTo(-13064,122664,-3096);
Engine.MoveTo(-12760,122776,-3104);
end;
if user.inrange(-13480,125528,-3112,500,10) then begin
Engine.MoveTo(-13336,125480,-3120);
Engine.MoveTo(-12824,125096,-3112);
Engine.MoveTo(-12152,124072,-3072);
Engine.MoveTo(-12408,122856,-3088);
Engine.MoveTo(-12728,122760,-3104);
end;
if user.inrange(-15304,124632,-3096,500,10) then begin
Engine.MoveTo(-15320,124552,-3096);
Engine.MoveTo(-15256,124296,-3096);
Engine.MoveTo(-14968,123960,-3104);
Engine.MoveTo(-12312,123400,-3088);
Engine.MoveTo(-12408,122888,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-12744,124840,-3104,500,10) then begin
Engine.MoveTo(-12584,124808,-3104);
Engine.MoveTo(-12168,124088,-3072);
Engine.MoveTo(-12344,123000,-3080);
Engine.MoveTo(-12712,122760,-3104);
end;
if user.inrange(-13144,124872,-3096,500,10) then begin
Engine.MoveTo(-13176,124808,-3096);
Engine.MoveTo(-13176,124568,-3104);
Engine.MoveTo(-13480,124296,-3104);
Engine.MoveTo(-13448,123864,-3104);
Engine.MoveTo(-12296,123368,-3080);
Engine.MoveTo(-12408,122872,-3088);
Engine.MoveTo(-12760,122760,-3104);
end;
if user.inrange(-13880,122024,-2968,600,100) then begin
Engine.MoveTo(-13832,122152,-2976);
Engine.MoveTo(-13304,122424,-2968);
Engine.MoveTo(-13240,122664,-3032);
Engine.MoveTo(-12984,122664,-3104);
Engine.MoveTo(-12728,122776,-3104);
end;
if User.inrange(-14704,122032,-3056, 250, 250) then begin
Engine.MoveTo(-14704,122032,-3056);
Engine.MoveTo(-14538,122671,-3116);
Engine.MoveTo(-14599,123458,-3113);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-13709,123563,-3112, 250, 250) then begin
Engine.MoveTo(-13709,123563,-3112);
Engine.MoveTo(-14115,123802,-3119);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14465,124434,-3120, 250, 250) then begin
Engine.MoveTo(-14465,124434,-3120);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-13513,123752,-3112, 250, 250) then begin
Engine.MoveTo(-13513,123752,-3112);
Engine.MoveTo(-14245,123748,-3109);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-15564,123896,-3112, 250, 250) then begin
Engine.MoveTo(-15564,123896,-3112);
Engine.MoveTo(-14813,123869,-3124);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14288,122752,-3112, 250, 250) then begin
Engine.MoveTo(-14288,122752,-3112);
Engine.MoveTo(-14525,123547,-3109);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-15314,124131,-3112, 250, 250) then begin
Engine.MoveTo(-15314,124131,-3112);
Engine.MoveTo(-14710,123973,-3122);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14592,123232,-3112, 250, 250) then begin
Engine.MoveTo(-14592,123232,-3112);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if user.inrange(-12728, 122760, -3104,250,150) then move:=true;
end;
if ansisametext(City,Cities[7])//gludin
then begin
end;
if ansisametext(City,Cities[8])//stt
then begin
end;
if ansisametext(City,Cities[9])//rune
then begin
end;
if ansisametext(City,Cities[10])//oren
then begin
end;
if ansisametext(City,Cities[11])//kamael
then begin
if user.inrange(-118087,45021,368,250)
then begin
Engine.MoveTo(-118088, 45016, 368);
Engine.MoveTo(-117272, 45528, 368);
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-118092,46955,368,250)
then begin
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-119401,45949,368,250)
then begin
Engine.MoveTo(-118568, 46440, 384);
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-116739, 45949, 368,250)
then begin
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-115560,43608,528,600,10) then begin
Engine.MoveTo(-115688,43640,528);
Engine.MoveTo(-115912,43864,528);
Engine.MoveTo(-115912,44232,512);
Engine.MoveTo(-116104,44696,520);
Engine.MoveTo(-116520,45448,376);
Engine.MoveTo(-116872,46520,368);
end;
if user.inrange(-116824,48040,472,600,10) then begin
Engine.MoveTo(-116920,47992,472);
Engine.MoveTo(-117144,47784,472);
Engine.MoveTo(-117240,47432,464);
Engine.MoveTo(-117352,47224,424);
Engine.MoveTo(-117304,46856,376);
Engine.MoveTo(-116920,46584,368);
end;
if user.inrange(-119768,44536,368,600,10) then begin
Engine.MoveTo(-119176,45112,368);
Engine.MoveTo(-117880,45624,368);
Engine.MoveTo(-116888,46568,368);
end;
if user.inrange(-118712,47944,472,600,10) then begin
Engine.MoveTo(-118728,47896,472);
Engine.MoveTo(-118728,47640,472);
Engine.MoveTo(-118328,47352,464);
Engine.MoveTo(-118104,47064,376);
Engine.MoveTo(-116936,46584,368);
end;
if user.inrange(-120248,46920,416,600,10) then begin
Engine.MoveTo(-120232,46920,416);
Engine.MoveTo(-119624,46936,400);
Engine.MoveTo(-117624,46824,368);
Engine.MoveTo(-116968,46616,368);
end;
if user.inrange(-120248,46920,416,600,10) then begin
Engine.MoveTo(-117128,47912,472);
Engine.MoveTo(-117160,47720,472);
Engine.MoveTo(-117192,47512,456);
Engine.MoveTo(-117304,47384,464);
Engine.MoveTo(-117336,47096,376);
Engine.MoveTo(-117336,46840,368);
Engine.MoveTo(-117112,47992,472);
end;
if user.inrange(-120536,45176,408,600,10) then begin
Engine.MoveTo(-120520,45160,408);
Engine.MoveTo(-120280,44856,400);
Engine.MoveTo(-119176,45624,368);
Engine.MoveTo(-118488,46152,368);
Engine.MoveTo(-118056,46392,368);
Engine.MoveTo(-116968,46552,368);
end;
if user.inrange(-119048,43288,560,600,10) then begin
Engine.MoveTo(-118904,43368,560);
Engine.MoveTo(-118200,43656,560);
Engine.MoveTo(-118088,43672,560);
Engine.MoveTo(-118088,43992,560);
Engine.MoveTo(-118008,44424,560);
Engine.MoveTo(-117496,45432,368);
Engine.MoveTo(-116936,46488,368);
end;
if user.inrange(-120168,46008,360,600,10) then begin
Engine.MoveTo(-120104,46040,360);
Engine.MoveTo(-119704,45976,400);
Engine.MoveTo(-118792,46360,368);
Engine.MoveTo(-116952,46552,368);
end;
if user.inrange(-114888,45096,528,600,10) then begin
Engine.MoveTo(-115000,45192,528);
Engine.MoveTo(-115208,45208,528);
Engine.MoveTo(-115528,45336,512);
Engine.MoveTo(-115912,46040,512);
Engine.MoveTo(-116104,46216,520);
Engine.MoveTo(-116888,46536,368);
end;
if user.inrange(-117729, 45552, 368,250,250) then
begin
Engine.MoveTo(-116984, 46472, 368);
Engine.MoveTo(-116888, 46568, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-118995, 46661, 368,250,250) then
begin
Engine.MoveTo(-116920, 46584, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-115997, 41736, 1280,250,250) then
begin
Engine.MoveTo(-118152, 41736, 840);
Engine.MoveTo(-118088, 42392, 840);
Engine.MoveTo(-118456, 42456, 840);
Engine.MoveTo(-118344, 43640, 560);
Engine.MoveTo(-118072, 43784, 560);
Engine.MoveTo(-118072, 44408, 560);
Engine.MoveTo(-117352, 45608, 368);
Engine.MoveTo(-116920, 46504, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-119098, 44161, 544,250,250) then
begin
Engine.MoveTo(-118376, 44424, 560);
Engine.MoveTo(-117453, 45392, 421);
Engine.MoveTo(-117096, 45768, 368);
Engine.MoveTo(-116920, 46456, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-116749, 46618, 368,150,150) then
begin
Engine.MoveTo(-116856, 46552, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-117081, 44171, 544,250,250) then
begin
Engine.MoveTo(-117608, 44408, 560);
Engine.MoveTo(-117576, 45219, 372);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-120000, 44500, 368,250,250) then
begin
Engine.MoveTo(-120000, 44500, 368);
Engine.MoveTo(-119144, 45352, 368);
Engine.MoveTo(-117768, 45848, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange( -116936, 46456, 368,250,250) then move:=true;
end;
end;
procedure GoHome();
var
Skill: TL2Skill;
Item: TL2Item;
begin
if not InCity
then begin
Engine.FaceControl(0, false);
if not User.Dead then begin
if (user.level>20)
then begin
if Inventory.User.ByID(10650,Item) then Engine.UseItem(Item);
if Inventory.User.ByID(736,Item) then Engine.UseItem(Item);
end
else begin
Inventory.User.ByID(12753,Item);
Engine.UseItem(Item);
end
end else Engine.GoHome;
Delay(GkDelay);
end else
Print(GetCity);
end;
procedure CheckItem();
var
Item,Staff,NgSet,DStaff:TL2Item;
i,a,z:integer;
begin
if (user.level>6)and not Inventory.User.ByID(Items[0],Staff)
then begin
Events(1);
end;
if NeedProf then Events(3)
else if (user.level>=20) and not (GetCity='Dion')then Events(4);
if (GetCity='Dion') and not Inventory.User.ByID(Items[3],Staff)
then Events(5);
EquipItems;
end;
procedure CheckSkills();
var
WindStrike,Blaze:TL2Skill;
begin
SkillList.ByID(1177,WindStrike);
SkillList.ByID(1220,Blaze);
if(user.level>=15)and(WindStrike.level<5)then Events(2);
if(user.level>=20)and(Blaze.level<2)then Events(6);
end;
procedure ToLock(lock:string);
begin
print('1');
if ansisametext(lock,Locks[0])
then begin
ZoneLoad(0);
Engine.FaceControl(0,true);
end;
if ansisametext(lock,Locks[1])
then begin
ToGk;
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(9);
Delay(GkDelay);
Engine.MoveTo(-122410, 73205, -2872);
Engine.MoveTo(-122244, 72832, -2898);
Engine.MoveTo(-122354, 72156, -3020);
ZoneLoad(1);
Engine.FaceControl(0,true);
end;
if ansisametext(lock,Locks[2])
then begin
ToGk;
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(11);
Delay(GkDelay);
ZoneLoad(2);
Engine.MoveTo(-86597, 36974, -2079);
Engine.MoveTo(-87078, 36973, -2153);
Engine.FaceControl(0,true);
end;
if not NeedProf
then begin
if ansisametext(lock,Locks[3])
then begin
ToGk;
Engine.SetTarget(NPC[4]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(10);
Delay(GkDelay);
ZoneLoad(3);
Engine.MoveTo(17225, 114173, -3440);
Engine.MoveTo(15444, 114157, -3598);
Engine.FaceControl(0,true);
end;
end else Events(3);
end;
procedure ZoneLoad(number:integer);
begin
Engine.LoadConfig(ConfigNames[number]);
Delay(DlgDelay);
Engine.LoadZone(ZoneNames[number]);
end;
procedure CheckBuff();
var
buff:TL2Buff;
begin
if not user.buffs.byname('Щит Путешественника',buff)
then begin
if (user.level<20)
then begin
GoHome();
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
end;
if (user.level>=20)
then begin
ToGk;
Engine.MoveTo(15472, 142880, -2688);
Engine.MoveTo(16646, 144351, -3015);
Engine.MoveTo(17110, 144943, -3047);
Engine.SetTarget(NPC[5]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
ToGk;
end;
end;
end;
procedure Events(NumberOfEvent:integer);
var
i:integer;
begin
if NumberOfEvent=1
then begin
if user.inrange(-120050, 44500, 360,500,300)
then begin
GoHome();
Delay(DlgDelay);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(6);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NpcExChange(Items[0],1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.Say(Message[0], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end else
begin
GoHome();
Delay(DlgDelay);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(6);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NpcExChange(Items[0],1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.Say(Message[0], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end;
end;
if NumberOfEvent=2
then begin
if user.inrange(-120050, 44500, 360,500,300)
then begin
Engine.MoveTo(-120050, 44500, 360);
Engine.MoveTo(-120542, 45208, 372);
Delay(DlgDelay);
Engine.SetTarget(NPC[1]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1177)do delay(50);
for i:=1 to 3000 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(-120542, 45208, 372);
Engine.MoveTo(-120050, 44500, 360);
ToGk;
end else
begin
GoHome();
Engine.MoveTo(-120050, 44500, 360);
Delay(DlgDelay);
Engine.MoveTo(-120542, 45208, 372);
Delay(DlgDelay);
Engine.SetTarget(NPC[1]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1177) do delay(50);
for i:=3000 downto 1 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(-120542, 45208, 372);
Engine.MoveTo(-120050, 44500, 360);
ToGk;
end;
end;
if NumberOfEvent=3
then begin
ToGk;
Engine.Say(Message[1], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end;
if NumberOfEvent=4
then begin
ToGk();
Engine.CancelTarget();
Delay(DlgDelay);
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(GkDelay);
Engine.SetTarget(NPC[3]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(GkDelay);
end;
if NumberOfEvent=5
then begin
if not user.inrange(15472, 142880, -2688,500,500)
then Events(4)
else begin
Engine.MoveTo(15472, 142880, -2688);
Engine.MoveTo(16646, 144351, -3015);
Engine.MoveTo(17110, 144943, -3047);
Engine.SetTarget(NPC[5]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
//Weapon Shop
Engine.MoveTo(17110, 144943, -3008);
Engine.MoveTo(18682, 145386, -3154);
Engine.MoveTo(18038, 144567, -3073);
Engine.SetTarget(NPC[6]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[4],1, Items[5],1, Items[6],1]);
Engine.SetTarget(NPC[7]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(4);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[3],1]);
//Vihod iz weapon shopa
Engine.MoveTo(18431, 144822, -3085);
Engine.MoveTo(19241, 145699, -3121);
Engine.MoveTo(19264, 146131, -3096);
Engine.SetTarget(NPC[8]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[1],3000, Items[2],20, 8595,7]);
Engine.MoveTo(19272, 145756, -3112);
Engine.MoveTo(18597, 145569, -3147);
Engine.MoveTo(17348, 145311, -3089);
Engine.MoveTo(15684, 142909, -2732);
end;
end;
if NumberOfEvent=6
then begin
ToGk;
Engine.MoveTo(15684, 142909, -2732);
Engine.MoveTo(15995, 143050, -2696);
Engine.MoveTo(15930, 142387, -2719);
Engine.MoveTo(16233, 142178, -2719);
Engine.SetTarget(NPC[9]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1220) do delay(50);
for i:=3000 downto 1 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(16233, 142178, -2719);
Engine.MoveTo(15991, 142598, -2710);
Engine.MoveTo(15995, 143050, -2696);
Engine.MoveTo(15675, 142926, -2727);
ToGk;
end;
end;
procedure CheckStatus();
begin
Delay(DlgDelay);
if user.dead then GoHome();
end;
procedure EquipItems;
var
NgStaf,NgTelo,NgStock,NgHelm,DStaff:TL2Item;
begin
if (user.level<20)
then if inventory.user.byid(Items[0],NgStaf)
and not (NgStaf.Equipped) then Engine.UseItem(NgStaf);
if (user.level>=20) then begin
inventory.user.byid(Items[3],DStaff);
inventory.user.byid(Items[4],NgTelo);
inventory.user.byid(Items[5],NgStock);
inventory.user.byid(Items[6],NgHelm);
if not (DStaff.Equipped) then Engine.UseItem(DStaff);
Delay(DlgDelay);
if not (NgTelo.Equipped) then Engine.UseItem(NgTelo);
Delay(DlgDelay);
if not (NgStock.Equipped) then Engine.UseItem(NgStock);
Delay(DlgDelay);
if not (NgHelm.Equipped) then Engine.UseItem(NgHelm);
Delay(DlgDelay);
end;
end;
begin
if (user.level<8)then ToLock(GetLock);
while 1=1 do begin
Delay(DlgDelay);
if not InLock
then begin
CheckItem();
CheckSkills();
CheckBuff();
ToLock(GetLock)
end
else while InLock do CheckStatus();
Delay(GkDelay);
end;
end.
NPCIDList:
0-Buffer kamael
1-MasterSkillov Kamael
2-GkKamael
3-GkGludio
4-GkDion
5-DionBuffer
6-DionArmorMerchant
7-DionWeaponMerchant
8-DionEtcMerchant
9-MasterSkillov Dion
EventsList:
1-NgPuha
2-Skilli na 15
3-Profa na 20
4-To Dion
5-Zakup v dione
6-Prouchka skilov na 20
ItemsList:
0-NGPuha
1-DSoski
2-Soe
3-DPuha
4-NgTelo
5-NgWtani
6-NgWlem}
uses
Classes, SysUtils;
const
GkDelay=15000;
DlgDelay=500;
AlarmNick= 'necrs';
Message:array[0..1]of string=('DAI DENEG','YA 20 VAZMI PROFU');
FirstProfID = 10;
Cities:array[0..11]of string=
('Talking','Heine','Dion','Giran',
'Aden','Goddard','Gludio','Gludin',
'Stuttgard','Rune','Oren','Kamael');
ZoneNames:array[0..3]of string=
('Defo.Gremlins','Defo.Stronghold1 ','Defo.Stronghold2','Defo.Cruma');
ConfigNames:array[0..3]of string=
('qqTesterok','qqTesterok','qqTesterok','qqTesterok');
NPC:array[0..9]of integer=
(32135,32155,32163,30256,30059,
32327,30061,30060,30063,30069);
Items:array[0..6]of integer=
(10474,3948,736,11672,1101,1104,44);
Locks:array[0..3]of string=
('Gremlins','Stronghold1','Stronghold3','Cruma');
function GetCity:string;
var
City:string;
begin
if User.InRange(-114295,255150,User.Z,5000,10) then City := Cities[0]; //Talking
if User.InRange(111434,220426,User.Z,5000,10) then City := Cities[1]; //Heine
if User.InRange(18591,144708,User.Z,5000,10) then City := Cities[2]; //Dion
if User.InRange(82876,148960,User.Z,5000,10) then City := Cities[3]; //Giran
if User.InRange(147509,25928,User.Z,5000,10) then City := Cities[4]; //Aden
if User.InRange(147713,-56202,User.Z,5000,10) then City := Cities[5]; //Goddard
if User.InRange(-14236,123701,User.Z,5000,10) then City := Cities[6]; //Gludio
if User.InRange(-81311,152663,User.Z,5000,10) then City := Cities[7]; //Gludin
if User.InRange(88041,-142502,User.Z,5000,10) then City := Cities[8]; //Stuttgard
if User.InRange(43838,-48222,User.Z,5000,10)
or User.InRange(38283,-48102,User.Z,5000,10) then City := Cities[9]; //Rune
if User.InRange(81150,54880,User.Z,5000,10) then City := Cities[10]; //Oren
if User.InRange(-117447, 45935,User.Z,5000,10) then City := Cities[11]; //Kamael
if Length(City) < 1 then begin
GoHome;
City := GetCity;
end;
Result:=City;
end;
function GetLock():string;
begin
if(user.level>=1)and(user.level<8)then Result:=Locks[0];
if(user.level>=8)and(user.level<15)then Result:=Locks[1];
if(user.level>=15)and(user.level<20)then Result:=Locks[2];
if(user.level>=20)and(user.level<40)then Result:=Locks[3];
end;
function InCity:boolean;
var
City:string;
begin
if User.InRange(-114295,255150,User.Z,5000,10) then City := Cities[0]; //Talking
if User.InRange(111434,220426,User.Z,5000,10) then City := Cities[1]; //Heine
if User.InRange(18591,144708,User.Z,5000,10) then City := Cities[2]; //Dion
if User.InRange(82876,148960,User.Z,5000,10) then City := Cities[3]; //Giran
if User.InRange(147509,25928,User.Z,5000,10) then City := Cities[4]; //Aden
if User.InRange(147713,-56202,User.Z,5000,10) then City := Cities[5]; //Goddard
if User.InRange(-14236,123701,User.Z,5000,10) then City := Cities[6]; //Gludio
if User.InRange(-81311,152663,User.Z,5000,10) then City := Cities[7]; //Gludin
if User.InRange(88041,-142502,User.Z,5000,10) then City := Cities[8]; //Stuttgard
if User.InRange(43838, -48222,User.Z,5000,10)
or User.InRange(38283,-48102,User.Z,5000,10) then City := Cities[9]; //Rune
if User.InRange(81150,54880,User.Z,5000,10) then City := Cities[10]; //Oren
if User.InRange(-117447, 45935,User.Z,5000,10) then City := Cities[11]; //Kamael
if Length(City) < 1 then Result:=false else Result:=True;
end;
function InLock():boolean;
var
lock:string;
begin
lock:=GetLock;
Result:=False;
if user.inrange(-90797, 248153, -3597,1500,300)
and ansisametext(Locks[0],Lock) then Result:=True;
if user.inrange(-122354, 72156, -3020,5000,500)
and ansisametext(Locks[1],Lock) then Result:=True;
if user.inrange(-87933, 38161, -2327,5000,500)
and ansisametext(Locks[2],Lock) then Result:=True;
if user.inrange(14238, 114205, -3583 ,5000,500)
and ansisametext(Locks[3],Lock) then Result:=True;
end;
function NeedProf():boolean;
begin
Result:=False;
if (user.classid=FirstProfID) and (user.level>=20)
then begin
Result:=True;
end;
end;
procedure ToGk;
var
obj:tl2npc;
move:boolean;
NewResp:TStringList;
City:string;
begin
City:=GetCity;
if ansisametext(City,Cities[1])//heine
then begin
end;
if ansisametext(City,Cities[2])//dion
then begin
if User.InRange(17096,144904,-3008, 250, 150) then begin
Engine.MoveTo(16920,144648,-2992);
Engine.MoveTo(15672,142968,-2688);
end;
if User.InRange(19272,146152,-3048, 250, 150) then begin
Engine.MoveTo(19288,146040,-3048);
Engine.MoveTo(19272,145832,-3048);
Engine.MoveTo(19256,145672,-3072);
Engine.MoveTo(17560,145528,-3056);
Engine.MoveTo(16984,145000,-3008);
Engine.MoveTo(15688,142984,-2688);
end;
if User.InRange(19576,144552,-3072, 250, 150) then begin
Engine.MoveTo(19544,144552,-3072);
Engine.MoveTo(19304,144552,-3088);
Engine.MoveTo(18600,144408,-3056);
Engine.MoveTo(18008,144072,-3040);
Engine.MoveTo(16968,144152,-2992);
Engine.MoveTo(16056,143288,-2768);
Engine.MoveTo(15688,142952,-2688);
end;
if User.InRange(16312,142328,-2672, 250, 150) then begin
Engine.MoveTo(16040,142360,-2672);
Engine.MoveTo(15944,142440,-2672);
Engine.MoveTo(15960,142824,-2672);
Engine.MoveTo(15928,142984,-2704);
Engine.MoveTo(15640,142952,-2688);
end;
if User.InRange(16280,146200,-3080, 250, 150) then begin
Engine.MoveTo(16248,146072,-3096);
Engine.MoveTo(15640,142968,-2688);
end;
if User.InRange(19656,143128,-3008, 250, 150) then begin
Engine.MoveTo(19576,143160,-3008);
Engine.MoveTo(19400,143256,-3016);
Engine.MoveTo(19144,143672,-3040);
Engine.MoveTo(18472,145000,-3064);
Engine.MoveTo(18040,145528,-3056);
Engine.MoveTo(17576,145432,-3056);
Engine.MoveTo(16968,144792,-2992);
Engine.MoveTo(15688,142968,-2688);
end;
if User.InRange(18024,144600,-3024, 250, 150) then begin
Engine.MoveTo(18200,144712,-3024);
Engine.MoveTo(18472,144808,-3056);
Engine.MoveTo(18296,145384,-3072);
Engine.MoveTo(17496,145448,-3056);
Engine.MoveTo(16952,144824,-2992);
Engine.MoveTo(15672,142968,-2688);
end;
if User.InRange(20104,143240,-3032, 250, 150) then begin
Engine.MoveTo(20088,143128,-3032);
Engine.MoveTo(19928,142840,-3024);
Engine.MoveTo(19624,142696,-3024);
Engine.MoveTo(19032,142808,-3040);
Engine.MoveTo(19000,143560,-3016);
Engine.MoveTo(18968,143944,-3040);
Engine.MoveTo(18264,144232,-3040);
Engine.MoveTo(17864,144040,-3024);
Engine.MoveTo(16872,144152,-2976);
Engine.MoveTo(16504,143736,-2864);
Engine.MoveTo(15720,142984,-2688);
Engine.MoveTo(15656,142952,-2688);
Engine.MoveTo(15544,142984,-2688);
end;
if User.InRange(20808,144536,-3048, 250, 150) then begin
Engine.MoveTo(20760,144680,-3048);
Engine.MoveTo(20440,144712,-3072);
Engine.MoveTo(19880,144168,-3072);
Engine.MoveTo(19144,144184,-3072);
Engine.MoveTo(18760,144488,-3072);
Engine.MoveTo(18008,144120,-3040);
Engine.MoveTo(17224,144120,-3024);
Engine.MoveTo(16792,144152,-2976);
Engine.MoveTo(15688,142968,-2688);
end;
if User.InRange(19134,144847,-3096, 250, 150) then begin
Engine.MoveTo(19134,144847,-3096);
Engine.MoveTo(18041,144052,-3057);
Engine.MoveTo(16727,144111,-2980);
Engine.MoveTo(15933,143331,-2771);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18954,144428,-3096, 250, 150) then begin
Engine.MoveTo(18954,144428,-3096);
Engine.MoveTo(18600,144387,-3070);
Engine.MoveTo(17733,143924,-3037);
Engine.MoveTo(16711,144167,-2980);
Engine.MoveTo(16622,144034,-2932);
Engine.MoveTo(15963,143381,-2784);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19012,145140,-3120, 250, 150) then begin
Engine.MoveTo(19012,145140,-3120);
Engine.MoveTo(19021,145126,-3123);
Engine.MoveTo(17600,145497,-3079);
Engine.MoveTo(16468,144129,-2964);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19613,145607,-3104, 250, 150) then begin
Engine.MoveTo(19613,145607,-3104);
Engine.MoveTo(17638,145591,-3084);
Engine.MoveTo(16214,143659,-2863);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18576,145136,-3104, 250, 150) then begin
Engine.MoveTo(18576,145136,-3104);
Engine.MoveTo(17727,145541,-3082);
Engine.MoveTo(16414,144174,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(17398,145456,-3048, 250, 150) then begin
Engine.MoveTo(17398,145456,-3048);
Engine.MoveTo(17727,145541,-3082);
Engine.MoveTo(16414,144174,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(17144,145055,-3024, 250, 150) then begin
Engine.MoveTo(17144,145055,-3024);
Engine.MoveTo(16350,143905,-2923);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18078,145925,-3112, 250, 150) then begin
Engine.MoveTo(18078,145925,-3112);
Engine.MoveTo(16559,144353,-2987);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(19150,143941,-3056, 250, 150) then begin
Engine.MoveTo(19150,143941,-3056);
Engine.MoveTo(18112,145633,-3104);
Engine.MoveTo(17108,145059,-3031);
Engine.MoveTo(16469,144176,-2969);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18512,145536,-3120, 250, 150) then begin
Engine.MoveTo(18512,145536,-3120);
Engine.MoveTo(17226,145360,-3048);
Engine.MoveTo(16419,143955,-2935);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(18717,145711,-3080, 250, 150) then begin
Engine.MoveTo(18717,145711,-3080);
Engine.MoveTo(17226,145360,-3048);
Engine.MoveTo(16419,143955,-2935);
Engine.MoveTo(15628,142920,-2704);
end;
if User.InRange(15628,142920,-2704, 250, 150) then Move := true;
end;
if ansisametext(City,Cities[3])//giran
then begin
if user.inrange(79784,146568,-3504,600,100) then begin
Engine.MoveTo(80040,146760,-3504);
Engine.MoveTo(80088,146968,-3520);
Engine.MoveTo(81112,146920,-3512);
Engine.MoveTo(81432,146904,-3520);
Engine.MoveTo(81544,147256,-3512);
Engine.MoveTo(81560,147608,-3456);
Engine.CancelTarget;
Engine.MoveTo(82776,147880,-3456);
Engine.MoveTo(83064,148008,-3456);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(79672,150728,-3496,600,100) then begin
Engine.MoveTo(79624,150648,-3504);
Engine.MoveTo(79576,150264,-3504);
Engine.MoveTo(79576,150088,-3520);
Engine.MoveTo(79800,149000,-3520);
Engine.MoveTo(79816,148632,-3520);
Engine.MoveTo(80344,148616,-3520);
Engine.MoveTo(80824,148584,-3456);
Engine.MoveTo(81832,148280,-3456);
Engine.CancelTarget;
Engine.MoveTo(83112,148008,-3440);
Engine.MoveTo(83368,147944,-3384);
end;
if user.inrange(82856,149320,-3456,600,100) then begin
Engine.MoveTo(82872,149192,-3456);
Engine.MoveTo(83080,148264,-3448);
Engine.MoveTo(83384,147960,-3384);
end;
if user.inrange(80440,149192,-3488,600,100) then begin
Engine.MoveTo(80408,149176,-3488);
Engine.MoveTo(80152,149016,-3488);
Engine.MoveTo(79816,149000,-3520);
Engine.MoveTo(79800,148712,-3520);
Engine.MoveTo(80376,148632,-3520);
Engine.MoveTo(80840,148584,-3456);
Engine.MoveTo(81704,148264,-3456);
Engine.MoveTo(83080,148008,-3448);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(78968,149288,-3576,600,100) then begin
Engine.MoveTo(78968,149272,-3576);
Engine.MoveTo(79016,148904,-3576);
Engine.MoveTo(79016,148728,-3568);
Engine.MoveTo(79224,148680,-3536);
Engine.MoveTo(79896,148648,-3520);
Engine.MoveTo(80456,148616,-3512);
Engine.MoveTo(80888,148600,-3456);
Engine.MoveTo(83064,148008,-3456);
Engine.MoveTo(83400,147944,-3384);
end;
if user.inrange(80440,147864,-3488,600,100) then begin
Engine.MoveTo(80376,147784,-3488);
Engine.MoveTo(80072,147624,-3488);
Engine.MoveTo(79944,147592,-3520);
Engine.MoveTo(80024,147384,-3512);
Engine.MoveTo(81384,146856,-3512);
Engine.MoveTo(81496,147224,-3512);
Engine.MoveTo(81592,147592,-3456);
Engine.MoveTo(82728,147848,-3456);
Engine.MoveTo(83064,147992,-3456);
Engine.MoveTo(83384,147960,-3384);
end;
if user.inrange(86120,148648,-3384,600,100) then begin
Engine.MoveTo(86040,148600,-3384);
Engine.MoveTo(83800,148616,-3376);
Engine.MoveTo(83640,148440,-3384);
Engine.MoveTo(83416,147976,-3392);
end;
if user.inrange(85368,146264,-3384,600,100) then begin
Engine.MoveTo(85272,146472,-3384);
Engine.MoveTo(84200,146488,-3392);
Engine.MoveTo(83912,147032,-3384);
Engine.MoveTo(83640,147928,-3384);
Engine.MoveTo(83384,147944,-3384);
end;
if user.inrange(85336,153064,-3480,600,100) then begin
Engine.MoveTo(85464,153096,-3480);
Engine.MoveTo(85784,152920,-3480);
Engine.MoveTo(85832,152776,-3480);
Engine.MoveTo(85800,150520,-3512);
Engine.MoveTo(85816,150072,-3376);
Engine.MoveTo(85752,149784,-3376);
Engine.MoveTo(85128,149624,-3376);
Engine.MoveTo(83400,148008,-3392);
end;
if user.inrange(81032,150680,-3496,600,100) then begin
Engine.MoveTo(81048,150520,-3520);
Engine.MoveTo(81160,150296,-3512);
Engine.MoveTo(81496,150264,-3520);
Engine.MoveTo(81560,149608,-3456);
Engine.MoveTo(83256,148056,-3392);
Engine.MoveTo(83384,147976,-3392);
end;
if user.inrange(77496,148200,-3576,600,100) then begin
Engine.MoveTo(77528,148232,-3576);
Engine.MoveTo(77576,148536,-3584);
Engine.MoveTo(79016,148568,-3568);
Engine.MoveTo(79240,148584,-3520);
Engine.MoveTo(80424,148616,-3512);
Engine.MoveTo(80664,148616,-3448);
Engine.MoveTo(81960,148216,-3456);
Engine.MoveTo(83096,147992,-3448);
Engine.MoveTo(83352,147960,-3384);
end;
if user.inrange(79672,145512,-3472,600,100) then begin
Engine.MoveTo(79752,145576,-3480);
Engine.MoveTo(80056,145816,-3480);
Engine.MoveTo(80264,145848,-3520);
Engine.MoveTo(81144,145544,-3512);
Engine.MoveTo(81416,145544,-3520);
Engine.MoveTo(81544,147256,-3512);
Engine.MoveTo(81544,147704,-3456);
Engine.MoveTo(82728,147848,-3456);
Engine.MoveTo(83096,148008,-3448);
Engine.MoveTo(83384,147944,-3384);
end;
if user.inrange(80472,144504,-3512,600,100) then begin
Engine.MoveTo(80648,144504,-3520);
Engine.MoveTo(81416,144760,-3520);
Engine.MoveTo(81544,147064,-3520);
Engine.MoveTo(81560,147576,-3448);
Engine.MoveTo(83000,147960,-3456);
Engine.MoveTo(83400,147960,-3384);
end;
if user.inrange(83208,146728,-3448,600,100) then begin
Engine.MoveTo(83000,146664,-3448);
Engine.MoveTo(82696,146664,-3448);
Engine.MoveTo(81656,146584,-3520);
Engine.MoveTo(81544,147224,-3512);
Engine.MoveTo(81544,147512,-3448);
Engine.MoveTo(82712,147976,-3456);
Engine.MoveTo(83352,147960,-3384);
end;
if User.InRange(81376,148095,-3464, 250, 150) then begin
Engine.MoveTo(81376,148095,-3464);
Engine.MoveTo(81881,148025,-3467);
Engine.MoveTo(83027,148020,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82292,149450,-3464, 250, 150) then begin
Engine.MoveTo(82292,149450,-3464);
Engine.MoveTo(82865,148876,-3467);
Engine.MoveTo(83054,148281,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81562,147782,-3464, 250, 150) then begin
Engine.MoveTo(81562,147782,-3464);
Engine.MoveTo(82284,148077,-3467);
Engine.MoveTo(83077,148159,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83409,148578,-3400, 250, 150) then begin
Engine.MoveTo(83409,148578,-3400);
Engine.MoveTo(83427,148206,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81440,149119,-3464, 250, 150) then begin
Engine.MoveTo(81440,149119,-3464);
Engine.MoveTo(82200,149222,-3467);
Engine.MoveTo(82722,148485,-3467);
Engine.MoveTo(83087,148101,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82496,148095,-3464, 250, 150) then begin
Engine.MoveTo(82496,148095,-3464);
Engine.MoveTo(83092,148094,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83473,149223,-3400, 250, 150) then begin
Engine.MoveTo(83473,149223,-3400);
Engine.MoveTo(83355,148728,-3403);
Engine.MoveTo(83358,148292,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82272,147801,-3464, 250, 150) then begin
Engine.MoveTo(82272,147801,-3464);
Engine.MoveTo(82565,148080,-3467);
Engine.MoveTo(83101,148099,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(82480,149087,-3464, 250, 150) then begin
Engine.MoveTo(82480,149087,-3464);
Engine.MoveTo(82623,148694,-3467);
Engine.MoveTo(83087,148157,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81637,149427,-3464, 250, 150) then begin
Engine.MoveTo(81637,149427,-3464);
Engine.MoveTo(82229,149197,-3467);
Engine.MoveTo(82610,148669,-3467);
Engine.MoveTo(83088,148170,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81062,148144,-3464, 250, 150) then begin
Engine.MoveTo(81062,148144,-3464);
Engine.MoveTo(81574,147997,-3467);
Engine.MoveTo(82302,147975,-3467);
Engine.MoveTo(83070,148109,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83426,148835,-3400, 250, 150) then begin
Engine.MoveTo(83426,148835,-3400);
Engine.MoveTo(83422,148276,-3403);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(81033,148883,-3464, 250, 150) then begin
Engine.MoveTo(81033,148883,-3464);
Engine.MoveTo(81769,149191,-3467);
Engine.MoveTo(82322,149192,-3467);
Engine.MoveTo(82622,148656,-3467);
Engine.MoveTo(83079,148163,-3467);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83415,148235,-3400, 250, 150) then begin
Engine.MoveTo(83415,148235,-3400);
Engine.MoveTo(83402,147946,-3403);
end;
if User.InRange(83402,147946,-3403,250,150) then Move := true;
end;
if ansisametext(City,Cities[4])//aden
then begin
end;
if ansisametext(City,Cities[5])//goddard
then begin
end;
if ansisametext(City,Cities[6])//gludio
then begin
//GLUDIO
if user.inrange(-15176,123368,-3088,500,10) then begin
Engine.MoveTo(-15080,123416,-3088);
Engine.MoveTo(-14760,123432,-3096);
Engine.MoveTo(-13384,123592,-3096);
Engine.MoveTo(-12376,123464,-3088);
Engine.MoveTo(-12344,122888,-3080);
Engine.MoveTo(-12744,122776,-3104);
end;
if user.inrange(-12712,123160,-3080,500,10) then begin
Engine.MoveTo(-12712,123240,-3080);
Engine.MoveTo(-12696,123416,-3104);
Engine.MoveTo(-12280,123320,-3088);
Engine.MoveTo(-12328,122856,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-12712,123160,-3080,500,10) then begin
Engine.MoveTo(-12712,123240,-3080);
Engine.MoveTo(-12696,123416,-3104);
Engine.MoveTo(-12280,123320,-3088);
Engine.MoveTo(-12328,122856,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-14840,124520,-3096,500,10) then begin
Engine.MoveTo(-14840,124360,-3096);
Engine.MoveTo(-14904,124168,-3096);
Engine.MoveTo(-14920,123976,-3104);
Engine.MoveTo(-13864,123736,-3104);
Engine.MoveTo(-12328,123400,-3088);
Engine.MoveTo(-12376,122840,-3088);
Engine.MoveTo(-12744,122776,-3104);
end;
if user.inrange(-13384,121704,-2952,500,10) then begin
Engine.MoveTo(-13144,121704,-2952);
Engine.MoveTo(-13096,121960,-2944);
Engine.MoveTo(-13080,122280,-2976);
Engine.MoveTo(-13288,122408,-2968);
Engine.MoveTo(-13288,122680,-3032);
Engine.MoveTo(-13064,122664,-3096);
Engine.MoveTo(-12760,122776,-3104);
end;
if user.inrange(-13480,125528,-3112,500,10) then begin
Engine.MoveTo(-13336,125480,-3120);
Engine.MoveTo(-12824,125096,-3112);
Engine.MoveTo(-12152,124072,-3072);
Engine.MoveTo(-12408,122856,-3088);
Engine.MoveTo(-12728,122760,-3104);
end;
if user.inrange(-15304,124632,-3096,500,10) then begin
Engine.MoveTo(-15320,124552,-3096);
Engine.MoveTo(-15256,124296,-3096);
Engine.MoveTo(-14968,123960,-3104);
Engine.MoveTo(-12312,123400,-3088);
Engine.MoveTo(-12408,122888,-3088);
Engine.MoveTo(-12744,122760,-3104);
end;
if user.inrange(-12744,124840,-3104,500,10) then begin
Engine.MoveTo(-12584,124808,-3104);
Engine.MoveTo(-12168,124088,-3072);
Engine.MoveTo(-12344,123000,-3080);
Engine.MoveTo(-12712,122760,-3104);
end;
if user.inrange(-13144,124872,-3096,500,10) then begin
Engine.MoveTo(-13176,124808,-3096);
Engine.MoveTo(-13176,124568,-3104);
Engine.MoveTo(-13480,124296,-3104);
Engine.MoveTo(-13448,123864,-3104);
Engine.MoveTo(-12296,123368,-3080);
Engine.MoveTo(-12408,122872,-3088);
Engine.MoveTo(-12760,122760,-3104);
end;
if user.inrange(-13880,122024,-2968,600,100) then begin
Engine.MoveTo(-13832,122152,-2976);
Engine.MoveTo(-13304,122424,-2968);
Engine.MoveTo(-13240,122664,-3032);
Engine.MoveTo(-12984,122664,-3104);
Engine.MoveTo(-12728,122776,-3104);
end;
if User.inrange(-14704,122032,-3056, 250, 250) then begin
Engine.MoveTo(-14704,122032,-3056);
Engine.MoveTo(-14538,122671,-3116);
Engine.MoveTo(-14599,123458,-3113);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-13709,123563,-3112, 250, 250) then begin
Engine.MoveTo(-13709,123563,-3112);
Engine.MoveTo(-14115,123802,-3119);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14465,124434,-3120, 250, 250) then begin
Engine.MoveTo(-14465,124434,-3120);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-13513,123752,-3112, 250, 250) then begin
Engine.MoveTo(-13513,123752,-3112);
Engine.MoveTo(-14245,123748,-3109);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-15564,123896,-3112, 250, 250) then begin
Engine.MoveTo(-15564,123896,-3112);
Engine.MoveTo(-14813,123869,-3124);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14288,122752,-3112, 250, 250) then begin
Engine.MoveTo(-14288,122752,-3112);
Engine.MoveTo(-14525,123547,-3109);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-15314,124131,-3112, 250, 250) then begin
Engine.MoveTo(-15314,124131,-3112);
Engine.MoveTo(-14710,123973,-3122);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if User.inrange(-14592,123232,-3112, 250, 250) then begin
Engine.MoveTo(-14592,123232,-3112);
Engine.MoveTo(-14510,124033,-3125);
engine.moveto(-12360,123416,-3104);
engine.moveto(-12392,122872,-3104);
Engine.MoveTo(-12728, 122760, -3104);
end;
if user.inrange(-12728, 122760, -3104,250,150) then move:=true;
end;
if ansisametext(City,Cities[7])//gludin
then begin
end;
if ansisametext(City,Cities[8])//stt
then begin
end;
if ansisametext(City,Cities[9])//rune
then begin
end;
if ansisametext(City,Cities[10])//oren
then begin
end;
if ansisametext(City,Cities[11])//kamael
then begin
if user.inrange(-118087,45021,368,250)
then begin
Engine.MoveTo(-118088, 45016, 368);
Engine.MoveTo(-117272, 45528, 368);
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-118092,46955,368,250)
then begin
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-119401,45949,368,250)
then begin
Engine.MoveTo(-118568, 46440, 384);
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-116739, 45949, 368,250)
then begin
Engine.MoveTo(-116920, 46504, 368);
end;
if user.inrange(-115560,43608,528,600,10) then begin
Engine.MoveTo(-115688,43640,528);
Engine.MoveTo(-115912,43864,528);
Engine.MoveTo(-115912,44232,512);
Engine.MoveTo(-116104,44696,520);
Engine.MoveTo(-116520,45448,376);
Engine.MoveTo(-116872,46520,368);
end;
if user.inrange(-116824,48040,472,600,10) then begin
Engine.MoveTo(-116920,47992,472);
Engine.MoveTo(-117144,47784,472);
Engine.MoveTo(-117240,47432,464);
Engine.MoveTo(-117352,47224,424);
Engine.MoveTo(-117304,46856,376);
Engine.MoveTo(-116920,46584,368);
end;
if user.inrange(-119768,44536,368,600,10) then begin
Engine.MoveTo(-119176,45112,368);
Engine.MoveTo(-117880,45624,368);
Engine.MoveTo(-116888,46568,368);
end;
if user.inrange(-118712,47944,472,600,10) then begin
Engine.MoveTo(-118728,47896,472);
Engine.MoveTo(-118728,47640,472);
Engine.MoveTo(-118328,47352,464);
Engine.MoveTo(-118104,47064,376);
Engine.MoveTo(-116936,46584,368);
end;
if user.inrange(-120248,46920,416,600,10) then begin
Engine.MoveTo(-120232,46920,416);
Engine.MoveTo(-119624,46936,400);
Engine.MoveTo(-117624,46824,368);
Engine.MoveTo(-116968,46616,368);
end;
if user.inrange(-120248,46920,416,600,10) then begin
Engine.MoveTo(-117128,47912,472);
Engine.MoveTo(-117160,47720,472);
Engine.MoveTo(-117192,47512,456);
Engine.MoveTo(-117304,47384,464);
Engine.MoveTo(-117336,47096,376);
Engine.MoveTo(-117336,46840,368);
Engine.MoveTo(-117112,47992,472);
end;
if user.inrange(-120536,45176,408,600,10) then begin
Engine.MoveTo(-120520,45160,408);
Engine.MoveTo(-120280,44856,400);
Engine.MoveTo(-119176,45624,368);
Engine.MoveTo(-118488,46152,368);
Engine.MoveTo(-118056,46392,368);
Engine.MoveTo(-116968,46552,368);
end;
if user.inrange(-119048,43288,560,600,10) then begin
Engine.MoveTo(-118904,43368,560);
Engine.MoveTo(-118200,43656,560);
Engine.MoveTo(-118088,43672,560);
Engine.MoveTo(-118088,43992,560);
Engine.MoveTo(-118008,44424,560);
Engine.MoveTo(-117496,45432,368);
Engine.MoveTo(-116936,46488,368);
end;
if user.inrange(-120168,46008,360,600,10) then begin
Engine.MoveTo(-120104,46040,360);
Engine.MoveTo(-119704,45976,400);
Engine.MoveTo(-118792,46360,368);
Engine.MoveTo(-116952,46552,368);
end;
if user.inrange(-114888,45096,528,600,10) then begin
Engine.MoveTo(-115000,45192,528);
Engine.MoveTo(-115208,45208,528);
Engine.MoveTo(-115528,45336,512);
Engine.MoveTo(-115912,46040,512);
Engine.MoveTo(-116104,46216,520);
Engine.MoveTo(-116888,46536,368);
end;
if user.inrange(-117729, 45552, 368,250,250) then
begin
Engine.MoveTo(-116984, 46472, 368);
Engine.MoveTo(-116888, 46568, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-118995, 46661, 368,250,250) then
begin
Engine.MoveTo(-116920, 46584, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-115997, 41736, 1280,250,250) then
begin
Engine.MoveTo(-118152, 41736, 840);
Engine.MoveTo(-118088, 42392, 840);
Engine.MoveTo(-118456, 42456, 840);
Engine.MoveTo(-118344, 43640, 560);
Engine.MoveTo(-118072, 43784, 560);
Engine.MoveTo(-118072, 44408, 560);
Engine.MoveTo(-117352, 45608, 368);
Engine.MoveTo(-116920, 46504, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-119098, 44161, 544,250,250) then
begin
Engine.MoveTo(-118376, 44424, 560);
Engine.MoveTo(-117453, 45392, 421);
Engine.MoveTo(-117096, 45768, 368);
Engine.MoveTo(-116920, 46456, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-116749, 46618, 368,150,150) then
begin
Engine.MoveTo(-116856, 46552, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-117081, 44171, 544,250,250) then
begin
Engine.MoveTo(-117608, 44408, 560);
Engine.MoveTo(-117576, 45219, 372);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange(-120000, 44500, 368,250,250) then
begin
Engine.MoveTo(-120000, 44500, 368);
Engine.MoveTo(-119144, 45352, 368);
Engine.MoveTo(-117768, 45848, 368);
Engine.MoveTo(-116936, 46456, 368);
end;
if user.inrange( -116936, 46456, 368,250,250) then move:=true;
end;
end;
procedure GoHome();
var
Skill: TL2Skill;
Item: TL2Item;
begin
if not InCity
then begin
Engine.FaceControl(0, false);
if not User.Dead then begin
if (user.level>20)
then begin
if Inventory.User.ByID(10650,Item) then Engine.UseItem(Item);
if Inventory.User.ByID(736,Item) then Engine.UseItem(Item);
end
else begin
Inventory.User.ByID(12753,Item);
Engine.UseItem(Item);
end
end else Engine.GoHome;
Delay(GkDelay);
end else
Print(GetCity);
end;
procedure CheckItem();
var
Item,Staff,NgSet,DStaff:TL2Item;
i,a,z:integer;
begin
if (user.level>6)and not Inventory.User.ByID(Items[0],Staff)
then begin
Events(1);
end;
if NeedProf then Events(3)
else if (user.level>=20) and not (GetCity='Dion')then Events(4);
if (GetCity='Dion') and not Inventory.User.ByID(Items[3],Staff)
then Events(5);
EquipItems;
end;
procedure CheckSkills();
var
WindStrike,Blaze:TL2Skill;
begin
SkillList.ByID(1177,WindStrike);
SkillList.ByID(1220,Blaze);
if(user.level>=15)and(WindStrike.level<5)then Events(2);
if(user.level>=20)and(Blaze.level<2)then Events(6);
end;
procedure ToLock(lock:string);
begin
print('1');
if ansisametext(lock,Locks[0])
then begin
ZoneLoad(0);
Engine.FaceControl(0,true);
end;
if ansisametext(lock,Locks[1])
then begin
ToGk;
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(9);
Delay(GkDelay);
Engine.MoveTo(-122410, 73205, -2872);
Engine.MoveTo(-122244, 72832, -2898);
Engine.MoveTo(-122354, 72156, -3020);
ZoneLoad(1);
Engine.FaceControl(0,true);
end;
if ansisametext(lock,Locks[2])
then begin
ToGk;
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(11);
Delay(GkDelay);
ZoneLoad(2);
Engine.MoveTo(-86597, 36974, -2079);
Engine.MoveTo(-87078, 36973, -2153);
Engine.FaceControl(0,true);
end;
if not NeedProf
then begin
if ansisametext(lock,Locks[3])
then begin
ToGk;
Engine.SetTarget(NPC[4]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(10);
Delay(GkDelay);
ZoneLoad(3);
Engine.MoveTo(17225, 114173, -3440);
Engine.MoveTo(15444, 114157, -3598);
Engine.FaceControl(0,true);
end;
end else Events(3);
end;
procedure ZoneLoad(number:integer);
begin
Engine.LoadConfig(ConfigNames[number]);
Delay(DlgDelay);
Engine.LoadZone(ZoneNames[number]);
end;
procedure CheckBuff();
var
buff:TL2Buff;
begin
if not user.buffs.byname('Щит Путешественника',buff)
then begin
if (user.level<20)
then begin
GoHome();
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
end;
if (user.level>=20)
then begin
ToGk;
Engine.MoveTo(15472, 142880, -2688);
Engine.MoveTo(16646, 144351, -3015);
Engine.MoveTo(17110, 144943, -3047);
Engine.SetTarget(NPC[5]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
ToGk;
end;
end;
end;
procedure Events(NumberOfEvent:integer);
var
i:integer;
begin
if NumberOfEvent=1
then begin
if user.inrange(-120050, 44500, 360,500,300)
then begin
GoHome();
Delay(DlgDelay);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(6);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NpcExChange(Items[0],1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.Say(Message[0], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end else
begin
GoHome();
Delay(DlgDelay);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(6);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NpcExChange(Items[0],1);
Delay(DlgDelay);
Engine.CancelTarget();
Engine.SetTarget(NPC[0]);
Engine.SetTarget(NPC[0]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.Say(Message[0], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end;
end;
if NumberOfEvent=2
then begin
if user.inrange(-120050, 44500, 360,500,300)
then begin
Engine.MoveTo(-120050, 44500, 360);
Engine.MoveTo(-120542, 45208, 372);
Delay(DlgDelay);
Engine.SetTarget(NPC[1]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1177)do delay(50);
for i:=1 to 3000 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(-120542, 45208, 372);
Engine.MoveTo(-120050, 44500, 360);
ToGk;
end else
begin
GoHome();
Engine.MoveTo(-120050, 44500, 360);
Delay(DlgDelay);
Engine.MoveTo(-120542, 45208, 372);
Delay(DlgDelay);
Engine.SetTarget(NPC[1]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1177) do delay(50);
for i:=3000 downto 1 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(-120542, 45208, 372);
Engine.MoveTo(-120050, 44500, 360);
ToGk;
end;
end;
if NumberOfEvent=3
then begin
ToGk;
Engine.Say(Message[1], 2, AlarmNick);
Engine.BlinkWindow;
Script.Pause;
end;
if NumberOfEvent=4
then begin
ToGk();
Engine.CancelTarget();
Delay(DlgDelay);
Engine.SetTarget(NPC[2]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(GkDelay);
Engine.SetTarget(NPC[3]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.DlgSel(5);
Delay(GkDelay);
end;
if NumberOfEvent=5
then begin
if not user.inrange(15472, 142880, -2688,500,500)
then Events(4)
else begin
Engine.MoveTo(15472, 142880, -2688);
Engine.MoveTo(16646, 144351, -3015);
Engine.MoveTo(17110, 144943, -3047);
Engine.SetTarget(NPC[5]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
//Weapon Shop
Engine.MoveTo(17110, 144943, -3008);
Engine.MoveTo(18682, 145386, -3154);
Engine.MoveTo(18038, 144567, -3073);
Engine.SetTarget(NPC[6]);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(2);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[4],1, Items[5],1, Items[6],1]);
Engine.SetTarget(NPC[7]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.DlgSel(4);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[3],1]);
//Vihod iz weapon shopa
Engine.MoveTo(18431, 144822, -3085);
Engine.MoveTo(19241, 145699, -3121);
Engine.MoveTo(19264, 146131, -3096);
Engine.SetTarget(NPC[8]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
Engine.NPCTrade(false,[Items[1],3000, Items[2],20, 8595,7]);
Engine.MoveTo(19272, 145756, -3112);
Engine.MoveTo(18597, 145569, -3147);
Engine.MoveTo(17348, 145311, -3089);
Engine.MoveTo(15684, 142909, -2732);
end;
end;
if NumberOfEvent=6
then begin
ToGk;
Engine.MoveTo(15684, 142909, -2732);
Engine.MoveTo(15995, 143050, -2696);
Engine.MoveTo(15930, 142387, -2719);
Engine.MoveTo(16233, 142178, -2719);
Engine.SetTarget(NPC[9]);
Delay(DlgDelay);
Engine.MoveToTarget(-1);
Delay(DlgDelay);
Engine.DlgOpen();
Delay(DlgDelay);
Engine.DlgSel(1);
Delay(DlgDelay);
while Engine.LearnSkill(1220) do delay(50);
for i:=3000 downto 1 do while Engine.LearnSkill(i) do delay(50);
Engine.MoveTo(16233, 142178, -2719);
Engine.MoveTo(15991, 142598, -2710);
Engine.MoveTo(15995, 143050, -2696);
Engine.MoveTo(15675, 142926, -2727);
ToGk;
end;
end;
procedure CheckStatus();
begin
Delay(DlgDelay);
if user.dead then GoHome();
end;
procedure EquipItems;
var
NgStaf,NgTelo,NgStock,NgHelm,DStaff:TL2Item;
begin
if (user.level<20)
then if inventory.user.byid(Items[0],NgStaf)
and not (NgStaf.Equipped) then Engine.UseItem(NgStaf);
if (user.level>=20) then begin
inventory.user.byid(Items[3],DStaff);
inventory.user.byid(Items[4],NgTelo);
inventory.user.byid(Items[5],NgStock);
inventory.user.byid(Items[6],NgHelm);
if not (DStaff.Equipped) then Engine.UseItem(DStaff);
Delay(DlgDelay);
if not (NgTelo.Equipped) then Engine.UseItem(NgTelo);
Delay(DlgDelay);
if not (NgStock.Equipped) then Engine.UseItem(NgStock);
Delay(DlgDelay);
if not (NgHelm.Equipped) then Engine.UseItem(NgHelm);
Delay(DlgDelay);
end;
end;
begin
if (user.level<8)then ToLock(GetLock);
while 1=1 do begin
Delay(DlgDelay);
if not InLock
then begin
CheckItem();
CheckSkills();
CheckBuff();
ToLock(GetLock)
end
else while InLock do CheckStatus();
Delay(GkDelay);
end;
end.
Все что нужно подстраивать вынесено в константы, тестился и обкатывался на дефо. Кач сугубо на мобах без квестов так что для лоурейта подойдет слабо, выкладываю чисто с ознакомительной целью.
Upd: Нашел и добавил конфиги и карты под этот скрипт.
Upd 2: Если Smartguard выкидывает: http://rawr.su/topic/3105-ocherednoj-1-40/page-2#entry16798