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

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