Page 1 of 2

По поводу ламбера на АСМе

Posted: 2005-04-18 13:43:28
by Edred
Меня постоянно спрашивают как сделать автопоиск деревьев и вообще написать ламбер, используя АСМ от АГРСа. Объясняю один раз.

1. Создаем в папке инжекта файл Resource_Static.dat, в него помещаем типы деревьев, с указанием логического типа 'tree'. Такой файл обычно создается простеньким скриптом с командой asmGetStaticTiles(), но в последних версиях эта команда не работает. Поэтому типы можно либо выдрать из вердаты, либо считать командой ,infotlie - не забудьте только преобразовать в шестнадцатиричные. Я привожу вам содержание этого файла (выше), но у вас на шарде могут быть и другие типы деревьев (маловероятно):

Code: Select all

0x0c95=tree
0x0c96=tree
0x0cca=tree
0x0ccb=tree
0x0ccc=tree
0x0ccd=tree
0x0cd0=tree
0x0cd3=tree
0x0cd6=tree
0x0cd8=tree
0x0cd9=tree
0x0cda=tree
0x0cdb=tree
0x0cdc=tree
0x0cdd=tree
0x0cde=tree
0x0cdf=tree
0x0ce0=tree
0x0ce3=tree
0x0ce6=tree
0x0cf8=tree
0x0cfb=tree
0x0cfe=tree
0x0d01=tree
0x0d41=tree
0x0d42=tree
0x0d43=tree
0x0d44=tree
0x0d57=tree
0x0d58=tree
0x0d59=tree
0x0d5a=tree
0x0d5b=tree
0x0d6e=tree
0x0d6f=tree
0x0d70=tree
0x0d71=tree
0x0d72=tree
0x0d84=tree
0x0d85=tree
0x0d86=tree
2. Теперь берем следующий скрипт, отходим в лес в любое место и запускаем.

Code: Select all

#####################################################################
; LumberAround. v.3.25b (c) Edred
;
; Рубим вокруг чара. Используется ASM-модуль для инжекта для поиска деревьев.
;
sub LamberAround()
	VAR t, k, CanMine, cx, cy, tmpx, tmpy, pointX, pointY
	VAR MaxTime = 600								; измеряется в 1/10 сек.
	VAR ms1 = "There are no logs here to chop"		; нет логов
	VAR ms2 = "You can't use"						; не можем
	VAR ms3 = "in your pack."						; вырубили логи
	VAR ms4 = "You fail to produce"					; физл
	VAR ms5 = "You are too far away"				; стоим далеко
	VAR ms6 = "It appears immune to your blow"		; не проходит удар
	VAR ms7 = "You can't see that"					; не можем увидеть
	VAR ms8 = "is destroyed*"						; топор развалился
	VAR ms9 = "Try to kill my spirit at first!"		; вырубили духа дерева
	UO.asmTLStaticOpen('Resource_Static.dat')	; Загрузим таблицу типов статики
	VAR i, strpoint
	VAR MaxVes = 580
	cx = UO.GetX()
	cy = UO.GetY()
	for tmpx = -3 to 3
		for tmpy = -3 to 3
			k = 0
			pointX = cx + tmpx
			pointY = cy + tmpy
			strpoint = str(pointX) + ' ' + str(pointY)
			repeat
				UO.DeleteJournal()
				t = UO.Timer() + MaxTime
				k = k + 1
				wait(300)
				CanMine = UO.asmWaitTargetStaticTile( 'tree', PointX, PointY, 0 )
				If CanMine Then
					UO.UseObject(UO.ObjAtLayer('Lhand'))
					repeat 
						wait(100) 
					until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(ms7) OR UO.InJournal(ms8) OR UO.InJournal(ms9) OR (t < UO.Timer())
				Endif
				If UO.Weight > MaxVes Then
					; Вес превышен!
					return
				Endif
				If UO.InJournal( ms8 ) Then
					; топор накрылся!
					return
				Endif
				If UO.InJournal( ms9 ) Then
					; дух дерева!
					return
				Endif
			until NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) OR (k > 10)
			Endif
		next
	next
