трабла с UO.UseType()
Moderators: Murderator+, Murderator
трабла с UO.UseType()
у меня тут проблемка возникла, буквально на днях с UO.UseType() на майнинге и тинкеринге, не понятно с чего вдруг теряется ссылка(?) на тип инструмента в бэкпаке, т.е. чар работает - всё ок, а потом упс.. и пишет [b]Item not found[b](вроде так).
кидаешь этот же инструмент(лопата/тинкер тулс) в пак по-новой и всё ок - дальше работает.
через UseObject - замарачиваться чтоль?
ЗЫ этот майнинг юзал в течении 2-3 недель без проблем - non stop'ом
DRW
кидаешь этот же инструмент(лопата/тинкер тулс) в пак по-новой и всё ок - дальше работает.
через UseObject - замарачиваться чтоль?
ЗЫ этот майнинг юзал в течении 2-3 недель без проблем - non stop'ом
DRW
дома он...AGRS wrote:Скрипт в студию. Или хотябы фрагментик.

а вообще стандартная конструкция, что-то типа
Code: Select all
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
-
- Junior Expert
- Posts: 150
- Joined: 2004-04-12 20:26:41
не там копаете...
вот точно то что юзаю:
и повторюсь перестаёт копать хз когда (ИМХО произвольно), с выше описаным сообщением, при "перекиде" этой же лопаты обратно а бэкпак (ложиться точно так же) продолжает копать...
вот точно то что юзаю:
Code: Select all
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
и повторюсь перестаёт копать хз когда (ИМХО произвольно), с выше описаным сообщением, при "перекиде" этой же лопаты обратно а бэкпак (ложиться точно так же) продолжает копать...
Sfagnum wrote:не там копаете...
вот точно то что юзаю:Code: Select all
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(...)