Yoko

All sides of Injection
It is currently 2024-03-28 23:25:04

All times are UTC+02:00




Post new topic  Reply to topic  [ 18 posts ] 
Author Message
PostPosted: 2013-03-08 11:49:23 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
Проблема в мининге ветра иногда сбивается из-за GoTo:
в моем проблема, копает и резко останавливается
ветра
Code:
sub maning()
   var mx, my, mz, i, j, jor, ser, noto
   na4alo:
   noto=0
   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.Hidden()
            UO.Warmode(0)
            uo.print("Прячемся...")
            UO.UseSkill("Hiding")
            wait(2500)
         wend
         UO.Print("Копаем в координатх: "+str(mx-i)+" "+str(my-j))
         while not UO.InJournal("no ore here|location|far away|in rock|Iron Ore|Copper|Rusty Ore")
            UO.DeleteJournal()
            if uo.waiting() then
               uo.canceltarget()
            endif
            UO.Waittargettile("1341", str(i), str(j), str(mz))
            If uo.count(Shovel) then
            uo.usetype(Shovel)
            end if
            if uo.injournal('You loosen some rocks but fail') then
               wait(10000)
            endif
            while not UO.InJournal("You put|heavy|location|no ore|but fail|far away|in rock")
               wait (500)
               for jor = 0 to 9
                  ser = uo.journalserial(jor)
                  if ser == uo.getserial('self') then
                     noto = 0
                  else
                     noto = uo.getnotoriety(ser)
                  endif
               next
            wend
            if uo.weight > 500 then # Максимальный вес
               goto end
            endif
         wend
         UO.DeleteJournal()
      next
   next
   goto na4alo
   end:
   if uo.waiting() then
     uo.canceltarget()
   endif
while not UO.Hidden()
UO.Warmode(0)
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(2500)
wend
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
wait(500)
goto na4alo
end sub


мой
Code:
sub maning()
   var mx, my, mz, i, j, jor, ser, noto
while not uo.dead()
#repeat
   noto=0
   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.Hidden()
            UO.Warmode(0)
            uo.print("Прячемся...")
            UO.UseSkill("Hiding")
            wait(2500)
         wend
         UO.Print("Копаем в координатх: "+str(mx-i)+" "+str(my-j))
         while not UO.InJournal("no ore here|location|far away|in rock|Iron Ore|Copper|Rusty Ore")
            UO.DeleteJournal()
            if uo.waiting() then
               uo.canceltarget()
            endif
            UO.Waittargettile("1341", str(i), str(j), str(mz))
            If uo.count(Shovel) then
            uo.usetype(Shovel)
            end if
            if uo.injournal('You loosen some rocks but fail') then
               wait(10000)
            endif
            while not UO.InJournal("You put|heavy|location|no ore|but fail|far away|in rock")
               wait (500)
               for jor = 0 to 9
                  ser = uo.journalserial(jor)
                  if ser == uo.getserial('self') then
                     noto = 0
                  else
                     noto = uo.getnotoriety(ser)
                  endif
               next
            wend
            if uo.weight > 500 then # Максимальный вес
               end()
            endif
         wend
         UO.DeleteJournal()
      next
   next
wend
#until uo.dead()
end sub

sub end()
   if uo.waiting() then
     uo.canceltarget()
   endif
while not UO.Hidden()
             UO.Warmode(0)
             uo.print("Прячемся...")
             UO.UseSkill("Hiding")
             wait(2500)
wend
       uo.deletejournal()
            if uo.waiting() then
               uo.canceltarget()
            endif
wait(500)
end sub

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-08 14:51:21 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Code:
               if uo.injournal('You loosen some rocks but fail') then
                  wait(10000)
               endif

В твоем скрипте в случае неудачи чар будет стоять 10 секунд.
Это на вскидку.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-03-08 15:24:36 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
Мираж спасибо буду пробывать! Помнишь я уже обращался с такой ошибкой? Вот вопрос такой у меня скрипт этот повторяется пока я не умер, то есть остальные скрипты я могу изменить включение с эксес на обычные?

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-08 16:38:15 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Mirage wrote:
В твоем скрипте в случае неудачи чар будет стоять 10 секунд.

а ещё тут черт ногу сломит


Top
   
PostPosted: 2013-03-08 21:58:07 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
ZeroDX wrote:
Mirage wrote:
В твоем скрипте в случае неудачи чар будет стоять 10 секунд.

