Yoko

All sides of Injection
It is currently 2024-04-16 12:09:08

All times are UTC+02:00




Post new topic  Reply to topic  [ 4 posts ] 
Author Message
PostPosted: 2006-12-28 03:01:24 
Offline
User avatar

Joined: 2006-12-16 05:17:22
Posts: 6
На шарде есть дерево которое вырашивает яблоки со скилами.
Но за ним нужен уход. Типо, кликнуть 2 раза, полить из бутылки 1 раз (причем в бутылке кончается вода, надо набирать из поилки), потом добавить какаху. Деревьев у меня пока 2, но как сделать чтоб искал автоматически и проделывал такую оперцию с каждым деревом??? Я чтото намудрил, все работает, а потом мин через 20 краш =(((

Code:
sub bonsay()
REPEAT
uo.useobject('0x4025A750') \\ DEREVO1
wait(1500)
uo.usetype ('0x0F81') \\kakaha
UO.WaitTargetObject('0x4025A750')
wait(1500)
uo.findtype ('0x182A') \\butilka
wait(1500)
UO.WaitTargetObject('0x4025A750')
uo.findtype ('0x182D') \\pustaya butilka
wait(1500)
UO.WaitTargetObject('0x4003D00E') \\poilka
wait(1500)
uo.useobject('0x4016EB3B') \\DEREVO2
wait(1500)
uo.usetype ('0x0F81')
UO.WaitTargetObject('0x4016EB3B')
wait(1500)
uo.findtype ('0x182A')
wait(1500)
UO.WaitTargetObject('0x4016EB3B')
uo.findtype ('0x182D')
wait(1500)
UO.WaitTargetObject('0x4003D00E')
wait(1500)
Until UO.Dead()
end sub


В ЧЕМ ТУТ ПРОБЛЕМА ?
Заранее благодарю[/code]


Top
   
 Post subject:
PostPosted: 2006-12-28 09:10:22 
Offline
User avatar

Joined: 2006-11-06 21:45:23
Posts: 137
В общем твой скрипт полная лажа, да и мой может оказаться не лучше из-за не имения полной информации, так как на моем шарде нет таких деревье, но если я тебя правильно понял (смотри комментарии в скрипте), то попробуй этот скрипт.
Писал чисто из любопытства, не тестил.
Если не получиться то распиши все подробней, что ты должен делать когда узаешь дерево (последлвательность), расходуется ли удобрение, есть ли какие сообщения о том, что ты завершил уход за деревом.
Так же я предположил, что деревья и поилка находятся рядом и никуда бегать не надо.
Code:
sub bonsay()
   DIM DEREVO[2]            # Объявляем массив с деревьями, сейчас их 2.
      DEREVO[0] = '0x4025A750' # Каждому элементу массива
      DEREVO[1] = '0x4016EB3B' # присваиваем значения.
   VAR poilka   = '0x4003D00E'
   VAR kakaha          = '0x0F81'
   VAR butilka         = '0x182A'
   VAR pustaya_butilka = '0x182D'
   VAR i
   repeat
      for i = 0 to 1   # Цикл на два дерева, если будет три дерева, то 1 исправить на 2, и т.д.
         UO.FindType(butilka)               # Ищим бутылку с водой.
         if UO.FindCount() == 0 then        # Если не нашли бутылку с водой, то будем искать пустую бутылку.
            UO.FindType(pustaya_butilka)    # Ищим пустую бутылку с водой в бэкпаке.
            if UO.FindCount() > 0 then      # Если нашли пустую бутылку, то наполним ее водой.
               UO.WaitTargetObject(poilka)  # Ставим ловушку на поилку.
               UO.UseObject('fainditem')    # Двойной щелчок по бутылке, после чего сработает ловушка и бутылка будет наполнена.
             else
               UO.Print("Утебя нет бутылок для воды.")
               UO.Print("Скрипт остановлен.")
               return
            endif
            UO.FindType(butilka)
         endif
         UO.WaitTargetType('finditem',kakaha)
         # Ставим первую ловушку на бутылку с водой ('finditem') и следом
         # вторую ловушку на удобрение (kakaha).
         UO.UseObject(DEREVO[i])
         # Делаем двойной щелчок по дереву, после которого мы должны
         # указать на бутылку, чтобы полить дерево, и указать на
         # удобрение, чтобы удобрить дерево.
         wait(3000)
      next
   until UO.Dead()
endsub


Top
   
 Post subject:
PostPosted: 2006-12-28 16:05:53 
Offline
User avatar

Joined: 2006-12-16 05:17:22
Posts: 6
Просто я ламо полное в скриптах под инжу :(
Пасиб что помогаешь :oops:
Идея у тебя супер, но порядок другой.
Ты немножко не понял, там на древо просто нужно ткуть, после чего таргет не выскакиевает (типа ты его подстриг чтоли), а таргеты появляются только от бутылки и какахи (потом соответственно таргет на дерево), а дерево само узнает сколько ему надо. Я заметил еще 1 момент надо ждать секнды по 3 после каждого действия (типа я поливаю). Просто скрипт нужен очень, я плантацию хочу сделать, а так вручную сдохнуть можно.

Сообщения от сервера:

При прокликивании Try to look after your bonsay better.
При удачном добавлении какахи или поливки Your bonsay looks much (bit) better!
Если ниче не надо There is no need to use flask of water (Fertile Dirt) on bonsay so often.


Top
   
 Post subject:
PostPosted: 2006-12-29 09:24:50 
Offline
User avatar

Joined: 2006-11-06 21:45:23
Posts: 137
Попробуй этот вариант.
Если не покатит, то попробую еще разок исправить, если опишишь где происходят сбои, так как сам понимаешь пишу в слепую.
Кстати, для большой плантации может понадобиться хождение от дерева к дереву, добор удобрения и т.д. и т.п. Но это уже не ко мне.
Code:
sub bonsay()
   DIM DEREVO[2]   # Объявляем массив с деревьями, сейчас их 2.
      DEREVO[0] = '0x4025A750'  # Каждому элементу массива
      DEREVO[1] = '0x4016EB3B'  # присваиваем значения.
   VAR poilka   = '0x4003D00E'
   VAR Fertile_Dirt = '0x0F81'  # Плодородная грязь.
   VAR Flask        = '0x182A'  # Фляга с водой.
   VAR Flask_empty  = '0x182D'  # Пустая фляга.
   VAR i
   repeat
      for i = 0 to 1   # Цикл на два дерева, если будет три дерева, то 1 исправить на 2, и т.д.
         UO.FindType(Flask)                # Ищим флягу с водой.
         if UO.FindCount() == 0 then       # Если не нашли флягу с водой, то будем искать пустую флягу.
            UO.FindType(Flask_empty)    # Ищим пустую флягу с водой в бэкпаке.
            if UO.FindCount() > 0 then     # Если нашли пустую флягу, то наполним ее водой.
               UO.WaitTargetObject(poilka) # Ставим ловушку на поилку.
               UO.UseObject('fainditem')   # Двойной щелчок по фляге, после чего сработает ловушка и фляга будет наполнена.
             else
               UO.Print("У тебя нет бутылок для воды.")
               UO.Print("Скрипт выключен.")
               return
            endif
            UO.FindType(Flask)
         endif
         UO.FindType(Fertile_Dirt)         # Ищим удобрение в бэкпаке.
         if UO.FindCount() == 0 then       # Если не нашли, то выход из скрипта,
            UO.Print("У тебя нет удобрения.")  # или организовать добор.
            UO.Print("Скрипт выключен.")
            return
         endif
         UO.DeleteJournal()
         UO.Click(DEREVO[i])      # Кликаем по дереву один раз или
         UO.UseObject(DEREVO[i])  # два раза. Оставь что-то одно, а можешь и все.
         repeat                # Ждем сообщение от дерева, что "Попытка позаботиться о дереве удалась".
            wait(200)          # наверное есть и сообщение о не удачной попытке, тогда надо делать что-то еще.
         until UO.InJournal("Try to look after your bonsay better") #or UO.InJournal("вставь сам сообщение о неудачной попытке и убери знак комментария перед OR")
         #wait(3000)   # Если после сообщения нужна пауза, то раскомментируй.
         if UO.InJournal("Try to look after your bonsay better") then  # Если попытка позаботиться удалась, то будем поливать и удобрять.
            UO.DeleteJournal()
            UO.WaitTargetObject(DEREVO[i])  # Ставим ловушку на дерево.
            UO.UseType(Flask)               # Поливаем.
            repeat                          # Ждем сообщения что дерево полито, или оно не нуждается в поливке.
               wait(200)
            until UO.InJournal("Your bonsay looks") or UO.InJournal("There is no need to use")
            #wait(3000)   # Если после сообщения нужна пауза, то раскомментируй.
            UO.DeleteJournal()
            UO.WaitTargetObject(DEREVO[i])  # Ставим ловушку на дерево.
            UO.UseType(Fertile_Dirt)        # Удобряем.
            repeat                          # Ждем сообщения что дерево удобрено, или оно не нуждается в удобрении.
               wait(200)
            until UO.InJournal("Your bonsay looks") or UO.InJournal("There is no need to use")
         endif
         # Полили, удобрили. Переходим к следующему дереву.
      next
      # Наверное деревья не требуют ухода через каждых 6 секунд.
      # Поэтому можно поставить паузу до начала следующего цикла ухода, например:
      wait(20000)   # Ждем 20 секунд.
   until UO.Dead()
endsub


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 7 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