Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Ламбер ДРВ

тут можно задать вопрос по скриптингу
Post Reply
gigabit4
Posts: 3
Joined: 10.12.2015 2:27

Ламбер ДРВ

Post by gigabit4 »

Подскажите пожалуйста кто сталкивался, такая проблема рубает ходит всё выполняет, но...
[12:49:38:468] System: What do you want to use this on?
[12:49:47:588] System: You put the Silver Leaf logs in your pack.
[12:49:49:473] System: What do you want to use this on?
[12:49:58:748] System: You put the Silver Leaf logs in your pack.
[12:50:00:493] System: What do you want to use this on?
[12:50:01:996] System: There are no logs here to chop.
[12:50:05:774] System: You have been revealed
[12:50:09:647] Ronal: You have hidden yourself well
[12:50:12:944] System: What do you want to use this on?
[12:50:21:020] Ronal: You hack at the tree for a while, but fail to produce any useable wood.
[12:50:24:369] System: What do you want to use this on?
[12:50:29:104] Ronal: You hack at the tree for a while, but fail to produce any useable wood.
[12:50:31:754] System: What do you want to use this on?
[12:50:31:799] System: Targeting Cancelled
Потом он отменяет таргет и всё больше не рубает тупо стоит приходится перезапускать скрипт(


//Эту процедуру надо добавить в инклуды или в сам скрипт.
//procedure runebook(bookaa:Cardinal;kuda:string);
//begin
//waitgump(kuda);
//wait(1000) ;
//UseObject(bookaa);
//wait(7000);
//CloseSimpleGump(0);
//end;
//
//обратите внимание на процедуру procedure CheckDead;
//NewMoveXY(dot[2].X,dot[2].Y,false,1,true); // x , y , Аккуратность до 200 квадратов , точность подходк к квадрату, Бег - True
//NewMoveXY(dot[6].X,dot[6].Y,false,1,true);
//NewMoveXY(dot[7].X,dot[7].Y,false,1,true);
//NewMoveXY(dot[8].X,dot[8].Y,false,1,true);
//NewMoveXY(dot[9].X,dot[9].Y,false,1,true);
//В этом месте я указал точку NewMoveXY(dot[2].X,dot[2].Y,false,1,true); - в которую чар дойдет с любого места
//рубки со всех точек. тоесть это центр до лбой точке моего воображаемого круга в котором чар рубит.
//если это будет не так то чар просто не вернется на неё и не дайдет до места воскрешения. Собственно
//остальные точки это уже просто точки не больше 200 тайлов друг от друга по которым мы ведем чара к месту
//воскрешения. Последняя точка ставится прямо перед крестом.
//
//Самое главное это расставить точки рубки вокруг этого воображаемого центра круга так, чтобы чар мог убегать
//от ЭНТОВ по радиусу вокруг центра но не ближе 30 тайлов друг от друга . или энты просто вас догонят.это указывается
//в массиве procedure smena; там указаны точки убегания и заодно там же я указал точки маршрута воскрешения,
//если вас всетаки убили.
//Читайте внимательно коментарии. Многи данные можно не менять если вы не ивключите ту или иную функцию в скрипте.





Program Lumber_all;
{$Include 'all.inc'}
const
speed=700; //скорость перемещения
hatcher=$0F47 ; // тип топора
logs=$1BDD; // тип логов
magaz_sell='73'; //Номер кнопки в рунбуке куда ТП для продажи дров
bank='58'; //Номер кнопки в рунбуке для банка
Les='33'; //Номер кнопки в рунбуке куда тП для рубки леса
RuneAxe='46'; //Номер кнопки магазина где купить топор.
homecase='21'; //Номер кнопки в рунбуке к сундуку возле дома.
runebook_les=$403EA031; //ID рунбуки
kol_log = 21; //Кол-во типов логов в игре. для ДРВ 21
money=$40078907; //ID сумки в банке куда складывать золото
resi=$4027AA34 ; //ID сумки в банке куда складывать дорогие логи
casebox=$40027C1C; //ID сундука возле дома.Под забором дома.
goldcoin=$0EED; //ГП
clean_bandages = $0E21; //бинты
Vendor_Log=$002A80D6; //ID вендора которому впариваем логи
resurect=$4001BDF0; //ИД креста воскрешениЯ Минок
infini=1;
//ЕДА
kusaem=0; //Чар будет кушать? 1-да / 0-нет
Sbor=0; //собирать ли еду? 1-да / 0-нет.можно не ставить если kusaem=0
hleb=$103B ; //ИД еды которую покупаем в магазине, если на поле еды не оказалось. можно не ставить если kusaem=0
vendor_eat=$00166295 ; //ИД продовца еды в магазине.можно не ставить если kusaem=0
RuneToMagazEat='58'; //Номер кнопки в рунбуке куда ТП для покупки еды.можно не ставить если kusaem=0
Eat=$0C77 ; //ID еды которая растет на поле
rostoc=$0C76 ; //ID растения на поле
EatPole='64'; //Номер кнопки в рунбуке куда ТП в поле за едой
//
Tonaz=300; //при каком весе персонаж идет скидывать дрова
VendorAxe=$0010184D; //Id вендора продающего топоры;
//
medix=0; //Покупать ли бинты у продовца рядом с крестом воскрешения.
vendor_medik=$001F6650; //ид продавца бинтами в том же здании где и крест. если medix=0 то можно не указывать.
//
vala=2; //0-логи никуда не деваем//1-продаем в магазин.Дорогие логи кладем в банк//2-складываем в сундук возле дома.
baala=0; //работает если vala=2, 1-класть дорогие логи в сундук банка. 0-класть дорогие логи в сундук возле дома.





l_fizzles='You hack at the tree for a while, but fail to produce any useable wood.';
l_nothing1='There are no logs here to chop.';
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_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..10] of region;
TreeTile:array [0..9] of word;
lll,hhh,rs,i,j,k,sum,arr_sum:word;
start_p: TFoundTile;
Cvet : mas_cvet;
dot:array [0..9] of TFoundTile;
gfrt,TpEda,beg,ded:word;
//TpEda - проверка на место нахождение полсе покупки еды
//gfrt - проверка на появление нежелательных персов,НПС.

