Yoko

All sides of Injection
It is currently 2025-10-18 01:42:17

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2009-08-15 18:15:48 
Offline

Joined: 2009-08-15 17:52:37
Posts: 4
Скрипт на Махаон
Встаём в тихое, тёплое местечко. Мульту даём рунбуки и/или связки ключей, т.к. их нельзя вытащить и поэтому всегда есть ЧТО вытаскивать.
У себя же в паке открываем холодильник со стейками. Запускаем скрипт.
Идеальный кач идёт только когда перс "сыт и доволен", поэтому изначально делаем его сытым, и при первом признаке голода, он будет есть стейки.

Code:
#######################################
##Автор скрипта: Пиквил [VoA]        ##
##Сервер: Короли Махаона (uolife.ru) ##
##Цельевой скил: Stealing (воровство)##
#######################################

sub Stealing()
uo.DeleteJournal()
uo.print('Кого?:')
uo.exec('addobject Targ')
while uo.targeting()
wait(100)
wend
while UO.DEX < 250
  if not uo.hidden() then
    UO.UseSkill('Hiding')
    wait(3000)   
  end if
  if uo.hidden() then
    UO.WaitTargetObject('Targ')
    UO.UseSkill('Stealing')
   repeat
   Wait(500)
   until uo.InJournal('You must wait to perform another action.') or uo.InJournal('Предмет выскальзывает из ваших пальцев.') or uo.InJournal('... потом успешно прячете в свой карман.') or uo.InJournal('Ваше поведение привлекает внимание!') or uo.InJournal('... но он намертво зацепился.') or uo.InJournal('... но ваши руки дрожат и предмет выпадает.') or uo.InJournal('Нужно подойти поближе!')
  end if
  if uo.InJournal('Вы слегка голодны.') then
   Wait(2500)
   Uo.UseType('0x097B')
  end if
 Uo.DeleteJournal()
wend
end sub


PS: эта строка должна быть одной строчкой
Code:
until uo.InJournal('You must wait to perform another action.') or uo.InJournal('Предмет выскальзывает из ваших пальцев.') or uo.InJournal('... потом успешно прячете в свой карман.') or uo.InJournal('Ваше поведение привлекает внимание!') or uo.InJournal('... но он намертво зацепился.') or uo.InJournal('... но ваши руки дрожат и предмет выпадает.') or uo.InJournal('Нужно подойти поближе!') 


Last edited by Пиквил on 2009-08-16 20:42:49, edited 1 time in total.

Top
   
PostPosted: 2009-08-16 10:04:13 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Скрипт номральный. Но зачем писать проверку журнала таким макаром? Можно вот так сделать:
Code:
until uo.InJournal('must wait to perform|выскальзывает|успешно прячете |привлекает внимание|намертво зацепился|предмет выпадает') 

Имхо короче и несколько универсальнее. Хотя есть свои подводные камни

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


Top
   
PostPosted: 2009-08-16 18:26:51 
Offline

Joined: 2009-08-15 17:52:37
Posts: 4
Mirage wrote:
Скрипт номральный. Но зачем писать проверку журнала таким макаром? Можно вот так сделать:
Code:
until uo.InJournal('must wait to perform|выскальзывает|успешно прячете |привлекает внимание|намертво зацепился|предмет выпадает') 

Имхо короче и несколько универсальнее. Хотя есть свои подводные камни


Попробую, спасибо. Но что за подводные камни, можно хотя-бы намекнуть, ибо путь познания порой бывает тернист. Заранее, и ещё раз спасибо.


Top
   
 Post subject:
PostPosted: 2009-08-16 19:15:23 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
1) именно про сокращенные меню - ктото рядом стоящий может сказать то что ожидает скирпт и цикл со скочит с паузы не дождавшись завершения действия.
2)я бы добавил сообщение "Вы слегка голодны" в until
3)и еще бы добавил временную паузу (или счетчик тактов или таймер). Потому как иногда бывает такой глюк - фраза проскакивает в журнале а за ней сразу другая и почему то скрипт не видит нужную.
4)паузу у пряталки тоже можно сделать с использованием журнала - она сократиться немножко.
5) ОБЫЧНО Uo.DeleteJournal() ставят в начале скрипта (цикла) так как если ты остановил скрипт руками, потом запустил - в журнале то фраза все равно будет => словишь глюк.
6)конструкцию
Code:
  if uo.InJournal('Вы слегка голодны.') then
   Wait(2500)
   Uo.UseType('0x097B')
  end if

