Scripted by Sfagnum aka [moss] for DRW (upd. 05.07.05)

Anything and all.

Moderators: Murderator+, Murderator

Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

в скрипт вместо backpack
:roll:
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:в скрипт вместо backpack :roll:
кхм... кхм...
возьми скрипт с первой страницы... и дальше объявления переменных не лазей.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

И всё-еаки из дочерних сумок не продаётся ничего(((
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:И всё-еаки из дочерних сумок не продаётся ничего(((
покажи строчку в которой ты 'backpack' менял на сериал сумки.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

UO.UseObject('0x4020091E')
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:UO.UseObject('0x4020091E')
мдя........ я тебе говорил что перед продажей надо открыть каждый мешочек??? не кликнуть на него, а именно открыть(!!!), твоё "изменение" именно это и делает вместо тебя.
Talez
Posts: 30
Joined: 2005-02-25 20:42:05

Post by Talez »

Что открывай, что не открывай, одно и тоже...Не продаёт и всё тут...
У моего знакомого тоже самое...месяц назад продавал, а теперь тоже не продаёт...Может сферу переделали?
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Talez wrote:Что открывай, что не открывай, одно и тоже...Не продаёт и всё тут...
У моего знакомого тоже самое...месяц назад продавал, а теперь тоже не продаёт...Может сферу переделали?
:lol: :lol: :lol:
эт вряд ли... я сам давно не продовал... попробую
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Camping - "Лесной брат"

Post by Sfagnum »

Больная вариация на мотивы ламбера доветеранововского и скрипта на camping от Askaneli.

Описание: Скрипт написан для прокачки Camping'а, т.с. не отходя от кассы, тобишь в лесу.
1. всё что надо для работы скрипта это нож, лес и свежий воздух ;).
2. kindling - запускает непосредственно прокачку.
3. MarckingLumbers - марчит деревья, как в скрипте на ламбер, нужно - лопата/кирка, выключается кликом на себя.
4. если в пак положите еду - будет питаться в процесе прокачки.
5. при достижении 100% реального значения скила - окно УО закроется.
Особенности:
1. Можно использовать файл координат сгенерированный Ветерановским скриптом на Ламбер.
2. Здесь вставлена слегка кострированная ходилка от Savage'a

ЗЫ ещё подрехтовал ходилку под нужды скрипта... теперь дОлжно работать как положено.

Code: Select all

var fName= "C:\uo\inject\trees3.dat" ## - Путь к файлу в котором будут хранится координаты деревьев.
var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки
var tKnife = '0x0F51' ; тип ножа, если он в руках - не придётся тыкать на него прицелом.

sub kindling()
var i, f
dim TreeX[500],TreeY[500],TreeT[500]
var flag,treeCount=0
   UO.Exec('terminate Reconnector')
   UO.Exec('exec Reconnector')
   if UO.GetGraphic(UO.ObjAtLayer('Rhand')) == '0x0F51' then
      uo.waittargetobject(UO.ObjAtLayer('Rhand'))
      uo.AddObject('knife')
   else
      UO.Print('Мтякс... покажЪ нож...')
      uo.AddObject('knife')
      while uo.Targeting()
         wait(100)
      wend
   end if
   ToHide()
   uo.Print('Посмотримс, что там у нас в файлике завалялось...')
   f = file(fName)
   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()
   Orfo(str(treeCount),'Значится пошукал я и нашел '+str(treeCount)+' дерев','',0)
   wait(2000)
   ToHide()
   if treeCount<1 then
      return
   end if
   uo.set('finddistance','3')
   uo.FilterSpeech('on')
   uo.FilterSpeech('add', 'What do you want to use this on?')
   while not UO.Dead()
      for i=1 to treeCount
         if uo.skillval('Camping',1)==1000 then
            uo.set('finddistance','14')
            uo.FilterSpeech('off')
            UO.CloseUO()
         end if
         uo.Print('Потопал к дереву №'+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i]))
         if GotoXY(TreeX[i],TreeY[i]) == 1 then
            GetTree(str(TreeT[i]),str(TreeX[i]),str(TreeY[i]),str(uo.GetZ()))
            Camping()
         end if
      next
      ToEat()
   wend
   uo.set('finddistance','14')
   uo.FilterSpeech('off')
   UO.CloseUO()
end Sub

Sub GetTree(Type,X,Y,Z)
var lt
var Text2='There is no wood left to harvest'
var Text3="You can't"
var Text4='That is too far away.'
var Text5='Chopping the tree '
var Text6='You put'
   UO.DeleteJournal()
   while not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.Dead()
      ToHide()
      CheckLag()
      uo.WaitTargetTile(Type,X,Y,Z)
      uo.UseObject('knife')
      lt = UO.Timer()
      while not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.InJournal(Text6) and not UO.Dead() and lt+100 > UO.Timer()
         wait(100)
      wend
      if lt+100 < UO.Timer() then
         if uo.targeting() then
            uo.canceltarget()
         end if
         UO.Print('Больное какое то дерево')
         return
      end if
   wend
end Sub

sub MarckingLumbers()
var k, i
dim TreeX[500], TreeY[500],TreeT[500]
dim TreeTile[29]
var flag=0, treeCount=0, flag2=0
TreeTile[0]=3277
TreeTile[1]=3280
TreeTile[2]=3283
TreeTile[3]=3286
TreeTile[4]=3289
TreeTile[5]=3291
TreeTile[6]=3294
TreeTile[7]=3296
TreeTile[8]=3299
TreeTile[9]=3302
TreeTile[10]=3393
TreeTile[11]=3394
TreeTile[12]=3395
TreeTile[13]=3396
TreeTile[14]=3415
TreeTile[15]=3416
TreeTile[16]=3417
TreeTile[17]=3418
TreeTile[18]=3419
TreeTile[19]=3438
TreeTile[20]=3439
TreeTile[21]=3440
TreeTile[22]=3441
TreeTile[23]=3442
TreeTile[24]=3460
TreeTile[25]=3461
TreeTile[26]=3462
TreeTile[27]=3290
TreeTile[28]=3288
   uo.FilterSpeech('on')
   uo.FilterSpeech('add', 'Where do you want to use the')
   uo.Print('Ты будешь смеятся, но мне нужна либо кирка, либо лопата...')
   uo.AddObject('Pickaxe')
   While uo.Targeting()
      Wait (100)
   Wend
   uo.Print('Попёрли искать дерева... ты тыкаешь на них, а я тя проверяю...')
   UO.DeleteJournal()
   while uo.Lasttile(1)<>uo.getX() and uo.Lasttile(2)<>uo.gety()
      CheckLag()
      uo.UseObject('Pickaxe')
      if WaitForTryRock()==0 then
         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 28
               if uo.LastTile(0)==TreeTile[k] then
                  flag = 1
               end if
            next
         end if
         if flag > 0 then
            flag2 = 0
            if treeCount > 0 Then
               for i = 1 To treeCount
                  if TreeX[i]==uo.LastTile(1) and TreeY[i]==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)
               if flag == 1 then
                  TreeT [treeCount] = uo.LastTile(0)
               else
                  TreeT [treeCount] = uo.LastTile(0) - 1
               end if
               uo.print('Надо же! В дерево попал!!! В это: x='+str(uo.Lasttile(1))+' y='+str(uo.LastTile(2)))
               Orfo(str(treeCount),'Всего '+str(treeCount)+' дерев',' наковырял',0)
            else
               uo.Print('Вот чукча!!! Ты мне енто дерево уже показывал!!!, давай что нибудь новенькое покажи...')
            end if
         else
            UO.Print('похоже... но не дерево...')
         end if
      end if
   wend
   uo.Filterspeech('off')
   if treeCount < 1 then
      UO.Print('И чо ты мне мозги тут пудрил? Ни одного дерева же не нашёл!')
      UO.Print('Ну ни чо в другой раз тебе больше повезёт :)')
      return
   end if
   if treeCount < 100 then
      uo.Print('И чо ты думаешь этого тебе хватит?!?!?')
   else
      uo.Print('Ну ты и хапуга... и глянь терпения то хватило...')
   end if
   wait(200)
   uo.Print('Да не расстраивайся ты... я так шутю :)')
   wait(200)
   uo.Print('посмотрел я тут на досуге, что ты навыбирал...')
   uo.Print('буду попробывать скинуть в файл...')
   SaveToFile(treeCount,TreeX,TreeY,TreeT)
   wait(500)
   uo.Print('Всё! Типа скинул в файл: ' + fName)
   wait(200)
   uo.Print('Эё!!! Ты куда собрался? погодь я тебя ещё не отпустил, ща рубать пойдём...')
   wait(700)
   kindling()
end Sub

Sub WaitForTryRock()
var Text1="Try mining in rock."
var Text2="That is too far away."
var Text3="You can't see the target"
var Text4="You have no line of sight to that location"
var Text5="There is no ore here to mine."
var Text6='You loosen'
var Text7='You put'
var Text8='OOPS!!!'
var Text9='STOPPP'
   while not UO.InJournal(Text1) and not UO.InJournal(Text2) and not UO.InJournal(Text3) and not UO.InJournal(Text4) and not UO.InJournal(Text5) and not UO.InJournal(Text6) and not UO.InJournal(Text7) and not UO.InJournal(Text8) and not UO.InJournal(Text9)
      wait(50)
   wend
   if UO.InJournal(Text1) then
      UO.Print('ща посмотрю куда ты там тыкнул...')
      return 0
   end if
   if UO.InJournal(Text2) or UO.InJournal(Text3) or UO.InJournal(Text4) then
      UO.Print('а чо поближе дерева не водятся?')
   end if
   if UO.InJournal(Text5) or UO.InJournal(Text6) or UO.InJournal(Text7) or UO.InJournal(Text8) then
      UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...')
   end if
   return 1
end Sub

Sub SaveToFile(treeCount,TreeX,TreeY,TreeT)
var s=0,i=0, f
   f = file(fName)
   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 Orfo(sNum, fStr, lStr, Rod) ## Rod - 0/1; 0 - дерево, 1 - лог
var n=VAL(Right(sNum,1))
   if n==0 then
      if Rod == 0 then
         UO.Print(fStr+'а'+lStr)
      else
         UO.Print(fStr+lStr)
      end if
      return
   end if
   if n<5 then
      UO.Print(fStr+'а'+lStr)
      return
   end if
   if Rod == 0 then
      UO.Print(fStr+'ев'+lStr)
   else
      UO.Print(fStr+'ов'+lStr)
   end if
end Sub

Sub Camping()
var mx=uo.getx(),my=uo.gety(),x,y
   uo.DeleteJournal()
   while uo.count('0x0DE1','0x0000') > 0
      for x=mx-2 to mx+2
         for y=my-2 to my+2
            CheckLag()
            if uo.count('0x0DE1','0x0000')==0 or uo.Dead() then
               return
            end if
            uo.findtype('0x0DE1','0x0000','ground')
            if UO.FindCount() == 0 then
               uo.findtype('0x0DE1','0x0000','backpack')
               uo.drop('1',str(x),str(y),str(uo.getz()),'finditem')
               CheckLag()
            end if
            uo.findtype('0x0DE1','0x0000','ground')
            if UO.FindCount() > 0 then
               uo.deletejournal()
               uo.useobject('finditem')
               wait(1500)
               if uo.injournal("You can't") then
                  uo.ignore('finditem')
               end if
            end if
         next
      next
   wend
end Sub

Sub ToHide()
   while not UO.Hidden()
      CheckLag()
      UO.WarMode(0)
      UO.UseSkill('Hiding')
      repeat
         wait(200)
      until UO.InJournal('You have hidden') OR UO.InJournal('seem to hide') OR UO.InJournal('preocopured') or UO.Dead()
   wend
end Sub

Sub ToEat()
   UO.DeleteJournal()
   UO.FindType(TypeFood,'0x0000','backpack')
   while UO.FindCount() > 0 and not uo.InJournal('too full') and not UO.Dead()
      CheckLag()
      uo.UseType(TypeFood,'0x0000')
      while not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
         wait(100)
      wend
      UO.FindType(TypeFood,'0x0000','backpack')
   wend
end Sub

Sub CheckLag()
   if uo.Waiting()>0 then
      uo.Exec('canceltarget')
   end if
   uo.DeleteJournal()
   uo.Click('backpack')
   repeat
      wait(50)
   until uo.InJournal('backpack') or UO.Dead()
end Sub

Sub Reconnector()
var ReconnectTime, RFlag
ReconnectTime = '0'
RFlag = 1
Repeat
While (UO.ObjAtLayer('Bpack') == '')
if RFlag Then
ReconnectTime = MakeTime()
RFlag = 0
endif
Wait(20000) # WorldSave Protection
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.Say('')
Wait(3000)
UO.LDblClick(357,164)
UO.LClick(616,459)
Wait(3000)
WEnd
Wait(3000)
if (RFlag == 0) and (ReconnectTime <> '0') Then
UO.Exec('terminate kindling')
wait(1000)
UO.Exec('exec kindling')
UO.TextOpen()
UO.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
RFlag = 1
ReconnectTime = '0'
endif
Until false
end sub

Sub MakeTime()
VAR D, T, Ret, i
Ret = STR(UO.Time())
T = ""
For i = 0 To Len(Ret)
T = Ret[Len(Ret)-i] + T
If (I == 2) OR (I == 4) Then
T = ":" + T
EndIf
Next
Ret = STR(UO.Date())
D = ""
For i = 0 To Len(Ret)
D = Ret[Len(Ret)-i] + D
If (I == 2) OR (I == 4) Then
D = "." + D
EndIf
Next
Ret = T + " @ " + D
RETURN Ret
end sub

###################################################################################################
################################# тут ходилка #####################################################
###################################################################################################

Sub GotoXY(x,y)
   VAR i
   VAR dir,ldir,rdir,key,olddir
   VAR dx,dy,Exit=0
   VAR CacheLimit=9,CacheIndex="Text"
   DIM CacheX[10], CacheY[10]
   
   CacheX[0]="Test"
   While Exit<>1      
      dx=x-UO.GetX()
      dy=y-UO.GetY()
      If dx<=2 AND dy<=2 Then
         Exit=1
      Endif
      If dx<>0 AND dy<>0 Then
         If dx>0 AND dy>0 Then ; GoSE
            dir=3
            ldir=2
            rdir=4
            key=40 ; DownArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==2 Then ; GoNE
                  dir=1
                  ldir=0
                  rdir=1
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=5
                  rdir=6
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx>0 AND dy<0 Then ; GoNE
            dir=1
            ldir=0
            rdir=2
            key=39 ; RightArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==0 Then ; GoWN
                  dir=7
                  ldir=6
                  rdir=7
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSE
                  dir=3
                  ldir=3
                  rdir=4
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx<0 AND dy>0 Then ; GoSW
            dir=5
            ldir=4
            rdir=6
            key=37 ; LeftArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==6 Then ; GoWN
                  dir=7
                  ldir=7
                  rdir=0
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSE
                  dir=3
                  ldir=2
                  rdir=3
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif

         If dx<0 AND dy<0 Then ; GoWN
            dir=7
            ldir=6
            rdir=0
            key=38 ; UpArrow
            olddir=UO.GetDir()
            If StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key) Then
               If olddir==0 Then ; GoNE
                  dir=1
                  ldir=1
                  rdir=2
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=4
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif
   
      If dx<>0 AND dy==0 Then
         If dx>0 Then ; GoE
            dir=2
            key=34 ; PgDown
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoSE
                  dir=3
                  ldir=3
                  rdir=4
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoNE
                  dir=1
                  ldir=1
                  rdir=0
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
         
         If dx<0 Then ; GoW
            dir=6
            key=36 ; Home key
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==0 Then ; GoWN
                  dir=7
                  ldir=7
                  rdir=0
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=4
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif

      If dx==0 AND dy<>0 Then
         If dy>0 Then ; GoS
            dir=4
            key=35 ; End
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoSE
                  dir=3
                  ldir=2
                  rdir=3
                  key=40 ; DownArrow
                  While UO.GetDir()<>3
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoSW
                  dir=5
                  ldir=6
                  rdir=5
                  key=37 ; LeftArrow
                  While UO.GetDir()<>5
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
         
         If dy<0 Then ;GoN
            dir=0
            key=33 ; PgUp
            olddir=UO.GetDir()
            If StepEdit(UO.GetX(),UO.GetY(),dir,key) Then
               If olddir==2 Then ; GoNE
                  dir=1
                  ldir=1
                  rdir=2
                  key=39 ; RightArrow
                  While UO.GetDir()<>1
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Else ; GoWN
                  dir=7
                  ldir=7
                  rdir=6
                  key=38 ; UpArrow
                  While UO.GetDir()<>7
                     StepArrow(UO.GetX(),UO.GetY(),dir,ldir,rdir,key)
                  Wend
               Endif
            Endif
         Endif
      Endif
   Wend
   return 1
end sub


Sub StepEdit(x,y,dir,key)
   VAR walkwait=300
   VAR ErrLevel=0
   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir Then
         CheckLag()
      Endif
   Endif
   UO.Press(key)
   wait(walkwait)
   If x==UO.GetX() AND y==UO.GetY() Then
      CheckLag()
      If x==UO.GetX() AND y==UO.GetY() Then
;zatik
         ErrLevel=1
      Endif
   Endif
   Return ErrLevel
end sub


Sub StepArrow(x,y,dir,ldir,rdir,key)
   VAR walkwait=300
   VAR ErrLevel=0
   If UO.GetDir()<>dir Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()<>dir AND UO.GetDir()<>ldir AND UO.GetDir()<>rdir Then
         CheckLag()
      Endif
   Endif

   If UO.GetX()==x AND UO.GetY()==y Then
      UO.Press(key)
      wait(walkwait)
      If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
         CheckLag()
         If UO.GetDir()==dir AND UO.GetX()==x AND UO.GetY()==y Then
; zatik         
            ErrLevel=1
         Endif
      Endif
   Endif
   Return ErrLevel
end sub
Last edited by Sfagnum on 2005-06-06 11:21:21, edited 2 times in total.
I'm
Expert!
Posts: 1396
Joined: 2004-10-15 22:38:04
Location: Moscow City.
Contact:

Post by I'm »

Code: Select all

UO.Print('ща посмотрю куда ты там тыкнул...') 
UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...')
UO.Print('а чо поближе дерева не водятся?')
...

без сих словец работать небудет :lol:
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

I'm wrote:

Code: Select all

UO.Print('ща посмотрю куда ты там тыкнул...') 
UO.Print('Ты вроде подрова собирался??? Ну так и иди... лесом иди...')
UO.Print('а чо поближе дерева не водятся?')
...

без сих словец работать небудет :lol:
ни в коем разе :lol:
сам понимаешь без шаманских заклинаний скрипт хреново работает ;)

