Yoko

All sides of Injection
It is currently 2025-11-06 05:02:08

All times are UTC+02:00




Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 
Author Message
PostPosted: 2006-05-11 04:47:10 
Offline

Joined: 2006-05-11 04:39:30
Posts: 3
Code:
Алгоритм скрипта - прилетает по руне к животному писмейчит таймит убиват лутит  все что в трупе летит дальше .проблема - он писмейчит только одни раз( тоесть за то время пока животное находиться в писмейке , если не затаймит то больше не писмейчит) так вот как сделать чтоб еше раз писмейчил( ну пока не затаймит)? 

var Kol_run = 15                                          ; Колчиство рун в цикле по рунбуке
var Nom_run
var Nogik = '0x13FF'                                      ;   тип оружия для варки  резки
var MaxWeight= ((uo.STR*3.5)+39)
var Obj
var Nojnici = '0x0F9F'
var Skur  = '0x1079'                                          ;    тип шкур
var Skur2  = '0x1081'          ;    тип шкур 2
var Meat = '0x09F1 '            ; Мясо, решил не брезговать и им, чтоб потом кукинг прокачать

uo.setreceivingcontainer('Bagpak')

sub Start()
   uo.setglobal('Tek_run_tm')
   uo.exec('exec Main')
   uo.exec('exec Control')
end sub

sub Main()
wait(1000)
uo.Targeting('self')
uo.set('norbcalc','1')
uo.set('norbcheck','1')
uo.set('injectecho','1')
while not uo.dead()
   wait(500)
   Nom_run = val(uo.getglobal('Tek_run_tm'))
   uo.print('Nachali marshrut-' + str(Nom_run ) )
   wait(500)
   wait(500)
   Rec_to_les()                                       ; Перед тем как бежать к точке реколимся в  лес
   wait(8000)
   uo.sayU("go go go")
   Warka()
   uo.print(str(UO.Count("0x0f7b")))
   if uo.weight > MaxWeight -60 or UO.Count("0x0f7b") < 5 then
      uo.print('Perepolne, domoi')
      Rec_to_home()
      wait(5000)
      Sbros()
      Getregs()
   end if
   Smena_run()    ; меняем руну на новую
wend
EndSub

sub Warka()   ; *********************************************************  основной скрипт *****************
var dx,dy,  i  , z , prizn = 0, kol_ani
   DIM Dich[4]   
   Dich[0] = '0x00D4'   ;  Бык
   Dich[1] = '0x00ea'    ; большой олень
   Dich[2] = '0x001B'   ; гризлик
   dich[3] = '0x00e8'   ; др бык
   dich[4] = '0x0019'   ;волк
   for i = 0 to 4      ; Цикл по типам животных
      UO.Set('finddistance',10)            ; дистанция для поиска
      UO.FindType(Dich[i], '-1', '1')    ; Ищем животное
      Kol_ani = UO.FindCount()
      wait(200)
      If Kol_ani > 0 Then          ; если нашли
         uo.sayU("Popalsia!!")
         obj = UO.GetSerial("finditem")           ; запоминаем его
         uo.print('Cel - ' + Obj)
         wait(500)
         Prizn = 1         ; ставим признак что живое
         dx=UO.GetX(obj)           ; находим координаты
         dy=UO.GetY(obj)
         uo.print( "begim k Dichi v tochke " + str(dx) + " " + str(dy))
         Gotoxy(dx,dy,1)       ; подходим поближе
         uo.print('Usmirim')
         Uo.Exec("warmode 0")
         pace()                ; усмиряем, не проверяя в принципе, это так для понта чтоб чуть прокачать пейсмакинг
         Gotoxy(dx,dy,1)       ; ближе подходим
         Uo.Exec("warmode 1")
         Uo.Exec("warmode 0")
         uo.print('tamim')
         Taming()             ; таймим
         wait(1000)
         Release()            ; и отпускаем
         wait(1000)
         uo.sayU("all guard")
         wait(100)
         uo.sayU("all guard")
         wait(1000)
         repeat
            uo.attack(Obj)         ; атакуем
            wait(200)
            dx=UO.GetX(Obj)           ; находим координаты
            dy=UO.GetY(Obj)
            if dx > 0 then           ; могли уже успеть убить
               gotoxy(dx,dy,1)
            end if
            UO.FindType('0x2006', '-1', '1')    ; Ищем на земле труп
            wait(2000)
            If UO.FindCount() > 0 or  uo.GetDistance(Obj) > 2   Then
                  if uo.GetDistance(Obj) > 2 then
                     UO.Cast('Flame Strike',Obj)
                     wait(7000)
                  end if
               Prizn = 0         ; ставим признак что умерло, либо смоталось
               uo.print('Aga, sdohlo ili sbejalo')
               wait(1000)
            end if
          until prizn == 0
          Goto_loot()          ; бежим лутать
            uo.ignore(Obj)      ; игнорировать обьект в дальнейшем
      end if
    uo.print(Dich[i] + "-" + str(Kol_ani) )
    next
    if uo.life <100 then
         HealBand()
   end if
