Люди помогите скиньте скрип на ламбер!!!

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Kostya
Posts: 2
Joined: 2004-04-26 19:44:39

Люди помогите скиньте скрип на ламбер!!!

Post by Kostya »

народ помогите плз скиньте скриптик на ламбер токо тот который деревья сам ищет буду очень признателен!!!Зарание спасибо
ИгорьАлек
Posts: 25
Joined: 2004-04-16 09:18:08
Contact:

Post by ИгорьАлек »

Очень интересно посмотреть на такой скрипт.
У меня скрипт есть, но там надо деревья самому забивать.
Dzen
Posts: 29
Joined: 2004-04-08 16:06:21
Contact:

Post by Dzen »

такого скрипта нет и не может быть, насколько я помню, инжект пока не позволяет искать тайлы ..
Kostya
Posts: 2
Joined: 2004-04-26 19:44:39

Post by Kostya »

ИгорьАлек wrote:Очень интересно посмотреть на такой скрипт.
У меня скрипт есть, но там надо деревья самому забивать.

если не в падлу то скинь хоть этот а то дрова так лень самому рубить)
BOT
Posts: 5
Joined: 2004-04-05 18:46:19

Post by BOT »

Code: Select all

###############################################################
###                     Скрипт на ламбер                    ###
###############################################################
### (c) Elthar aka Duo.
### Требуется YokoInjection со скрипт парсером версии 0.3
### http://yoko.netroof.net
###############################################################
###                  Инструкции по применению               ###
###############################################################
### Во время работы скрипта рекомендуется не говорить,
### это будет тормозить его выполнение, хотя и не смертельно.
### Вердату желательно иметь нормальную, не с пеньками вместо
### деревьев.
###
### 1. До запуска скрипта в бэкпаке должно быть: любой топор,
### кирка (a pickaxe); если надо, чтобы чар реколился домой и
### складывал логи, то еще две руны и спеллбук с реколом (или
### свитки.
### 2. Марчим одну руну куда-нить в безопасное место (например,
### в дом), вторую туда, где хотим рубить. Идем туда, врубаем
### скрипт.
### 3. Появится прицел и мессага "Выберите топор". Кликаем на
### топор. Если переменная TryRecall=1 то так же выбираем
### сначала руну домой, потом руну в лес. Если в спеллбуке нет
### заклинания Recall, то нужно выставить переменную
### RecallFromScroll=1, тогда еще выбираем стопку свитков рекола.
### Нужно обязательно проверить, хватает ли регов или свитков,
### иначе чар застрянет посреди леса.
### 4. Если переменная GetFromFile=1, то скрипт считает из файла
### координаты деревьев и сразу побежит к первому дереву. Если
### GetFromFile=0, то начнется анализ территории. ВО ВРЕМЯ АНАЛИЗА
### ОКНО КЛИЕНТА ДОЛЖНО БЫТЬ АКТИВНО, И КУРСОР ДОЛЖЕН НАХОДИТЬСЯ
### НА ИГРОВОМ ПОЛЕ!!! Можно менять переменную Area от 1 до 4,
### чтобы увеличивать/уменьшать размер территории для анализа.
### Сколько выбирать, зависит от густоты леса и скилла Ламбера,
### пробуй сам.
### 5. Когда база загрузится, появится соответствующая мессага,
### и начнется бесконечный цикл на обход деревьев. Он происходит
### так: идем к дереву; если переменная TryHiding=1 то пытаемся
### уйти в хайд; начинаем рубить логи, пока все не вырубим, или
### пока не кончится таймер (30 ударов); если переменная
### TryRecall=1 и логов больше чем переменная LogsQty, то
### реколимся домой, складываем логи на пол, реколимся обратно;
### идем к следующему дереву и все повторяется сначала.
###
### Вот собственно и все! Enjoy it!
###############################################################



sub Lumber()
var i=0,j=0,k=0,r=0,q=0,ii,jj
var TopX=324,TopY=65                
dim TreeX[100], TreeY[100],TreeT[100]
dim TreeTile[100]
var flag=0,treeCount=0,clicks=0,flag2=0
var f=file("C:\trees.dat")

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
var Area=4       ## Размер обрабатываемой территории, можно менять от 1 до 4.
var TryHiding=1    ## 1 - перед тем как рубить дерево, будет пытаться уйти в хайд, 0 - не будет
var TryRecall=1  ## 1 - после того как соберет LogsQty логов, будет пытаться реколиться домой,
             # складывать логи на пол и реколиться обратно (нужно выбрать две руны), 0 - не будет.   