ЗЫ нашлись проблемы с марком деревОв... протесчу - поправлю... старинный кусок кода... и не уверен что финальный ;)
zarg
Posts: 116
Joined: 2004-08-29 08:33:44

Re: Производство торчей.

Post by zarg »

Sfagnum wrote:Описание: Производит торчи из всех доступных цветных логов от Oak logs до Titan Tree logs, в процессе крафта питается.
Особенности:Наличие 2х контейнеров не обязательно. Можно обойтись как одним контейнером, так и без оного. Для первого случая прописываете в idSourceCont и в idResiveCont одинаковые значения, во втором для тех же переменных в качестве значения устанавливаете id backpack'а. Для крафта необходимо наличие ножа в backpack'е.

Code: Select all

var idSourceCont = '0x40228D09'   ;контейнер в котором лежат логи и еда
var idResiveCont = '0x40228D09'   ;контейнер в который будут складываться торчи (можно складывать туда же откуда беруться логи)
var tTools = '0x0F51'            ;тип ножа
var сTools = '-1'               ;цвет ножа
var tEat = '0x097B'               ;тип еды
var cEat = '0x0000'               ;цвет еды
var qTree = 250                  ;кол-во логов которое берётся за раз

Sub main()
var i
Dim cTree[17]
  cTree[0]='0x047C'
  cTree[1]='0x0279'
  cTree[2]='0x096B'
  cTree[3]='0x0237'
  cTree[4]='0x0482'
  cTree[5]='0x010F'
  cTree[6]='0x0014'
  cTree[7]='0x03C1'
  cTree[8]='0x0085'
  cTree[9]='0x04C2'
  cTree[10]='0x0033'
  cTree[11]='0x002B'
  cTree[12]='0x0071'
  cTree[13]='0x09A4'
  cTree[14]='0x0B82'
  cTree[15]='0x00BE'
  cTree[16]='0x1BDD'

