Page 1 of 2
mining
Posted: 2017-05-05 19:20:14
by dubd
привет народ. есть не большой скрипт на мининг, но есть чорные дыры в скрипте. По идее как докапает до веса 650, то должен реколитца к сундуку - но перс делает что то неведомое.
Code: Select all
sub main()
var my, mx,i,j
while (not uo.dead())
mx = UO.GetX("self")
my = UO.GetY("self")
tohide()
for i = mx-3 to mx+3
for j = my-3 to my+3
kopka(i,j)
UO.Print("Копаем в: "+str(mx-i)+" "+str(my-j))
next
next
wend
end sub
Code: Select all
sub kopka(i,j)
VAR MaxWeight=650
VAR Pic="0x0E85"
if UO.Weight>=MaxWeight then
uo.WaitGump(21)
uo.UseObject(0x41518126)
endif
loot()
uo.WaitGump(94)
uo.UseObject(0x41518126)
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
????????????????????????????????????????????????????????????????????
while (not uo.injournal("no ore")) and (not uo.injournal("in rock")) and (not uo.injournal("You have no line")) and (not uo.injournal("trhtrhr")) and (not uo.injournal ("That is too far"))
tohide()
UO.Waittargettile("1339", str(i), str(j),"0")
UO.Usetype (Pic)
uo.deletejournal()
while (not uo.injournal("fail")) and (not uo.injournal("put")) and (not uo.injournal("You have no line")) and (not uo.injournal("elemental")) and (not uo.injournal("no ore")) and (not uo.injournal("in rock")) and (not uo.injournal ("That is too far"))
wait(100)
wend
wend
uo.deletejournal()
end sub
поссле
Code: Select all
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
- чорная дыра. чар должен обратно летет.
Re: mining
Posted: 2017-05-07 18:20:23
by dubd
подскажите пожалуйста конструкцию, если набрал 600 веса то рекол делает.
Code: Select all
sub dig(i,j)
VAR MaxWeight=650
VAR Pic="0x0E85"
if UO.Weight>=MaxWeight then
Code: Select all
if UO.Weight>=MaxWeight then
Recallhome()
endif
это ок. Подскажите теперь пожалуйста в какой блок правильней вставлять мессаги для майнинга?
наподобии таких
Code: Select all
while (not uo.injournal("no ore")) and (not uo.injournal("in rock"))..............
Re: mining
Posted: 2017-05-07 21:06:35
by dubd
повторил циклы while, repeat но пока не очень получаетца правильно всё оформить.
Re: mining
Posted: 2017-05-20 09:44:37
by Incorrect User
Разве not нужно прятать в скобки?
Code: Select all
while not uo.injournal("fail|put|You have no line|elemental|no ore|in rock|That is too far")
Re: mining
Posted: 2017-05-22 22:18:26
by dubd
спасибо за ответ! как можно правильней оформить?
Re: mining
Posted: 2017-05-22 22:48:53
by Incorrect User
Как-то так
Code: Select all
sub main()
var x, y, Pic = "0x0E85", MaxWeight = 650, msg = "fail|put|You have no line|elemental|no ore|in rock|That is too far", endmsg = "You have no line|elemental|no ore|in rock|That is too far"
while not uo.dead()
tohide()
for x = -3 to 3
for y = -3 to 3
repeat
uo.deletejournal(msg)
UO.Print("Копаем в: " + str(uo.getx() + x) + " " + str(uo.gety() + y))
uo.waittargettile(1339, uo.getx() + x, uo.gety() + y, uo.getz())
UO.Usetype(Pic)
repeat
wait(100)
until uo.injournal(msg) or uo.dead()
until uo.injournal(endmsg) or UO.Weight >= MaxWeight or uo.dead()
if uo.dead() then
uo.print("You Dead!")
uo.exec("Terminate all")
end if
if UO.Weight >= MaxWeight then
elemcheck()
uo.useskill("Hiding")
uo.WaitGump(21)
uo.UseObject(0x41518126)
wait(10000)
loot()
uo.WaitGump(94)
uo.UseObject(0x41518126)
wait(10000)
tohide()
end if
next
next
wend
end sub
Re: mining
Posted: 2017-05-23 20:04:16
by dubd
спасиб что нашёл время. но перс почему то реколитца с любым весом, не обращая внимание на - MaxWeight = 50 и if UO.Weight>=MaxWeight then
uo.WaitGump(21)
uo.UseObject(0x40018126)
а потом когда обратно прилетает - копнёт один раз и вылетает ошибка линия 29 - runtime error - invalid operation for this type

29 - UO.Print("Now Mining In: "+str(mx-i)+" "+str(my-j))
Re: mining
Posted: 2017-05-23 20:50:58
by Incorrect User
Поправил пост, перед реколом должен писать вес.
Re: mining
Posted: 2017-05-23 21:12:01
by dubd
блин сейчас нету ошибок, но перс при старте скрипта - просто перебирает в паке оры, как будто выгружает. в чём кроется это?
Re: mining
Posted: 2017-05-23 21:17:18
by Incorrect User
Видимо это работает функция loot(), удали строку с ней, если она не нужна или не в том месте.
Re: mining
Posted: 2017-05-23 21:27:03
by dubd
убрал, но он так и так почему то оры ищет. Не находит и пишется - cant see the target. Постоит, копнёт и опять you cant see the target)))))))))))))))
Re: mining
Posted: 2017-05-23 21:33:57
by dubd
User сорян! У меня буки не было он её искал!
Ща тещу скрипт.
Re: mining
Posted: 2017-05-23 21:41:21
by dubd
Вроде заработало, только после месаги There is no ore to mine перс реколитца из шахты опять в эту шахту))))))))))))))))))
Re: mining
Posted: 2017-05-23 21:43:16
by Incorrect User
Ну так у тебя же рекол посреди скрипта или нет?
Code: Select all
uo.WaitGump(94)
uo.UseObject(0x41518126)
wait(10000)
Re: mining
Posted: 2017-05-23 21:46:09
by dubd
ну да! это обратно лететь. Сейчас перс капнёт 1 оры и летит в шахту обратно, где и находитца!)))) User, есть ещё желание поправить немножно,?
Re: mining
Posted: 2017-05-23 21:50:38
by Incorrect User
Какое же это обратно, если оно посреди копки вставлено и без всяких условий? Я уже понял что ты вообще не понимаешь что к чему. Давай просто по порядку напиши что и как должно быть, я сделаю.
Re: mining
Posted: 2017-05-23 21:56:55
by dubd
Code: Select all
sub Needhelp()
UO.Print( "User, need your help!" )
wait(50)
endsub
В общем перс начинает копать в забое, набирает 650 веса - срабатывает рекк к дому - дальше процедура loot() - выгрузился ок - полёт в забой обратно - и так по кругу.
Я пока застрял на циклах.
Re: mining
Posted: 2017-05-23 22:00:25
by Incorrect User
Значит это рекол домой
Code: Select all
uo.WaitGump(21)
uo.UseObject(0x41518126)
А это рекол в шахту, все верно? И копать нужно тайл только один удар или пока не появится сообщение no Ore?
Code: Select all
uo.WaitGump(94)
uo.UseObject(0x41518126)
Re: mining
Posted: 2017-05-23 22:06:14
by dubd
полностью клетку выкопать, да пока не будет - No ore here.
Re: mining
Posted: 2017-05-23 22:12:35
by Incorrect User
Пробуй.