var LogsQty=500 ## Количество логов, добыв которое надо реколиться домой.
var RecallFromScroll=0 ## 1 - рекол со свитков, 0 - из спеллбука

var GetFromFile=0 ## 1 - координаты деревьев будут считыватся из файла, 0 - собиратся из клиента
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                              #Графика деревьев
TreeTile[0]=3283                              
TreeTile[1]=3277
TreeTile[2]=3293
TreeTile[3]=3296
TreeTile[4]=3202
TreeTile[5]=3299
TreeTile[6]=3290
TreeTile[7]=3288
TreeTile[8]=3286
TreeTile[9]=3280

uo.exec("filterspeech on")
uo.exec("filterspeech add 'Where do you want to use the pickaxe?'")

 uo.addobject("a key ring", 0x400866CE) # Обьект кейринга
 uo.addobject("spellbook", 0x4019FFB0) # Обьект спелбука
 uo.addobject("runebook", 0x400C617E) # Обьект runebook
 uo.addobject("runebook2", 0x40080646) # Обьект runebook
 uo.addobject("pestik", 0x4008610D) # пестик

uo.print('Выбери топор: ')
uo.exec('addobject axe')
wait(5000)

uo.print('сумку с регами: ')
uo.exec('addobject bag')
wait(5000)

if TryRecall==1 then
   uo.print('Выбери руну домой: ')
   uo.exec('addobject runeHome')
   wait(5000)
   uo.print('Выбери руну в лес: ')
   uo.exec('addobject runeLumber')
   wait(5000)   
   if RecallFromScroll==1 then
      uo.print('Выбери свитки Recall:' )
      uo.exec('addobject RecallScroll')
      wait(5000)      
   end if
end if

                              #Загружаем координаты из файла
if GetFromFile==1 then
   uo.print('Загружаем координаты из файла...')
   f.open()
   TreeCount=safe call f.readNumber()
   for i=1 to TreeCount   
       TreeT[i]=safe call f.ReadNumber()
       TreeX[i]=safe call f.ReadNumber()       
       TreeY[i]=safe call f.ReadNumber()       
    next   
   f.close()
else
                              #Собираем координаты из клиента
uo.print('Собираем координаты деревьев в округе...')
for q=1 to Area
if q==2 then
   gotoxy(uo.getx()+20,uo.gety()-10)
end if   
if q==3 then
   gotoxy(uo.getx(),uo.gety()+20)
end if
if q==4 then
   gotoxy(uo.getx()-20,uo.gety())
end if
for r=0 to 3
if r==1 then
   gotoxy(uo.getx()+10,uo.gety())
end if
if r==2 then
   gotoxy(uo.getx(),uo.gety()+10)
end if
if r==3 then
   gotoxy(uo.getx()-10,uo.gety())