Dim mTree[17]
  mTree[0]='Oak'
  mTree[1]='Red Tree'
  mTree[2]='Dark Tree'
  mTree[3]='Swamp'
  mTree[4]='Silver Leaf'
  mTree[5]='Keranit'
  mTree[6]='Perit'
  mTree[7]='Petrified'
  mTree[8]='Dragon Tree'
  mTree[9]='Vampire Tree'
  mTree[10]='Eridan'
  mTree[11]='Hellios'
  mTree[12]='Illusions Tree'
  mTree[13]='Crystal'
  mTree[14]='Dead Tree'
  mTree[15]='Paradise Tree'
  mTree[16]='Titan Tree'

   UO.UseObject(idSourceCont)
   UO.DisArm()
   CheckLag()
   Open('backpack')
   if UO.Count(tTools) > 0 then
      UO.FindType(tTools,сTools,'backpack')
      UO.AddObject('objTools','finditem')
   else
      return
   end if
   Open(idSourceCont)
   Open(idResiveCont)
   for i = 0 to 16   
       CraftTorch(mTree[i],cTree[i])
   next
end sub

sub CraftTorch(mTree,cTree)
   UO.FindType('0x1BDD',cTree,idSourceCont)
   if UO.FindCount() < 1 then
      return
   end if
   UO.CancelMenu()
   UO.AutoMenu('What do you',mTree)
   UO.AutoMenu(mTree,'torch')
   while GrabContainer('0x1BDD',cTree,qTree)==0
      UO.DeleteJournal()
      UO.WaitTargetType('0x1BDD')
      UO.UseObject('objTools')   
      repeat
         wait(100)
      until UO.InJournal('You put the torch') or UO.InJournal('fail') or UO.InJournal('failed')   
   wend