//###############################################################################
Procedure speedee;
begin
SetRunUnmountTimer(500); //Ходить пешком
SetWalkUnmountTimer(550); //Бегать пешком
SetRunMountTimer(150); //Бегать на лошади
SetWalkMountTimer(250); //Ходить на лошади
moveThroughNPC := 15; // если задаём ноль, step пытается пройти сквозь чара при любом значении стамины
end;
//###############################################################################
procedure runebook(bookaa:Cardinal;kuda:string);
begin
waitgump(kuda);
wait(1000) ;
UseObject(bookaa);
wait(8000);
CloseSimpleGump(0);
end;
//###############################################################################
procedure WorldSave;
//var Time : TDateTime;
//begin
//Time:= Now - (0.5 / 1440);
//if InJournalBetweenTimes('Saving World State',Time,Now) >= 0 then Wait(30000)
var k:integer;
begin
if InJournal('saving')<>-1 then
begin
k:=0;
repeat
wait(500)
k:=k+1;
AddToSystemJournal('World is saving');// more than '+IntToStr(k*20)+' seconds.');
until (InJournal('data')<>-1) or (k>120)
ClearJournal;
end
//###############################################################################
end;
procedure init;
begin
start_p.X:=GetX(Self); //Стартовая координата игрока
start_p.Y:=GetY(Self); //Стартовая координата игрока
//Tile Tree
TreeTile[0]:=3283;
TreeTile[1]:=3277;
TreeTile[2]:=3293;
TreeTile[3]:=3296;
TreeTile[4]:=3302;
TreeTile[5]:=3299;
TreeTile[6]:=3290;
TreeTile[7]:=3288;
TreeTile[8]:=3286;
TreeTile[9]:=3280;
//Рубить в области +/- 30 клеток от Стартовой координаты игрока
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 smena;
begin
dot[1].X:=888; // 1.Точка Округа Координатов там где вы будет рубить дерья. Это точки и начинать рубить. Маркаем Руну Тут.
dot[1].Y:=1004; //
dot[0].X:=905; // 2 Точка.
dot[0].Y:=939; //
dot[2].X:=886; // 3 Точка.
dot[2].Y:=1073; //
dot[3].X:=878; // 4 Точка.
dot[3].Y:=1132; //
dot[4].X:=920; // 5 Точка.
dot[4].Y:=1168; //
dot[5].X:=1009; // 6 Точка.
dot[5].Y:=1177; //
dot[6].X:=787; // 7 Точка.
dot[6].Y:=971; //
dot[7].X:=690; // 8 Точка.
dot[7].Y:=986; //
dot[8].X:=585; // 9 Точка.
dot[8].Y:=978; //
dot[9].X:=530; // 10 Точка.
dot[9].Y:=963; //
end;
//###############################################################################

