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

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