endsub
3. Копаетесь в коде скрипта, пока не сделаете то, что вам нужно 8)

Posted: 2005-04-23 19:05:11
by Destruction
Ну тута ничего для меня нового (честное слово), думал что ща запущу - исзбавлюся он надобности писать скрипт, ан нет - пишет 4раза что я не дотягиваюсь, и все - висит в цикле.

Posted: 2005-04-26 13:18:41
by Edred
У тебя на шарде меньше расстояние, на котором можно рубить деревья. Уменьши пределы в форах. Сообщения, наверное, тоже другие.

Posted: 2005-08-23 01:08:02
by Mazhor
Ошибка :
Line 18: Function not found -UO.ASMTLSTATICOPEN

Posted: 2005-08-23 09:03:49
by flake
Ты АСМ поставил то? :lol:

Posted: 2005-08-23 09:59:16
by Askaneli
flake wrote:Ты АСМ поставил то? :lol:
Стёб.

Posted: 2005-08-23 14:05:18
by Mazhor
flake wrote:Ты АСМ поставил то? :lol:
а эт чо такое? :roll:
ЗЫ : чар просто рубит вокруг себя? Он сам бегит к следующему дереву?...

Posted: 2005-08-23 14:06:33
by flake
:lol: :lol: :lol:
так и знал

http://agrs.info/asm/

Posted: 2005-08-23 14:08:29
by Leo
Вот сюда тоже загляни :wink:

Posted: 2005-08-23 14:15:49
by Mazhor
line 18: runtime error - can not open file

Posted: 2005-08-23 14:16:54
by Leo
Mazhor wrote:line 18: runtime error - can not open file
Видимо ты не создал в папке инжекта файл Resource_Static.dat

Posted: 2005-08-23 14:22:15
by Mazhor
Создал...
ЗЫ : яж не такой уж тугой :D

Posted: 2005-08-23 15:52:20
by flake
а АСМ то поставил?

Posted: 2005-08-23 23:10:08
by Mazhor
flake wrote:а АСМ то поставил?
Естественно.

Posted: 2005-10-02 20:44:02
by biiv
Включаю просто ничего не происходит 0 реакции.

ASM поставлен фаил создан.
На Layer тапор есть.

Posted: 2005-10-02 21:06:22
by Destruction
Насчет деревий - рекомендую взять InsideUO и посмотреть там, надежнее.

Posted: 2005-10-02 22:48:07
by biiv
да дело было в неправельных данных . Спасибо за столь быструю помощ
Ничего покапался получилось

Code: Select all

0x0CCA=tree
0x0CCB=tree
0x0CCC=tree
0x0CCD=tree
0x0CCE=tree
0x0CCF=tree
0x0CD0=tree
0x0CD1=tree
0x0CD2=tree
0x0CD3=tree
0x0CD4=tree
0x0CD5=tree
0x0CD6=tree
0x0CD8=tree
0x0CDA=tree
0x0CDB=tree
0x0CDC=tree
0x0CDD=tree
0x0CDE=tree
0x0CDF=tree
0x0CE0=tree
0x0CE1=tree
0x0CE2=tree
0x0CE3=tree
0x0CE4=tree
0x0CE5=tree
0x0CE6=tree
Может кому пригодится.

Нельзяли пристроить к нему ходилку? Если да подскажите как.
Зарание благодарен

Posted: 2005-10-02 23:10:51
by Grin
Заводишь еще одну процедуру которая утебя будет отвчать за перемещения и внутри себя будет вызывать "вырубить вокруг"
по кого нчанию вырубки управление передастся в главную функци и тд...

Posted: 2005-10-02 23:45:28
by biiv
Страно но Скрипт иногда выключается.

Posted: 2005-10-03 00:03:04
by Grin
Ну кидай его сюда и посмотим что там выключается...