Кто дописать может?

Anything and all.

Moderators: Murderator+, Murderator

Locked
antonio_NOVA
Posts: 3
Joined: 2006-05-11 04:39:30

Кто дописать может?

Post by antonio_NOVA »

Code: Select all

Алгоритм скрипта - прилетает по руне к животному писмейчит таймит убиват лутит  все что в трупе летит дальше .проблема - он писмейчит только одни раз( тоесть за то время пока животное находиться в писмейке , если не затаймит то больше не писмейчит) так вот как сделать чтоб еше раз писмейчил( ну пока не затаймит)? 

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:
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Re: Кто дописать может?

Post by Kynep »

antonio_NOVA wrote:Алгоритм скрипта - прилетает по руне к животному писмейчит таймит убиват лутит все что в трупе летит дальше .проблема - он писмейчит только одни раз( тоесть за то время пока животное находиться в писмейке , если не затаймит то больше не писмейчит) так вот как сделать чтоб еше раз писмейчил( ну пока не затаймит)?
Интерестно, а зачем тебе это... для понта?
строчка из скрипта:

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

ыыы :twisted: :roll: :twisted:
Ради чьих то понтов люди мозг не будут напрягать...
Scripts Writer
Posts: 2259
Joined: 2005-04-19 18:00:29
Location: Московская область
Contact:

Post by Scripts Writer »

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

Post by Sanch »

ИМХО чушь
Я всегда через ласт обджект ласт таргет тамил неплохо, ну или накрайняк скриптом из 5 строчек, действительно чушь. А вообще скрипт больше 30 строчек те править никто не бут, если только за виртуальные зеленые гп.
antonio_NOVA
Posts: 3
Joined: 2006-05-11 04:39:30

Post by antonio_NOVA »

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

Post by antonio_NOVA »

Кароч ясно тут ткоа типа все для ВЦ дрв? :lol:

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