Page 1 of 2
					
				Памажите с бланками :)
				Posted: 11.12.2006 16:40
				by Vladislav
				сабж такого рода
есть скрипт на бланки
Code: Select all
sub main()
var tintools='0x1ebc',log='0x1bdd',where_x,where_y,timer
uo.getx()
uo.gety()
where_x=uo.getx()
where_y=uo.gety()
while uo.count(log)>10 and uo.getx()==where_x and uo.gety()==where_y
uo.deletejournal()
uo.exec("waitmenu 'like to make' 'Paper items' 'like to make' 'Blank Scroll'")
uo.waittargettype(log)
uo.usetype(tintools)
timer=0
repeat
wait(500)
timer=timer+1
if timer>16 then
#okay - uo.lclick(56,85)
#cancel - uo.lclick(131,85)
uo.lclick(131,85)
wait(100)
endif
until uo.injournal('finished') or uo.injournal('stop')
wend
uo.exec('terminate bs')
uo.say(' sub bs terminated')
end sub
Такого рода 

 можно ли его переделать под стелс? шард - зулуотель 

 Облегченный какой-нибудь вариант чтоли.. что б он, пока есть логи в паке калбасил бланки в нужный контейнер (ибо не стакуются в основном при крафте).
Заранее спасибо, Владислав.
 
			
					
				
				Posted: 12.12.2006 0:19
				by Edred
				http://stealth.od.ua/forum/viewtopic.php?t=691
Скрипт номер 2, приспособь под свой шард и все.
 
			 
			
					
				
				Posted: 12.12.2006 18:55
				by Vladislav
				Видел. Спасибо за помощь. В программинге я 0. Из 20 строчек, может быть, смог бы ещё поправить чего. Из 12к, извените. Полный лох.
Всё равно, спасибо. Хоть за ответ.
 
			
					
				
				Posted: 12.12.2006 23:09
				by Edred
				Vladislav wrote:Видел. Спасибо за помощь. В программинге я 0. Из 20 строчек, может быть, смог бы ещё поправить чего. Из 12к, извените.
Каких-таких 12к?  

 Там весь скрипт меньше сотни строк, а главная процедура, которую тебе и надо (а может и не надо вообще) править под себя - вообще строк 20. Те самые, которые ты умеешь править. Функции-то зачем править? Они отвечают за взятие ресурсов и сбрасывание скрафченного, тут все просто и ничего править вообще нет необходимости.
 
			
					
				
				Posted: 13.12.2006 1:16
				by SLAK
				Edred wrote:
которую тебе и надо (а может и не надо вообще) 
Чел играет на ZHI, названия крафт-меню одинаковы на нескольких вложениях... (Миралакс там случаем не добавил как в инже : waitmenu('1','1','2','1')? и так далее)... сам он врядле переделает!
Я обхожу это подобным корявым способом:
Code: Select all
procedure Tink;
begin
waitconnection(5000);
 while count(pickaxe)=0 do begin
       CancelMenu;
       WaitTargetType(ingots);
       usetype(TinkTools,$ffff);
       WaitMenu('What','(first)');
       wait(5000);
       WaitMenu('What','Shovel');
       wait(10000);
 end;
end;
 
			
					
				
				Posted: 13.12.2006 1:45
				by Edred
				SLAK wrote:Чел играет на ZHI, названия крафт-меню одинаковы на нескольких вложениях... (Миралакс там случаем не добавил как в инже : waitmenu('1','1','2','1')? и так далее)...
Нельзя быть таким ленивым. В этом же разделе, прилепленная тема, там все перечислено.
Конечно же, уже есть такая возможность. И в вайтменю, и в аутоменю. Причем даже больше возможностей чем в инжекте.
Работа с меню:
• WaitMenu (Promt, Choice : String) - Установка ловушки на меню с названием Promt и выбор позиции Choice.
• AutoMenu (Promt, Choice : String) - Тоже что и WaitMenu, только ловушка многоразовая.
• CancelMenu - Отменяет все установленные ловушки.
Choice может быть задано одним из специальных указателей:
'(номер)' - Выбрать Choice с указанным номером. 
'(first)' - Выбрать первый Choice. 
'(last)' - Выбрать последний Choice. 
'(random)' - Случайный выбор Choice. 
'(cancel)' - Отмена меню.
Prompt может быть специальным указателем:
'(any)' - Ловушка будет срабатывать на любое меню, в случае, если Choice подходит по критериям.
В отличии от обычных MENU-ловушек, специальные указатели выбора не чувствительны к регистру.
 
			
					
				
				Posted: 14.12.2006 0:48
				by SLAK
				[quote="Edred"][/quote]
