Yoko

All sides of Injection
It is currently 2024-04-16 08:32:52

All times are UTC+02:00




Post new topic  Reply to topic  [ 19 posts ] 
Author Message
PostPosted: 2013-09-05 03:16:29 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Привет всем!
Спустя 7-8 лет решил вернуться в УО. Играю на американском шарде (ping ~160).
Ближе к сути. Нужен скрипт, который будет:

    1) включаться и выключаться по нажатии определенной клавиши;
    2) Условия:
      а) Персонаж спрятан (uo.Hidden) - главное условие,
      б) Определенное сообщение в журнале;
    3) При выполнении условий: включая бег, пробегать определенное количество тайлов;
    4) При пройденном количестве тайлов: переходить с бега на шаг и ждать следующего сообщения (п.2/б);
    5) При следующем сообщении повторять все со второго пункта.

Механика работы скилла Stealth.
При useskill 'Hiding', персонаж переходит в состояние Спрятан. Если тут же сделать шаг, то происходит проверка на скилл Stealth. Если стелса достаточно (а его ГМ), то можно сразу же начинать движение. В журнале появляется строка "You begin to move quietly." Дальше скилл стелс можно вообще не использовать, т.е. сервер сам делает проверки каждые 10 шагов. Т.е. если я зажму кнопку движения и буду просто идти, то я не выйду из стелса никогда (конечно если мне не помогут :D ) И при этом useskill 'Stealth' мне делать не надо.
Теперь самое интересное.
Если после прохождения проверки и сообщения "You begin to move quietly." перейти в режим бега (например нажав клавишу AlwaysRun, забинденую через клиент), то персонаж пробегает 4-5 тайлов, начинается новая проверка на стелс и персонаж ревелится. Но если вовремя отжать бег и пройти стелс-проверку в режиме шага, то движение продолжится в стелсе.

Что сделал я.
Начитался топиков про Always Run On|Off, Как одной кнопкой включить и выключить скрипт, еще парочку тем и схлестнул всю эту инфу в какой-то дикой угарной смеси (да, да, я не умею писать скрипты, я только их редактирую). Вот что из этого получилось:

Code:
sub TEST()
###################################################
sub AR_On()
   uo.DeleteJournal()       # чищу журнал
   While uo.Hidden()       # Выполняюсь пока в хайде
###################################################
      if UO.GetGlobal('ST') == '1' then
         UO.SetGlobal('ST','2')
        #wait(5000)             # Cтрока используется для примера,
                                       # чтобы проследить как выгрузится скрипт.
         return
      else
         UO.SetGlobal('ST','1')
      endif
      while 1 == 1
         if UO.GetGlobal('ST') == '2' then
            #wait(5000)             # Cтрока используется для примера.
            UO.SetGlobal('ST','0')
            return
         endif
###################################################
         if UO.InJournal('0xABCA') then      # Если в журнале нашлось "You begin to move quietly", то
            uo.DeleteJournal()
            uo.press(120)                            # жму F9
            wait(900)                                   # Вот то, на чьих соплях держится вся эта ерунда - ТАЙМЕР!
            uo.press(120)                            # жму F9 еще раз чтобы выключить AlwaysRun.
         endif
         
      Wend
end sub
###################################################
      #wait(2000)                       # Cтрока используется для примера.
      #UO.Print("ИДЕТ ТЕСТ ...") # Cтрока используется для примера.
wend
end sub

Вот как это выглядит в динамике:
http://youtu.be/lcWd3CmXO_I

Понятно, что делать такие действия, основываясь только на задержке между нажатиями, да еще и с пингом выше 150 - это ерунда.
Сам я не осилю, но видел что на инжекте пишут какие-то космические вещи с ресурсами... сам тебе рубит, сам тебе копает, реколится, куёт, переплавляет/продает... В общем, ваха не килл плиз хелп дай шото=)

P.S. Кстати, если кому интересны пеньки, как у меня, на последних клиентах (7.0.х.х), обращайтесь, помогу.


Top
   
