Yoko

All sides of Injection
It is currently 2024-03-28 19:38:47

All times are UTC+02:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: 2016-04-30 13:41:09 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Code:
################################### 

###    Режимы работы скрипта    ###   

###################################

###   Работает в 2х режимах:    ###

###   1)Маркировка              ###

###   2)Рубка                   ###

###################################

### Режим Первый - "Маркировка" ###

###################################

### Этот режим отвечает за Маркирование(записывание координат) деревьев.

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

### То есть если GetFromFile=0 координаты деревьев собиратся из клиента.

###

### Маркировка происходит так:

### Поставте переменную GetFromFile равную 0 (GetFromFile=0).

### Положите к себе в сумку Топор,Руну(в безопасное место) и Кирку.

### Идите в лес в котором вы хотите рубить.

### Запустите Скрипт Lumberjacking(), инжект попросит вас указать Топор

### (появится прицел,прицелом на топор который вы с собой взяли),

### потом инжект попросит вас указать Руну в безопасное место(прицелом на нее).

### Инжект сообщит вам что ('Собираем координаты деревьев в округе...').

### Инжект попросит вас указать Кирку(появится прицел,прицелом на неё).

### Теперь вы должны в любом порядке сами прицелом указать координаты(достаточно просто нажать прицелом на дерево).

### Если вы не промахнулись и "нажали" на дерево, то инжект сообщит вам об этом(Найдено дерево "координаты дерева").

### Причем что если даже вы нажмете два раза на одно дерево то он не "запомнит" его повторно.

### Ходите по лесу и марчите деревья.

### Для того чтобы остановить марк нажмите таргетом от кирки на себя.

### Инжект напишет вам сообщение ('Анализ закончен, координаты деревьев записаны в файл' +FileName) и создаст файл на диске

### С: куда запишет координаты деревьев.

### После этого чар пойдет по координатам и будет вырубать деревья.

###

##############################

### Режим Второй - "Рубка" ###

##############################

### Этот режим соответственно отвечает за рубку.

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

### То есть если GetFromFile=1 координаты деревьев будут считыватся из файла.

### И вам не надо будет сново марчить деревья.

###

### Рубка происходит так:

### Поставте переменную GetFromFile равную 1 (GetFromFile=1).

### Положите к себе в сумку Топор и Рунки (домой и в лес).

###

#########################################

###  Дополнительные функции скрипта   ###

#########################################

###     В скрипте 3е доп. функции:    ###

###     1)Употребление Пищи           ###

###     2)Рекол при Атаке             ###

###     3)Реконнект                   ###

#########################################

### Функция Первая - "Употребление Пищи" ###

############################################

### Этот режим соответственно отвечает за Употребление Пищи.

### Включается переменной var EatingFood=1 ## 1 - Будем есть, 0 - нет.

### То есть если EatingFood=1 чар будет кушать.

###

### Употребление Пищи происходит так:

### Поставте переменную EatingFood равную 1 (EatingFood=1).

### Положите в сундук куда будут выгружаться логи и где лежат реколы - еду,

### тип которой вы указали тут var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки)

### После того как чар выложит логи, будет кушать.

### Он берет 20 единиц еды и кушает, что осталось выгружает обратно в сундук.

###

##########################################

### Функция Вторая - "Рекол при Атаке" ###

##########################################

### Этот режим соответственно отвечает за Рекол при атаке ентов и не только(также стоит проверка на ПК и Криминалов).

### Включается переменной var ControlOfDanger=1 ## 1 - Включить рекол по руне(в паке) при атаке, 0 - отключить рекол.

### То есть если ControlOfDanger=1 чар будет реколиться при атаке.

###

### Побег происходит так:

### Поставте переменную ControlOfDanger равную 1 (ControlOfDanger=1).

### Замарчите Руну в безопасном месте.

### Положите к себе в сумку

