Помогите дописать плиз или надоумьте.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
IIpocTo TaK
Posts: 35
Joined: 2006-09-16 00:40:39

Помогите дописать плиз или надоумьте.

Post by IIpocTo TaK »

увожаемые господа скриптеры, есть скрипт на таминг взял его на этом форуме, когда животное надо убивать после таминга и искать новое...

Code: Select all

sub main() 
#              Скрипт работает в 2-ух режимах:                    #
# 1. Автоматический поиск (Авто) - для загонов.                   #
#    Постоянно ищет животное по имени из массива. При нахождении  #
#    сам  подходит  к нему и  пытается  приручить.  При  удачном  #
#    исходе отпускает или убивает (см. Настройки).                #
#    При неудачном (если маленький скилл или голодное) убивает.   #
#    Режим кормления не предусмотрен.                             #
# 2. Указание в ручную (Ручной) - для дома.                       #
#    Просит указать таргетом на животное которое нужно приручить. #
#    При удачном исходе отпускает или убивает (см. Настройки).    #
#    Если маленький скилл  -  убивает,  если голодный - кормит    #
#    сеном или убивает (см. Настройки).                           #
###################################################################
#           #
# НАСТРОЙКИ #
#           #
#####################################
                # Настройки режима. #
var Mode = 2    # 1 - Авто.         #
                # 2 - Ручной.       #
#####################################################
                # Что делать с прирученным животным #
var Release = 0 # 1 - Отпустить cказать All Release #
                # 0 - Убить                         #
#####################################################################
                # ВНИМАНИЕ!!! Это код клавиши на которую  в клиенте #
var Key = 77    # забито All Name на данный момент это английская m #
                # Без этой клавиши скрипт в Авто работать не будет! #
#####################################################################
                # Кормление в режиме Ручной #
var Foot = 0    # 1 - Кормить               #
                # 0 - Не кормить            #
#############################################

var a, j
var gl=''
dim Animal[71]

Animal[0]="Rabbit [npc]"
Animal[1]="Bull [npc]"
Animal[2]="Hind [npc]"
Animal[3]="Dog [npc]"
Animal[4]="Cow [npc]"
Animal[5]="Sheep [npc]"
Animal[6]="Chicken [npc]"
Animal[7]="Rat [npc]"
Animal[8]="Pig [npc]"
Animal[9]="Llama [npc]"
Animal[10]="Snake [npc]"
Animal[11]="Jackrabbit [npc]"
Animal[12]="Cat [npc]"
     
Animal[13]="Sheep [npc]"   ######################################
Animal[14]="Bittern [npc]" # Эти 4 позиции резерв если найдутся #
Animal[15]="Jay [npc]"     #      новые названия животных       #
Animal[16]="Grouse [npc]"  ######################################

######################
# Птички 54 штуки :) #
######################
Animal[17]="Bittern [npc]"
Animal[18]="Chaffinch [npc]"
Animal[19]="Coot [npc]"
Animal[20]="Corncrake [npc]"
Animal[21]="Cuckoo [npc]"
Animal[22]="Curlen [npc]"
Animal[23]="Dunlin [npc]"
Animal[24]="Fieldfare [npc]"
Animal[25]="Gannet [npc]"
Animal[26]="Glossy Ibis [npc]"
Animal[27]="Goshawk [npc]"
Animal[28]="Grouse [npc]"
Animal[29]="Hoopoe [npc]"
Animal[30]="Jackdaw [npc]"
Animal[31]="Jay [npc]"
Animal[32]="Kestrel [npc]"
Animal[33]="Kingfisher [npc]"
Animal[34]="KittiWake [npc]"
Animal[35]="Lapwing [npc]"
Animal[36]="Linnet [npc]"
Animal[37]="Little Grebe [npc]"
Animal[38]="Magpie [npc]"
Animal[39]="Mourhen [npc]"
Animal[40]="Nightingale [npc]"
Animal[41]="Nighttar [npc]"
Animal[42]="Partridge [npc]"
Animal[43]="Peregine [npc]"
Animal[44]="Pheasant [npc]"
Animal[45]="Pied Wagtail [npc]"
Animal[46]="Plover [npc]"
Animal[47]="Quail [npc]"
Animal[48]="Red Kite [npc]"
Animal[49]="Redstart [npc]"
Animal[50]="Reed Bunting [npc]"
Animal[51]="Robin [npc]"
Animal[52]="Rook [npc]"
Animal[53]="Sandmartin [npc]"
Animal[54]="Sandpiper [npc]"
Animal[55]="Shag [npc]"
Animal[56]="Skylark [npc]"
Animal[57]="Snipe [npc]"
Animal[58]="Song Thrush [npc]"
Animal[59]="Sparrow [npc]"
Animal[60]="Spoonbill [npc]"
Animal[61]="Starling [npc]"
Animal[62]="Swallow [npc]"
Animal[63]="Tern [npc]"
Animal[64]="Turtle Dove [npc]"
Animal[65]="Wheatear [npc]"
Animal[66]="Whimbell [npc]"
Animal[67]="Woodcock [npc]"
Animal[68]="Woodpecker [npc]"
Animal[69]="Woodpigeon [npc]"
Animal[70]="Wren [npc]"

