Атака Монстра по типу(добавить функций)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Peregrinus
Posts: 12
Joined: 2007-11-16 13:20:20

Атака Монстра по типу(добавить функций)

Post by Peregrinus »

Вот скрипт. Довольно хороший) Для прокачки в нб данже на ДРВ подходит в самый раз) Но глюк в нем присутствует.. да и несколько доп. функций не помешают... И еще расскажу в кратце что из себя представляет скрипт:
Ищет Ластобьектом монстра, когда находит, идет к нему и атачит, как убил Лутит командой ",emptycontainer 550", после лута идет в середину комнаты... и снова ищет ластобектом монстра.
Итак, что нужно:
Чтобы атачил монстра, когда стоит в упор к нему...(это и есть глюк)
Чтобы Лут складывался в отдельный мешок(чтобы удобней было)
Чтобы после лута и отхода в исходное место, врубал Хайду(чтобы не атачили другие монстры).
Заранее премного благодарен)

Code: Select all

sub KillThemAll() 
;var Victim=0x0032 #тип животного 1
var Victim=0x03CA #тип животного 2
var CuttingTool=0x13C6 #Чем рЭзать(оружие)
var n=6
var x=uo.GetX() 
var y=uo.GetY()
;uo.print('001')
uo.ignorereset() 
;uo.print('002')
;uo.forget('far') 
;uo.print('003')
;uo.forget('counters') 
;uo.print('004')
uo.SetGlobal('KillCount', 0) 
;uo.print('005')

uo.Set('finddistance',str(n)) 

Repeat 
   wait(500) 
   uo.FindType(victim, -1,'ground') 
   if uo.FindCount() then 
      wait(100) 
      if uo.IsNPC('finditem') then 
;         uo.info('finditem') 
         while uo.IsNPC('finditem') 
            if uo.GetDistance('finditem') > 1 then 
               MoveTo('finditem', 1) 
               uo.attack('finditem') 
            end if 
            wait(100) 
         wend 
         uo.SetGlobal('KillCount', val(uo.GetGlobal('KillCount'))+1) 
         uo.forget('finditem') 
;        uo.warmode(0) 
         uo.waittargetobject('lastcorpse') 
         wait(100)
         uo.usetype(CuttingTool) 
         wait(100) 
         uo.useobject('lastcorpse')
         wait(550)
         uo.waittargetobject('lastcorpse')
         uo.say(',emptycontainer 550')
         while uo.waiting() 
            wait(100) 
         wend 
;         uo.disarm() 
         n=1 
      else 
         uo.Ignore('finditem') 
      end if 
   else 
      n=n+1 
      if n > 20 then 
         if (uo.GetX() <> x) or (uo.GetY() <> y) then 
            MoveToXY(x, y, 1) 
         end if 
         n=1 
      end if 
   end if 
Until uo.Dead() 
end sub 

sub Stat() 
   uo.charprint(257, 'Х-ха! Уже '+uo.GetGlobal('KillCount')+' скелетов заготовлено!') 
end sub 

sub Abs(num) 
   if num < 0 then 
      return -num 
   end if 
   return num 
end sub 

sub Sig(num) 
if num < 0 then 
   return -1 
else 
   if num == 0 then 
      return 0 
   endif 
endif 
return 1 
end sub 
       
sub MoveToXY(x, y, prec) 
   var dx, dy 
   dim Key[9] 
      Key[0]=37 
      Key[1]=35 
      Key[2]=40 
      Key[3]=36 
      Key[4]=12 
      Key[5]=34 
      Key[6]=38 
      Key[7]=33 
      Key[8]=39 
      dx=x-uo.GetX() 
      dy=-y+uo.GetY() 
   while (Abs(dx) > prec) or (Abs(dy) > prec) 
      dx=x-uo.GetX() 
      dy=-y+uo.GetY() 
      uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)]) 
      wait(10) 
   wend 
end sub    

sub MoveTo(object, prec) 
   var dx, dy 
   dim Key[9] 
      Key[0]=37 
      Key[1]=35 
      Key[2]=40 
      Key[3]=36 
      Key[4]=12 
      Key[5]=34 
      Key[6]=38 
      Key[7]=33 
      Key[8]=39 
   while uo.GetDistance(object) > prec 
      dx=uo.GetX(object)-uo.GetX() 
      dy=-uo.GetY(object)+uo.GetY() 
      uo.Press(Key[(sig(dy)+1)*3+1+sig(dx)]) 
      wait(10) 
   wend 
end sub    

sub ExtendedInfo()

  var ObjectSerial
  var ObjectGraphics
  var ObjectIsNPC
  var ObjectNotoriety

  UO.Print('Select object to explore') 
  UO.AddObject('ObjectToExplore') 
  While UO.Targeting()==2 
    Wait(50) 
  WEnd 
  
  UO.Click('ObjectToExplore') 
  Wait(500)
  
  UO.Print('Object name is: '+UO.GetName('ObjectToExplore')) 
  
  ObjectSerial = UO.GetSerial('ObjectToExplore')
  UO.Print('Object serial is : '+ObjectSerial) 
  ObjectGraphics = UO.GetGraphic('ObjectToExplore')
  UO.Print('Object type is : '+ObjectGraphics) 
  ObjectIsNPC = UO.IsNPC('ObjectToExplore')
  UO.Print('Object IsNPC number is : '+str(ObjectIsNPC)) 
  ObjectNotoriety = UO.GetNotoriety('ObjectToExplore')
  UO.Print('Object notoriety is : '+str(ObjectNotoriety))
Peregrinus
Posts: 12
Joined: 2007-11-16 13:20:20

Post by Peregrinus »

Ну тчо? Никто не поможет?) Если че с меня пиво)
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

да уж ;) поздевался над скриптом хорошо;) помнит ся там овци изначально были;)
Peregrinus
Posts: 12
Joined: 2007-11-16 13:20:20

Post by Peregrinus »

Grin wrote:да уж ;) поздевался над скриптом хорошо;) помнит ся там овци изначально были;)
))
Ну так его поправить возможно или нет?)
Post Reply