Облегчение в ПвП
Moderators: Murderator+, Murderator
Облегчение в ПвП
Можно ли сделать такой скрипт чтобы выносился статус атакующего тебя, то есть если тебя начинает атаковать кто-то чтоб автоматом выносился его статус и не надо было его полчаса ловить мышкой.
Re: Облегчение в ПвП
Avel Mink wrote:Можно ли сделать такой скрипт чтобы выносился статус атакующего тебя, то есть если тебя начинает атаковать кто-то чтоб автоматом выносился его статус и не надо было его полчаса ловить мышкой.
Нет, такова сделать незя, если чел тебя заатачил, мона пользовать lastattack
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Re: Облегчение в ПвП
Kynep wrote:Avel Mink wrote:Можно ли сделать такой скрипт чтобы выносился статус атакующего тебя, то есть если тебя начинает атаковать кто-то чтоб автоматом выносился его статус и не надо было его полчаса ловить мышкой.
Нет, такова сделать незя, если чел тебя заатачил, мона пользовать lastattack
Даже через uo.drag() низя?..
Странно.. Я уже как-то раз предлагал использовать такой подход, но никто ничего конкретного не сказал..
Лично я не вижу ни одной причины, почему функция не должна работать.
На крайний случай - можно добавить к этим фокусам UoPilot, с ним точно получится.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Re: Облегчение в ПвП
Destruction wrote:Kynep wrote:Avel Mink wrote:Можно ли сделать такой скрипт чтобы выносился статус атакующего тебя, то есть если тебя начинает атаковать кто-то чтоб автоматом выносился его статус и не надо было его полчаса ловить мышкой.
Нет, такова сделать незя, если чел тебя заатачил, мона пользовать lastattack
Даже через uo.drag() низя?..
Странно.. Я уже как-то раз предлагал использовать такой подход, но никто ничего конкретного не сказал..
Лично я не вижу ни одной причины, почему функция не должна работать.
На крайний случай - можно добавить к этим фокусам UoPilot, с ним точно получится.
ХЗ нада пробовать, щас нет возможности, я на работе )