end sub

; ****************************************************  Скрипт на автолут **********************
sub Goto_loot()               
  uo.print('Lutaem')
   var dx,dy,Obj2
    UO.Set('finddistance',10)            ; дистанция для поиска
   UO.FindType('0x2006', '-1', '1')    ; Ищем на земле труп и засовываем его в переменную
   if uo.findcount() > 0 then
   obj2 = UO.GetSerial("finditem")
    dx=UO.GetX(obj2) 
    dy=UO.GetY(obj2)
if dx > 0 then
    uo.print ("begim k trupu v tochke " + str(dx) + " " + str(dy))
    Gotoxy(dx,dy,1)                     ;  Бежим к трупу
    uo.waittargetobject(Obj2)      ; установить прицел на труп
    wait(1000)
    UO.usetype(Nogik)            ; Использовать нож на прицеле
    wait(2000)
    uo.UseObject(Obj2)
   UO.Set( 'finddistance', '2' )
      Repeat
      UO.FindType( '-1', '-1', obj2)
         UO.Grab( 200, 'finditem' )     ;  грабим все что есть в трупе
      wait(1000)
   Until UO.FindCount() == 0
    uo.ignore(Obj2)      ; игнорировать обьект в дальнейшем
    end if
     uo.findtype(Skur)
     if uo.findcount() > 0 then
      obj2 = UO.GetSerial("finditem")
      uo.waittargetobject(Obj2)      ; установить прицел на шкуры
      UO.usetype(Nojnici)
    end if
end if
end sub

sub Taming()   
dim Mes[6]
Mes[0]="cliloc# 0xAC14" #Already taming
Mes[1]="cliloc# 0xAC0D" #Vspomnila nas zivotina
Mes[2]="cliloc# 0xA2DE" #this a to far away
Mes[3]="cliloc# 0xAC0B" #this a to far away to continue taming
Mes[4]="cliloc# 0xAC0F" #accept
Mes[5]="cliloc# 0xAC0E" #fail to tame
Mes[6]="You can't tame a creature during fight"

repeat
uo.deletejournal()
wait(200)
    if uo.getdistance(Obj)>1 then
            gotoxy(uo.getx(Obj),uo.gety(Obj),1)
    end if
    uo.useskill("Taming",Obj)
    repeat
        wait(400)
    until uo.injournal(Mes[0]) or uo.injournal(Mes[1]) or uo.injournal(Mes[2]) or uo.injournal(Mes[3]) or uo.injournal(Mes[4]) or uo.injournal(Mes[5]) or uo.injournal(Mes[6])
until uo.injournal(Mes[0]) or uo.injournal(Mes[1]) or uo.injournal(Mes[4])
uo.deletejournal()
wait(200)
end sub


sub release()
uo.recall("0x84e188f8",2)
wait(1000)
uo.say(uo.getname(Obj)+" release")
wait(500)
uo.recall("0x84e188f8",2)
wait(1500)
end sub


;  **********************************************************    Писмакинг  *********
sub pace()   
   uo.print(obj)
   uo.waittargetobject(Obj)
   uo.useskill("Peacemaking")
   wait(15000)
end sub
; ******************************************************** Провокация **********************

Sub Smena_run()
   var v = val(uo.getglobal('Tek_run_tm'))
   if  v < kol_run - 1  then     ; Если текущий номер меньше всего количества рун то
         uo.setglobal('Tek_run_tm',str(v+1))        ;  + 1 к счетчику рунок
      else
         uo.setglobal('Tek_run_tm','0')        ; Иначе начинаем цикл сначала
   end if
   wait(500)
end sub