### Руну(которую замарчили в безопасном месте), Реагенты(Black Pearls,Blood Moss,Mandrake Root.)

### и Бутылки расчитывая на то сколько вы хотите рубить.(Invizible Potion,Mana Potion,Heal Potion).

### При атаке, появлении ПК или криминала вы выпиваете Invizible Potion, автоматически телепортитесь на то место,

### где замаркана руна(в бакпаке).

### В это время записывается имя того кто вас атачил.

### После рекола руна маркается и проверяется ваша мана и здоровье, если чегото меньше,

### чар выпивает Mana Potion или Heal Potion в зависимости от надобности.

###

######################################

### Вариант Первый - "Цыкличность" ###

######################################

### Есди вы хотите чтобы скрипт не прекращал свою работу, то поставьте переменную CycleScript раную 1 (CycleScript=1),

### затем после указания предметов таргетом задите в "Edit current script"(в окно редактирования скрипта) и

### поставьте переменную AddObject равную 0 (AddObject=0).

### Теперь после рекола скрипт не будет выключаться, а будет ждать указанное время(DangerousTime) и затем

### реколиться домой, выкладывать логи, есть и опять реколиться на место рубки и рубить.

###

#####################################

### Вариант Второй - "Выключение" ###

#####################################

### Есди вы хотите чтобы скрипт не прекращал свою работу, то поставьте переменную CycleScript раную 0 (CycleScript=0),

### Теперь после рекола скрипт выключится и закроет окно UO.

###

#######################################

### Функция Третья - "Реконнект" ###

#######################################

### Этот режим соответственно отвечает за Реконнект при выкидывании с сервера.

### Включается переменной var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.

### То есть если Reconnect=1 чар будет реколиться при атаке.

###

### Реконнект происходит так:

### Поставте переменную Reconnect равную 1 (Reconnect=1).

### Если вдруг повиснет игровая сфера или вас выкинет по любой другой причине

### реконнектор законнектит вас на сервер автоматически.

### Пишется время дисконнекта и коннекта на сервер.

###

### ]![ Настройте скрипт под себя при помощи переменных. ]![

###

##################

### Переменные ###

##################

################################################################################


##################################

###

var FileName=('C:treesm.dat') ## - Путь к файлу в котором будут хранится координаты деревьев.

###


var TryRecall=1 ## 1 - После того как соберет LogsQty логов, будет пытаться реколиться домой,

### складывать логи в сундук и реколиться обратно , 0 - не будет.

###

var LogsQty=2000 ## - Количество логов, добыв которое надо реколиться домой.

###

var QuantityImpact=15 ## - Сколько раз чар будет ударять по дереву, прежде чем перейдет к другому.(стандарт - 15)

###

var ControlOfDanger=1 ## 1 - Включить рекол по руне(в паке) при атаке, 0 - отключить рекол.

###

var PhysicalDanger=0 ## 1 - влючить рекол при физической атаке, 0 - отключить рекол.

###

var SeenDanger=0 ## 1 - влючить рекол при появлении рядом ПК ил криминала, 0 - отключить рекол.

###

var RecallFromAll=0 ## 1 - включить рекол при появлении рядом любово чара, 0 - отключить рекол.

###

var DisturbingSound=('C:WINDOWSMEDIATada.wav') ## - Звук которы будет пригран при атаке.(замените на свой)

###

var DangerousTime=220000 ## - Время которое чар будет ждать(после рекола) пока уйдет ПК или Ент.(сейчас 50 секунд)

###

var CycleScript=0 ## 1 - Скрипт не отключается после рекола от атакующего, 0 - отключаетсяи закрывает UO.

###

var EatingFood=1 ## 1 - Будем есть, 0 - нет. 

###

var TypeFood='0x097B' ## - Тип еды которую будем кушать.(сейчас фиштейки)

###

var Reconnect=0 ## 1 - Включить реконнект на сервер если выкинет, 0 - отключить реконнект.

###

