Page 1 of 1
переход на следующий тайл
Posted: 2008-07-05 14:54:09
by uisran
пишу скрипт на фишинг под KR. вобщем суть проста чар рыбалит вокруг себя, ненужное выкидывает... (остальное не важно)
а проблема вот в чем. если удочкой тыкается не в воду, то ничего не пишется и просто ничего не происходит. какое событие можно записать для перехода на следующий тайл?
Posted: 2008-07-05 15:02:03
by Scripts Writer
Kynep, а ты любишь рыбалить?
По теме: Динамическая задержка, таймер
Posted: 2008-07-05 15:14:25
by uisran
раньше никогда не пользовался( как реализовать?
пока у меня было вот так
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.InJournal("location") and not UO.InJournal("far away")
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("tackle")
то есть мне нужно "если ничего не происходит 10 сек то переходим к след тайлу"
Posted: 2008-07-05 15:21:23
by Scripts Writer
Code: Select all
var i
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
i=0
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("tackle")
while i<100 and not UO.InJournal("location") and not UO.InJournal("far away")
i=i+1
wait(100)
wend
Posted: 2008-07-05 16:22:03
by uisran
чето никак не выходит, если так то он просто начинает рыбачить в том же тайле((
убрал все лишнее, скрипт выглядит вот так
Code: Select all
sub fishing()
var mx,my,mz,i, j
uo.print('Show tackle ')
uo.exec('addobject tackle')
while uo.targeting()
wait(100)
wend
start:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
for i = mx-4 to mx+4
for j = my-4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Hiding")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Fishing in coords: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("don't seem") and not UO.InJournal("you need to") and not UO.InJournal("target cannot")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("tackle")
while not UO.InJournal("You pull out")
wait(500)
wend
wend
UO.DeleteJournal()
goto start
Posted: 2008-07-05 16:58:52
by uisran
похоже дело в RunUO а не в скрипте(
Posted: 2008-07-05 17:49:44
by Kynep
Scripts Writer wrote:Kynep, а ты любишь рыбалить?
Нет.

Posted: 2008-07-05 19:46:13
by uisran
в kingdom Reborn не получится использовать UO.InJournal?
Posted: 2008-07-06 02:14:08
by Grin
Получится
Только там скорей понятие cliloc фигурировать будет.
Из товоего скрипта не слудует что он рыбачит в одном месте, из него следует что он скорей всего после первой попытки чтото выловить просто встанет. Если встанет, т опроблема в клилоках.
,showjournal и ты у видишь все в клилочном виде. Тебе остается только подобобрать клилоки под твои сообщения.
Если надо могу выложить полный список клилоков.
Posted: 2008-07-06 09:56:15
by uisran
а где можно посмотреть описание cliloc? понятия не имею как пользоваться
кажись догнал..
Posted: 2008-07-06 10:28:52
by uisran
чтобы разобраться решил попробовать тоже самое на мнининге, теперь скрипт мне показывает что переходит на разные тайлы, но вот копать не хочет
Code: Select all
sub mining()
var mx, my, mz, i, j,
var Text1 = "cliloc# 0x5DE0" #you dig
var Text2 = "cliloc# 0xAD03" #you loosen
var Text3 = "cliloc# 0xA2DE" #far away
var Text4 = "cliloc# 0xA867" #you can't mine that
var Text5 = "cliloc# 0xAD00" #There is no ore
uo.print('!!Choose a Shovel!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
repeat
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
UO.Print("Dig in coords: "+str(mx-i)+" "+str(my-j))
while not Text5 and not Text4
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341" , str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not Text1 and not Text2 and not Text3 and not Text4
wait (500)
next
wend
wend
UO.Deletejournal()
until UO.Dead()
endsub
Posted: 2008-07-06 10:45:55
by Kynep
uisran wrote:чтобы разобраться решил попробовать тоже самое на мнининге, теперь скрипт мне показывает что переходит на разные тайлы, но вот копать не хочет
Code: Select all
for i = mx-4 to mx+4
for j = my -4 to my+4
Ни чего не забыл? По моему чего то не хватает в конце скрипта.... Подскажу, for-next.
Posted: 2008-07-06 10:52:03
by uisran
Kynep wrote:uisran wrote:чтобы разобраться решил попробовать тоже самое на мнининге, теперь скрипт мне показывает что переходит на разные тайлы, но вот копать не хочет
Code: Select all
for i = mx-4 to mx+4
for j = my -4 to my+4
Ни чего не забыл? По моему чего то не хватает в конце скрипта.... Подскажу, for-next.
да, конечно (просто я выложил не весь скрипт, вручную выбирал куски), но проблема не в этом, а в том что он не юзает лопату
может проблема в типе тайла? "1341" я не знаю как узнать

Posted: 2008-07-06 12:58:43
by Grin
В пещене несколько видов тайлов.
На некоторых серверах надо точно указывать тайл, на других еще и координата Z должна быть правильной.
,infotile
а двльше, если есть проверка состороны сейрвера на тайл, то или перебором типов или через ASM (Дополнение к инжекту) или через uo.privategettile
Можно попробовать
uo.privatedig dx dy [picktype] [mintile] [maxtile]
Posted: 2008-07-06 13:45:54
by uisran
нет, проблема не в тайлах(
Posted: 2008-07-06 13:55:12
by Kynep
uisran wrote:нет, проблема не в тайлах(
while not Text1 and not Text2 and not Text3 and not Text4
wait (500)
next
wend
Зачем оно там? И ваапще прежде чем такое спрашивать выложи сначала норм скрипты которым ты пытаешься копать, потому что в том что здесь выложен ошибок куча, он по определению не будет копать.
Posted: 2008-07-06 21:01:50
by Destruction
Я не опаздал отметится про "ничего" не происходит? - Весь топик не читал, но предлагаю:
,set soundecho 1
,set animecho 1