Крапальните пожалуйсто :D

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Крапальните пожалуйсто :D

Post by Zorge »

Code: Select all

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

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
var Area=4       ## Ðàçìåð îáðàáàòûâàåìîé òåððèòîðèè, ìîæíî ìåíÿòü îò 1 äî 4.

var TryHiding=1    ## 1 - ïåðåä òåì êàê ðóáèòü äåðåâî, áóäåò ïûòàòüñÿ óéòè â õàéä, 0 - íå áóäåò

var TryRecall=1  ## 1 - ïîñëå òîãî êàê ñîáåðåò LogsQty ëîãîâ, áóäåò ïûòàòüñÿ ðåêîëèòüñÿ äîìîé,              # ñêëàäûâàòü ëîãè íà ïîë è ðåêîëèòüñÿ îáðàòíî (íóæíî âûáðàòü äâå ðóíû), 0 - íå áóäåò.   

var LogsQty=555    ## Êîëè÷åñòâî ëîãîâ, äîáûâ êîòîðîå íàäî ðåêîëèòüñÿ äîìîé.

var RecallFromScroll=0 ## 1 - ñ ðóí, 0 - èç ðóíáóêà

var GetFromFile=1 ## 1 - êîîðäèíàòû äåðåâüåâ áóäóò ñ÷èòûâàòñÿ èç ôàéëà, 0 - ñîáèðàòñÿ èç êëèåíòà

var Const=2 ## âî ñêîëüêî ðàç óâåëè÷èâàòü ðàçìåð òåñòîâîé òåððèòîðèè (êîýôôèöèåíò)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

                              #Ãðàôèêà äåðåâüåâ
TreeTile[0]=3283                              
TreeTile[1]=3277
TreeTile[2]=3293
TreeTile[3]=3296
TreeTile[4]=3302
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.print('aXE: ')
uo.exec('addobject axe')
wait(5000)

if TryRecall==1 then
   
   uo.print('rUNBOOK' )
   uo.exec('addobject Runebook')
   wait(5000)         
   
   if RecallFromScroll==1 then
      uo.print('Âûáåðè ðóíó äîìîé: ')
      uo.exec('addobject runeHome')
      wait(5000)
      uo.print('Âûáåðè ðóíó â ëåñ: ')
      uo.exec('addobject runeLumber')
      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 a=1 to Const
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('0x09A8')
      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
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 30
      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(1000)
    Unload()
    wait(1000)
    RecallToLumber(FromScroll)
end sub


sub RecallToHome(FromScroll)
var i
   uo.print('Ðåêîëèìñÿ äîìîé...')
   for i=1 to 10
      uo.deletejournal()
      if FromScroll==0 then
         RecallRunebookhome()
      else
         uo.waittargetobject('runeHome')
         uo.cast('Recall')
      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()
      if FromScroll==0 then
         RecallRunebookles()
      else
         uo.waittargetobject('runeLumber')
         uo.cast('Recall')
      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('Hiding')
      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 400
      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:\trees3.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

sub Unload()
var UnloadCont='0x40125B73' #àéäè ñåéôà
ToHide()
VAR Exit, i
DIM Ore[5]
Ore[0]=0x1bdd
Ore[1]=0x1bdd
Ore[2]=0x1bdd
Ore[3]=0x1bdd

UO.SetReceivingContainer(UnloadCont) ; storecontainer
wait(500)


For i=0 to 3
Exit=0
repeat
UO.FindType(Ore[i])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
CheckLag()
wait(1500)
Else
Exit=1
endif
until Exit==1
Next

UO.UnSetReceivingContainer()
end sub

sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')

      repeat
      wait(500)
   until UO.InJournal('backpack')
end sub

sub RecallRunebookhome()
ToHide()
UO.UseObject('Runebook')
wait(500)
UO.LClick(136,70)
wait(1000)
end sub