var Chest='0x40243648' ## - ID сундука куда будут выгружаться логи, где должны лежать реколы и еда.

###

var AddObject=1 ## 1 - Если надо добавить обьекты, 0 - не надо.

###

################################################################################


##################################

###

### После настройки:

### Идите в лес в котором вы хотите рубить.

### Запустите cкрипт Lumberjacking(), Инжект попросит вас указать Топор

### (появится прицел, прицелом на топор который вы с собой взяли),

### затем инжект попросит вас указать Рунки (появится прицел, прицелом на них)

### После этого чар пойдет по координатам и будет вырубать деревья.

###########

### Код ###

###########

sub Lumberjacking()
   
   var i=0,j=0,k=0,r=0,q=0,ii,jj,f
   
   var TopX=324,TopY=65
   
   dim TreeX[5000],TreeY[5000],TreeT[5000]
   
   dim TreeTile[29]
   
   var flag=0,TreeCount=0,clicks=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[24]=3460
   
   TreeTile[25]=3461
   
   TreeTile[26]=3462
   
   TreeTile[27]=3290
   
   TreeTile[28]=3288
   
   
   
   if AddObject==1 then
     
      uo.FilterSpeech('on')
     
      uo.FilterSpeech('add', 'Where do you want to use the pickaxe?')
     
     
     
      uo.Print('Выбери Топор: ')
     
      uo.Exec('addobject Axe')
     
      while uo.Targeting()
         
         wait(100)
         
      wend
     
     
     
      if TryRecall==1 then
         
         uo.Print('Rune to Home')
         
         uo.Exec('addobject Home')
         
         while uo.Targeting()
           
            wait(100)
           
         wend
         
         
         
         uo.Print('Rune to Les')
         
         uo.Exec('addobject Les')
         
         while uo.Targeting()
           
            wait(100)
           
         wend
         
      end if
     
     
     
      if ControlOfDanger==1 then
         
         uo.Print('Выбери Руну: ')
         
         uo.Exec('addobject Rune')
         
         while uo.Targeting()
           
            wait(100)
           
         wend
         
      end if
     
   end if
   
   
   
   if ControlOfDanger==1 then
     
      uo.Exec('exec ControlOfDanger')
     
   end if

     
      f=file(FileName)
     
      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
     
      ######################################
     
      ### Собираем координаты из клиента ###
     
      ######################################
округе...')
     
      repeat
         
         clicks=0
         
         flag=0
         
         uo.DeleteJournal()
         
         #######################
         
         ### Кликаем на тайл ###
         
         #######################
         
         uo.UseObject('Pickaxe')
         
         waitForTarget()
         
         uo.DeleteJournal()
         
         WaitForTryRock()
         
         ###############################
         
         ### Проверяем дерево ли это ###
         
         ###############################
         
         flag=0
         
         for k=0 to 28
           
            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 uo.Lasttile(1)==uo.GetX() and uo.Lasttile(2)==uo.GetY() then
           
            flag=3
           
         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
