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
Пробуй.