Fishing_

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
begemut
Posts: 3
Joined: 2005-06-16 04:48:18

Fishing_

Post by begemut »

есть скрипт

Code: Select all

sub fishing() 
var mx, my, mz, i, j 
start: 
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 
if UO.dead() then 
return 
endif 
UO.Print("Now Fishing In: "+str(mx-i)+" "+str(my-j)) 
while not UO.InJournal("no fish here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in water") and not UO.InJournal("You pull") 
UO.DeleteJournal() 
UO.Waittargettile("1341", str(i), str(j), str(mz)) 
UO.Usetype("0x0DC0") 
if UO.dead() then 
return 
endif 
if UO.Weight>720 then 
return 
endif 
while not UO.InJournal("You pull") and not UO.InJournal("location") and not UO.InJournal("no fish") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in water") 
wait (100) 
if UO.InJournal("You pull") then 
UO.findtype('0x14EB','0x0000','ground') ;tattered map 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x05F6','ground') ;Truly rare fish 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x01BB','ground') ;Prize fish 
UO.grab ('1','finditem') 
wait (200) 
end if 
wend 
wend 
UO.DeleteJournal() 
next 
next 
goto start 
end sub 
работал прекрасно, но вот перешел на другой шард и там если из воды ничего не вылавливаешь сообщений никаких не появляется, в резыльтате скрипт останавливается.
как поставить условие на время . чтоб если 7 секунд нет ни каких сообщений то скрипт продолжал свою работу.
Tergos
Posts: 52
Joined: 2005-06-12 09:14:09
Location: Moscow, Russia
Contact:

Post by Tergos »

А если вот это

Code: Select all

while not UO.InJournal("You pull") and not UO.InJournal("location") and not UO.InJournal("no fish") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in water") 
wait (100) 
if UO.InJournal("You pull") then 
UO.findtype('0x14EB','0x0000','ground') ;tattered map 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x05F6','ground') ;Truly rare fish 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x01BB','ground') ;Prize fish 
UO.grab ('1','finditem') 
wait (200) 
end if 
wend 
поменять на

Code: Select all

var k
...
k=0
repeat
wait (100) 
if UO.InJournal("You pull") then 
UO.findtype('0x14EB','0x0000','ground') ;tattered map 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x05F6','ground') ;Truly rare fish 
UO.grab ('1','finditem') 
wait (200) 
UO.findtype('0x0DD6','0x01BB','ground') ;Prize fish 
UO.grab ('1','finditem') 
wait (200) 
end if
k=k+1 
until UO.InJournal("You pull") or UO.InJournal("location") or UO.InJournal("no fish") or UO.InJournal("but fail") or UO.InJournal("far away") or UO.InJournal("in water") or k>69
Вроде так он 70 раз прокрутит if без его исполнения каждый раз выжидая по 0,1 секунды. и получится как раз 7 секунд.
Но я не уверен - проверить работоспособность сейчас не могу. Пусть более опытные товарищи подскажут - прав я или нет.
Arsuri
Posts: 62
Joined: 2005-02-25 13:31:26
Location: DRW, [Hussars]
Contact:

Post by Arsuri »

Code: Select all

sub main() 
var mx, my, mz, i, j, LT, y 
Dim t_item[3], c_item[3] 
t_item[0]='0x14EB' 
t_item[1]='0x0DD6' 
t_item[2]='0x0DD6' 
c_item[0]='0x0000' 
c_item[1]='0x05F6' 
c_item[2]='0x01BB' 
while not uo.dead() or UO.Weight<=720 
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 
      if UO.dead() then 
         return 
      endif 
      LT=uo.timer() 
      UO.Print("Now Fishing In: "+str(mx-i)+" "+str(my-j)) 
      while not UO.InJournal("no fish here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in water") and not UO.InJournal("You pull") and uo.timer()<=LT+70 
         UO.DeleteJournal() 
         UO.Waittargettile("1341", str(i), str(j), str(mz)) 
         UO.Usetype("0x0DC0") 
         #UO.Usetype("0x0DBF")
         repeat
         	wait(200)
         until UO.InJournal("no fish here") or UO.InJournal("location") or UO.InJournal("far away") or UO.InJournal("in water") or UO.InJournal("You pull") or uo.timer()>LT+70
         if UO.dead() then 
            return 
         endif 
         if UO.Weight>720 then 
            return 
         endif 
      wend        
      for y=0 to 2 
          uo.findtype(t_item[y], c_item[y], 'ground') 
          wait(300) 
          uo.moveitem('finditem', '0', 'backpack') 
     wait(300) 
      next      
      UO.DeleteJournal() 
   next 
next 
wend 
end sub
Откорректировал...Должно пахать.
Last edited by Arsuri on 2005-06-30 00:54:36, edited 2 times in total.
begemut
Posts: 3
Joined: 2005-06-16 04:48:18

Post by begemut »

Arsuri твой скрипт глючит не по детски, я также пробовал и у меня не получилось, может с обработкой таймера какая т о проблема.
Tergos попробовал нормально работает, только удочку через раз закидывает но это не проблема.
Всем огромное спасибо что откликнулись и помогли.
Arsuri
Posts: 62
Joined: 2005-02-25 13:31:26
Location: DRW, [Hussars]
Contact:

Post by Arsuri »

begemut wrote:Arsuri твой скрипт глючит не по детски, я также пробовал и у меня не получилось, может с обработкой таймера какая т о проблема.
Tergos попробовал нормально работает, только удочку через раз закидывает но это не проблема.
Всем огромное спасибо что откликнулись и помогли.
Откорректировал и убрал лишнее... У меня работал. Проверяй.
begemut
Posts: 3
Joined: 2005-06-16 04:48:18

Post by begemut »

Arsuri после корректировки все тоже зависает видно что то с таймером не хочет работать
Arsuri
Posts: 62
Joined: 2005-02-25 13:31:26
Location: DRW, [Hussars]
Contact:

Post by Arsuri »

begemut wrote:Arsuri после корректировки все тоже зависает видно что то с таймером не хочет работать
Проблема не в таймере, а в моей невнимательности... Странно, что он у меня вообще в тот раз работал. :roll: :(
Post Reply