да , понял .. Выложить скрипт проще.
Code: Select all
Program Lumber_all;
{$Include 'all.inc'}
const
hatcher=$0F43; // тип топора
StartHomeX =1609;//координата Х перед сундуком куда логи складывать
StartHomeY =721;//координата У перед сундуком куда логи складывать
StartForestX = 0;//координата Х полянки в лесу
StartForestY = 0;//координата У полянки в лесу
casebox=$400899D7; //ID сундука возле дома.Под забором дома.
casehatchets=$4028B429; //ID сундука возле дома с топорами
tp=0; //использовать рунбуку 0-нет 1-да
speed=700; //скорость перемещения
logs=$1BDD; // тип логов
magaz_sell='73'; //Номер кнопки в рунбуке куда ТП для продажи дров
bank='58'; //Номер кнопки в рунбуке для банка
Les='33'; //Номер кнопки в рунбуке куда тП для рубки леса
RuneAxe='46'; //Номер кнопки магазина где купить топор.
homecase='88'; //Номер кнопки в рунбуке к сундуку возле дома.
runebook_les=$4020FFDA ; //ID рунбуки
kol_log=21; //Кол-во типов логов в игре. для ДРВ 21
money=$4144A462; //ID сумки в банке куда складывать золото
goldcoin=$0EED; //ГП
clean_bandages=$0E21; //бинты
Vendor_Log=$002A80D6; //ID вендора которому впариваем логи
VendorAxe=$0005869E; //Id вендора продающего топоры;
vendor_medik=$001F6650; //ид продавца бинтами в том же здании где и крест. если medix=0 то можно не указывать.
medix=0; //Покупать ли бинты у продовца рядом с крестом воскрешения.
resurect=$4000E86F; //ИД креста воскрешениЯ
kusaem=0; //Чар будет кушать? 1-да / 0-нет
Eat=$0C77; //ID еды
vala=2; //0-логи никуда не деваем//1-продаем в магазин.Дорогие логи кладем в банк//2-складываем в сундук возле дома.
baala=0; //работает если vala=2, 1-класть дорогие логи в сундук банка. 0-класть дорогие логи в сундук возле дома.
infini=1;
Procent=80; //процент. При достижении ХП ниже этого процента скрипт начинает спасать чара.
l_fizzles='You hack at the tree for a while, but fail to produce any useable wood.';
l_nothing1='no logs';
l_nothing2='You can''t reach this.';
l_needwait ='You must wait to perform another action';
l_success = 'in your pack.';
l_bad ='Unexpected target info';
l_heavy ='at your feet';
l_far='That is too far away';
l_dead ='You can''t do much in your current state';
l_dead2 ='Your ghostly hand passes through the object';
l_elemental ='Ent';
l_see='You have no line of sight to that location';
type
region=record
minX:word;
minY:word;
maxX:word;
maxY:word;
end;
mas_cvet = array[1..kol_log] of Integer; //Создаем массив цветов дров
var
tfta,temp,res_arr:TFoundTilesArray;
RegArr: array [0..17] of region;
TreeTile:array [0..39] of word;
lll,hhh,rs,i,j,k,sum,arr_sum:word;
start_p: TFoundTile;
Cvet : mas_cvet;
dot:array [0..17] of TFoundTile;
ert,ghjk,gfrt,beg,ded:word; //gfrt- проверка на появление нежелательных персов,НПС.
kol_der:integer; //кол-во деревьев при поиске
procedure init;
begin
start_p.X:=GetX(Self); //Стартовая координата игрока
start_p.Y:=GetY(Self); //Стартовая координата игрока
//Tile Tree
TreeTile[0]:=3274;
TreeTile[1]:=3275;
TreeTile[2]:=3277;
TreeTile[3]:=3280;
TreeTile[4]:=3283;
TreeTile[5]:=3286;
TreeTile[6]:=3288;
TreeTile[7]:=3290;
TreeTile[8]:=3293;
TreeTile[9]:=3296;
TreeTile[10]:=3299;
TreeTile[11]:=3302;
TreeTile[12]:=3320;
TreeTile[13]:=3323;
TreeTile[14]:=3326;
TreeTile[15]:=3329;
TreeTile[16]:=3393;
TreeTile[17]:=3394;
TreeTile[18]:=3395;
TreeTile[19]:=3396;
TreeTile[20]:=3415;
TreeTile[21]:=3416;
TreeTile[22]:=3417;
TreeTile[23]:=3418;
TreeTile[24]:=3419;
TreeTile[25]:=3438;
TreeTile[26]:=3439;
TreeTile[27]:=3440;
TreeTile[28]:=3441;
TreeTile[29]:=3442;
TreeTile[30]:=3460;
TreeTile[31]:=3461;
TreeTile[32]:=3462;
TreeTile[33]:=3476;
TreeTile[34]:=3478;
TreeTile[35]:=3480;
TreeTile[36]:=3482;
TreeTile[37]:=3484;
TreeTile[38]:=3492;
TreeTile[39]:=3496;
RegArr[0].minX:=start_p.X-30;
RegArr[0].minY:=start_p.Y-30;
RegArr[0].maxX:=start_p.X+30;
RegArr[0].maxY:=start_p.Y+30;
end;
procedure runebook(bookaa:Cardinal;kuda:string);
begin
waitgump(kuda);
wait(1000) ;
UseObject(bookaa);
wait(7000);
CloseSimpleGump(0);
end;
procedure smena;
begin
dot[0].X:=1549;
dot[0].Y:=737;
dot[1].X:=1525;
dot[1].Y:=772;
dot[2].X:=1515;
dot[2].Y:=803;
dot[3].X:=1534;
dot[3].Y:=839;
dot[4].X:=1498;
dot[4].Y:=869;
dot[5].X:=1533;
dot[5].Y:=906;
dot[6].X:=1510;
dot[6].Y:=943;
dot[7].X:=1549;
dot[7].Y:=960;
dot[8].X:=1555;
dot[8].Y:=1010;
dot[9].X:=1520;
dot[9].Y:=1026;
dot[10].X:=1513;
dot[10].Y:=1063;
dot[11].X:=1482;
dot[11].Y:=1092;
dot[12].X:=1451;
dot[12].Y:=1112;
dot[13].X:=1416;
dot[13].Y:=1123;
dot[14].X:=1546;
dot[14].Y:=1075;
dot[15].X:=1598;
dot[15].Y:=1076;
dot[16].X:=1819;
dot[16].Y:=723;
dot[17].X:=1613;
dot[17].Y:=722;
end;
procedure cancel;
begin
CloseMenu;
CancelMenu;
If TargetPresent Then CancelTarget;
end;
procedure check_war;
begin
if IsWarMode(self) then
begin
setWarMode(false);
end;
end;
Procedure speedee(swm:word;srm:word;swu:word;sru:word);
begin
SetWalkMountTimer (swm); //Ходить на лошади
SetRunMountTimer (srm); //Бегать на лошади
SetWalkUnmountTimer (swu); //Ходить пешком
SetRunUnmountTimer (sru); //Бегать пешком
end;
procedure podhod(Vendor:Cardinal);
begin
AddToSystemJournal('273 Продацец: '+GetName(Vendor)+'. координата Х: '+inttostr(GetX(Vendor))+'. координата Y: '+inttostr(GetY(Vendor))+'. дистанция: ' +inttostr(GetDistance(Vendor)));
repeat
NewMoveXY(GetX(Vendor),GetY(Vendor),true,1,false);
wait(4000);
checksave;
until (GetDistance(Vendor)< 2) or dead;
end;
procedure Wait_Target(time_ms:Cardinal);
var
TempTime,SumTime:Cardinal;
begin
SumTime:=0;
repeat
checksave;
wait(500);
TempTime:=Timer;
SumTime:=SumTime+(Timer-TempTime);
until ((targetpresent) or (dead) or (not connected) or (SumTime>time_ms)or(gfrt<>1));
end;
procedure equip_tool(type_of_tool:word;layer:Byte);
begin
hhh:=0;
if (GetType(ObjAtLayer(layer))<>type_of_tool) then
begin
if layer=RhandLayer then unequip(RhandLayer)else unequip(LhandLayer);
wait(500);
if layer=RhandLayer then equipt(RhandLayer,type_of_tool) else equipt(LhandLayer,type_of_tool);
end;
repeat
wait(500);
checksave;
hhh:=hhh+1;
until (GetType(ObjAtLayer(layer))=type_of_tool) or dead or (hhh>6);
end;
procedure CheckAxe2;
begin
checksave;
while (GetType(ObjAtLayer(RhandLayer))<>hatcher) and (GetType(ObjAtLayer(LhandLayer))<>hatcher) and (CountEx(hatcher,$0000,backpack) = 0) and not dead do
begin
//AddToSystemJournal('288 Телепортируюсь в бриту за топором в магаз');
runebook(runebook_les,RuneAxe);
checksave;
wait(5000);
//podhod(VendorAxe);
SetAutoBuyDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
Autobuy(hatcher,$0000,1);
//UOSay((GetName(VendorAxe))+' buy guards');
UOSay('buy guards');
wait(12000);
end;
equip_tool(hatcher,LhandLayer);
end;
Procedure Take;
begin
//UseObject(casehatchets); //ид суднука с кирками
//wait(3000)
//FindTypeEx(hatcher,$FFFF,casebox,True); //ид суднука с кирками
//wait(500)
//MoveItem(FindItem,1,Backpack,0,0,0);
//wait(500)
//end;
while findtypeex(hatcher, $0000, casehatchets, false) = 0 do begin
wait(2000);
useobject(casehatchets);
checksave;
wait(3000);
end;
moveitem(finditem, 1, backpack, 0, 0, 0);
checksave;
wait(300);
end;
procedure CheckAxe;
begin
checksave;
while (GetType(ObjAtLayer(RhandLayer))<>hatcher) and (GetType(ObjAtLayer(LhandLayer))<>hatcher) and (CountEx(hatcher,$0000,backpack) = 0) and not dead do
begin
NewMoveXY(dot[17].X,dot[17].Y,false,1,true);
checksave;
Take;
end;
//equip_tool(hatcher,LhandLayer);
end;
//procedure Resurrector2;
//BEGIN
//if dead then
//begin
//HelpRequest;//Нажать "Help"
//wait(1000);
//waitgump('3');//Нажать "Help i am stuck"
//wait(1000);
//waitgump(IntToStr(2));//Нажать на кнопку города
//wait(3000)
//FindDistance:=10;
//moveXYZ(getX(resurect),getY(resurect),getz(resurect),false,1,false);
//moveXYZ(getX(resurect),getY(resurect),false,1,false);
//wait(5000)
//repeat
//useObject(resurect);
//wait(8000);
//until HP>0;
//ded:=1;
//lll:=0;
//runebook(runebook_les,homecase);
//Take;
//end;
//end;
procedure Resurrector;
begin
if WarMode = true then SetWarMode(false);
checksave;
AddToSystemJournal('Чар идёт к кресту');
FindDistance:=10;
//NewMoveXYZ(dot[16].X,dot[16].Y,dot[16].Y,false,1,true);
NewMoveXY(dot[16].X,dot[16].Y,false,1,true);
checksave;
repeat;
useObject(resurect);
wait(8000);
until HP>0;
AddToSystemJournal('Персонаж жив: '+TimeToStr(now));
NewMoveXY(dot[17].X,dot[17].Y,false,1,true);
ded:=1;
CheckAxe;
lll:=0;
end;
procedure CheckDead;
Begin
if Dead then
begin
AddToSystemJournal('Персонаж мертв: '+TimeToStr(now));
Resurrector;
end
end;
procedure check_hide;
begin
cancel;
wait(1000) ;
if Hidden then exit;
if WarMode = true then SetWarMode(false);
repeat
UseSkill('Hiding');
wait(4000);
checksave;
CheckAxe;
CheckDead;
until Hidden or (not Connected);
end;
procedure heal;
var
ghj:word;
begin
ghj:=0;
while (gethp(self) < getmaxhp(self)) and (CountEx(clean_bandages,$0000,backpack) > 0)and
(ghj<15) and not dead AND (gfrt<>1) do
begin
check_hide;
UseObject(FindType(clean_bandages,Backpack));
wait_target(2000);
WaitTargetObject(Self);
wait (5000);
ghj:=ghj+1;
check_war;
end;
end;
function sqr(a:LongInt):LongInt;
begin
result:=a*a;
end;
function vector_length(c_1,c_2:TFoundTile):LongInt;
begin
result:=Round(sqrt(sqr(c_1.X-c_2.X)+sqr(c_1.Y-c_2.Y)));
end;
{ сортировка минимальным маршрутом }
procedure QuickSort(var item:TFoundTilesArray; count:integer; point:TFoundTile);
var
temp_index,temp_value, tempo,i,j:LongInt;
t_c:TFoundTile;
begin
// AddToSystemJournal('397 сортируем '+IntToStr(count)+' деревьев');
kol_der:=count;
t_c:=point;
temp_index:=0;
temp_value:=vector_length(t_c,item[temp_index]);
for i:=0 to count-2 do
begin
for j:=i to count-1 do
begin
tempo:=vector_length(t_c,item[j]);
if tempo<temp_value then
begin
temp_index:=j;
temp_value:=tempo;
end;
end;
t_c:=item[temp_index];
item[temp_index]:=item[i];
item[i]:=t_c;
temp_value:=vector_length(item[i],item[i+1]);
end;
i:=0;
// AddToSystemJournal('419 i = 0 ');
// AddToSystemJournal('Готово...');
end; { конец сортировки }
procedure poisk_tree;
begin
SetArStatus(true);
init;
sum:=0;
// поиск деревьев и составление массива
arr_sum:=0;
rs:=0;
j:=0 ;
for i:=0 to 39 do
begin
rs:=GetStaticTilesArray(RegArr[j].minX,RegArr[j].minY,RegArr[j].maxX,RegArr[j].maxY,1,TreeTile[i],tfta);
if rs>0 then
for k:=0 to rs-1 do temp[arr_sum+k]:=tfta[k];
arr_sum:=arr_sum+rs;
end;
QuickSort(temp,arr_sum,start_p);
for k:=0 to arr_sum-1 do res_arr[sum+k]:=temp[k];
sum:=sum+arr_sum;
// AddToSystemJournal('253 поиск деревьев завершeн');
end;
procedure ubegalka;
begin
check_war;
speedee(400,300,600,500);
if lll<10 then
begin
// AddToSystemJournal('385 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
lll:=lll+1;
CheckDead;
// AddToSystemJournal('389 Запускаю поиск деревьев');
end
else
begin
lll:=0;
// AddToSystemJournal('392 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
// AddToSystemJournal('373 точка повтора '+(inttostr(lll))+' пройдена.');
lll:=lll+1;
CheckDead;
// AddToSystemJournal('397 Запускаю поиск деревьев');
end;
speedee(speed,speed,speed,speed);
ert:=1;
gfrt:=0;
if gfrt=0 then poisk_tree;
check_war;
CheckDead;
end;
procedure Chop(f_tile:TFoundTile);
var
ctime : TDateTime;
iter_max:integer;
next_lumb,lumb_result,wait_lumb: string;
fizzles:word;
begin
wait_lumb:=l_fizzles+'|'+l_needwait;
next_lumb:=l_nothing1+'|'+l_nothing2+'|'+l_far+'|'+l_see;
lumb_result:=wait_lumb+'|'+next_lumb+'|'+l_success+'|'+l_elemental+'|'+l_bad+'|'+l_heavy+'|'+l_dead2+'|'+l_dead;
fizzles:=0;
if gfrt=1 then ubegalka;
repeat
CheckAxe;
CheckDead;
equip_tool(hatcher,LhandLayer);
cancel;
iter_max:=0;
check_hide;
CheckAxe;
CheckDead;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
heal;
// AddToSystemJournal('532 ОО нееет меня атакуют Применяю брейк');
check_war;
CheckAxe;
check_hide;
CheckDead;
end;
if gfrt<>1 then UseObject(ObjAtLayer(LhandLayer));
if gfrt<>1 then Wait_Target(10000);
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
heal;
check_hide;
CheckAxe;
CheckDead;
// AddToSystemJournal('542 ОО нееет меня атакуют Применяю брейк');
check_war;
end;
ctime := Now;
TargetToTile(f_tile.Tile,f_tile.X,f_tile.Y,f_tile.Z);
repeat
iter_max:=iter_max+1;
wait(2000);
checksave;
CheckDead;
CheckAxe;
check_war;
check_hide;
if (InJournalBetweenTimes('Ent|is attacking you|Ent', ctime, Now)>= 0) or (gfrt=1)then
begin
Break;
check_hide;
CheckAxe;
CheckDead;
// AddToSystemJournal('556 ОО нееет меня атакуют Применяю брейк');
end;
until (InJournalBetweenTimes(lumb_result+'|Вы переместили', ctime, Now)>= 0) or (iter_max>10) or dead or (gfrt=1) or (FindCount>0);
if (InJournalBetweenTimes(l_fizzles, ctime, Now)<>-1) then fizzles:=fizzles+1;
if (InJournalBetweenTimes('an Ent|is attacking you|Vas Corp Por|notice|Ent|ent', ctime, Now)>= 0) or (gfrt=1) then
begin
//AddToSystemJournal('526 ОО нееет меня атакуют');
ubegalka;
CheckDead;
Break;
check_hide;
CheckAxe;
end;
until (InJournalBetweenTimes(next_lumb, ctime, Now)>= 0) or (fizzles>20) or dead or (iter_max>10);
end;
procedure Cvet_log;
begin
Cvet[1] := $0498; //Asterxylon Logs
Cvet[2] := $0000; //Logs
Cvet[3] := $0BB6 ; //Avalon logs
Cvet[4] := $0035; //Titan logs
Cvet[5] := $0487; //elven logs
Cvet[6] := $047C; //Oak Logs
Cvet[7] := $0279; //Red Tree Logs
Cvet[8] := $096B ; //Dark Tree Logs
Cvet[9] := $0237; //Swamp Logs
Cvet[10] := $0482; //Silver Leaf Logs
Cvet[11] := $010F; //Keranit Logs
Cvet[12] := $0014; //Perit Logs
Cvet[13] := $03C1; //Petrified Logs
Cvet[14] := $0085; //Dragon Tree Logs
Cvet[15] := $04C2; //Vampire Tree Logs
Cvet[16] := $0033; //Eridan Logs
Cvet[17] := $002B; //Hellios Logs
Cvet[18] := $0071; //Illusions Tree Logs
Cvet[19] := $09A4; //Crystal Logs
Cvet[20] := $0B82; //Dead Tree Logs
Cvet[21] := $00BE ; //Paradise Logs
end;
procedure vendor_sell;
var
i:word;
begin
i:=0;
SetAutoSellDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
AutoSell(logs,Cvet[1],999);
AutoSell(logs,Cvet[2],999);
AutoSell(logs,Cvet[3],999);
AutoSell(logs,Cvet[4],999);
AutoSell(logs,Cvet[8],999);
AutoSell(logs,Cvet[5],999);
AutoSell(logs,Cvet[6],999);
AutoSell(logs,Cvet[7],999);
AutoSell(logs,Cvet[8],999);
AutoSell(logs,Cvet[9],999);
AutoSell(logs,Cvet[10],999);
AutoSell(logs,Cvet[11],999);
AutoSell(logs,Cvet[12],999);
AutoSell(logs,Cvet[13],999);
AutoSell(logs,Cvet[14],999);
AutoSell(logs,Cvet[15],999);
AutoSell(logs,Cvet[16],999);
AutoSell(logs,Cvet[21],999);
//AddToSystemJournal('490 Продажа деревьев');
while (CountEx(GoldCoin,$0000,backpack) = 0) and not dead do
begin
checksave;
UOSay(GetName(Vendor_Log)+'sell guards'); //произнести в игре фразу 'Sell'
wait(12000);
podhod(Vendor_Log);
end;
end;
Procedure PutMoneyBank;
begin
checksave;
AddToSystemJournal('606 Заработал ГП : '+ inttostr(CountEx(GoldCoin,$0000,backpack)));
begin
while (CountEx(GoldCoin,$0000,backpack) > 0) and not dead do
begin
checksave;
FindTypeEx (GoldCoin,$0000,Backpack,True) ;
MoveItem(FindItem,0,money,0,0,0);
checksave;
wait(2000);
end;
end;
end;
Procedure PutLogCase;
var
i:word;
begin
checksave;
CheckDead;
begin
AddToSystemJournal('Складываем логи в СУНДУК ВОЗЛЕ ДОМА');
For i:=1 to 21 do
if CountEx(logs,Cvet[i],backpack) > 0 then
begin
FindTypeEx (logs,Cvet[i],Backpack,True) ;
MoveItem(FindItem,0,casebox,0,0,0);
wait(2000);
checksave;
CheckDead;
end;
end;
end;
procedure UpdateChar(ContainerID2 : Cardinal);
begin
if (GetName(ContainerID2) = 'Asterxylon Ent') or
(GetName(ContainerID2) = 'Elven Ent') or
(GetName(ContainerID2) = 'Avalon Ent') or
(GetName(ContainerID2) = 'Titan Tree Ent') or
(GetName(ContainerID2) = 'Paradise Ent') or
(GetName(ContainerID2) = 'Dead Tree Ent') or
(GetName(ContainerID2) = 'Crystal Ent') or
(GetName(ContainerID2) = 'Illusions Ent') or
(GetName(ContainerID2) = 'Hellios Ent') or
(GetName(ContainerID2) = 'Eridan Ent') or
(GetName(ContainerID2) = 'Vampire Tree Ent') or
(GetName(ContainerID2) = 'Dragon Tree Ent') or
(GetName(ContainerID2) = 'Petrified Ent') or
(GetName(ContainerID2) = 'Perit Ent') or
(GetName(ContainerID2) = 'Keranit Ent') or
(GetName(ContainerID2) = 'Silver Leaf Ent') or
(GetName(ContainerID2) = 'Swamp Ent') or
(GetName(ContainerID2) = 'Dark Tree Ent') or
(GetName(ContainerID2) = 'Red Tree Ent') or
(GetName(ContainerID2) = 'Oak Ent') or
(GetName(ContainerID2) = 'Ent')
then
begin
//AddToSystemJournal('684 НПС найден');
gfrt:=1;
wait(200);
end;
end;
Begin
SetARStatus(True);
ert:=0;
Cvet_log;
gfrt:=0;
//SetEventProc(evUpdateChar,'UpdateChar');
smena;
beg:=0;
CheckDead;
ded:=0;
CheckAxe;
lll:=0;
if tp=1 then
runebook(runebook_les,Les);
NewMoveXY(StartForestX,StartForestY,false,1,false);
if gfrt=1 then ubegalka;
wait(2000);
check_hide;
speedee(speed,speed,speed,speed);
if gfrt=0 then poisk_tree;
//AddToSystemJournal('698 поиск деревьев прошол успешно');
while infini = 1 do
begin
CheckDead;
i:=0;
if gfrt=1 then ubegalka;
if ded<>0 then
begin
if tp=1 then
runebook(runebook_les,Les);
wait(3000);
if gfrt=1 then ubegalka;
ded:=0;
if gfrt=0 then poisk_tree;
end;
// AddToSystemJournal('715 указываю j:=sum-1');
j:=sum-1;
ded:=1;
ert:=0;
while (i<j)and(ded=0)and(Not Dead) or (ert<>1) do
begin
// AddToSystemJournal('722 прошли цикл while i<j');
CheckDead;
CheckAxe;
ClearBadLocationList;
CheckDead;
CheckAxe;
// AddToSystemJournal('743 Gogogo');
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
CheckAxe;
heal;
// AddToSystemJournal('748 ОО нееет меня атакуют Применяю брейк');
end;
if i< kol_der then
begin
CheckDead;
CheckAxe;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
CheckAxe;
heal;
// AddToSystemJournal('803 ОО нееет меня атакуют Применяю брейк');
end;
checksave;
CheckAxe;
NewMoveXY(res_arr[i].X,res_arr[i].Y,false,1,false);
CheckDead;
CheckAxe;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
heal;
// AddToSystemJournal('813 ОО нееет меня атакуют Применяю брейк');
end;
chop(res_arr[i]);
i:=i+1;
end;
if i>=kol_der then
begin
i:=0;
i:=i+1;
CheckDead;
check_hide;
CheckAxe;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
heal;
// AddToSystemJournal('816 ОО нееет меня атакуют Применяю брейк');
end;
checksave;
CheckAxe;
NewMoveXY(res_arr[i].X,res_arr[i].Y,false,1,false);
CheckDead;
check_hide;
if gfrt=1 then ubegalka;
if ert=1 then
begin
Break;
CheckAxe;
heal;
// AddToSystemJournal('831 ОО нееет меня атакуют Применяю брейк');
end;
chop(res_arr[i]);
i:=i+1;
end;
//AddToSystemJournal('828 и тут i = ' + inttostr(i)+' Ded = '+ inttostr(ded) );
if (Weight>=400) and (vala<>0) then
begin
if vala=1 then
begin
AddToSystemJournal('766 Перевес начинаю тп на продажу');
check_hide;
checksave;
if tp=1 then
runebook(runebook_les,magaz_sell);
AddToSystemJournal('770 я в магазине продаю дрова');
checksave;
AddToSystemJournal('773 я подхожу к продавцу');
podhod(Vendor_Log);
checksave;
vendor_sell;
wait(3000);
checksave;
AddToSystemJournal('779 телепортируюсь в банк');
if tp=1 then
runebook(runebook_les,bank);
checksave;
wait(5000);
checksave;
uosay('bank guards');
wait(3000);
AddToSystemJournal('626 Кладу деньги в банк');
PutMoneyBank;
wait(3000);
checksave;
wait(3000);
end;
checksave;
if vala=2 then
begin
if baala = 1 then
begin
checksave;
AddToSystemJournal('619 телепортируюсь в банк');
if tp=1 then
runebook(runebook_les,bank);
wait(4000);
checksave;
check_hide;
uosay('bank guards');
wait(3000);
end;
AddToSystemJournal('732 телепортируюсь К СУНДУКУ ВОЗЛЕ ДОМА');
if tp=1 then
runebook(runebook_les,homecase);
NewMoveXY(StartHomeX,StartHomeY,false,1,false);
check_hide;
wait(4000);
checksave;
UseObject(casebox);
checksave;
check_hide;
PutLogCase;
wait(1000);
checksave;
end;
AddToSystemJournal('633 телепортируюсь в лес');
if tp=1 then
runebook(runebook_les,Les);
NewMoveXY(StartForestX,StartForestY,false,1,false);
check_hide;
checksave;
wait(4000)
check_hide;
checksave;
if gfrt=1 then ubegalka;
if gfrt=0 then poisk_tree;
end;
end;
if gfrt=1 then ubegalka;
if gfrt=0 then poisk_tree;
CheckAxe;
end;
end.
Вот целый скрипт. После реса процедуре CheckDead, он постоянно пытается найти топор в паке, а не идти домой и взять топор из сумки у дома. Если кто может подправить - Благодарю!
П.С. - Не знаю чей скрипт, так что , прошу не гневится автора скрипта , за отсутствие его имени как создателя.