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

Anything and all.

Moderators: Murderator+, Murderator

Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

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

Post 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)
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Ну тута ничего для меня нового (честное слово), думал что ща запущу - исзбавлюся он надобности писать скрипт, ан нет - пишет 4раза что я не дотягиваюсь, и все - висит в цикле.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

У тебя на шарде меньше расстояние, на котором можно рубить деревья. Уменьши пределы в форах. Сообщения, наверное, тоже другие.
Mazhor
Posts: 18
Joined: 2005-08-23 01:05:41
Contact:

Post by Mazhor »

Ошибка :
Line 18: Function not found -UO.ASMTLSTATICOPEN
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

Ты АСМ поставил то? :lol:
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

flake wrote:Ты АСМ поставил то? :lol:
Стёб.
Сделал дело - флуди смело !!!
Mazhor
Posts: 18
Joined: 2005-08-23 01:05:41
Contact:

Post by Mazhor »

flake wrote:Ты АСМ поставил то? :lol:
а эт чо такое? :roll:
ЗЫ : чар просто рубит вокруг себя? Он сам бегит к следующему дереву?...
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

:lol: :lol: :lol:
так и знал

http://agrs.info/asm/
Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Вот сюда тоже загляни :wink:
Mazhor
Posts: 18
Joined: 2005-08-23 01:05:41
Contact:

Post by Mazhor »

line 18: runtime error - can not open file
Leo
Expert!
Posts: 791
Joined: 2005-01-15 19:15:05
Location: Dragon World
Contact:

Post by Leo »

Mazhor wrote:line 18: runtime error - can not open file
Видимо ты не создал в папке инжекта файл Resource_Static.dat
Mazhor
Posts: 18
Joined: 2005-08-23 01:05:41
Contact:

Post by Mazhor »

Создал...
ЗЫ : яж не такой уж тугой :D
flake
Expert!
Posts: 746
Joined: 2004-08-11 23:56:17
Location: The Citadel
Contact:

Post by flake »

а АСМ то поставил?
Mazhor
Posts: 18
Joined: 2005-08-23 01:05:41
Contact:

Post by Mazhor »

flake wrote:а АСМ то поставил?
Естественно.
biiv
Posts: 11
Joined: 2005-09-24 18:02:37

Post by biiv »

Включаю просто ничего не происходит 0 реакции.

ASM поставлен фаил создан.
На Layer тапор есть.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Насчет деревий - рекомендую взять InsideUO и посмотреть там, надежнее.
biiv
Posts: 11
Joined: 2005-09-24 18:02:37

Post 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
Может кому пригодится.

Нельзяли пристроить к нему ходилку? Если да подскажите как.
Зарание благодарен
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Заводишь еще одну процедуру которая утебя будет отвчать за перемещения и внутри себя будет вызывать "вырубить вокруг"
по кого нчанию вырубки управление передастся в главную функци и тд...
biiv
Posts: 11
Joined: 2005-09-24 18:02:37

Post by biiv »

Страно но Скрипт иногда выключается.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Ну кидай его сюда и посмотим что там выключается...
Post Reply