Page 1 of 1
Mining again
Posted: 14.08.2006 9:20
by PM
Собсно, взял за пример мининг, уже тут выложеный. Бьюсь с ним неделю, и уже перестал что бы то нибыло понимать. Язык для меня новый, и буду очень благодарен если мне укажут в чем я не прав.
Code: Select all
program Mine;
var x,y,t,h,z,i:integer;
var Time : TDateTime;
procedure Make;
Begin
wait(1000);
i:=200;
clearjournal;
end;
begin
Time:= Now - (0.5 / 1440);
while weight <= 40000 do
begin
for x := getx(self)
for y := gety(self)
for z := getz(self)
for t := x-2 to x+2
for h := y-2 to y+2 do
end;
begin
useobject($403F23B2);
waitfortarget(5000);
TargetToTile(1,t,h,z);
i:=0
while i<100 do
begin
if InJournalBetweenTimes('but fail',Time,Now) or InJournalBetweenTimes('You put',Time,Now) or InJournalBetweenTimes('You must wait to perform another action',Time,Now)>= 0 then make;
if InJournalBetweenTimes('nothing here',Time,Now) or InJournalBetweenTimes('Try mining',Time,Now) or InJournalBetweenTimes('bort',Time,Now) or InJournalBetweenTimes('inish',Time,Now) >= 0 then make2;
i:=i+1
end;
end;
end;
end.
Posted: 16.08.2006 14:40
by Acronym
моя вызываемя процедура для копки, в общих чертах:
Code: Select all
procedure Mine;
var
sTime : TDateTime;
begin
CheckDead;
for x:=-2 to 2 do
begin
for y:=-2 to 2 do
begin
*тут я проверяю есть ли кирка в руке и одеваю если нет*
WaitTargetTile( 400,( GetX( Self ) + x ),( GetY( Self ) + y ),GetZ( Self )); {Проставлено из расчета что всегда Tile=400}
sTime := Now;
wait(500);
WaitJournalLine( sTime, 'cannot see|cannot mine|no clay|no more|equip|too far|broke|dead|perform|Oops|attacking',30000);
wait(1500);
*тут я выбрасываю руду которая мне не нужна*
*тут я пытаюсьвзять с пола ту руду что нужна*
end;
end;
end;
копает вокруг себя где только может
Posted: 16.08.2006 14:55
by Acronym
{Проставлено из расчета что всегда Tile=400}
у нас на шарде во всех пещерах Tile=400
если нет универсального или часто встречающегося Tile, то это плохо потому как узнавать Tile и тут же его использовать мы пока не можем в рамках StealthA
узнавал Tile инжектовской ,infotile
Posted: 23.08.2006 10:20
by Lokkie
Acronym wrote:если нет универсального или часто встречающегося Tile, то это плохо потому как узнавать Tile и тут же его использовать мы пока не можем в рамках StealthA
у меня на шарде именно такая ситуация - тайлов видов 5 будет. можно ли задать тип тайл как -1 т.е. любая?

Posted: 23.08.2006 10:49
by Miralex
Stealth не читает карту и не знает какой тайл находится под тобой. Поэтому надо явно указывать тайлы.
Posted: 23.08.2006 13:56
by Lokkie
А возможно ли задать несколько тайлов из которых существует только 1?
т.е. я знаю координаты x,y,z но не тип тайла. Типов передположим 5 и 1 из них всегда присутствует (и только 1) можно ли чтоб Стелс отбрасывал варианты прицелов которые ведут никуда если такого тайла нет?
Posted: 23.08.2006 14:11
by Miralex
А причем тут прицел? ... Прицел не знает на какой тайл тебе надо кликать.

Если тайлы разные, то выход только один - создавать массив координат с тайлами. Смотри пример с фишингом.

Posted: 23.08.2006 14:38
by Lokkie
Miralex wrote:Если тайлы разные, то выход только один - создавать массив координат с тайлами. Смотри пример с фишингом.

Похоже что так и сделаю. Сенькс за идею. Просто хотел делать независящего от пещеры шахтера с реколом.

Posted: 23.08.2006 17:28
by PM
Черт, а у меня жалуетья на неожиданный конец скрипта, причем кол во бегинов и эндов равное
Code: Select all
procedure Mine;
var x, y:integer;
sTime : TDateTime;
begin
for x:=-2 to 2 do
begin
for y:=-2 to 2 do
begin
findtype($0E85, backpack);
UnEquip(RHandLayer);
wait(500);
Equip(RhandLayer,finditem);
UseObject(finditem);
wait(1000);
WaitTargetTile( 1309,( GetX( Self ) + x ),( GetY( Self ) + y ),GetZ( Self )); {Проставлено из расчета что всегда Tile=400}
sTime := Now;
wait(500);
WaitJournalLine( sTime, 'cannot see|cannot mine|no clay|no more|equip|too far|broke|abort|perform|finished|attacking',30000);
wait(1500);
end;
end;
end;
Posted: 28.08.2006 7:18
by Miralex
В конце должен быть End.
Posted: 03.09.2006 10:29
by Diego
Люди, в часности Acronym можеш выложить свой скрипт на мининг, что б опкапывал и под себя складывал... )
а то с этими, что на форуме ничего не получаеться....
если у кого то есть, то выложите тут или в асю стукните 334353710
Зарание спасибо !
Posted: 05.09.2006 5:38
by PM
Miralex wrote:В конце должен быть End.
жалуеться на отсутствующий ";"
Posted: 05.09.2006 7:39
by Miralex
С процедурой все в порядке.
Выкладывай остальное - будем смотреть.

Posted: 12.09.2006 3:12
by PM
А это собсно все что есть(
Posted: 12.09.2006 7:59
by Miralex
Программа не может быть из одной процедуры. Посмотри другие скрипты. Обрати внимание с каких "слов" они начинаются. Как заканчиваются.