Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> как принять пати, /*
genocide
сообщение 22.7.2013, 19:23
Сообщение #1


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Собственно у многих вставал вопрос "как сделать, чтоб пати принималось на свёрнутом или перекрытом окне". И вот у меня появилась идея, как это реализовать, и как любая другая хорошая идея, она приходит сразу нескольким людям.
Может кто-нибудь пытался высеять с помощью артмани - это? Просто я не могу придумать, что сеять конкретно...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 22.7.2013, 20:30
Сообщение #2


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



на самом деле ты не первый) мне много где хотелось бы кнопочки жать через память. но что сеять опять же не понятно... Сеять можно и через неизвестное, но тут есть несколько проблем:
1) По нажатию начнется евент, который ты никогда не поймаешь в одинаковом состоянии.
2) Флаг может сразу возвращаться в предыдущее состояние.
3) Надо все успеть сделать ДО ответа сервера на согласие пати.

На мой взгляд можно попробовать следующую схему:
1) Отсеваем через неизвестное значение.
2) После того как нам бросили пати замораживаем весь траффик.
3) Нажимаем кнопку "принять"
4) Замораживаем процесс л2.
5) Ищем.
Повторять до полного отсева. Делать лучше на своем серваке, чтобы можно было сделать очень большой таймаут на дисконнект. Иначе если получим диск, то адреса могут измениться.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 23.7.2013, 0:45
Сообщение #3


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Думаю может получится и на каком-нибудь полудохлом серваке, где мало, что происходит... Если сделать всё быстро, то до дисконнекта дело не дойдёт. Локальный сервер буду ставить в крайнем случае ибо не помню уже как я это делал 6 лет назад. Если я найду этот адрес я такой мего-скрипт напишу для оф пати кача... (IMG:style_emoticons/default/rolleyes.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.7.2013, 8:09
Сообщение #4


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



Цитата
Если сделать всё быстро, то до дисконнекта дело не дойдёт

Даже с топовым 6 ядерником разогнанным и сильно задранной частоткой памяти на домашней платформе вы не прогоните отсев 1.5 гигов памяти за минуту. Дальше беда со временем.
Если без сервака, то за запускайте л2, заходите в мир. Начинайте отсев не приступая к пати. Отсеивайте все неизвестные значения по признаку "не изменилось". Можно кстати скриптом пилотовским ибо время займет. Это позволит существенно снизить объем сожранной памяти.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.7.2013, 19:17
Сообщение #5


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



Появилась у меня более изощренная идея с гораздо большими шансами на успех.
1) Находим все адреса, которые изменяются в момент приглашения пати.
2) Находим таймер(с этим проблем вообще быть не должно),
3) Методом научного тыка, перебора и упорства меняем флаги с 0 на 1. Если не пройдет, то наоборот с 1 на 0.
4) Приближаем таймер к нулю.

Цель обратить действие по умолчанию с отмены пати на ее прием, а чтобы не ждать можно занулять таймер.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 24.7.2013, 0:12
Сообщение #6


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Идея очень мне понравилась! Буду пробовать. Вот вопрос, как подружить uopilot с artmoney. Я вроде бы видел функции readmem и writemem, но не пробовал их.. Можете помочь с ними разобраться, на примере полоски хп. К примеру адрес: 02423B40 значение: 10321, я хочу не статичную переменную #hp. Буду очень признателен за развёрнутый ответ, или хотя бы просто код из 3х строчек. В этом перемер по идее будет использоваться только readmem так, что мне нужен пример writemem на запись. Большое заранее спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.7.2013, 8:34
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



readmem #hi1 0x073B978 b
readmem $hi2 0x073B978 s 10

B:byte = 1b; W:word = 2b; D:dWord = 4b; C:char = 1b; S:String = 1-255b;
DO:double = 8b; F:float = 4b; R:real = 6b;

Это выдержки из справки. Имхо тут все достаточно очевидно.
readmem переменная_куда_сохранять_результат адрес тип_данных
Тип данных указывается в артмани, так что не перепутаешь. Скорее всего тебе надо будет указывать тип данных d - в артмани это integer 4 байта, либо f - в артмани это float.

С записью памяти все тоже самое, только вместо переменной с результатом, будет переменная с данным которые надо записать.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 25.7.2013, 0:53
Сообщение #8


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Провозился 3 часа.. частично получилось... но похоже, что значения имеют динамический адрес. не выгружать окно, совсем не вариант... Есть ли какой-нибудь способ заставить адрес не изменятся? Я думаю, что нет.. но всёже? Продумывать хитроумный алгоритм на отсев для написания замороченного скрипта ну совсем не хочется, такой скрипт денег должен стоить xD
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.7.2013, 7:42
Сообщение #9


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



ты подробнее рассказывай, что получилось =)
Динамика адреса убирается с помощью указателей. Справка артмани пункт 10. Обязательно скачай свежую версию. Там очень сильно прорабатывали последние годы именно работу с указателями. Я правда сам давно не обновлялся и с сижу на 7.37, но изменения были глобальные.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.7.2013, 8:17
Сообщение #10


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



https://forum.uokit.com/index.php?showtopic=26424
там как раз с указателем работа. Правда всего одним. В л2 скорее всего вложенность будет 3-5 указателей.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 25.7.2013, 9:44
Сообщение #11


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Получилось найти множество значений которые появляются при запросе, но цель была найти значение отмены по таймауту, я пробовал менять различные значения, но не все, и замораживать, но такое ощущение, что я нужное значение отсеял =(. По идее это значение вообще константа и скорей всего равна 0.
Я искал так:
Ищу неизвестное значение.
Отсеиваю по "не изменилось" несколько раз, чтобы убрать лишнюю кашу.
Кидаю инвайт.
Сею по "изменилось"..
Пати отменилось по таймауту - сею по "изменилось".
Сею по не изменилось несколько раз.. и т.д.

Так сделал раз 10 - значений получилось около 3000, но повторение процедуры не очень уже помогало... и я стал копаться в этих 3000 значений xD..

И с указателями попробую сегодня поработать надеюсь всё получится.... Артмани у меня последняя крякнутая кейгеном версия PRO - что может быть лучше (IMG:style_emoticons/default/wink.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.7.2013, 10:28
Сообщение #12


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



Цитата
Артмани у меня последняя крякнутая кейгеном версия PRO - что может быть лучше

Ссылка на все это может быть лучше)
Цитата
По идее это значение вообще константа и скорей всего равна 0.

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


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 25.7.2013, 17:38
Сообщение #13


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Не понимаю вот эту строчку, что тут происходит и, что такое 7 и 4.
Код
 set $pointerHexEnding copy (dec2hex (#pointer) 7 4) 


А ещё тут, смещение складывается со значением? Как это работает %)
Код
 set #zoomAdress #pointer + #zoomOffset 
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.7.2013, 17:42
Сообщение #14


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



Цитата
А ещё тут, смещение складывается со значением? Как это работает %)

Указатель бывает очень редко на нужный адрес. Зачастую приходится искать указатель на блок данных. Соответственно потом необходимо смещение относительно начала блока данных.

Цитата
Не понимаю вот эту строчку, что тут происходит и, что такое 7 и 4.
Код
set $pointerHexEnding copy (dec2hex (#pointer) 7 4)

Считать текст с позиции 7 в количестве 4 знаков. Не заморачивайся - это контрольные значения для моего случая. Нужный адрес всегда имел одинаковые 4 цифры в конце. При запуске доты память могла быть еще не размечена необходимым образом и скрипт просто ждал.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 25.7.2013, 17:42
Сообщение #15


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



С динамическими адресами разобрался.. Там всё просто оказалось.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 25.7.2013, 20:39
Сообщение #16


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



http://rutracker.org/forum/viewtopic.php?t=4058414
Я от суда качал артмани.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 26.7.2013, 7:32
Сообщение #17


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



Раньше наши по версиям сильно отставали. Приходилось сидеть на буржуйских.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 26.7.2013, 23:04
Сообщение #18


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Не получается сделать значение которое бы не изменилось при перезапуске =((
Пробую на Хп потому, что его быстро можно найти.. Как я понял самый надёжный способ должен быть поиск на начало блока со смещением. Что я делаю не правильно?

У меня 3976 хп - я ищу это значение.
Снимаю блес на хп его становится 2945. Сею. Получаю 2 значения одно макс.хп другое фактическое хп.
Жму, искать указатель на начало блока памяти. получаю 75 адресов.
перезапускаю клиент. Сею точное значение 2945.
Результат 0
=((
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
genocide
сообщение 27.7.2013, 17:32
Сообщение #19


***

Novice
Сообщений: 79
Регистрация: 2.2.2013
Группа: Пользователи
Наличность: 0
Пользователь №: 15.752
Возраст: 21



Цитата
А ещё тут, смещение складывается со значением? Как это работает %)


Цитата
Указатель бывает очень редко на нужный адрес. Зачастую приходится искать указатель на блок данных. Соответственно потом необходимо смещение относительно начала блока данных.
Код
 
  
Эта строка мне всё равно не понятна.
set #zoomAdress #pointer + #zoomOffset [code]
#pointer - смещение
#zoomOffset - значение (мы его получили из readmem)
#zoomAdress = смещение + значение
Не понимаю зачем это? Ведь смещение относительно адреса, а значит по идее нужно прибавлять к адресу смещение.. И выглядеть это должно, что-то в духе..
set #zoomAdress #pointer + 0A000CF0
только адреса записаны в 16ричной системе счисление, а смещение в 10ричной.. Значит нужно сначала перевести смещение в 16ричную систему счисления, а затем складывать...
Как переводить в другую систему счисления? И я 100% где-то ошибаюсь... поправите меня пожалуйста.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 27.7.2013, 17:41
Сообщение #20


***********

Модератор UOPilot
Сообщений: 9.477
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27902
Пользователь №: 11.279



тебе надо искать указатель на указатель с приличной вложенностью и смещением. Поэтому и времени уйдет на поиск ОЧЕНЬ много. У меня некоторые отсевы происходили в течении нескольких суток. Обязательно поставь галку поиска в статичных адресах и заморозь процесс.

Цитата
#pointer - смещение
#zoomOffset - значение (мы его получили из readmem)

Наоборот.
#pointer - значение указателя.
Offset - смещение.
Т.е. мы считываем адрес указателя, в нем содержится адрес на начало блока. К этому адресу добавляем смещение в блоке.

Цитата
set #zoomAdress #pointer + 0A000CF0

оно у меня так и есть, только 0A000CF0 записано не константой, а переменной. Кстати при указании шестнадцатиричного числа необходимо перед числом указывать 0x, т.е. у нас будет 0x0A000CF0.
Цитата
только адреса записаны в 16ричной системе счисление, а смещение в 10ричной.. Значит нужно сначала перевести смещение в 16ричную систему счисления, а затем складывать...

Результат считывания readmem будет выглядеть десятичным числом. Соответственно к нему можно спокойно прибавить другое десятичное число. Кстати к адресам в памяти так же можно обращаться не только по шестнадцатиричным, но и по десятичным адресам.

Сообщение отредактировал DarkMaster - 27.7.2013, 17:34


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V  1 2 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 24.5.2024, 11:25
Designed by Nickostyle