end sub

sub GrabContainer(tType, cType, Quanty)
   if UO.Count(tType,cType)<1 then
      UO.FindType('0x0F64','-1','backpack')
      if UO.FindCount() > 0 then
         UO.MoveItem('finditem','-1',idResiveCont)
         CheckLag()
      end if
      ToEat()
      UO.FindType(tType,cType,idSourceCont)
      If UO.FindCount() > 0 then
         UO.MoveItem('finditem',str(Quanty),'backpack')
         Wait(1000)
         CheckLag()
      else
         return 1
      End if            
   End If
   return 0
end sub

sub ToEat()   
   UO.FindType(tEat, cEat, idSourceCont)
   if UO.GetQuantity('finditem') > 0 then
      UO.MoveItem('finditem','20','backpack')
   else
      return
   end if
   repeat    
      CheckLag()
      uo.UseType(tEat,cEat)
      while not uo.InJournal("can't") and not uo.InJournal('full') and not uo.InJournal('stuffed') and not uo.InJournal('hungry') and not uo.InJournal('satiated') and not UO.Dead()
         wait(100)
      wend
   until uo.InJournal('too full') or UO.Dead() or uo.InJournal("can't")
   CheckLag()
   UO.FindType(tEat, cEat,'backpack')
   if UO.GetQuantity('finditem') > 0 then
      UO.MoveItem('finditem','-1',idSourceCont)    
   end if    
   CheckLag()
   wait(1000)