2)
               
               TreeT[TreeCount]=uo.LastTile(0)
               
               uo.Print('Найдено дерево номер '+str(TreeCount)+' : 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)
               
               Tr
         end if
         
      until (flag==3) or (TreeCount==5000)
     
      uo.FilterSpeech('off')
     
      uo.Print('Анализ закончен, координаты деревьев записаны в файл ' + FileName)
     
      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 or uo.Weight>=uo.STR*4+20 then
               
               ToRecall()
               
            end if
           
            uo.Print('Идем к дереву номер '+str(i)+': x='+str(TreeX[i])+' y='+str(TreeY[i]))
           
            InfoLogs()
           

     

   f=file(FileName)
   
   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 GetTree(Type,X,Y,Z)
   
   var i
   
   uo.Print('Начинаем рубку дерева...')
   
   for i=0 to QuantityImpact
     
      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 WaitForRecall()
   
   var Text1=uo.GetName()+': The spell fizzles.'
   
   var LastX=uo.GetX()
   
   var LastY=uo.GetY()
   
   var mess=''
   
   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 stealth 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='Вы ударили по дереву, однако безрезультатно'  # 'You hack at the tree for a while, but fail to produce any useable wood'
   var Text2='There is nothing here to chop.'  # ' Тут нечего рубить'
   var Text3="Вы не можете до этого достать."  # "You can't reach this."
   var Text4='Дерево слишком далеко.'  # 'That is too far away.'
   var Text5="You can't do much in your current state."  #
   var Text6='Это кажется свободным для вашего удара.'  # 'It appears immune to your blow'
   var mess
   for var i=0 to 200
      mess=uo.Journal(0)
      if uo.Journal(0)==Text2 or uo.Journal(0)==Text3 or uo.Journal(0)==Text4 or uo.Journal(0)==Text6 then
         return 1
      end if
      if uo.Journal(0)==Text1 then
         return 0
      end if
      if mess[0]=='В' and mess[1]=='ы' and mess[3]=='п' and mess[4]=='о' and mess[5]=='л' and mess[6]=='о' then
         return 0
      end if
      wait(50)
   next
   return 0
end sub



sub WaitForTryRock()
   
   var Text1='That is too far away.' #Вы не можете до этого достать.
   
   var Text2='Попробуйте копать в другом месте.'
   
   var Text3='Тут ничего нету.'
   
   var Text4='У вас нет обзора к этому местоположению.'
   
   var Text5="You can't use the %s where it is."
   
   var Text6='It appears immune to your blow.'
   
   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 or uo.Journal(0)==Text6 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 MovingItems(tItem,cItem,qItem,FromBackPack)
   
   var idResivCont,idSendCont
   
   Open(Chest)
   
   uo.UseObject('backpack')
   
   if FromBackPack==1 then
     
      idResivCont=uo.GetSerial('backpack')
     
      idSendCont=Chest
     
   else
     
      idSendCont=uo.GetSerial('backpack')
     
      idResivCont=Chest
     
   end if       
   
   CheckLag()   
   
   uo.Findtype(tItem,cItem,idSendCont)
   
   while uo.GetQuantity('finditem')>0
     
      uo.MoveItem('finditem',str(qItem),idResivCont)
     
      wait(1000)
     
      CheckLag()
     
      if qItem>0 then
         
         return
         
      end if
     
      uo.FindType(tItem,cItem,idSendCont)
     
   wend
   
end sub



sub InfoTrees(sNum,fStr,lStr,Sort)
   
   var n=VAL(Right(sNum,1))
   
   if n==0 then
     
      if Sort==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 Sort==0 then
     
      uo.Print(fStr+'ев'+lStr)
     
   else
     
      uo.Print(fStr+'ов'+lStr)
     
   end if
   
end sub



sub Open(Container)
   
   uo.DeleteJournal()
   
   uo.UseObject(Container)
   
   repeat
     
      wait(500)
     
   until uo.InJournal('Contains')
   
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 Numb(x-myX)<=1 and Numb(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 Numb(num)
   
   if num>=0 then
     
      return num
     
   else
     
      return num*(-1)
     
   end if
   
end sub



sub InfoLogs()
   
   uo.Print('У вас всего '+str(uo.Count('0x1BDD'))+' логов в сумке')
   
   uo.Print('Из них '+str(uo.Count('0x1BDD','0x0000'))+' простых и ' +str(uo.Count('0x1BDD')-uo.Count('0x1BDD','0x0000'))+' цветных')
   
end sub



sub ToHide()
   VAR LastTimer, n=0, HidFlag=1
   
   if UO.Hidden() then
      HidFlag=0
   else
      UO.Print('Щас как спрячусь!..')
   end if
   
   while HidFlag
      deljournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно")
      LastTimer=UO.Timer()
      UO.exec('warmode 0')
      UO.useskill('Hiding')
      repeat
         wait(300)
      until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно") || LastTimer+100<UO.Timer()
      if UO.InJournal("удачно") then
         HidFlag=0
      else
         n=n+1
         if n>3 then
            UO.Print('Спрятаться не получается, происходит что-то тревожное и непонятное, готовься к смерти, неудачнег!')
            return
         end if
      end if
   wend
   
end sub



sub ToRecall()
   
   uo.Exec('terminate ControlOfDanger')
   
   RecallToHome()
   
   DropLogs()
   
   InfoLogs()
   
   if EatingFood==1 then
     
      EatingFood()
     
   end if
   
   wait(3000)
   
   RecallToLumber()
   
   if ControlOfDanger==1 then
     
      uo.Exec('exec ControlOfDanger')
     
   end if
   
end sub



sub RecallToHome()
   
   uo.Print('Прыгаем Домой.')
   
   UO.WaitTargetObject('Home')
   
   uo.cast('Recall')
   
   WaitForRecall()
   
end sub



sub RecallToLumber()
   
   uo.Print('Прыгаем в Лес.')
   
   UO.WaitTargetObject('Les')
   
   uo.cast('Recall')
   
   WaitForRecall()
   
end sub



sub DropLogs()
   
   var Time,Space
   
   Time=Time()
   
   Space=' '
   
   uo.TextOpen()
   
   uo.TextPrint("Выкладываем логи - " +Space +Time)
   
   ToHide()
   
   VAR a
   
   VAR LastTimer
   
   DIM Log[1]
   
   Log[1]=0x1BDD
   
   
   
   uo.say("Bank")
   
   wait(1000)
   
   CheckLag()
   
   For a=1 to 1
     
      While UO.Count(Log[a])>0
         
         UO.FindType(Log[a],-1,-1)
         
         UO.MoveItem('finditem',0,Chest)
         
         wait(1000)
         
      Wend
     
   next 
   
   if UO.Mana < 30 then
     
      while UO.Mana<UO.Int
         
         LastTimer=UO.Timer()
         
         UO.UseSkill('Meditation')
         
         repeat
           
            wait(100)
           
         until UO.InJournal("You are") OR UO.InJournal("You lose") OR UO.Timer()>LastTimer+200
         
         UO.DeleteJournal()
         
         wait(200)
         
      wend
     
   endif   
   
end sub



sub EatingFood()
   
   var Time,Space
   
   Time=Time()
   
   Space=' '
   
   uo.TextOpen()
   
   uo.TextPrint('Кушаем - ' +Space +Time)
   
   MovingItems(TypeFood,'-1',20,1)
   
   repeat     
     
      CheckLag()
     
      if uo.Count(TypeFood)<=0 then
         
         uo.Exec('terminate EatingFood')
         
      end if
     
      uo.UseType(TypeFood)
     
      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
     
   until uo.InJournal('too full') or uo.Dead()
   
   while uo.Count(TypeFood)>0
     
      MovingItems(TypeFood,'-1',-1,0)
     
   wend
   
end sub



sub ControlOfDanger()
   
   var Time,danger,Space
   
   Time=Time()
   
   Space=' '
   
   while 1
     
      uo.DeleteJournal()
     
      while not uo.InJournal(':')
         
         wait(100)
         
      wend
     
      danger=uo.GetNotoriety(uo.JournalSerial(0))
     
     
     
      if uo.InJournal('attacking you') then
         
         uo.GetStatus('uo.JournalSerial(0)')
         
         uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
         
         uo.TextOpen()
         
         uo.TextPrint('Вы были атакованы - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
         
         uo.Exec('exec RecallRune')
         
      end if
     
   end if
   
   
   
   if SeenDanger==1 then
     
      if Danger==6 and UO.JournalSerial(0) <> UO.GetSerial() then
         
         uo.GetStatus('uo.JournalSerial(0)')
         
         uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
         
         uo.TextOpen()
         
         uo.TextPrint('Рядом оказался ПК - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
         
         uo.Exec('exec RecallRune')
         
      end if
     
     
     
      if Danger==4 and UO.JournalSerial(0) <> UO.GetSerial() then
         
         uo.GetStatus('uo.JournalSerial(0)')
         
         uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
         
         uo.TextOpen()
         
         uo.TextPrint('Рядом оказался криминал - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
         
         uo.Exec('exec RecallRune')
         
      end if
     
     
     
      if RecallFromAll==1 then
         
         if Danger==1 and UO.JournalSerial(0) <> UO.GetSerial() then
           
            uo.GetStatus('uo.JournalSerial(0)')
           
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
           
            uo.TextOpen()
           
            uo.TextPrint('Рядом оказался чар - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
           
            uo.Exec('exec RecallRune')
           
         end if
         
      end if
     
   end if
   
wend

end sub 



sub RecallRune()
   
   Terminate()
   
   uo.PlayWav(DisturbingSound)
   
   uo.UseType('0x0F0E','0x0631')
   
   wait(100)
   
   uo.WaitTargetObject('Rune')
   
   uo.Exec('warmode 0')
   
   uo.Cast('Recall')
   
   WaitForRecall()
   
   repeat
     
      uo.DeleteJournal()
     
      uo.WaitTargetObject('Rune')
     
      wait(100)
     
      uo.Cast('Mark')
     
      if uo.InJournal('mana for this spell') then
         
         ManaUp('Bottle')
         
         wait(100)
         
      end if
     
      wait(13000)
     
   until not uo.InJournal('spell fizzles')
   
   if uo.Life<uo.STR then
     
      LifeUp('Bottle')
     
      wait(100)
     
   end if
   
   if CycleScript==1 then
     
      uo.Exec('exec DangerWait')
     
   end if
   
   if CycleScript==0 then
     
      uo.Exec('exec ExitUO')
     
   end if
   
end sub



sub DisturbingSound(amount)
   
   var i
   
   for i=1 to amount
     
      uo.PlayWav(DisturbingSound)
     
      wait(1500)
     
   next
   
end sub



sub DangerWait()
   
   wait(DangerousTime)
   
   ToRecall()
   
   uo.Exec('exec Lumberjacking')
   
end sub



sub ExitUO()
   
   wait(3000)
   
   uo.CloseUO()
   
end sub



sub LifeUp(Mode)
   
   if Mode=='Healing' then
     
      while uo.Life<uo.STR
         
         uo.Exec('bandageself')
         
         wait(4000)
         
      wend
     
   end if
   
   if Mode=='Bottle' then
     
      if uo.Life<uo.STR then
         
         uo.UseType('0x0F0E','0x09BB')
         
         wait(100)
         
      end if
     
   end if
   
end sub



sub ManaUp(Mode)
   
   if Mode=='Meditation' then
     
      while uo.Mana<uo.INT
         
         uo.Exec('useskill Meditation')
         
         wait(4000)
         
      wend
     
   end if
   
   if Mode=='Bottle' then
     
      if uo.Mana<uo.INT then
         
         uo.UseType('0x0F0E','0x09DF')
         
         wait(100)
         
      end if
     
   end if
   
end sub



sub Reconnect()
   
   var ReconnectTime,rflag
   
   ReconnectTime='0'
   
   rflag=1
   
   repeat
     
      while (uo.ObjAtLayer('Bpack')=='')
         
         if rflag then
           
            ReconnectTime=Time()
           
            rflag=0
           
         end if
         
         wait(30000)
         
         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.TextOpen()
         
         uo.TextPrint('Disconnected & Reconnected @ '+ReconnectTime)
         
         rflag=1
         
         ReconnectTime='0'
         
      end if
     
   until false
   
end sub



sub Time()
   
   var Date,nTime,uTime,i
   
   uTime=str(uo.Time())
   
   nTime=''
   
   for i=0 to Len(uTime)
     
      nTime=uTime[Len(uTime)-i]+nTime
     
      if (i==2) or (i==4) then
         
         nTime=':'+nTime
         
      end if
     
   next
   
   uTime=str(uo.Date())
   
   Date=''
   
   for i=0 to Len(uTime)
     
      Date=uTime[Len(uTime)-i]+Date
     
      if (i==2) or (i==4) then
         
         Date='.'+Date
         
      end if
     
   next
   
   uTime=nTime+' @ '+Date
   
   return uTime
   
end sub



sub Terminate()
   
   uo.Exec('terminate Lumberjacking')
   
   uo.Exec('terminate ControlOfDanger')
   
   uo.Exec('terminate Reconnect')
   
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('a Backpack')
   
end sub

Sub deljournal(msg)
   
   while UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg)-1,"")
   wend
   
end sub





Last edited by Патрон on 2016-05-06 23:17:22, edited 1 time in total.

Top
   
PostPosted: 2016-05-01 15:34:24 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
как минимум в sub ControlOfDanger() ошибка в цикле. Если отступы расставлять через программу то это сразу становится видно.

PS зачем столько красных строк и лишних энтеров? О_о

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2016-05-02 11:34:52 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Тут возьми и допили viewtopic.php?f=17&t=17663

_________________
CodeSweeper


Top
   
PostPosted: 2016-05-03 15:47:07 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Mirage wrote:
как минимум в sub ControlOfDanger() ошибка в цикле. Если отступы расставлять через программу то это сразу становится видно.

PS зачем столько красных строк и лишних энтеров? О_о



без понятия зачем столько энтеров) знакомый дал скрипт.


Top
   
PostPosted: 2016-05-03 15:54:24 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Incorrect User wrote:
Тут возьми и допили viewtopic.php?f=17&t=17663

Пробовал изменить ни чего не получилось. каждый раз какие-то ошибки. я в коде не силён.
Попробовал твой скрипт запустить всё по инструкции делал на маркировке всегда выбивает. инжект последней версии


Last edited by Патрон on 2016-05-05 14:39:32, edited 1 time in total.

Top
   
PostPosted: 2016-05-03 16:04:30 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
А текстовый файл создает с координатами, внутри есть они?

_________________
CodeSweeper


Top
   
PostPosted: 2016-05-04 00:01:53 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Incorrect User wrote:
А текстовый файл создает с координатами, внутри есть они?

неа.


Top
   
PostPosted: 2016-05-04 05:34:15 
Offline

Joined: 2011-05-23 00:33:30
Posts: 949
Он должен быть по адресу C:\Users\Edgard\Desktop\Injection_uo\trees1.dat или C:\Users\Desktop\Injection_uo\trees.dat, не знаю какой вариант ты копировал. Если такого не найдешь, замени в скрипте все такие адреса (их 4) на свои.

_________________
CodeSweeper


Top
   
PostPosted: 2016-05-04 18:18:30 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Менял пути файлов но не помогло,после заканчивания маркировки выбивает ошибку и не записывает файлы.((

Не мог бы ты помочь в моем скрипте? суть такая у нас на шарде топоры ломаютца и исщезают, как сделать чтобы после полной поломки топора чар брал другой топор с пака в руки?. буду благодарен!!!


Top
   
PostPosted: 2016-05-04 20:45:35 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
в процедуре sub GetTree(Type,X,Y,Z) поменять uo.UseObject('Axe') на
uo.usetype( uo.GetGraphic('Axe') )
Если в паке будет несколько топоров то будут браться по типу все пока есть топоры в паке, а не по уникальному ID. Главное что бы лежали все по одинаковому.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2016-05-05 14:26:49 
Offline

Joined: 2016-04-30 13:37:13
Posts: 6
Благодарю Мираж.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 11 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited