mining

Anything and all.

Moderators: Murderator+, Murderator

dubd
Posts: 249
Joined: 2012-07-27 23:43:14

mining

Post 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
- чорная дыра. чар должен обратно летет.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post 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"))..............
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

повторил циклы while, repeat но пока не очень получаетца правильно всё оформить.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post 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")
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

спасибо за ответ! как можно правильней оформить?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post 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
Last edited by Incorrect User on 2017-05-25 20:06:51, edited 8 times in total.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post 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))
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Поправил пост, перед реколом должен писать вес.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

блин сейчас нету ошибок, но перс при старте скрипта - просто перебирает в паке оры, как будто выгружает. в чём кроется это?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Видимо это работает функция loot(), удали строку с ней, если она не нужна или не в том месте.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

убрал, но он так и так почему то оры ищет. Не находит и пишется - cant see the target. Постоит, копнёт и опять you cant see the target)))))))))))))))
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

User сорян! У меня буки не было он её искал!

Ща тещу скрипт.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

Вроде заработало, только после месаги There is no ore to mine перс реколитца из шахты опять в эту шахту))))))))))))))))))
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Ну так у тебя же рекол посреди скрипта или нет?

Code: Select all

    uo.WaitGump(94)
    uo.UseObject(0x41518126)
    wait(10000)
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

ну да! это обратно лететь. Сейчас перс капнёт 1 оры и летит в шахту обратно, где и находитца!)))) User, есть ещё желание поправить немножно,?
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Какое же это обратно, если оно посреди копки вставлено и без всяких условий? Я уже понял что ты вообще не понимаешь что к чему. Давай просто по порядку напиши что и как должно быть, я сделаю.
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

Code: Select all

sub Needhelp()
   UO.Print( "User, need your help!" )
   wait(50)
endsub


В общем перс начинает копать в забое, набирает 650 веса - срабатывает рекк к дому - дальше процедура loot() - выгрузился ок - полёт в забой обратно - и так по кругу.

Я пока застрял на циклах.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Значит это рекол домой

Code: Select all

     uo.WaitGump(21)
     uo.UseObject(0x41518126)

А это рекол в шахту, все верно? И копать нужно тайл только один удар или пока не появится сообщение no Ore?

Code: Select all

    uo.WaitGump(94)
    uo.UseObject(0x41518126)
dubd
Posts: 249
Joined: 2012-07-27 23:43:14

Re: mining

Post by dubd »

полностью клетку выкопать, да пока не будет - No ore here.
Incorrect User
Posts: 949
Joined: 2011-05-23 00:33:30

Re: mining

Post by Incorrect User »

Пробуй.
Post Reply