-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Re: Облегчение в ПвП
Kynep wrote:***
ХЗ нада пробовать, щас нет возможности, я на работе )
Вопрос стоит предельно чётко, либо ф-ция uo.drag() стягивает хпбар, либо этим занимается UoPilot.
Так, что как не крути - всё возможно, с той поправочкой, что нужно атакующего видеть на экране..
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
не получится через uo.drag стягивать статус с врага
во-первых координаты врага на дисплее определить не получится, во-вторых для корректной работы всех кликлов и драгов надо чтобы курсор находился в диапазоне области с которой надо работать - в пилоте есть функция move <координаты>, которая перемещает курсор мыши в область действий, в инжекте нету.. равно как и нету контролируемых задержек между действиями мыши.. так что увы..
p.s. для тех кто не разобрался как работает команда
во-первых координаты врага на дисплее определить не получится, во-вторых для корректной работы всех кликлов и драгов надо чтобы курсор находился в диапазоне области с которой надо работать - в пилоте есть функция move <координаты>, которая перемещает курсор мыши в область действий, в инжекте нету.. равно как и нету контролируемых задержек между действиями мыши.. так что увы..
p.s. для тех кто не разобрался как работает команда
Code: Select all
uo.drag(x1,y1,x2,y2) ; где x и y числовые значения пунктов начала и конца соответственно, курсор должен находиться в районе где совершается действие
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
1. У меня пилот нормально драгом стягивает статусы.
2. Включаем мозг и находим вполне реальный способ узнать координаты врага на экране. Если не учитывать z-координату, то всё вообще просто.
К слову, диагональ тайла равна кажется 44px.. И мы можем записать в переменные координаты тайла чара.. А зная относительные координаты врага - в чём проблема узнать координаты?)
Попробую набросать скриптик в связке с UoPilot. Последний соответственно должен быть приатаччен к окну UO. Функцию поиска атакующих делать не будем - не хочется.
Думаешь не сработает?... Это я ещё не писал проверку, видим ли персонаж на экране и без учёта z-координаты..
PS: Насчёт z-координаты, я так думаю она смещает видимую позицию 1px, так, что учитывать её - не проблема. Это просто пример, который можно заставить работать.
--------------------------
Я наверное единственный псих, который думает, что уопилот удобен в пвп
2. Включаем мозг и находим вполне реальный способ узнать координаты врага на экране. Если не учитывать z-координату, то всё вообще просто.
К слову, диагональ тайла равна кажется 44px.. И мы можем записать в переменные координаты тайла чара.. А зная относительные координаты врага - в чём проблема узнать координаты?)
Попробую набросать скриптик в связке с UoPilot. Последний соответственно должен быть приатаччен к окну UO. Функцию поиска атакующих делать не будем - не хочется.
Code: Select all
Sub getStatusBar( obj )
uo.setEasyUO( 1000, str( uo.getX( obj ) - uo.getX() ) )
uo.setEasyUO( 1001, str( uo.getY( obj ) - uo.getY() ) )
uo.setEasyUO( 1234, "1" )
endsub
Code: Select all
set #tile_size = 22
set #bar_x 100 // нужно вбить координаты куда тащить статус-бар
set #bar_y 100 // нужно вбить координаты куда тащить статус-бар
set #char_x 111 // нужно вбить координаты клетки с персонажем
set #char_y 222 // нужно вбить координаты клетки с персонажем
get EasyUO*1234 #check
while_not #check = 1
get EasyUO*1234 #check
end_while
get EasyUO*1000 #attacker_x
get EasyUO*1001 #attacker_y
set #click_x #char_x
set #click_y #char_y
while_not #attacker_x = 0 AND #attacker_y = 0
if #attacker_x < 0
set #click_x #click_x + #tile_size
set #click_y #click_y - #tile_size
set #attacker_x #attacker_x + 1
end_if
if #attacker_x > 0
set #click_x #click_x - #tile_size
set #click_y #click_y + #tile_size
set #attacker_x #attacker_x - 1
end_if
if #attacker_y < 0
set #click_x #click_x - #tile_size
set #click_y #click_y - #tile_size
set #attacker_y #attacker_y + 1
end_if
if #attacker_y > 0
set #click_x #click_x + #tile_size
set #click_y #click_y + #tile_size
set #attacker_y #attacker_y - 1
end_if
end_while
drag #click_x, #click_y #bar_x, #bar_y
set EasyUO*1234 0
Думаешь не сработает?... Это я ещё не писал проверку, видим ли персонаж на экране и без учёта z-координаты..
PS: Насчёт z-координаты, я так думаю она смещает видимую позицию 1px, так, что учитывать её - не проблема. Это просто пример, который можно заставить работать.
--------------------------
Я наверное единственный псих, который думает, что уопилот удобен в пвп

YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Mihail wrote:можно было просто сказать фразу "относительные координаты"
да, про это как-то не пришло в голову.. можно вобщем-то заморочиться, но пилот в пвп действительно неудобен.. к примеру чтобы статус стянулся тебе придется отпусть мышку, - мелочи конечно, а неприятные
Мм.. Ну если не ахти дёргать, то отпускать не обязательно.
А ещё можно убрать отображение выполнения скрипта, поставить паузу между строк в 0 и поставить приоритет пилоту повыше, что доведёт процесс стягивания статус-полоски до мгновения.
Касательно относительных координат - хочешь на абсалютные перепишу?) UOPilot'у всё равно