procedure cancel;
begin
CloseMenu;
CancelMenu;
If TargetPresent Then CancelTarget;
end;

//###############################################################################
procedure Wait_Target(time_ms:Cardinal);
var
TempTime,SumTime:Cardinal;
begin
SumTime:=0;
repeat
WorldSave;
wait(500);
TempTime:=Timer;
SumTime:=SumTime+(Timer-TempTime);
until ((targetpresent) or (dead) or (not connected) or (SumTime>time_ms));
end;

//###############################################################################
procedure check_war;
begin
if IsWarMode(self) then
begin
setWarMode(false);
end;
end;

//###############################################################################
procedure check_hide;
begin
cancel;
wait(1000) ;
if Hidden then exit;
if WarMode = true then SetWarMode(false);
repeat
UseSkill('Hiding');
wait(4000); WorldSave;
until Hidden or (not Connected) or dead;
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('229 сортируем '+IntToStr(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;
item:=t_c;
temp_value:=vector_length(item,item[i+1]);
end;
i:=0;
AddToSystemJournal('196 i = 0 ');
AddToSystemJournal('Готово...');
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);
WorldSave;
hhh:=hhh+1;
until (GetType(ObjAtLayer(layer))=type_of_tool) or dead or (hhh>6);
end;

//###############################################################################
procedure podhod(Vendor:Cardinal);
begin
speedee;
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);
WorldSave;
until (GetDistance(Vendor)< 2) or dead;
end;
//###############################################################################