sub RecallRunebookles()
ToHide()
Uo.UseObject('Runebook')
wait(500)
UO.LClick(136,160)
wait(1000)
end sub


Привет всем, вот играю на DRW и пользуюсь таким скриптом на ламбер. Скрипт старый, но хороший. И вобщем то нет проблем, но хотелось бы, что бы в случае появления элема, чар просто останавливался и продолжал рубить дальше после определённой задержке :roll: И так внимание на экран, вопрос знатокам :D Куда поставить эту саму задержку, подскажи если не сложно. Последний раз просил тут помощи года 2-3 тому-назад, мне помогли и я исчез и ненадоедал, помогите пожалуйсто и я опять исчезну года на 2-3 :P :P :P
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Да сделай просто, поставь в сам скрипт Ламбера! Я себе делал что-то типо этого токо у меня он после убийства опять начинал рубить!

Code: Select all

if uo.injournal("is attacking you") or uo.injournal("Elemental") then
Pauza()


А Это в самый низ скрипта чтобы немешало!

Code: Select all

sub Pauza()
UO.DeleteJournal()
REPEAT
UO.Print("Скрипт на паузе, ждём пока уйдёт элеменаль!")
WAIT(30000) ; Время скоко ждать
UO.Print("Идём дальше рубить!")
endif
end sub
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

Code: Select all

 if uo.injournal("is attacking you") or uo.injournal("Elemental") then
Pauza()


Дружо подскажи еще куда это дело вставить :oops: А то столько вариантов перепробывал и не один не подошел, чар совершенно не реагирует, не при атаке, не при появлении элема, и даже заменил "Elemental" на "Ent" Совсем туго!
И куда бы вставить, что бы работал родной :roll:
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Поставь там где он юзает Hatchet перед тем как рубить... Просто лень искать у тебя это в скрипте... После того как он юзает Hatchet вставь мою строчку! 8) А у меня скрипт был такой ешё что он в ГЗ рубил т.е в Миноке - так он просто при появлении Элементаля кричал "Guards"
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

kostjan wrote:Поставь там где он юзает Hatchet перед тем как рубить... Просто лень искать у тебя это в скрипте... После того как он юзает Hatchet вставь мою строчку! 8) А у меня скрипт был такой ешё что он в ГЗ рубил т.е в Миноке - так он просто при появлении Элементаля кричал "Guards"


Ну да, только нынче в ГЗ не порубишь, убрали такую халявную халяву. А что такое Hatchet :mrgreen: я снова весь в поиске.
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

ААА люди помогите!!! Есть что вставить, но нет во что вставить, помогите срочно вставить :mrgreen: :mrgreen:
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Крапальните пожалуйсто :D

Post by Mirage »

смазка в помощь - вставится максимально быстро ;)
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

Mirage wrote:смазка в помощь - вставится максимально быстро ;)


Это я повелитель этого топа, только я могу тут шутить :mrgreen: :mrgreen: :mrgreen: :mrgreen:
Ну подскажите, я же ночью не усну, помогите, кто чем может :P :P
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Что за привычка дурная, чтобы всё сделали за вас... Тебе уже всё расписали прочитай хоть свой скрипт также мануалы почитай! :arrow:
Zorge
Posts: 6
Joined: 2010-02-18 08:09:48

Re: Крапальните пожалуйсто :D

Post by Zorge »

kostjan wrote:Что за привычка дурная, чтобы всё сделали за вас... Тебе уже всё расписали прочитай хоть свой скрипт также мануалы почитай! :arrow:


Люди, ну вот, что за дурная привычка, так реагировать на дурные привычки. Не пью не курю, а ты про дурные привычки :cry: :cry:
kostjan
Posts: 89
Joined: 2009-03-06 21:52:25
Contact:

Re: Крапальните пожалуйсто :D

Post by kostjan »

Обьясняю подробно вставляеш эту строку туда, где в твоём скрипте он перед рубкой юзает ТОПОР! :!:
Post Reply