PostPosted: 2013-09-05 08:10:09 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
Если я правильно понял вопрос то попробуй вот так:

Code:
var key=120, x,y,n
sub main()                         
   Repeat   
      AR_Off()
      uo.DeleteJournal()
      If Not UO.Hidden() Then
         UO.UseSkill('Hiding')
         repeat
            wait(100)
         until UO.Hidden()
      endif
      While uo.Hidden()
         if UO.InJournal('0xABCA') then
            uo.DeleteJournal()
            AR_On()                  # <---------------
            x=UO.GetX()
            y=UO.GetY()
            n=0
            repeat    #  цикл для 10 шагов в режиме бега
               if x<>UO.GetX() or y<>UO.GetY() then
                  x=UO.GetX()
                  y=UO.GetY()
                  n=n+1
                  uo.print(str(n))
               endif
               wait(100)
            until n>=10 or not uo.Hidden()   # пока не пройдено 10 шагов или не раскрыт
            AR_Off()                    # <---------------
         endif
         wait(100)
      Wend
      (100)
   Until UO.Dead()   
end sub
sub AR_Off()
   if uo.GetRun('self')>0 then
      uo.press(key)
   endif
   uo.print('Шаг')
end sub
sub AR_On()
   if uo.GetRun('self')==0 then
      uo.press(key)
   endif
   uo.print('Бег')
end sub

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


Top
   
PostPosted: 2013-09-05 14:40:31 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Repeat

Until uo.dead() можно заменить на это

Code:
##########################################
Sub test()
##########################################
   If uo.getglobal('test')==1 then
   uo.setglobal('test',0)
   uo.print(' !!! -= Test: off =- !!! ')
   uo.exec('terminate test')
   else
   uo.setglobal('test',1)
   uo.print(' !!! -= Test: on =- !!! ')
   end if
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#

;script
;script
;script

#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
                                       
   uo.setglobal('test',0)
#   uo.print(' !!! -= Test: off =- !!! ')
##########################################
end sub
##########################################

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
PostPosted: 2013-09-06 06:48:37 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Mirage и Nmy, спасибо вам за ответы!
Немного переделал и упростил ваши скрипты. В итоге получилось:
Code:
Sub test()
##################################################
   var x,y,n
   DeleteJournal("0xABCA")
   while uo.Hidden()  #1111
##################################################
      if UO.GetGlobal('test')=='11' then
         UO.SetGlobal('test','00')
         UO.Exec('terminate test')
         UO.Exec('terminate test')
         UO.Exec('terminate test')
         UO.Print(' !!! -= Test: off =- !!! ')
      else
         UO.SetGlobal('test','11')
         UO.Print(' !!! -= Test: on =- !!! ')
      endif
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
      while uo.Hidden() #2222
         if UO.InJournal('0xABCA') then
            DeleteJournal("0xABCA")
            uo.press(120)
            x=UO.GetX()
            y=UO.GetY()
            n=0
            repeat    #  цикл для n шагов в режиме бега
               if x<>UO.GetX() or y<>UO.GetY() then
                  x=UO.GetX()
                  y=UO.GetY()
                  n=n+1
                  uo.print(str(n))
               endif
            until n>=2 or not uo.Hidden()
            uo.press(120)
         endif #quietly
      wend  #uo.Hidden(2222)
   wend  #uo.Hidden(1111)   
#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#
   uo.setglobal('test',00)
end sub


##################DeleteJournal###################

Sub DeleteJournal(msg)
   While UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg) - 1,'')
   wend
end sub

Почему аж три раза UO.Exec('terminate test')? Потому что до этого почему-то не срабатывал повторный вызов test() Т.е. глобальная переменная менялась, но почему-то скрипт не останавливался при выполнении условия if UO.GetGlobal('test')=='11'
При чем, UO.Print(' !!! -= Test: off =- !!! ') я видел, но вот скрипт продолжал выполняться + запускалась еще одна копия.
При этом, если в игровом чате написать _terminate test, скрипт останавливался. Наверное дело в какой-то задержке...
Решение нашлось методом тыка, продублировал три раза строку - работает :D Можно включать и выключать скрипт по хоткею, при этом не ревелясь.
А, и еще пришлось добавить функцию Sub DeleteJournal(msg) Потому что uo.DeleteJournal() конфликтовал с соседним скриптом на авто-хайд, но это уже совсем другая история...