sub Rec_to_home()
var Udacha = 0
var Run
var v = val(uo.getglobal('Tek_run_tm'))
uo.set( "norbcheck", "1" )
uo.set( "norbcalc", "1" )
run = v + 9
      repeat
         UO.FindType('0x0E3C', '-1', '1')      ; Ищем сундуки
         wait(100)
         If UO.FindCount() < 1 Then      ; если не находим сундук то значит еще в лесу
            uo.cast("Recall",'Runebookid')
            wait(8000)
         else
            Udacha = 1               
         end if       
         until  Udacha == 1       
Udacha = 0
end sub

sub Rec_to_les()
var Run
var v = val(uo.getglobal('Tek_run_tm'))
uo.set( "norbcheck", "1" )
uo.set( "norbcalc", "1" )
Run = v +1
            uo.recall( 'Runebookid', 6*Run-1 )          ; тупо реколимся, даже если физл то ничего страшного
end sub

sub Sbros()
repeat
  wait(1500)
  uo.findtype(Skur2)
  uo.moveitem('finditem','0','Box') 
  wait(1000)
until not uo.count(Skur2)
repeat
  wait(1500)
  uo.findtype(Meat)
  uo.moveitem('finditem','0','Box') 
  wait(1000)
until not uo.count(Meat)
end sub


sub GetRegs()
 Var I
 var kolreg = 50
 var kol_svit = 3
 var kol_mesh
 var kol_nado
 var kolband = 50
uo.setreceivingcontainer('Bagpak')
uo.useobject('Box')
wait(200)
uo.sayU('Pivo mne blia!')
wait(200)
dim Regs[7]
Regs[0]="0x0f7b" ## Блудмосс ##
Regs[1]="0x0f86" ## Мандра ##
Regs[2]="0x0f7a" ## Блек пирл ##
Regs[3]="0x0f84" ## Гарлик ##
Regs[4]="0x0f85" ## Гинсенг ##
Regs[5]="0x0f88" ## Найт сидж ##
Regs[6]="0x0f8c" ## Сулфориус ##
Regs[7]="0x0f8d" ## Спайдер силк ##
wait(300)
#Выгрузка регов
if uo.getserial("Box")<>"0x00000000" then
for i=0 to 7
  Uo.findtype(Regs[i],"-1","-1")
  wait(300)
  kol_Mesh = uo.count(Regs[i])
  wait(200)
  if Kol_Mesh < Kolreg then              ; Если регов в бакпаке меньше чем положено то грузим недостачу
     Uo.findtype(Regs[i],"-1","Box")
     wait(300)
     Uo.grab(str(Kolreg-Kol_Mesh),"finditem")    ; Грузим разницу
     wait(700)
  end if
    if Kol_Mesh > Kolreg then             
      Uo.moveitem("finditem",str(Kol_Mesh-Kolreg),"Box")   ; Если больше то выгружаем разницу
       wait(700)     
   end if
next
end if
      ;          загружаем бинты
      wait(300)
       UO.FindType('0x0e21', "-1", "Box")    ; Загружаем бинты если их мало
       wait(300)
       kol_mesh = UO.Count('0x0e21')         ; смотрим сколько бинтов в бакпаке
       uo.print(kol_mesh)
       wait(300)
         If Kol_Mesh < KolBand Then      ; если количество меньше чем положено то берем
            Uo.grab(str(KolBand-Kol_Mesh),"finditem")    ; Грузим разницу    ; загружаем разницу в бинтах
         wait( 1000 )
        Endif
        if Kol_Mesh > KolBand then        ; Если больше то выкидываем             
           Uo.moveitem("finditem",str(Kol_Mesh-KolBand),"Box")   ; Если больше то выгружаем разницу
         wait(700)     
   end if
   
endsub


