- Рег
- 1 Ноя 2015
- Сообщения
- 10
- Реакции
- 0
Подскажите плз почему постоянно повторяется процедура begim_k_farmu, если она должна выполняется только после условия "персонаж умер"
uses SysUtils, Classes;
var Figth_Flag:boolean;
DlgOpen:string;
CheckDeath: Boolean;
Item: TL2Item;
Npc: TL2Npc;
Obj: TL2Buff;
L2Skill: TL2Skill;
Control: TL2Control;
TNpcList: TL2List;
procedure scroll;
begin
Engine.Unstuck;
Print('тп');
delay(20000);
proverka_tp;
Print('проверяю тп') ;
end;
procedure buff_i_tp;
begin
Engine.MoveTo(147936, -55368, -2760); // buff
Engine.SetTarget(31360); // buff id
Engine.DlgOpen;
delay(500);
Engine.DlgSel('Load'); // nr
delay(500);
Engine.MoveTo(147936, -55368, -2760); // gk
Engine.SetTarget(31275); // gk id
Engine.DlgOpen;
delay(500);
Engine.DlgSel(2); // nr tp
delay(500);
Engine.DlgSel(10); // nr tp spota
delay(5111);
begim_k_farmu;
end;
procedure farm;
begin
Engine.LoadZone('111') ;
Delay(111) ;
Engine.Facecontrol(0,True);
Delay(111);
end;
procedure proverka_na_smertb;
begin
if User.Dead then begin
Engine.FaceControl(0,false);
Engine.GoHome;
Delay(5000);
proverka_tp;
end;
begin
buff_i_tp;
end;
end;
//------------------------------------------------------------------------
procedure proverka_tp;
begin
if user.inrange(146272, -58176, -2976, 250, 150) //возле хранилища
then
begin
Engine.MoveTo(147593, -58103, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145264, -57680, -2976, 250, 150) //возле хранилища 2
then
begin
Engine.MoveTo(145588, -56926, -3007);
Engine.MoveTo(146673, -56095, -2807);
Engine.MoveTo(147543, -56054, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145696, -57696, -2976, 250, 150) //возле хранилища 3
then
begin
Engine.MoveTo(145510, -56930, -3007);
Engine.MoveTo(146499, -56202, -2807);
Engine.MoveTo(147481, -56031, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144944, -55392, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145153, -56813, -3007);
Engine.MoveTo(145569, -56855, -3007);
Engine.MoveTo(146467, -56271, -2807);
Engine.MoveTo(147566, -56034, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144752, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145534, -56884, -3007);
Engine.MoveTo(146265, -56418, -2807);
Engine.MoveTo(147407, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
//восточная лестница
if user.inrange(149120, -58064, -2976, 250, 150) //магазин
then
begin
Engine.MoveTo(147706, -58107, -3007);
Engine.MoveTo(147751, -56737, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(150400, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(150704, -55744, -2976, 250, 150) //самый край 2
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
//северная лелтница
if user.inrange(147680, -58208, -2976, 250, 150) //низ центр лестницы
then
begin
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(148288, -58304, -2976, 250, 150) //низ центр лестницы чуть правее
then
begin
Engine.MoveTo(147738, -58050, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147232, -58480, -2976, 250, 150) //низ центр лестницы чуть левее
then
begin
Engine.MoveTo(147677, -58063, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(149088, -56256, -2776, 250, 150)
then
begin
Engine.MoveTo(147854, -56054, -2807);
Engine.MoveTo(147934, -55354, -2760);
buff_i_tp;
end;
//площадь
if user.inrange(146832, -55904, -2776, 250, 150) //площадь слева от лестницы
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(146368, -56256, -2776, 250, 150) //площадь слева от лестницы 2
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147664, -56464, -2776, 250, 150) //площадь центр
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147680, -56928, -2776, 250, 150) //площадь центр 2
then
begin
Engine.MoveTo(147810, -56110, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(148560, -55904, -2776, 250, 150) //площадь справа от лестницы
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(149872, -57424, -2976, 250, 150)
then
begin
Engine.MoveTo(149897, -56910, -2979);
Engine.MoveTo(149230, -56412, -2779);
Engine.MoveTo(147939, -55999, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144960, -56224, -2976, 250, 150)
then
begin
Engine.MoveTo(145458, -56853, -2979);
Engine.MoveTo(146343, -56326, -2779);
Engine.MoveTo(147625, -55995, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144496, -55088, -2976, 250, 150)
then
begin
Engine.MoveTo(145327, -56873, -2979);
Engine.MoveTo(146337, -56445, -2779);
Engine.MoveTo(147533, -55963, -2766);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145392, -56960, -2976, 250, 150)
then
begin
Engine.MoveTo(146347, -56305, -2779);
Engine.MoveTo(147514, -56003, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
end;
procedure begim_k_farmu;
begin
Engine.MoveTo(146590, -67723, -3675);
Engine.MoveTo(145934, -68196, -3665);
Engine.MoveTo(145427, -68670, -3735);
Engine.MoveTo(144749, -68818, -3743);
Engine.MoveTo(143864, -69059, -3753);
Engine.MoveTo(143050, -69471, -3764);
Engine.MoveTo(142422, -69736, -3763);
Engine.MoveTo(141901, -69766, -3772);
Engine.MoveTo(140852, -69855, -3771);
Engine.MoveTo(139713, -70022, -3717);
Engine.MoveTo(139168, -70007, -3663);
Engine.MoveTo(138564, -70001, -3616);
Engine.MoveTo(137996, -70179, -3568);
Engine.MoveTo(137576, -70419, -3560);
Engine.MoveTo(137224, -71061, -3521);
Engine.MoveTo(136899, -71495, -3501);
Engine.MoveTo(136417, -71964, -3470);
Engine.MoveTo(136164, -72308, -3452);
Engine.MoveTo(136201, -72527, -3476);
Engine.MoveTo(136265, -73002, -3794);
Engine.MoveTo(136297, -73320, -3823);
Engine.MoveTo(136400, -74393, -3901);
Engine.MoveTo(136351, -74743, -3887);
farm;
end;
begin
while Engine.Status = lsOnline do begin
delay(150);
proverka_na_smertb;
end;
end.
var Figth_Flag:boolean;
DlgOpen:string;
CheckDeath: Boolean;
Item: TL2Item;
Npc: TL2Npc;
Obj: TL2Buff;
L2Skill: TL2Skill;
Control: TL2Control;
TNpcList: TL2List;
procedure scroll;
begin
Engine.Unstuck;
Print('тп');
delay(20000);
proverka_tp;
Print('проверяю тп') ;
end;
procedure buff_i_tp;
begin
Engine.MoveTo(147936, -55368, -2760); // buff
Engine.SetTarget(31360); // buff id
Engine.DlgOpen;
delay(500);
Engine.DlgSel('Load'); // nr
delay(500);
Engine.MoveTo(147936, -55368, -2760); // gk
Engine.SetTarget(31275); // gk id
Engine.DlgOpen;
delay(500);
Engine.DlgSel(2); // nr tp
delay(500);
Engine.DlgSel(10); // nr tp spota
delay(5111);
begim_k_farmu;
end;
procedure farm;
begin
Engine.LoadZone('111') ;
Delay(111) ;
Engine.Facecontrol(0,True);
Delay(111);
end;
procedure proverka_na_smertb;
begin
if User.Dead then begin
Engine.FaceControl(0,false);
Engine.GoHome;
Delay(5000);
proverka_tp;
end;
begin
buff_i_tp;
end;
end;
//------------------------------------------------------------------------
procedure proverka_tp;
begin
if user.inrange(146272, -58176, -2976, 250, 150) //возле хранилища
then
begin
Engine.MoveTo(147593, -58103, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145264, -57680, -2976, 250, 150) //возле хранилища 2
then
begin
Engine.MoveTo(145588, -56926, -3007);
Engine.MoveTo(146673, -56095, -2807);
Engine.MoveTo(147543, -56054, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145696, -57696, -2976, 250, 150) //возле хранилища 3
then
begin
Engine.MoveTo(145510, -56930, -3007);
Engine.MoveTo(146499, -56202, -2807);
Engine.MoveTo(147481, -56031, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144944, -55392, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145153, -56813, -3007);
Engine.MoveTo(145569, -56855, -3007);
Engine.MoveTo(146467, -56271, -2807);
Engine.MoveTo(147566, -56034, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144752, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(145534, -56884, -3007);
Engine.MoveTo(146265, -56418, -2807);
Engine.MoveTo(147407, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
//восточная лестница
if user.inrange(149120, -58064, -2976, 250, 150) //магазин
then
begin
Engine.MoveTo(147706, -58107, -3007);
Engine.MoveTo(147751, -56737, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(150400, -56752, -2976, 250, 150) //самый край
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(150704, -55744, -2976, 250, 150) //самый край 2
then
begin
Engine.MoveTo(149935, -56870, -3007);
Engine.MoveTo(149139, -56390, -2807);
Engine.MoveTo(147929, -56063, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
//северная лелтница
if user.inrange(147680, -58208, -2976, 250, 150) //низ центр лестницы
then
begin
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(148288, -58304, -2976, 250, 150) //низ центр лестницы чуть правее
then
begin
Engine.MoveTo(147738, -58050, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147232, -58480, -2976, 250, 150) //низ центр лестницы чуть левее
then
begin
Engine.MoveTo(147677, -58063, -3007);
Engine.MoveTo(147727, -57141, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(149088, -56256, -2776, 250, 150)
then
begin
Engine.MoveTo(147854, -56054, -2807);
Engine.MoveTo(147934, -55354, -2760);
buff_i_tp;
end;
//площадь
if user.inrange(146832, -55904, -2776, 250, 150) //площадь слева от лестницы
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(146368, -56256, -2776, 250, 150) //площадь слева от лестницы 2
then
begin
Engine.MoveTo(147529, -56046, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147664, -56464, -2776, 250, 150) //площадь центр
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(147680, -56928, -2776, 250, 150) //площадь центр 2
then
begin
Engine.MoveTo(147810, -56110, -2807);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(148560, -55904, -2776, 250, 150) //площадь справа от лестницы
then
begin
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(149872, -57424, -2976, 250, 150)
then
begin
Engine.MoveTo(149897, -56910, -2979);
Engine.MoveTo(149230, -56412, -2779);
Engine.MoveTo(147939, -55999, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144960, -56224, -2976, 250, 150)
then
begin
Engine.MoveTo(145458, -56853, -2979);
Engine.MoveTo(146343, -56326, -2779);
Engine.MoveTo(147625, -55995, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(144496, -55088, -2976, 250, 150)
then
begin
Engine.MoveTo(145327, -56873, -2979);
Engine.MoveTo(146337, -56445, -2779);
Engine.MoveTo(147533, -55963, -2766);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
if user.inrange(145392, -56960, -2976, 250, 150)
then
begin
Engine.MoveTo(146347, -56305, -2779);
Engine.MoveTo(147514, -56003, -2772);
Engine.MoveTo(147936, -55368, -2760); //возле гк
buff_i_tp;
end;
end;
procedure begim_k_farmu;
begin
Engine.MoveTo(146590, -67723, -3675);
Engine.MoveTo(145934, -68196, -3665);
Engine.MoveTo(145427, -68670, -3735);
Engine.MoveTo(144749, -68818, -3743);
Engine.MoveTo(143864, -69059, -3753);
Engine.MoveTo(143050, -69471, -3764);
Engine.MoveTo(142422, -69736, -3763);
Engine.MoveTo(141901, -69766, -3772);
Engine.MoveTo(140852, -69855, -3771);
Engine.MoveTo(139713, -70022, -3717);
Engine.MoveTo(139168, -70007, -3663);
Engine.MoveTo(138564, -70001, -3616);
Engine.MoveTo(137996, -70179, -3568);
Engine.MoveTo(137576, -70419, -3560);
Engine.MoveTo(137224, -71061, -3521);
Engine.MoveTo(136899, -71495, -3501);
Engine.MoveTo(136417, -71964, -3470);
Engine.MoveTo(136164, -72308, -3452);
Engine.MoveTo(136201, -72527, -3476);
Engine.MoveTo(136265, -73002, -3794);
Engine.MoveTo(136297, -73320, -3823);
Engine.MoveTo(136400, -74393, -3901);
Engine.MoveTo(136351, -74743, -3887);
farm;
end;
begin
while Engine.Status = lsOnline do begin
delay(150);
proverka_na_smertb;
end;
end.