Дык я об нескольких вложениях, А не о замене стринга его порядковым номером 
 
 
Тоесть название меню всегда : what ...?
В инже было бы так, например:
Code: Select all
uo.waitmenu('What','(1)','What','(5)')
Стелс на аналогичное матюкается 

 
			
					
				
				Posted: 14.12.2006 2:11
				by Edred
				В стелсе только одна пара в команде меню. Я понял проблему, но, имхо, она пока на стелсе нерешаема. По крайней мере, в той формулировке, как ее описал ты. А если смотреть на приведенный выше скрипт, то:
uo.exec("waitmenu 'like to make' 'Paper items' 'like to make' 'Blank Scroll'")
Прекрасно можно трансформировать в:
Code: Select all
WaitMenu( '(any)', 'Paper items');
WaitMenu( '(any)', 'Blank Scroll');
 
			
					
				
				Posted: 14.12.2006 8:46
				by Miralex
				Если вызвать 2 такие строчки подряд, то вторая ловушка автоматически заменит первую (Prompt у них одинаковый).
Наверняка перед выскакиванием менюшки - сервер пишет что-то типа Select трали вали. Вот по журналу можно определять что он именно хочет и вешать соответствующую ловушку.
			 
			
					
				
				Posted: 14.12.2006 21:56
				by SLAK
				Miralex wrote:Если вызвать 2 такие строчки подряд, то вторая ловушка автоматически заменит первую (Prompt у них одинаковый).
Наверняка перед выскакиванием менюшки - сервер пишет что-то типа Select трали вали. Вот по журналу можно определять что он именно хочет и вешать соответствующую ловушку.
В своем первом посте этого топика - я уже указал как я это обхожу.. Знаю способ связанный с месагами как на этом конкретном шарде зделать с проверкой на месагу... Но проблема актуальна (играл на шарде где никаких намёков на журнал нету) и я помню , что тебя не первый раз просят сделать как в инжекте... Посему и я прошу это учесть в разработке новых версий 

 
			
					
				
				Posted: 14.12.2006 22:54
				by Edred
				Надо бы просто реализовать второй способ использования меню, как с прицелами. То есть: с прицелами можно задавать ловушку, а можно ожидать прицела и направлять его куда надо. А с меню реализованы только ловушки. Если сделать возможность использовать и второй способ - все "хитрые" меню будут решаться очень просто.
То есть нужны две новые команды: MenuPresent, TargetToMenu. Действие аналогично TargetPresent и TargetToObject.
			 
			
					
				
				Posted: 14.12.2006 23:14
				by SLAK
				[quote="Edred"][/quote]
Тоже неплохой вариант, но реализовывать Миралексу. Так что: поживём - увидим.
			 
			
					
				
				Posted: 30.12.2006 23:19
				by DerMeister
				Ситуация такая: исходное меню и подменю называются одинаково: 
What would you like to make
А мне нужно пролезть на второй уровень меню, тоесть в инжекте это выглядело бы так: 
uo.waitmenu('make','Armors','make','Breastplate')
Могу ли я на стелсе, сделав разный 
Promt, ухитриться так, чтобы при появлении меню 
What would you like to make срабатывала тока одна ловушка, при том что оба Promt'а содержутся в названии меню?
Code: Select all
WaitMenu( 'What', 'Armors'); 
WaitMenu( 'make', 'Breastplate');
ПС: Вобщем, сколько ловышек и в каком порядке они сработают, если у них Promt'ы разные, но все они содержатся в названии меню???
 
			
					
				
				Posted: 30.12.2006 23:49
				by DerMeister
				Тока что тестанул - РАБОТАЕТ!
ПС: Всё гениальное просто, я, кстати, запотентовал свой метод, так что ссылка на автора (тоесть на меня) теперь обязательна! ггг. Какой я умный, я сам тащусь. =_)**
ВооТ пример:
Code: Select all
procedure make_brazer; 
 begin
  CancelMenu;
  WaitMenu('What', 'Miscellaneous'); 
  WaitMenu('make', 'Brazier'); 
  WaitTargetType(Iron);
  usetype(TT,$ffff);
  wait(1000);
(c) DerMeister,31/12/2006! =_)***
 end;
 
			
					
				
				Posted: 30.12.2006 23:50
				by DerMeister
				SLAK wrote:Edred wrote:
которую тебе и надо (а может и не надо вообще) 
Чел играет на ZHI, названия крафт-меню одинаковы на нескольких вложениях... (Миралакс там случаем не добавил как в инже : waitmenu('1','1','2','1')? и так далее)... сам он врядле переделает!
Я обхожу это подобным корявым способом:
Code: Select all
procedure Tink;
begin
waitconnection(5000);
 while count(pickaxe)=0 do begin
       CancelMenu;
       WaitTargetType(ingots);
       usetype(TinkTools,$ffff);
       WaitMenu('What','(first)');
       wait(5000);
       WaitMenu('What','Shovel');
       wait(10000);
 end;
end;
 
Способ реал корявый... =_) читай выше 