Беспокоит меня вот что:
Периодически пробегаю на один тайл больше, чем в скрипте, и ревелюсь. Из-за чего это может быть? Лаги? Или тормоза клиента? Есть идеи, как с этим бороться, не уменьшая количество тайлов в скрипте.


Top
   
PostPosted: 2013-09-06 07:55:28 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
until n>=2
пока чар не от отбежал на 2 или более тайлов.

uo.press(120)
по моему лучше заменить на включался и выключалку бега как я привел пример. Она будет надежнее. Если ты в режиме шага твой скрипт в любом случае перейдет на бег. А мой перейдет только если ты хочешь бежать.


UO.Exec('terminate test')
UO.Print(' !!! -= Test: off =- !!! ')
надо выносить выше первого while. У тебя не срабатывает с первого раза потому что цикл где то в другом месте работает. Если вынесешь вверх то будет меньше повторов. Nmy
же написал его выше всего скрипта.

Code:
Sub test()
   var x,y,n
   if UO.GetGlobal('test')=='1' then
      UO.SetGlobal('test','0')
      UO.Print(' !!! -= Test: off =- !!! ')
      UO.Exec('terminate test')
   else
      UO.SetGlobal('test','1')
      UO.Print(' !!! -= Test: on =- !!! ')
   endif
   DeleteJournal("0xABCA")
   while uo.Hidden()
      if UO.InJournal('0xABCA') then
         DeleteJournal("0xABCA")
         uo.press(120)
         x=UO.GetX()
         y=UO.GetY()
         n=0
         repeat    #  цикл для n шагов в режиме бега
            if x<>UO.GetX() or y<>UO.GetY() then
               x=UO.GetX()
               y=UO.GetY()
               n=n+1
               uo.print(str(n))
            endif
         until n=2 or not uo.Hidden()
         uo.press(120)
      endif
      wait(100) ; нужен обязательно!
   wend
   uo.setglobal('test',00)
end sub
##################DeleteJournal###################
Sub DeleteJournal(msg)
   While UO.InJournal(msg)
      UO.SetJournalLine(UO.InJournal(msg) - 1,'')
   wend
end sub




PS он работает? :lol: Я писал "на коленке". :roll:

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


Top
   
PostPosted: 2013-09-07 04:56:37 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Работает!))) Ну я докручивал в нем что-то очень долго по незнанию, но основа работает)
Спасибо тебе за помощь, все сделал как ты сказал - все работает. Не идеально конечно, но наверное выжать из этой темы больше уже нельзя...
Я теперь извращаюсь в другой теме: Упрощение snooping'a вору.


Top
   
PostPosted: 2013-09-12 12:13:34 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
а что за сервер такой?

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
PostPosted: 2013-09-12 20:16:54 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
uoforever.com
Хороший сервер) Там по ходу за последние пол года меньше 400 онлайна не было)
Image


Top
   
PostPosted: 2013-09-17 14:23:10 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Не могу зайти на инже или голым клиентом. Только разор работает :oops:

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
PostPosted: 2013-09-18 00:24:24 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Да, там нужен у них обязательный разор, но я на инже играю без проблем.
Вот мои настройки:
Image
Image
Клиент у меня 7.0.31.0


Top
   
PostPosted: 2013-09-18 07:09:53 
Offline

Joined: 2011-06-11 19:54:23
Posts: 820
Пора обновить инжект :D


Top
   
PostPosted: 2013-09-19 19:38:07 
Offline
Expert!
User avatar

Joined: 2005-09-14 15:31:58
Posts: 2152
Location: Latvia
Заработало. Только время на уо уже нету больше :lol:

Зайду как нить в другой раз.