end sub

sub Open(Container)
   UO.UseObject(Container)
   CheckLag()
   wait(500)
end sub

sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      wait(50)
   until UO.InJournal('backpack')
end sub

Че то запускаю пишет байду invalid namber of arguments line 139 че делать?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

invalid namber of arguments
Ошибка когда ты вызываешь функцию не указав все обезательные параметры или наоборот указал их слишком много...
Смотри чт оутебя на 139 строчке... возможно гдето скобку не там поставил... или еще чего...
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Grin wrote:invalid namber of arguments
Ошибка когда ты вызываешь функцию не указав все обезательные параметры или наоборот указал их слишком много...
Смотри чт оутебя на 139 строчке... возможно гдето скобку не там поставил... или еще чего...
139ая строка - последняя строчка в скрипте... ИМХО артефакт копирования сктрипта...

Скрипты рекомендую копировать через Quote, т.е. нажимаете Quote сообщения в котором содержится скрипт и уже оттуда копирете его... у меня в таком случае при вставке скрипта сохраняется оригинальное форматирование.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

139 не обезательно может быть последней строчкой... может унего перед этим куча скриптов... В общем на любителя;)
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Grin wrote:139 не обезательно может быть последней строчкой... может унего перед этим куча скриптов... В общем на любителя;)
ну кружку из под кофе я помыл... так что основываюсь только на коде выложенном тут ;)
Tavarien
Posts: 1
Joined: 2004-12-08 21:32:24
Contact:

Post by Tavarien »

На продажу скрипт нехочет видеть Неклы я невкуриваю почему пишет типа 0 предметов в рюкзаке я тип правильно прописал..... :? А что за лист продаж Я тоже невкурил розясните как запустить :P
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Tavarien wrote:На продажу скрипт нехочет видеть Неклы я невкуриваю почему пишет типа 0 предметов в рюкзаке я тип правильно прописал..... :? А что за лист продаж Я тоже невкурил розясните как запустить :P
1. читай внимательнее описалово к скрипту.
2. кнопка buy/sell на закладке main и приправить кнопочкой Поиск на Форуме ;)
Neznaika
Posts: 30
Joined: 2005-03-11 23:00:30

Post by Neznaika »

Почему то в скрипте на кемпинг , чар идя от дерева 1 к дереву 2 делае только 1 шаг , не достаёт до дерева и идёт к дереву 3 и опять один шаг и т.д.
Скажите пожалуйста , в чём проблема?
Neznaika
Posts: 30
Joined: 2005-03-11 23:00:30

Post by Neznaika »

И ещё если всё таки удаётся добыть хвороста , то он бросает его и пытается зажеч , если с 2-3 раз не удалось , он бросает следующи , а это оставляет =(
Post Reply