Page 1 of 1

вставка (копка)

Posted: 2013-07-21 13:49:31
by dubd
прив народ всем.
помогите пожалуйста вставить. Перед тем как чар улетает - пьёт инвиз. Ну он достигает веса 600 кило в сумке, пьёт инвиз и улетает.

Code: Select all

mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (500)
if uo.injournal("heavy") or uo.dead() then
pwav()                   
endif
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
pwavw()
wait(180000) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next   
wend
if uo.weight > 625 then  ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
while not UO.Hidden()
UO.UseSkill("Stealth")
wait(4000)
wend
VAR UnloadCont='0x403B3732' ; АЙДИ сундука для руды
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

Re: вставка (копка)

Posted: 2013-07-21 23:44:35
by dubd
вот тип и цвет инвиз напитка -

Code: Select all

"0x0F0E" ;"0x0631" 

Re: вставка (копка)

Posted: 2013-07-22 14:44:44
by dubd
нароод вы где все :?: :?:

в общем вставил с грехом пополам питьё бутылки перед тем, как улететь. Сейчас можете подсказать пожалуйста, где именно вставлять питьё бутылки, как только он обратно в шахту возвращаетца?

Re: вставка (копка)

Posted: 2013-08-03 23:28:33
by dubd
подскажите пожалуйста, а возможно ли сделать так, чтобы чар пил инвиз после того как второй раз в пещеру прилетит? А не сразу как запускаешь скрипт.

Re: вставка (копка)

Posted: 2013-08-04 08:55:16
by Mirage
Выпить инвизку

Code: Select all

       if UO.Count('0x0F0E','0x0631') then
          UO.usetype('0x0F0E','0x0631')
       endif

вписываете там где вам нужно и чар пьет инвизку когда вам нужно.

Чтобы пил перед отлетом домой вставлять нужно перед строчкой:

Code: Select all

uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )



перед отлетом в шахту - как это не странно - вставлять питьё надо перед строчкой

Code: Select all

uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )



Там же вроде русские комментарии - видно где и что. :|

Re: вставка (копка)

Posted: 2013-08-04 17:09:34
by dubd
спасиб Мираж! Пардон что докучаю, но дело в том, что перед полётом в шахту он пьёт инвиз, а в шахту прилетает не в инвизе :) :) (ну это везде так кажись). Можно ли сделать, что как только он в шахту обратно прилетает - пьёт инвиз! Тоесть полусаетца надо вставлять перед началом копки?

Re: вставка (копка)

Posted: 2013-08-04 17:21:29
by Mirage
выше

Code: Select all

UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4

попробуй.
Там где я играл копание выводит из инвиза. Но это специфика сервера скорее чем общее правило.
И он же все равно прятаться старается хайдингом. Зачем тратить вес и деньги на инвизки? ПК захочет поймать - поймает. Проще вписать оживление с креста.

Re: вставка (копка)

Posted: 2013-08-04 20:01:20
by dubd
да Мираж спс!
А какую задержку на хайдинг посоветуешь? Чтобы быстро прятался.

Re: вставка (копка)

Posted: 2013-08-04 22:14:10
by Mirage
быстрее чем на сервере по правилам все равно не получится.
Я обычно использую вот такую пряталку:

Code: Select all

sub ToHide()
   VAR LastTimer, n=0, HidFlag=1
   if UO.Hidden() then
      HidFlag=0
   else
   end if
   while HidFlag
      uo.DeleteJournal()
      LastTimer=UO.Timer()
      UO.Exec('warmode 0')
      UO.UseSkill('Hiding')
      repeat
         wait(100)
      until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
      if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then
         HidFlag=0
      else
         n=n+1
         if n>3 then
            UO.Set('quiet','0')
            UO.Print('Спрятаться не получается')
            UO.Set('quiet','1')
            MyTerminate()
         end if
      end if
   wend
end sub

Вписываешь куда требуется ToHide()
Пытается спрятаться 3 раза, если не получается - вырубает скрипт функцией MyTerminate()
Сообщения возможно потребуется поменять под сервер.

Re: вставка (копка)

Posted: 2013-08-04 23:42:39
by dubd
Мираж спс что поделился :)
вот сюда вставил - работает:

Code: Select all

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
###while not UO.Hidden()
###UO.Warmode("0")
###uo.print("Прячемся...")
###UO.UseSkill("Hiding")
###wait(1000)
###wend
ToHide()
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif


Ток он как прилетит после выгрузки - немножко стоит секунды 2-3, а потом ток прячетца. Или так и надо?

Re: вставка (копка)

Posted: 2013-08-05 06:31:39
by Mirage
Проверь сообщение на удачную попытку спрятаться You have hidden yourself well. Если не такое то твое надо вставить вот в эти две строки.

Code: Select all

      until UO.InJournal("can't seem to hide|to perform|stop trying|прекратили|не удалось|удачно|You have hidden yourself well") || LastTimer+50<UO.Timer()
      if UO.InJournal("0xA5F8|удачно|You have hidden yourself well") then