Yoko
http://forum.yoko.com.ua/

трабла с UO.UseType()
http://forum.yoko.com.ua/viewtopic.php?f=3&t=1774
Page 1 of 1

Author:  Sfagnum [ 2004-10-29 08:17:56 ]
Post subject:  трабла с UO.UseType()

у меня тут проблемка возникла, буквально на днях с UO.UseType() на майнинге и тинкеринге, не понятно с чего вдруг теряется ссылка(?) на тип инструмента в бэкпаке, т.е. чар работает - всё ок, а потом упс.. и пишет [b]Item not found[b](вроде так).
кидаешь этот же инструмент(лопата/тинкер тулс) в пак по-новой и всё ок - дальше работает.
через UseObject - замарачиваться чтоль?

ЗЫ этот майнинг юзал в течении 2-3 недель без проблем - non stop'ом

DRW

Author:  AGRS [ 2004-10-29 12:58:44 ]
Post subject: 

Скрипт в студию. Или хотябы фрагментик.

Author:  Sfagnum [ 2004-10-29 13:09:49 ]
Post subject: 

AGRS wrote:
Скрипт в студию. Или хотябы фрагментик.
дома он... :(
а вообще стандартная конструкция, что-то типа
Code:
sub Dig()
var x,y,z='0',TileNum='1339', t=0
   for x=-1 to 1
      for y=-1 to 1
         while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock")
            ToHide()
            CheckLag()
            UO.WaitTargetTile(TileNum,STR(UO.GetX()+x),STR(UO.GetY()+Y),z)
            UO.UseType(tShovel)
            repeat
               wait(500)
            until UO.InJournal("Try mining") OR UO.InJournal("You put") OR UO.InJournal("You loosen") OR UO.InJournal("There is no") OR UO.InJournal("That is too") OR UO.InJournal("OOPS") OR UO.InJournal("attacking you") OR UO.Dead()
            if UO.InJournal("OOPS") then
               t = 1
            end if
            if UO.InJournal("attacking you") OR UO.Dead() then
               UO.CloseUO()
            end if
         wend
         if t == 1 then
            UO.CloseUO()
         end if
      next
   next
end sub

Author:  South [ 2004-10-29 13:48:06 ]
Post subject: 

лично по моему опыту

у мну на шарде UO.UseType так и не заработал. я не стал мучатся и дуплить в чем трабла и щас просто использую
UO.Exec("usetype ....")

Author:  Sfagnum [ 2004-10-29 13:49:43 ]
Post subject: 

South wrote:
лично по моему опыту

у мну на шарде UO.UseType так и не заработал. я не стал мучатся и дуплить в чем трабла и щас просто использую
UO.Exec("usetype ....")
она вообще не работает или всё таки какое то сообщение выдаёт?

Author:  Ex-Brodyaga [ 2004-10-29 21:11:50 ]
Post subject: 

Где ты описал tShovel? Если она уже заданна в объектах, то напиши UO.UseObject(tShovel), может ты просто ещё лопату кидаешь на пол, она поворачивается и у неё меняется тип, вобщем эксперементируй :)

Author:  AGRS [ 2004-10-29 21:21:35 ]
Post subject: 

Ex-Brodyaga wrote:
Где ты описал tShovel? Если она уже заданна в объектах, то напиши UO.UseObject(tShovel), может ты просто ещё лопату кидаешь на пол, она поворачивается и у неё меняется тип, вобщем эксперементируй :)


В кавычках.

Author:  Sfagnum [ 2004-10-30 01:58:09 ]
Post subject: 

не там копаете...
вот точно то что юзаю:
Code:
var tShovel='0x0F3A' ; 0x0F39

sub main()
if UO.Count('0x0F3A') > 0 then
   tShovel='0x0F3A'
else
   tShovel='0x0F39'
end if
...
end sub

sub Dig()
var mx = UO.GetX("self"), my = UO.GetY("self"), mz = UO.GetZ("self"),TileNum='1339', t=0
var i,j
   if UO.Dead() then
      UO.Exec('terminate all')
   end if
   for i = mx-1 to mx+1
         for j = my-1 to my+1
            tohide()
            UO.Print("Now Mining In: "+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")                
               tohide()
               CheckLag()
               UO.Waittargettile("1341", str(i), str(j), str(mz))
               UO.Usetype(tShovel)
               while not UO.InJournal("You put") 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") and not UO.InJournal("OOPS") and not UO.InJournal("attacking you")             
                  wait(500)                   
               wend
               if UO.InJournal('something with ore') or UO.InJournal("OOPS") then
                  t=1
               end if
               if UO.InJournal("but fail") then
                  wait(1000)
               end if               
            wend
            UO.DeleteJournal()
         next
      next
   if t == 1 then       
      UO.CloseUO()
   end if   
   return 1
end sub

и повторюсь перестаёт копать хз когда (ИМХО произвольно), с выше описаным сообщением, при "перекиде" этой же лопаты обратно а бэкпак (ложиться точно так же) продолжает копать...

Author:  Edred [ 2004-10-30 13:24:20 ]
Post subject: 

Sfagnum wrote:
не там копаете...
вот точно то что юзаю:
Code:
var tShovel='0x0F3A' ; 0x0F39

sub main()
if UO.Count('0x0F3A') > 0 then
   tShovel='0x0F3A'
else
   tShovel='0x0F39'
end if
...
end sub

sub Dig()
var mx = UO.GetX("self"), my = UO.GetY("self"), mz = UO.GetZ("self"),TileNum='1339', t=0
var i,j
   if UO.Dead() then
      UO.Exec('terminate all')
   end if
   for i = mx-1 to mx+1
         for j = my-1 to my+1
            tohide()
            UO.Print("Now Mining In: "+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")                
               tohide()
               CheckLag()
               UO.Waittargettile("1341", str(i), str(j), str(mz))
               UO.Usetype(tShovel)
               while not UO.InJournal("You put") 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") and not UO.InJournal("OOPS") and not UO.InJournal("attacking you")             
                  wait(500)                   
               wend
               if UO.InJournal('something with ore') or UO.InJournal("OOPS") then
                  t=1
               end if
               if UO.InJournal("but fail") then
                  wait(1000)
               end if               
            wend
            UO.DeleteJournal()
         next
      next
   if t == 1 then       
      UO.CloseUO()
   end if   
   return 1
end sub

и повторюсь перестаёт копать хз когда (ИМХО произвольно), с выше описаным сообщением, при "перекиде" этой же лопаты обратно а бэкпак (ложиться точно так же) продолжает копать...


Ну и никакой траблы нет. Абсолютно все логично. Изменение типа лопаты при юзе. Такое может иногда происходить. У тебя же переназначение типа происходит один раз в main, потом при использовании такой проверки уже не происходит. Попробуй переставить этот if...else...endif перед командой UO.UseType(...)

Author:  AGRS [ 2004-10-30 13:36:22 ]
Post subject: 

Нет. Только если на пол кинуть. на ДРВ в паке никогда не флипается.

Author:  Sfagnum [ 2004-10-30 15:32:13 ]
Post subject: 

AGRS wrote:
Нет. Только если на пол кинуть. на ДРВ в паке никогда не флипается.
не кидается :)

Author:  Sfagnum [ 2004-10-30 17:49:39 ]
Post subject: 

1. вообщем тип пральный - и не меняется в течении скрипта
2. юзаю вроде тоже правильно.

проблема в том, что в хз какой момент UseType не находит этот тип, который юзается, от чего - вот проблема.

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/