UO.exec("terminate Reconnect;exec Reconnect")

if (Mode == 2) then
   if (UO.GetName('Ani') == '') then
      UO.Print('Укажи на животное на котором хотите качаться ОБЯЗАТЕЛЬНО!!!')
      UO.addobject('Ani')
      while UO.Targeting()
         wait(100)
      wend
   endif
   while (UO.SkillVal('Animal Taming','1') < 1000)
      wait(2000)
      TameAnimal('Ani',Release,Foot,Mode)
   wend
endif

if (Mode == 1) then
   while (UO.SkillVal('Animal Taming','1') < 1000)

      UO.DeleteJournal()
      UO.Press(Key)
      wait(1000)
      j = 0

      For a = 0 to 70
         if UO.InJournal(Animal[a]) then
            j = UO.JournalSerial(UO.InJournal(Animal[a])-1)
            wait(1000)
            if UO.GetName(j) == gl then
               UO.Print('ГЛЮКИ!!!')
            else
               TameAnimal(j,Release,Foot,Mode)
            endif
         endif
      next

      UO.Print('Анализ NPC закончин.')
      if (j == 0) then
         UO.Print('NPC Нет')
      endif
      wait(2000)

   wend
endif

endsub

sub TameAnimal(Animal, Rel, Eat, Mod)

var msg1 = "It seems to accept you"
var msg2 = "You fail to tame the"
var msg3 = "I am too far away"
var msg4 = "creature very hungry"
var msg5 = "quantity"; taming skill"

   UO.Print('Приручаем '+UO.GetName(Animal)+'...')
   GotoXY(UO.GetX(Animal),UO.GetY(Animal),2)
   DeleteJournal(msg1)
   DeleteJournal(msg2)
   DeleteJournal(msg3)
   DeleteJournal(msg4)
   DeleteJournal(msg5)

   While not UO.InJournal(msg1) and not UO.InJournal(msg4) and not UO.InJournal(msg5)
      UO.WarMode(0)
      UO.WaitTargetObject(Animal)
      UO.UseType('0x0E82')
      While not UO.InJournal(msg1) and not UO.InJournal(msg2) and not UO.InJournal(msg3) and not UO.InJournal(msg4) and not UO.InJournal(msg5)
         wait(100)
      wend
      if UO.InJournal(msg2) or UO.InJournal(msg3) then
         GotoXY(UO.GetX(Animal),UO.GetY(Animal),2)
      endif
      DeleteJournal(msg2)
      DeleteJournal(msg3)
   wend

   if UO.InJournal(msg4) then
      UO.Print(UO.GetName(Animal)+' Голодный.')
      if (Eat == 1) and (Mod == 2) then
         Korm(Animal)
      else
         KillAnim(Animal)
      endif
   endif

   if UO.InJournal(msg5) then
      UO.Print(UO.GetName(Animal)+' Нехватает скилла.')
      KillAnim(Animal)
   endif

   if UO.InJournal(msg1) then
      UO.Print(UO.GetName(Animal)+' Приручен!!!')
      if not (UO.GetName(Animal) == '') then
         if (Rel == 1) then
            UO.msg('All Release')
            UO.msg('GuArDs')
         else
            UO.sayu('All Come')
            UO.Attack(Animal)
            UO.DeleteJournal()
            While not UO.InJournal("Body of")
               wait(100)
            wend
         endif
      endif
   endif