end if
for j=0 to 8
   for i=0 to 8
      clicks=0
      flag=0
      uo.DeleteJournal()
                              #Кликаем на тайл
      uo.usetype('0x0E86')
      waitForTarget()
      uo.DeleteJournal()
      uo.LClick(TopX+i*21-j*21,TopY+i*21+j*21)
      WaitForTryRock()
                              #Проверяем дерево ли это
      flag=0
      for k=0 to 9
         if uo.LastTile(0)==TreeTile[k]+1 then
            flag=2
         end if
      next
      if flag==0 then
         for k=0 to 9
            if uo.LastTile(0)==TreeTile[k] then
               flag=1
            end if
         next
      end if   
                              #Кликнули на ствол
      if flag==1 then
         flag2=0
         if treeCount>0 then
            for ii=1 to treeCount
               if treeX[ii]==uo.lastTile(1) AND treeY[ii]==uo.lastTile(2) then
                  flag2=1
               end if
            next
         end if   
         if flag2==0   then
            treeCount=treeCount+1
            TreeX[treeCount]=uo.LastTile(1)
            treeY[treeCount]=uo.lastTile(2)
            TreeT[treeCount]=uo.LastTile(0)
            uo.print('Найдено дерево: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))
         end if   
      end if         
                              #Кликнули по листве
      if flag==2 then
         flag2=0
         if treeCount>0 then
            for ii=1 to treeCount
               if treeX[ii]==uo.lastTile(1) AND treeY[ii]==uo.lastTile(2) then
                  flag2=1
               end if
            next
         end if   
         if flag2==0   then
            treeCount=treeCount+1
            TreeX[treeCount]=uo.LastTile(1)
            treeY[treeCount]=uo.LastTile(2)
            TreeT[treeCount]=uo.LastTile(0)-1
            uo.print('Найдено дерево: x='+str(uo.lasttile(1))+' y='+str(uo.lastTile(2)))            
         end if   
      end if         
   next   
next
next
next
uo.exec("filterspeech off")
uo.print('Анализ закончен, координаты деревьев записаны в файл C:\trees.dat')
SaveToFile(treeCount,TreeX,TreeY,TreeT)
end if
uo.print('Деревьев найдено: '+str(treeCount))
wait(2000)
                              #Ходим по собранным координатам
while 1==1
   if treeCount>0 then
      for i=1 to treeCount
         if TryRecall==1 AND uo.Count('ZLK')>=LogsQty then
            ToRecall(RecallFromScroll)
         end if
         uo.print('Идем к дереву '+str(i)+': x='+str(treex[i])+' y='+str(treey[i]))         
         flag=gotoxy(treex[i],treey[i])
         if flag==1 then   
            if TryHiding==1 then
               ToHide()
            end if         
            GetTree(str(treeT[i]),str(treeX[i]),str(TreeY[i]),str(uo.getz()))
         end if         
      next
   end if
wend   
end sub

sub GetTree(type,x,y,z)
var i
   uo.print('Начинаем рубку дерева...')
   for i=0 to 15
      if uo.warmode()==1 then
         return 0
      end if
      wait(200)
      uo.deletejournal()
      uo.waittargettile(type,x,y,z)
      uo.useobject('axe')
      if WaitForChange()==1 then
         return 1
      end if   
   next
   return 0
   
end sub

sub ToRecall(FromScroll)
   RecallToHome(FromScroll)
   wait(500)
   uo.press(36)
   wait(500)
   uo.press(36)
   wait(500)
   repeat
      wait(600)
      gotoxy(776,1920)
      uo.exec("emptycontainer 400 'backpack' 0x400634A4")
      wait(1000)
      uo.setreceivingcontainer('backpack')
      wait(500)
      uo.grab(0,'bag')
      wait(500)
      uo.grab(0,'runeHome')
      wait(500)
      uo.grab(0, "a key ring")
      uo.grab(0, "spellbook")
      wait (500)
      uo.grab(0, "runebook")
      wait (500)
      uo.grab(0, "runebook2")
      uo.grab (0,"runeLumber")
      wait (500)
      uo.grab (0,"pestik")
      wait(1000)   
      

   RecallToLumber(FromScroll)
end sub

sub RecallToHome(FromScroll)
var i
   uo.print('Реколимся домой...')
   for i=1 to 10
      uo.deletejournal()
      uo.waittargetobject('runeHome')
      if FromScroll==0 then
         uo.cast('Recall')
      else
         uo.useobject('RecallScroll')
      end if
      if WaitForRecall()==1 then
         return 1
      end if
   next
   return 0
end sub


sub RecallToLumber(FromScroll)
var i
   uo.print('Реколимся обратно...')
   for i=1 to 10
      uo.deletejournal()
      uo.waittargetobject('runeLumber')
      if FromScroll==0 then
         uo.cast('Recall')
      else
         uo.useobject('RecallScroll')
      end if
      if waitForRecall()==1 then
         return 1
      end if
   next
   return 0
end sub

sub ToHide()
var i
   uo.print('Пытаемся уйти в хайд...')
   for i=1 to 15      
      uo.deletejournal()
      uo.useskill('Stealth')
      if WaitForHide()==1 then
         return 1
      end if
   next
   return 0      
end sub

sub WaitForRecall()
var Text1=uo.getname()+": The spell fizzles."
var mess='',lastX=uo.getX(),lastY=uo.getY()
   for var i=0 to 200
      mess=uo.journal(0)
      if uo.Journal(0)==Text1 then
         return 0
      end if
      if uo.getX()<>lastX OR uo.getY()<>LastY then
         return 1
      end if
      wait(50)
   next
   return 0
end sub

sub WaitForHide()
var Text1=uo.getname()+": You have hidden yourself well"
var Text2=uo.getname()+": You can't seem to hide here."
var mess
   for var i=0 to 200
      mess=uo.journal(0)
      if uo.Journal(0)==Text1 then
         return 1
      end if   
      if uo.Journal(0)==Text2 then
         return 0
      end if   
      wait(50)
   next
   return 0
end sub

sub WaitForChange()
var Text1=uo.getname()+': You hack at the tree for a while, but fail to produce any useable wood.'
var Text2='There are no logs here to chop.'
var Text3="You can't reach this."
var mess
   for var i=0 to 200
      mess=uo.journal(0)
      if uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 then
         return 1
      end if   
      if uo.Journal(0)==Text1 then
         return 0
      end if         
      if mess[0]=='Y' AND mess[1]=='o' AND mess[2]=='u' AND mess[4]=='p' AND mess[5]=='u' AND mess[6]=='t' then
         return 0
      end if
      wait(50)
   next
   return 0
end sub

sub WaitForTryRock()
var Text1="That is too far away."
var Text2="Try mining in rock."
var Text3="There is no ore here to mine."
var Text4="You have no line of sight to that location"
var Text5="You can't see the target"
   for var i=0 to 50
      if uo.Journal(0)==Text1 OR uo.Journal(0)==Text2 OR uo.Journal(0)==Text3 OR uo.Journal(0)==Text4 OR uo.Journal(0)==Text5 then
         return 1
      end if   
      wait(200)
   next
   return 0
end sub

sub WaitForTarget()
   for var i=0 to 50
      if uo.Targeting()==1 then
         return 1
      end if
      wait(200)
   next
   return 0
end sub

sub WaitForChangeXY(myX,myY,lastX,lastY)
   for var i=1 to 50
      if lastX<>myX OR lastY<>myY then
         return 1
      end if
      wait(200)
   next
   return 0
end sub

sub gotoXY(x,y)
var myX,myY,lastX=0,lastY=0,i,halt=0,z,r=0
   for i=1 to 60
      MyX=uo.getX();
      MyY=uo.getY();
      if LastX==MyX AND LastY==MyY then
         halt=halt+1
      else
         halt=0
      end if
      if halt>=10 then
         if uo.GetDir()==1 then
            for z=0 to 8
               uo.press(40)
            next
         end if
         if uo.GetDir()==3 then
            for z=0 to 8
               uo.press(37)
            next
         end if      
         if uo.GetDir()==5 then
            for z=0 to 8
               uo.press(38)
            next
         end if               
         if uo.GetDir()==7 then
            for z=0 to 8
               uo.press(39)
            next
         end if   
         halt=15
      end if
      if abs(x-myX)<=1 AND abs(y-myY)<=2 then
         return 1
      end if      
      if x<=MyX then
         if y<=MyY then
            for z=0 to 3
               uo.press(38)
            next
         else   
            for z=0 to 3
               uo.press(37)
            next
         end if
      else
         if y<=MyY then
            for z=0 to 3
               uo.press(39)
            next
         else
            for z=0 to 3
               uo.press(40)
            next
         end if         
      end if
      lastX=myX
      lastY=myY
      wait(200)
   next
   return 0
end sub

sub abs(num)
   if num>=0 then
      return num
   else
      return num*(-1)
   end if
end sub   

sub SaveToFile(TreeCount,TreeX,TreeY,TreeT)
   var f=file("C:\trees.dat")
   var s=0,i=0
   f.open()
   f.create()
   s=safe call f.writeln(TreeCount)
   for i=1 to TreeCount   
       s=safe call f.writeln(str(TreeT[i])+' '+str(treeX[i])+' '+str(TreeY[i]))
    next   
   f.close()
end sub

sub main()
Lumber()
end sub
Goliy
Posts: 1
Joined: 2004-05-04 10:37:21

:(

Post by Goliy »

У меня этот скрипт ни как не хочет работать :(
Ajax
Posts: 10
Joined: 2004-05-06 14:30:23
Contact:

Post by Ajax »

У меня он начинает работать.. но как доходит дело до чтения месности...
я ставль параметр=1 за 10 мин он так и не закончил....
хотелось бы узнать скока он анализирует местность???
при =1, =2,=3, =4???
Jonni
Posts: 13
Joined: 2005-01-26 08:18:27
Contact:

Post by Jonni »

Как етот скрипт включаеться какими словами?
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

2BOT Аяяй, не хорошо чужие скрипты выкладывать.
Ajax wrote:У меня он начинает работать.. но как доходит дело до чтения месности...
я ставль параметр=1 за 10 мин он так и не закончил....
хотелось бы узнать скока он анализирует местность???
при =1, =2,=3, =4???
Он проверяет очень долго, ты его включи и сходи попей чай.
Jonni wrote:Как етот скрипт включаеться какими словами?
,simsim otkrojsja. А если серьёзно ,exec lumber
JIupus
Posts: 112
Joined: 2004-12-29 15:16:45
Contact:

Post by JIupus »

запускает он ,exec main (смотри самую послженюю функцию)
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

JIupus wrote:запускает он ,exec main (смотри самую послженюю функцию)
Он и ламбером запустится, и маином, это не принципиально.
Sasquach
Posts: 1
Joined: 2005-02-22 12:44:02
Contact:

Post by Sasquach »

внимательно прочел инструкцию, вставил в инжект, настроил чтобы считывалось с клиента и не реколился вообще, начанаеться скрипт, просит указать топор и бек пек и все, потом мышка иногда подергиваеться и вылетает сообщение No item found и все.. помогите пожалуйсто, че надо сделать? :(

пс. играю на шарде Oskom free

кстате зачем надо иметь кирку в бек пеке?
BETEPAH
Expert!
Posts: 838
Joined: 2004-05-31 09:31:51
Contact:

Post by BETEPAH »

Sasquach wrote:внимательно прочел инструкцию, вставил в инжект, настроил чтобы считывалось с клиента и не реколился вообще, начанаеться скрипт, просит указать топор и бек пек и все, потом мышка иногда подергиваеться и вылетает сообщение No item found и все.. помогите пожалуйсто, че надо сделать? :(

пс. играю на шарде Oskom free

кстате зачем надо иметь кирку в бек пеке?


Это старая версия лумбера с автомпрком ...... жуткое и страшное )))
Но итем фоунд ...это он видать у тебя не видет кирку. А кирка нужна для автомарка деревьев.
Все просто.
BETEPAH ™
Krueger
Posts: 2
Joined: 2005-03-13 23:00:50

Post by Krueger »

У меня вопрос по поводу скрипта
как писать файл с координатами деревьев?
пример вынесете плиз
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Krueger wrote:У меня вопрос по поводу скрипта
как писать файл с координатами деревьев?
пример вынесете плиз

Code: Select all

100
3289 2052 1947
3277 2052 1950
3299 2052 1953
3291 2052 1956
3289 2052 1959
3291 2052 1962
3286 2056 1959
3286 2056 1962
3302 2056 1965
3296 2056 1971
3289 2056 1974
3280 2056 1980
3294 2056 1983
3280 2056 1986
3299 2056 1989
3277 2056 1992
3283 2060 1989
3294 2060 1992
3280 2060 1995
3299 2056 1998
3299 2060 2001
3302 2060 2004
3277 2064 2004
3283 2064 1998
3280 2068 1992
3296 2068 1989
3277 2064 1989
3299 2064 1986
3289 2064 1980
3302 2064 1977
3286 2068 1977
3283 2064 1971
3299 2068 1971
3291 2064 1968
3280 2068 1965
3280 2068 1962
3283 2068 1959
3299 2072 1962
3280 2076 1959
3296 2080 1956
3291 2080 1959
3296 2084 1959
3299 2092 1956
3302 2096 1959
3302 2096 1962
3283 2100 1962
3302 2096 1965
3302 2100 1965
3289 2096 1971
3280 2092 1971
3289 2092 1974
3302 2092 1977
3299 2096 1977
3283 2096 1980
3277 2100 1986
3302 2096 1989
3294 2092 1989
3277 2092 1986
3286 2088 1986
3299 2088 1989
3277 2088 1992
3289 2088 1995
3291 2084 1992
3299 2084 1995
3299 2084 1998
3302 2088 1998
3296 2088 2001
3286 2084 2001
3280 2084 2007
3296 2080 2010
3291 2080 2007
3280 2080 2004
3283 2076 2007
3280 2076 2004
3294 2076 1998
3286 2076 1992
3299 2076 1989
3291 2076 1986
3286 2072 1986
3296 2068 1989
3280 2068 1992
3277 2064 1989
3299 2064 1986
3289 2064 1980
3302 2064 1977
3286 2068 1977
3289 2072 1980
3296 2072 1977
3296 2072 1974
3299 2076 1971
3294 2076 1974
3291 2076 1980
3302 2080 1971
3302 2084 1974
3289 2084 1977
3294 2084 1980
3277 2088 1977
3296 2088 1974
3283 2088 1971
3302 2092 1977
Krueger
Posts: 2
Joined: 2005-03-13 23:00:50

Post by Krueger »

а чего за 3 координата её обязательно писать?
Post Reply