procedure CheckAxe;
begin
WorldSave;
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);
WorldSave;
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 poisk_tree;
begin
SetArStatus(true);
init;
sum:=0;
// поиск деревьев и составление массива
arr_sum:=0;
rs:=0;
j:=0 ;
for i:=0 to 9 do
begin
rs:=GetStaticTilesArray(RegArr[j].minX,RegArr[j].minY,RegArr[j].maxX,RegArr[j].maxY,1,TreeTile,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 поиск деревьев завершон');
end;

//###############################################################################
procedure heal;
begin
while (gethp(self) < getmaxhp(self)) and (CountEx(clean_bandages,$0000,backpack) > 0) do
begin
check_hide;
AddToSystemJournal('262 Хилимся');
UseObject(FindType(clean_bandages,Backpack));
wait_target(2000);
WaitTargetObject(Self);
wait (5000);
end;
end;
//###############################################################################

procedure eda;
var
dsa:word;
TimeSayHungry : TDateTime;
begin
speedee;
dsa:=0;
TimeSayHungry := Now;
WorldSave;
if (CountEx(Eat,$0000,backpack) <3) and (CountEx(hleb,$0000,backpack)<3) and (Not Dead)and(Sbor=1) then
begin
AddToSystemJournal('348 телепортируюсь в поле за едой');
runebook(runebook_les,EatPole);
wait (5000);
TpEda:=1;
repeat
WorldSave;
speedee;
uosay('guards');
FindDistance:=15;
FindTypeEx(rostoc, $0000, Ground , false);
NewMoveXY(GetX(FindItem),GetY(FindItem),true,3,false);
WorldSave;
UseObject(FindItem);
wait(3000);
AddToSystemJournal('361 Найдено ресурсов '+inttostr(FindCount));
if FindCount < 10 then
begin
AddToSystemJournal('364 Мало ресурсов '+inttostr(FindCount));
AddToSystemJournal('365 Телепортируюсь в бриту за едой');
runebook(runebook_les,RuneToMagazEat);
wait(4000);
AddToSystemJournal('367 Подхожу к вендору за едой');
podhod(vendor_eat);
SetAutoBuyDelay(8);
Autobuy(hleb,$0000,16);
UOSay(GetName(vendor_eat)+' buy guards'); //произнести в игре фразу 'Sell'
wait(12000);
end;
until (CountEx(Eat,$0000,backpack)>30) or (not dead) or (CountEx(hleb,$0000,backpack)>15);
end;
repeat
if CountEx(Eat,$0000,backpack) > 0 then
UseType(eat,$0000)
else
UseType(hleb,$0000);
wait(400);
dsa:=dsa+1;
until (InJournalBetweenTimes('You are simply too full to eat any more!',TimeSayHungry,Now) >= 0)or (dsa>10)or dead;
end;
//###############################################################################
//###############################################################################
procedure Resurrector;
BEGIN
if dead then
begin
speedee;
HelpRequest;//Нажать "Help"
wait(1000);
waitgump('3');//Нажать "Help i am stuck"
wait(1000);
waitgump(IntToStr(2));//Нажать на кнопку города
wait(3000)
FindDistance:=10;
moveXY(getX(self),getY(self)-2,false,1,false);
wait(5000)
repeat
useObject(resurect);
wait(8000);
until HP>0;
if medix=1 then
begin
podhod(vendor_medik);
SetAutoBuyDelay(8); //Установить задержку на продажу. Время задается в секундах. По умолчанию - 3 (минимальное значение).
Autobuy(clean_bandages,$0000,30);
UOSay((GetName(vendor_medik))+' buy guards'); //произнести в игре фразу 'buy'
wait(10000);
heal;
end;
ded:=1;
CheckAxe;
lll:=0;
eda;
end;
end;
//###############################################################################
procedure CheckDead;
Begin
if Dead then
begin
AddToSystemJournal('Персонаж мертв: '+TimeToStr(now));
Resurrector;
end
end;
//###############################################################################

procedure ubegalka;
begin
speedee;
if lll<6 then
begin
speedee;
AddToSystemJournal('385 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
lll:=lll+1;
CheckDead;
AddToSystemJournal('389 Запускаю поиск деревьев');
poisk_tree;
gfrt:=0;
end
else
begin
lll:=0;
speedee;
AddToSystemJournal('392 Запускаю точку убегания '+(inttostr(lll))+'.');
NewMoveXY(dot[lll].X,dot[lll].Y,true,1,true);
AddToSystemJournal('373 точка повтора '+(inttostr(lll))+' пройдена.');
lll:=lll+1;
CheckDead;
AddToSystemJournal('397 Запускаю поиск деревьев');
poisk_tree;
gfrt:=0;
end;
speedee;
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;
fizzles:=0;
repeat
equip_tool(hatcher,LhandLayer);
if TargetPresent then CancelTarget;
iter_max:=0;
check_hide;
UseObject(ObjAtLayer(LhandLayer));
check_hide;
Wait_Target(5000);
ctime := Now;
TargetToTile(f_tile.Tile,f_tile.X,f_tile.Y,f_tile.Z);
repeat
iter_max:=iter_max+1;
wait(1000);
WorldSave;
check_war;
check_hide;
FindDistance:=30;
FindType($002F,Ground);
if (InJournalBetweenTimes('an Ent|is attacking you|Ent', ctime, Now)>= 0) or (gfrt=1) or (FindCount>0)then
begin
Break;
AddToSystemJournal('437 ОО нееет меня атакуют Применяю брейк');
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|Reaper', ctime, Now)>= 0) or (gfrt=1) or (FindCount>0)or dead then
begin
wait(1000);
// PlayWav('C:\WINDOWS\Media\tada.wav');
// WinExec('E:\Program files\aimp3\AIMP3.exe', 0); //у меня стоит 3 аимп с музыкой в плейлисте. при запуске аимпа он сразу начинает играть. Эту строку можно и закоментрировать.
//alarm;
AddToSystemJournal('423 ОО нееет меня атакуют');
//uosay('Не бей меня плиииз');
check_hide;
ubegalka;
check_hide;
CheckDead;
wait(1000);
Break;
end;
until (InJournalBetweenTimes(next_lumb, ctime, Now)>= 0) or (fizzles>15) or dead;
CheckDead;
end;
//###############################################################################

procedure Cvet_log;
begin
Cvet[1] := $047C; //Oak Logs
Cvet[2] := $0279; //Red Tree Logs
Cvet[3] := $096B ; //Dark Tree Logs
Cvet[4] := $0237; //Swamp Logs
Cvet[5] := $0482; //Silver Leaf Logs
Cvet[6] := $010F; //Keranit Logs
Cvet[7] := $0014; //Perit Logs
Cvet[8] := $03C1; //Petrified Logs
Cvet[9] := $0085; //Dragon Tree Logs
Cvet[10] := $04C2; //Vampire Tree Logs
Cvet[11] := $0033; //Eridan Logs
Cvet[12] := $002B; //Hellios Logs
Cvet[13] := $0071; //Illusions Tree Logs
Cvet[14] := $09A4; //Crystal Logs
Cvet[15] := $0B82; //Dead Tree Logs
Cvet[16] := $00BE ; //Paradise Logs
Cvet[17] := $0035; //Titan Tree Logs
Cvet[18] := $0BB6; //Avalon Logs //Пока не вырубил и незнаю какой тут colour
Cvet[19] := $0487; //Elven Logs
Cvet[20] := $0498; //Asterxylon Logs //Пока не вырубил и незнаю какой тут colour
Cvet[21] := $0000; //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
WorldSave;
UOSay(GetName(Vendor_Log)+'sell guards'); //произнести в игре фразу 'Sell'
wait(12000);
podhod(Vendor_Log);
end;
end;
//###############################################################################

Procedure PutMoneyBank;
begin
WorldSave;
AddToSystemJournal('504 Заработал ГП : '+ inttostr(CountEx(GoldCoin,$0000,backpack)));
begin
while (CountEx(GoldCoin,$0000,backpack) > 0) and not dead do
begin
WorldSave;
speedee;
FindTypeEx (GoldCoin,$0000,Backpack,True) ;
MoveItem(FindItem,0,money,0,0,0);
WorldSave;
wait(2000);
end;
end;
end;
//###############################################################################

Procedure PutLogBank;
var
i:word;
begin
WorldSave;
begin
AddToSystemJournal('523 Складываем логи в банк');
For i:=17 to 20 do
WorldSave;
if CountEx(logs,Cvet,backpack) > 0 then
begin
WorldSave;
FindTypeEx (logs,Cvet,Backpack,True) ;
MoveItem(FindItem,0,resi,0,0,0);
wait(2000);
WorldSave;
end;
end;
end;
//###############################################################################
Procedure PutLogCase;
var
i:word;
begin
WorldSave;
begin
AddToSystemJournal('523 Складываем логи в СУНДУК ВОЗЛЕ ДОМА');
For i:=1 to 21 do
if CountEx(logs,Cvet,backpack) > 0 then
begin
FindTypeEx (logs,Cvet,Backpack,True) ;
MoveItem(FindItem,0,casebox,0,0,0);
wait(2000);
WorldSave;
end;
end;
end;
//###############################################################################

procedure UpdateChar(ContainerID2 : Cardinal);
begin
if GetName(ContainerID2) = 'Asterxylon Ent' then
begin
AddToSystemJournal('561 НПС найден');
gfrt:=1;
end;
end;
//###############################################################################

Begin
Cvet_log;
gfrt:=0;
SetEventProc(evUpdateChar,'UpdateChar');
TpEda:=0;
smena;
beg:=0;
CheckDead;
ded:=0;
CheckAxe;
eda;
if TpEda = 1 then
TpEda:=0;
lll:=0;
if (GetX(self)<>989) and (GetY(self)<>900) then
begin
AddToSystemJournal('568 телепортируюсь в лес');
runebook(runebook_les,Les);
end;
wait(4000);
check_hide;
speedee;
// рубка по составленному массиву
poisk_tree;
AddToSystemJournal('555 поиск деревьев прошол успешно');
while infini = 1 do
begin
AddToSystemJournal('579');
CheckDead;
i:=0;
if ded<>0 then
begin
AddToSystemJournal('584 телепортируюсь в лес');
runebook(runebook_les,Les);
wait(3000);
ded:=0;
poisk_tree;
TpEda:=0;
end;
AddToSystemJournal('591 указываю j:=sum-1');
j:=sum-1;
if kusaem=1 then eda;
if TpEda=1 then
ded:=1;
while (i<j)and(ded=0)and(Not Dead) do
begin
AddToSystemJournal('590 прошли цикл while i<j');
CheckDead;
ClearBadLocationList;
if kusaem=1 then eda;
CheckDead;
speedee;
AddToSystemJournal('595 Gogogo');
NewMoveXY(res_arr.X,res_arr.Y,true,1,false);
CheckDead;
check_hide;
chop(res_arr[i]);
i:=i+1;
AddToSystemJournal('601 и тут i = ' + inttostr(i)+' Ded = '+ inttostr(ded) );
if (Weight>=Tonaz) and (vala<>0) then
begin
if vala=1 then
begin
AddToSystemJournal('604 Перевес начинаю тп на продажу');
check_hide;
WorldSave;
runebook(runebook_les,magaz_sell);
AddToSystemJournal('609 я в магазине продаю дрова');
WorldSave;
AddToSystemJournal('613 я подхожу к продавцу');
podhod(Vendor_Log);
WorldSave;
vendor_sell;
wait(3000);
WorldSave;
AddToSystemJournal('619 телепортируюсь в банк');
runebook(runebook_les,bank);
WorldSave;
wait(5000);
WorldSave;
uosay('bank guards');
wait(3000);
AddToSystemJournal('626 Кладу деньги в банк');
PutMoneyBank;
wait(3000);
WorldSave;
wait(3000);
PutLogBank;
wait(3000);
end;
WorldSave;
if vala=2 then
begin
if baala = 1 then
begin
WorldSave;
AddToSystemJournal('619 телепортируюсь в банк');
runebook(runebook_les,bank);
wait(4000);
WorldSave;
uosay('bank guards');
wait(3000);
PutLogBank;
wait(3000);
end;
AddToSystemJournal('732 телепортируюсь К СУНДУКУ ВОЗЛЕ ДОМА');
runebook(runebook_les,homecase);
wait(4000);
WorldSave;
UseObject(casebox);
WorldSave;
PutLogCase;
wait(1000);
WorldSave;
end;
AddToSystemJournal('633 телепортируюсь в лес');
runebook(runebook_les,Les);
wait(5000);
poisk_tree;
end;
end;
end;
End.
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Ламбер ДРВ

Post by nah nah »

это чё тут руками что-ли деревья марчаться?
Post Reply