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, а ты любишь рыбалить?


Нет. :roll:

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? понятия не имею как пользоваться :oops:

кажись догнал..

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" я не знаю как узнать :oops: :oops:

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