endsub

sub DeleteJournal(msg)
   var nomer=UO.InJournal(msg)
   if nomer>0 then
      UO.SetJournalLine(Nomer - 1," ----- 8< ----- ")
      DeleteJournal(msg)
   endif
endsub

sub KillAnim(Anim)
   UO.Print('Идём убивать '+UO.GetName(Anim)+'...')
   UO.Attack(Anim)
   GotoXY(UO.GetX(Anim),UO.GetY(Anim),1)
   UO.DeleteJournal()
   While not UO.InJournal("Body of")
      wait(1000)
      if not UO.InJournal("Body of") and (UO.GetX(Anim) >= 664) and (UO.GetY(Anim) >= 928) then
         GotoXY(UO.GetX(Anim),UO.GetY(Anim),1)
      endif
   wend
endsub

sub Korm(An)
   if UO.Count('0x0F36') then
      UO.findtype('0x0F36','-1','backpack')
      UO.SetReceivingContainer('An')
      wait(500)
      UO.Grab('1','finditem')
      wait(2000)
      UO.UnSetReceivingContainer('An')
   else
      UO.Print('В рюкзаке нет сена!')
      UO.Print('Купите сено или измените настройки кормления!')
      UO.Print('Все скрипты Terminate')
      UO.exec("terminate all")
   endif
endsub

sub Reconnect()
var ReconnectTime,rFlag
ReconnectTime='0'
rFlag=1
repeat
   while (UO.ObjAtLayer('Bpack')=='')
      if rFlag then
         ReconnectTime=MakeTime()
         rFlag=0
      end if
      wait(20000)
      UO.Lclick(316,270)
      wait(3000)
      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)
      UO.exec("terminate main;exec start")
      rFlag=1
      ReconnectTime='0'
   end if
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
   end if
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
   end if
next
ret=t+" @ "+d
return ret
end sub

sub start()
   UO.WarMode(1)
   wait(100)
   UO.WarMode(0)
   wait(100)
   UO.WarMode(1)
   wait(20000)
   UO.exec("terminate main;exec main")
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) <= prec and Numb(y-myY) <= prec 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


не могу понять что с ним - юзает с клавиши аллнейм и пишет что НПС не обнаружены, хотя рядом стоят...
IIpocTo TaK
Posts: 35
Joined: 2006-09-16 00:40:39

Post by IIpocTo TaK »

весь день юзал поиск и наконец догадался увидев одну фразу доброго человека, скрипт работает, теперь новая проблема, скрипт находит труп животного и пытается его тамить, естественно это не получается и скрипт встает....

кто может помочь пожалуйста напишите...

там есть строчка
While not UO.InJournal("Body of ")
wait(100)
wend
это помоему оно, но не работает что нужно вставить после проверки имен в журнале?
IIpocTo TaK
Posts: 35
Joined: 2006-09-16 00:40:39

Post by IIpocTo TaK »

ребят ну помогите, как сделать игнор в журнале строчки которая начинается на "Body of" ???
IIpocTo TaK
Posts: 35
Joined: 2006-09-16 00:40:39

Post by IIpocTo TaK »

ВСЕМ СПАСИБО, методом тыка скрипт был исправлен :)
сам с собой мла, как шизофреник...
$keR
Posts: 185
Joined: 2006-05-25 23:02:02
Location: Uoo

Post by $keR »

IIpocTo TaK wrote:ВСЕМ СПАСИБО, методом тыка скрипт был исправлен :)
сам с собой мла, как шизофреник...

чел я с тобой-))
слеи плз скрипт рабочий не в падлу
IIpocTo TaK
Posts: 35
Joined: 2006-09-16 00:40:39

Post by IIpocTo TaK »

Я его специально под шард The Eragon исправлял, и специально для загона чтоб стоял и еще кучу скилов качал пока живку ждет, чтоб за загон не ломился других тамить... Если та не на этом шарде врятли он тебе подойдет...
Post Reply