и подобные лучше изобразить:
Code:
  if uo.InJournal('Вы слегка голодны.') then
   Wait(500)
   Uo.UseType('0x097B')
   Wait(2000)
  end if
Хотя именно тут наверное сойдет и так как у тебя, если работает.


PS все поправки чисто косметического характера.

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


Top
   
 Post subject:
PostPosted: 2009-08-16 20:52:41 
Offline

Joined: 2009-08-15 17:52:37
Posts: 4
Mirage wrote:
1) именно про сокращенные меню - ктото рядом стоящий может сказать то что ожидает скирпт и цикл со скочит с паузы не дождавшись завершения действия.
2)я бы добавил сообщение "Вы слегка голодны" в until
3)и еще бы добавил временную паузу (или счетчик тактов или таймер). Потому как иногда бывает такой глюк - фраза проскакивает в журнале а за ней сразу другая и почему то скрипт не видит нужную.
4)паузу у пряталки тоже можно сделать с использованием журнала - она сократиться немножко.
5) ОБЫЧНО Uo.DeleteJournal() ставят в начале скрипта (цикла) так как если ты остановил скрипт руками, потом запустил - в журнале то фраза все равно будет => словишь глюк.
6)конструкцию
Code:
  if uo.InJournal('Вы слегка голодны.') then
   Wait(2500)
   Uo.UseType('0x097B')
  end if

и подобные лучше изобразить:
Code:
  if uo.InJournal('Вы слегка голодны.') then
   Wait(500)
   Uo.UseType('0x097B')
   Wait(2000)
  end if
Хотя именно тут наверное сойдет и так как у тебя, если работает.


PS все поправки чисто косметического характера.


1) Оставлю тогда так как есть. Until заточен исключительно под системные события. Если в журнале будет не 'Предмет выскальзывает из ваших пальцев.', а 'Вася Пупкин сказал: Предмет выскальзывает из ваших пальцев.', то ничего не произойдёт. А так, да, твой вариант более красивый, найду применение и ему. Его можно использовать находясь в тихом месте, где никто не ходит, в доме например.
2) Специально вынес в отдельный блок, т.к. когда until увидит "Вы слегка голодны", тогда после, всё равно нужна будет проверка, по какой причине сработал until. Как вариант, можно запихать блок проверки в сам until.
3) Да, есть такое, он появляется когда скрипт завязан на задержку, а не на событие. И как раз на этот случай, и на случай лага в until стоит ('You must wait to perform another action.')
4) Пауза самая оптимальная. Меньше не получится, как не крути. Вот тут как-раз блок и закручен на задержку.
5) Скрипт изначально и по возможности разрабатывался стрессоустойчивым, единственный трабл который может случиться, это когда мульт вдруг куда-то отошёл. (уже исправлено)
6) Тут можно вообще без задержки, т.к. проверка стоит после until, который по сути проверяет закончилось-ли действие или нет. Задержку на всякий случай прописал. Повторюсь, чтобы скрипт был максимально стрессоустойчивым.

PS: Немного подрихтовал, until оставил прежним. Спасибо за конструктивные замечания.


Top
   
 Post subject:
PostPosted: 2009-08-31 19:29:47 
Offline

Joined: 2009-08-15 17:52:37
Posts: 4
Хм, всё тоже самое, только оказалось, что со 100% до 120% стилинга, в хайд прятаться уже не нужно (убран блок) .
Code:
#######################################
##Автор скрипта: Пиквил [VoA]        ##
##Сервер: Короли Махаона (uolife.ru) ##
##Цельевой скил: Stealing (воровство)##
#######################################

sub Stealing()
uo.DeleteJournal()
uo.print('Кого?:')
uo.exec('addobject Targ')
while uo.targeting()
wait(100)
wend
while UO.DEX < 250
   UO.WaitTargetObject('Targ')
   UO.UseSkill('Stealing')
   repeat
    Wait(500)
   until uo.InJournal('You must wait to perform another action.') or uo.InJournal('Предмет выскальзывает из ваших пальцев.') or uo.InJournal('... потом успешно прячете в свой карман.') or uo.InJournal('Ваше поведение привлекает внимание!') or uo.InJournal('... но он намертво зацепился.') or uo.InJournal('... но ваши руки дрожат и предмет выпадает.') or uo.InJournal('Нужно подойти поближе!')
  end if
  if uo.InJournal('Вы слегка голодны.') then
   Wait(2500)
   Uo.UseType('0x097B')
  end if
 Uo.DeleteJournal()
wend
end sub


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 6 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:  
Powered by phpBB® Forum Software © phpBB Limited