а ещё тут черт ногу сломит

Почему?

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-08 22:03:23 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
Еще объясните за что отвечают эти строчки
Code:
          for jor = 0 to 9
              ser = uo.journalserial(jor)
              if ser == uo.getserial('self') then
                 noto = 0
             else
                 noto = uo.getnotoriety(ser)
             endif
          next

Исходник выглядит так:
Code:
for jor = 0 to 9    
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
wait(600) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
end()
endif
next

Как я понял это связанно с появлением пка, не с элементом...

И такой вопрос, если программа которая типо как инжа, но не заходит в игру а просто прогоняет весь скрипт, с различными условиями и пишет где ошибки, при этом работает не от ультимы или вообще автономно? Я видел тут, но пока не скачивал это чтоы выше описал или почти?

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-08 23:05:01 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
tylllkah wrote:
ZeroDX wrote:
Mirage wrote:
В твоем скрипте в случае неудачи чар будет стоять 10 секунд.

а ещё тут черт ногу сломит

Почему?

потомучто исходник - сама древность. почему в поиске преобладают именно огромные без отстувов старые скрипты с goto и поиском пк по "злобности"?

вот например
Code:
If uo.count(Shovel) then
   uo.usetype(Shovel)
end if

зачем это условие? ну не будет лопаты\кирки, дальше что? ничего! встранет также, как если бы этого условия не было. хайд повторяется 2 раза - не проще ли было вынести в отдельную функцию с динамической паузой и всеми наворотами. таймеры отсутствуют наглухо... а зря
tylllkah wrote:
Как я понял это связанно с появлением пка, не с элементом...

направление верное, но как бы сказать странно смотрится =D
Code:
wait(600) ; время в секундах при ожидании пока уйдет ПК

в секундах? :roll: норм идея... подождать 10 мин в шахте, пока не уйдёт нечто, обнаруженное по скану журнала.

и ещё
Code:
if uo.waiting() then
  uo.canceltarget()
endif
ставить такую конструкцию перед ловушкой - это как минимум бессмысленно. ловушки не ставятся в очередь или стек

ЗЫ сорри если пост выглядит как что-то злобное. всё было написано нежными руками с любовью :lol:


Top
   
PostPosted: 2013-03-09 01:11:32 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
По поводу лопаты, туда можно вставить скрипт на ее добро если нету или она сломалась, я просто кратенько написал копалку. По поводу го ту у меня на 5 инже посыпались ошибки типа не правельно указан оператор го ту, по скольку это древняя версия. И поповоду неста я так и не понял что он пытается найти в журнале. Думаю это бесполезно))
Паузы? А смысл если проверка соблюдения условия занимает время то зачем еще добавлять?
Второй хайд забыл убрать так как скрип вырезал там где есть вопросы и для примера))

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-09 10:29:04 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
ZeroDX снял с языка :)
Ребят ну вы учитесь, стараетесь, молодцы, но вы хотя бы логически представляйте для чего вы ЭТО делаете и КАК оно должно работать. И запоминайте хотя бы элементарные правила написания.

Если есть цикл с проверкой на журнал - добавляйте счетчик или таймер для выхода из цикла.
Если есть
If uo.count(Shovel) then
uo.usetype(Shovel)
end if
вставляйте else return иначе конструкция лишена смысла.
Зачем использовать проверку на notoriety если не понятно для чего она нужна? Вас так часто травят ПК в шахтах? И это так существенно?

Скачки типа
if uo.weight > 500 then # Максимальный вес
goto end
endif
вообще жесть. Есть же return - завершение процедуры. В нижнем выехали хотя бы.

какой вот в этом смысл:
Code:
while not uo.dead()
#repeat
wend
#until uo.dead()
Эта конструкция имеет место быть только если ты часто запускаешь скрипт призраком. Ты это делаешь? О_о

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-03-09 13:47:12 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Mirage wrote:
какой вот в этом смысл:
Code:
while not uo.dead()
#repeat
wend
#until uo.dead()
Эта конструкция имеет место быть только если ты часто запускаешь скрипт призраком. Ты это делаешь? О_о

и то и то будут выполнятся пока чар жив... из двух операторов выбран логически правильный, хотя в данном случае это пофиг
To tylllkah:
объясни, почему выбрал именно while?, и чего после выбора не удалил repeat?