з.ы. не заходило из за ignoresocket 400x

_________________
Уроки языка Injection
Основные команды языка Injection
Yoko Injection Code Sweeper
Drw (2009) скрипты
2017 Начал играть на Uorpg.net


Top
   
PostPosted: 2013-09-29 18:38:14 
Offline
User avatar

Joined: 2013-09-29 14:17:07
Posts: 16
File_, можешь подробнее расписать процесс подключения инжекта к uoforever.com?
Я пробовал комбинации клиентов 7.0.15.1 и 7.0.32.x c Injection'ами 1309.15, 1308.26, 1307.18 с различной комбинацией настроек - ни с одним вариантом зайти не смог. С твоими скринами настроек включительно.
Правда с момента твоего поста с настройками там было 1-2 апдейта, могли что-то пофиксить. Не мог бы ты подтвердить что сейчас у тебя нормально коннектится с инжектом. Спасибо.

Такое впечатление что сервер не отвечает даже на первый пакет, если захожу с инжектом (по логам CommView), как будно выставлен энкрипшен, хотя Encription в инжекте None(ignition).
Те же клиенты с Razor-ом и AssistUO заходят нормально, Stealth Client коннектится успешно без энкрипта.

П.С. Если кто-то может проверить - login.uoforever.com:2599, Game runs RunUO 2.2 Engine.


Top
   
PostPosted: 2013-09-30 20:54:13 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Подтверждаю. Коннектится и работает.
Вот моя папка с инжектом и клиент:

http://www.ex.ua/385710230574
ключ: 385710230574


Top
   
PostPosted: 2013-10-01 19:42:09 
Offline
User avatar

Joined: 2013-09-29 14:17:07
Posts: 16
Спасибо. Уже сам разобрался.
Сегодня буду опробовать твои макросы и портировать свои с Ассиста на Инжект.
Как раз щас вором в основном играю :mrgreen:


Top
   
PostPosted: 2013-10-01 20:08:17 
Offline

Joined: 2005-09-18 15:22:30
Posts: 8
Lemah wrote:
Спасибо. Уже сам разобрался.
Сегодня буду опробовать твои макросы и портировать свои с Ассиста на Инжект.
Как раз щас вором в основном играю :mrgreen:


Хорошо)
Правда там обновление вышло несколько недель назад, после которого я перехотел играть.
Добавили задержку между стилингом и хайдом.


Top
   
PostPosted: 2013-10-15 00:48:14 
Offline

Joined: 2013-10-13 01:58:15
Posts: 6
File_ wrote:
Lemah wrote:
Спасибо. Уже сам разобрался.
Сегодня буду опробовать твои макросы и портировать свои с Ассиста на Инжект.
Как раз щас вором в основном играю :mrgreen:


Хорошо)
Правда там обновление вышло несколько недель назад, после которого я перехотел играть.
Добавили задержку между стилингом и хайдом.



А можешь выложить еще раз клиент на ex ? заранее благодарен!


Top
   
PostPosted: 2013-10-15 02:17:04 
Offline

Joined: 2013-10-13 01:58:15
Posts: 6
infainfa wrote:
File_ wrote:
Lemah wrote:
Спасибо. Уже сам разобрался.
Сегодня буду опробовать твои макросы и портировать свои с Ассиста на Инжект.
Как раз щас вором в основном играю :mrgreen:


Хорошо)
Правда там обновление вышло несколько недель назад, после которого я перехотел играть.
Добавили задержку между стилингом и хайдом.



А можешь выложить еще раз клиент на ex ? заранее благодарен!


Спасибо,уже не надо. Рад буду только скриптам)


Top
   
PostPosted: 2014-02-06 12:33:37 
Offline

Joined: 2014-02-06 11:50:03
Posts: 8
Hello everyone.

I just decided to come back to UO after many many years. Was very happy to see that injection is still under development, it has always been my favourite tool.

Does anyone have to client to work with UOForever? Would be very much appreciated!


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

All times are UTC+02:00


Who is online

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