PS: А uo.drag() точно полоску не стягивает?.. -(
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
под относительными координатами я имел ввиду ультимовские координаты врага относительно твоих
uo.drag стягивает - но нужно мышку подвести к врагу
и стянуть далекого от этого места тоже не получится
хотя может быть это особенности моей системы - у меня и пилот не всегда события мыши обрабатывает если предварительно не переместить курсор в зону где нужно выполнить действие.. но только в пилоте такая команда есть, а в инжекте нету... НО в инжекте есть извращенная возможность подключения внешних модулей, точнее не подключения, а использования
а именно возможность записывать в реестр данные и запускать экзешники из папки system32 так что осталось только написать прогу для перетаскивания курсора с заданных координат и все будет работать
мне лично впадлу этим заниматься.. хотя для удаления ключей easyuo я разок заморочился..
p.s. в предыдущих виндах можно было бы даже не заморачиваться с написанием проги ибо
гы, оказалось что все пишется за 2 секунды ща сделаю - момент, пока все читабщие могут поиграть командой
-----------
вот дополнение к инжекту чтобы ставить курсор мыши на заданные координаты (ВНИМАНИЕ для корректной работы координаты должны быть АБСОЛЮТНЫЕ (определяются в уо-пилоте) инжект на вкладке скриптового модуля определяет ОТНОСИТЕЛЬНЫЕ координаты.. - но если нужно просто передвинуть курсор в нужную область то впринципе сойдут и относительные..
качаем прогу, кидаем в папку C:\WINDOWS\system32
далее в инжекте
uo.drag стягивает - но нужно мышку подвести к врагу

хотя может быть это особенности моей системы - у меня и пилот не всегда события мыши обрабатывает если предварительно не переместить курсор в зону где нужно выполнить действие.. но только в пилоте такая команда есть, а в инжекте нету... НО в инжекте есть извращенная возможность подключения внешних модулей, точнее не подключения, а использования


мне лично впадлу этим заниматься.. хотя для удаления ключей easyuo я разок заморочился..
p.s. в предыдущих виндах можно было бы даже не заморачиваться с написанием проги ибо
Code: Select all
uo.exec("launch rundll32 user,SetCursorPos")
гы, оказалось что все пишется за 2 секунды ща сделаю - момент, пока все читабщие могут поиграть командой
Code: Select all
uo.exec("launch rundll32 user32,SetCursorPos")
-----------
вот дополнение к инжекту чтобы ставить курсор мыши на заданные координаты (ВНИМАНИЕ для корректной работы координаты должны быть АБСОЛЮТНЫЕ (определяются в уо-пилоте) инжект на вкладке скриптового модуля определяет ОТНОСИТЕЛЬНЫЕ координаты.. - но если нужно просто передвинуть курсор в нужную область то впринципе сойдут и относительные..
качаем прогу, кидаем в папку C:\WINDOWS\system32
далее в инжекте
Code: Select all
uo.exec("launch SetCursorPos 245,539") ; пример использования
-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
Ну вот видишь, как всё просто
Скопипасти себя в соответствующий раздел, для порядку.

Скопипасти себя в соответствующий раздел, для порядку.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
заодно чтобы с пилотом не мучиться каждый раз сделал плагин (дальше будем называть это извращения плагинами, хоть они таковыми и не являются
) на определение обсолютных координат
как всегда - кидаем в папку c:\windows\system32
определение координат - программа при запуске копирует текущие координаты мыши в буфер обмена и вырубается
далее в скрипте Ctrl+V
ну и раз пошла такая пьянка сделал еще копирование в буфер обмена заданного текста
плагин

как всегда - кидаем в папку c:\windows\system32
определение координат - программа при запуске копирует текущие координаты мыши в буфер обмена и вырубается
Code: Select all
uo.exec("launch GetCursorPos")
далее в скрипте Ctrl+V

ну и раз пошла такая пьянка сделал еще копирование в буфер обмена заданного текста
плагин
Code: Select all
uo.exec("launch ClipboardSetText йа_криведко") ; пример использования функции копирования текста в буфер обмена - внимание!! нельзя использовать пробелы
Заодно написал улучшенный Drag, который уж точно должен работать.
Как всегда кидаем в system32
И внимательно читаем как использовать.
uo.exec("launch uoDrag x,y,x1,y1,delay,steps")
x,y - координаты отправной точки (не забывает - абсолютные)
x1,y1 - координаты точки прибытия
так же опционально (не обязательно) можно задать:
delay* - задержка после перетаскивания курсора перед "отпусканием" кнопки мыши
steps - если нужно чтобы мышка перетаскивалась медленно, то задав этот параметр программа просчитает промежуточные точки остановки (вы задаете количество точек - чем больше, тем медленнее) - точки рассчитываются по кратчайшему расстоянию - тоесть по прямой.
* в случае, когда задан параметр steps, delay - это время ожидания после каждой точки - оптимально 10-500
не забываем, что никаких пробелов в передаваемых параматрах быть не должно..
И проверок от дурака тоже не много
так что если кому вдруг придет в голову указать 2 соседних пикселя и поставить интервал в 100 шагов, то 98 шагов курсор будет стоять на месте.. и все в таком духе..
--------------
Ну давай Дестракшн - теперь дело за тобой
напиши автору топика стягивание статуса 
Как всегда кидаем в system32
И внимательно читаем как использовать.
uo.exec("launch uoDrag x,y,x1,y1,delay,steps")
x,y - координаты отправной точки (не забывает - абсолютные)
x1,y1 - координаты точки прибытия
так же опционально (не обязательно) можно задать:
delay* - задержка после перетаскивания курсора перед "отпусканием" кнопки мыши
steps - если нужно чтобы мышка перетаскивалась медленно, то задав этот параметр программа просчитает промежуточные точки остановки (вы задаете количество точек - чем больше, тем медленнее) - точки рассчитываются по кратчайшему расстоянию - тоесть по прямой.
* в случае, когда задан параметр steps, delay - это время ожидания после каждой точки - оптимально 10-500
Code: Select all
uo.exec("launch uoDrag 280,740,880,350,100,10")
не забываем, что никаких пробелов в передаваемых параматрах быть не должно..
И проверок от дурака тоже не много

--------------
Ну давай Дестракшн - теперь дело за тобой


-
- Junior Expert
- Posts: 3221
- Joined: 2004-06-24 22:08:56
А я тут причём?
Я лишь обратил ваше внимание на то, что в данном скрипте нет ничего невозможного.
Ты расширил функционал - не вижу проблемы решить задачу и без моей помощи, ход мысли я указал.
Ты бы лучше улучешнный инж написал, чем вот так вот работать
Я лишь обратил ваше внимание на то, что в данном скрипте нет ничего невозможного.
Ты расширил функционал - не вижу проблемы решить задачу и без моей помощи, ход мысли я указал.
Ты бы лучше улучешнный инж написал, чем вот так вот работать

YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
нуу так не интересно я т думал что у тебя азарт проснется, тем более ты выше писал что и раньше пытался такой скрипт сделать, да и модуль определения графических координат имхо был бы востребованной штукой..
Мне лично мешает его написать много причин
и на инжекте я уже ничего не писал хз сколько и времени это займет очень много да и недотрахом мозга не страдаю
чего только последняя хрень с определением координат точек по маршруту мне стоила
а для улучшенного инжа у меня скилл маловато, да и язык не тот.. так что придется довольствоваться "плагинами"
Мне лично мешает его написать много причин



а для улучшенного инжа у меня скилл маловато, да и язык не тот.. так что придется довольствоваться "плагинами"

Code: Select all
sub GetStatus(serial)
var dx = uo.GetX(serial)-uo.GetX()
var dy = uo.GetY(serial)-uo.GetY()
var dz = uo.GetZ(serial)-uo.GetZ()
var x = 400+22*(dx-dy)
var y = 300+22*(dx+dy)-dz*4-20
UO.Drag(x, y, x+44, y)
end sub
неправильно работает, хотя кликает недалеко от цели
p.s. у меня без задержки статус даже с заранее известных координат не стягивается, у кого та же проблема -
но это при условии что скрипт правильный
p.s. у меня без задержки статус даже с заранее известных координат не стягивается, у кого та же проблема -
Code: Select all
uo.exec("launch uoDrag "+str(x)+","+str(y)+","+str(x+44)+","+str(y)+",100")
но это при условии что скрипт правильный