sub Control()
    var Notoriety,IsNPC, Jurn, danger
    var v = val(uo.getglobal('tek_run'))
    var i
     while not uo.dead()
     Jurn=UO.Journal(0)
      if uo.Life < 100 then
      UO.Exec('terminate Main')
      UO.Exec('terminate main')
      UO.Set('finddistance',10)           
      repeat
         UO.FindType('0x0E3C', '-1', '1')      ; Ищем сундуки
         wait(100)
         If UO.FindCount() < 1 Then      ; если не находим то значит не смотались       
         uo.waittargetobject('0x401CADC3')
         wait(100)
         UO.Usetype("0x1f4c")
         wait(100)
         for i= 0 to 30
            uo.Press(35)         ; Бежим вниз и влево, чтоб враг не успевал атачить, если что упремся в сундук
         wait(20)
         next
         uo.cast("Recall",'0x401CADC3')
         for i= 0 to 30
            uo.Press(35)         ; Бежим вниз и влево, чтоб враг не успевал атачить, если что упремся в сундук
         wait(20)
         next
         else
            danger = 1                    ; Ставим признак что опасность миновала
         end if
         wait(500)
      until danger > 0
      Smena_run()                      ; меняем руну
       uo.sayU('Кто то напал, но мы смотались')
      while uo.Life < 120
          HealBand()
          wait(5000)
       wend
       Danger = 0
       GetRegs()            ; добираем бинтов, регов и скролов
       uo.print('Iz za napadenia nomer runki - ' + uo.getglobal('Tek_run_tm'))
       wait(500)
        uo.exec('exec Main')               ; продожаем рубить
       end if
wait(200)
       wend
end sub

sub HealBand()
VAR LH=0,RH=0
if UO.ObjAtLayer("Rhand") then
RH=1
uo.addobject("Wep",UO.ObjAtLayer("Rhand"))
end if
if UO.ObjAtLayer("Lhand")then
LH=1
uo.addobject("Shield",UO.ObjAtLayer("Lhand"))
end if
UO.bandageself()
wait (800)
uo.waittargetlast()
if LH==1 then
uo.useobject("Shield")
wait (800)
end if
if RH==1 then
uo.useobject("Wep")
end if
end sub



; ------------------------------------------  Ходилка --------------------------------------
Sub GotoXY(x,y,prec)
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 Setup()
   uo.Exec('addobject Box')
   while uo.Targeting()
   wait(100)
   wend
   uo.Exec('addobject Bagpak')
   while uo.Targeting()
   wait(100)
   wend
   uo.Exec('addobject Runebookid ')
   while uo.Targeting()
   wait(100)
   wend
end sub :cry:


Top
   
 
PostPosted: 2006-05-11 06:32:39 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
antonio_NOVA wrote:
Алгоритм скрипта - прилетает по руне к животному писмейчит таймит убиват лутит все что в трупе летит дальше .проблема - он писмейчит только одни раз( тоесть за то время пока животное находиться в писмейке , если не затаймит то больше не писмейчит) так вот как сделать чтоб еше раз писмейчил( ну пока не затаймит)?


Интерестно, а зачем тебе это... для понта?
строчка из скрипта:

pace() ; усмиряем, не проверяя в принципе, это так для понта чтоб чуть прокачать пейсмакинг

ыыы :twisted: :roll: :twisted:
Ради чьих то понтов люди мозг не будут напрягать...


Top
   
 
 Post subject:
PostPosted: 2006-05-11 08:10:09 
Offline

Joined: 2005-04-19 18:00:29
Posts: 2259
Location: Московская область
ИМХО чушь.


Top
   
 
 Post subject:
PostPosted: 2006-05-11 09:10:55 
Offline
User avatar

Joined: 2005-07-17 15:30:52
Posts: 308
Location: www.drw.ru
Quote:
ИМХО чушь


Я всегда через ласт обджект ласт таргет тамил неплохо, ну или накрайняк скриптом из 5 строчек, действительно чушь. А вообще скрипт больше 30 строчек те править никто не бут, если только за виртуальные зеленые гп.


Top
   
 
 Post subject:
PostPosted: 2006-05-11 13:42:49 
Offline

Joined: 2006-05-11 04:39:30
Posts: 3
Ну мне просто нужно что когда прошло действие писмейка чар опять писмейчил зверушку :roll:


Top
   
 
 Post subject:
PostPosted: 2006-05-12 15:19:21 
Offline

Joined: 2006-05-11 04:39:30
Posts: 3
Кароч ясно тут ткоа типа все для ВЦ дрв? :lol:

You Must Die : У скрипта есть автор.К нему и обращайся,-что касается твоих выражений-соблюдай правила форума. Никто тебе здесь ничем не обязан, найди ответ в другом месте. Тема закрыта .


Top
   
 
Display posts from previous:  Sort by  
Post new topic  This topic is locked, you cannot edit posts or make further replies.  [ 6 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 2 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:  
Powered by phpBB® Forum Software © phpBB Limited