Top
   
PostPosted: 2013-03-09 16:21:08 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
если условие не выполнено (мертвый чар) repeat выполнит один цикл и остановится.
while ни одного цикла не выполнит.

повторять
съесть яблоко
пока не насытился (голоден)

до тех пор пока не насытился (голоден)
есть яблоко

Мне лично больше нравится 1 вариант - repeat - смотрится логичнее.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-03-09 17:19:08 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Mirage wrote:
Мне лично больше нравится 1 вариант - repeat - смотрится логичнее.

Рипит не актуален, т.к. если чар мертв - он ничего не сможет сделать из цикла (кроме авторесса, если бы он был)


Top
   
PostPosted: 2013-03-09 17:25:14 
Offline
User avatar

Joined: 2006-12-08 10:51:50
Posts: 718
Location: Москва
Juicy Fruit wrote:
Mirage wrote:
Мне лично больше нравится 1 вариант - repeat - смотрится логичнее.

Рипит не актуален, т.к. если чар мертв - он ничего не сможет сделать из цикла (кроме авторесса, если бы он был)


Вот! но скрипт запускается на живую =) и умирает в процессе, ни тот, ни другой оператор не запустит следующий прогон, выбор оператора будет актуален, если перед циклом будут какие-либо действия, при которых чар могёт сдохнуть :)


Top
   
PostPosted: 2013-03-09 18:15:14 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Если там будет реконнектор - он будет перезапускать скрипт, чар вполне может быть дохлым при перезапуске))
Да и вообще, лишний раз перестраховаться - не повредит)


Top
   
PostPosted: 2013-03-09 18:29:42 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Ну вот в конкретно данном случае (скрипт номер 2) while все таки предпочтительнее.

Code:
sub main()
repeat
uo.msg('Я труп')
wait(100)
         while not UO.Hidden()
            UO.Warmode(0)
            UO.UseSkill("Hiding")
            wait(2500)
         wend
until uo.dead()
end sub


если запустить мертвым скрипт зациклится.
С while вначале скрипт не запустится. Другое дело - кто запускает мининг гостом? И опять же нужны выходы из циклов или расширенные условия для цикла.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-03-09 18:45:55 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
Mirage wrote:
ZeroDX снял с языка :)
Ребят ну вы учитесь, стараетесь, молодцы, но вы хотя бы логически представляйте для чего вы ЭТО делаете и КАК оно должно работать. И запоминайте хотя бы элементарные правила написания.

Если есть цикл с проверкой на журнал - добавляйте счетчик или таймер для выхода из цикла.
Если есть
If uo.count(Shovel) then
uo.usetype(Shovel)
end if
вставляйте else return иначе конструкция лишена смысла.
Зачем использовать проверку на notoriety если не понятно для чего она нужна? Вас так часто травят ПК в шахтах? И это так существенно?

как я понял надо везде так писать?
Code:
If uo.count(Shovel) then
   uo.usetype(Shovel)
else
   return
end if

если скрипт и так работает зачем писать лишние строчки?
это тиво ка в иностраных языках мы ведь не говорим: "я есть дома написать скрипт"

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
PostPosted: 2013-03-09 18:56:45 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Но ты так именно и пишешь :!:

У тебя получается:
Если в рюкзаке есть лопата - копаем.
И все! А если нет лопаты? А ХЗ... Наверное писаем/сажаем грядки/смотрим на солнце/свистим.

И смирись - это НЕ русский язык. У англичан такая дурацкая черта есть - все уточнять. По этому так и пишутся скрипты. Вот если бы ты в 1С писал - там да, такие конструкции не нужны бывают.
А уточнения у цикла нужны чтобы этот цикл не зацикливался до бесконечности.

Копаем пока не умерли/не перегружены/не нанесен урон/не голодаем/есть инструмент/не прошло несколько секунд.
этим ты выходишь из цикла при любой не стандартной ситуации.

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2013-03-09 19:16:39 
Offline
User avatar

Joined: 2012-03-20 00:32:06
Posts: 243
Location: РФ, г. Москва
По поводу лопаты, туда можно вставить скрипт на ее добро если нету или она сломалась, я просто кратенько написал копалку.

_________________
Не быть жадным - уже богатство, не быть расточительным – доход.
TylllKaH
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 18 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 14 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited