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

Mining again

тут можно задать вопрос по скриптингу
Post Reply
PM
Posts: 6
Joined: 12.08.2006 16:44
Contact:

Mining again

Post 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.
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post 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;
копает вокруг себя где только может
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

{Проставлено из расчета что всегда Tile=400}
у нас на шарде во всех пещерах Tile=400
если нет универсального или часто встречающегося Tile, то это плохо потому как узнавать Tile и тут же его использовать мы пока не можем в рамках StealthA
узнавал Tile инжектовской ,infotile
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

Acronym wrote:если нет универсального или часто встречающегося Tile, то это плохо потому как узнавать Tile и тут же его использовать мы пока не можем в рамках StealthA
у меня на шарде именно такая ситуация - тайлов видов 5 будет. можно ли задать тип тайл как -1 т.е. любая?
:roll:
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Stealth не читает карту и не знает какой тайл находится под тобой. Поэтому надо явно указывать тайлы.
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

А возможно ли задать несколько тайлов из которых существует только 1?
т.е. я знаю координаты x,y,z но не тип тайла. Типов передположим 5 и 1 из них всегда присутствует (и только 1) можно ли чтоб Стелс отбрасывал варианты прицелов которые ведут никуда если такого тайла нет?
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

А причем тут прицел? ... Прицел не знает на какой тайл тебе надо кликать. :wink:
Если тайлы разные, то выход только один - создавать массив координат с тайлами. Смотри пример с фишингом. :wink:
Lokkie
Neophyte
Neophyte
Posts: 30
Joined: 02.08.2006 7:55

Post by Lokkie »

Miralex wrote:Если тайлы разные, то выход только один - создавать массив координат с тайлами. Смотри пример с фишингом. :wink:
Похоже что так и сделаю. Сенькс за идею. Просто хотел делать независящего от пещеры шахтера с реколом. :wink:
:roll:
PM
Posts: 6
Joined: 12.08.2006 16:44
Contact:

Post 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; 


Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

В конце должен быть End.
Diego
Neophyte
Neophyte
Posts: 15
Joined: 11.07.2006 8:08
Contact:

Post by Diego »

Люди, в часности Acronym можеш выложить свой скрипт на мининг, что б опкапывал и под себя складывал... )
а то с этими, что на форуме ничего не получаеться....
если у кого то есть, то выложите тут или в асю стукните 334353710
Зарание спасибо !
PM
Posts: 6
Joined: 12.08.2006 16:44
Contact:

Post by PM »

Miralex wrote:В конце должен быть End.

жалуеться на отсутствующий ";"
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

С процедурой все в порядке.
Выкладывай остальное - будем смотреть. :wink:
PM
Posts: 6
Joined: 12.08.2006 16:44
Contact:

Post by PM »

А это собсно все что есть(
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Программа не может быть из одной процедуры. Посмотри другие скрипты. Обрати внимание с каких "слов" они начинаются. Как заканчиваются.
Post Reply