Добрый день чтот не нашел в темке но мож у кого есть, структура клана(своего) т.е. задача получить список вида
Ник Должность Лвл Онлайн для клана в котором нахожусь.
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Совершенный автологин для Perfect World [RUOFF, PWI, Фришек 1.4.4 - 1.4.5]
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - Патч на Горны, Красный (да и любой) чат, Анфриз, Бесконечный зум, Моментальный разгон на полете для RUOFF, PWI и прочих 1.4.6 и фришек 1.4.4, 1.4.5.
--------------------------------------------
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). - патчер для серверов 1.4.5 и 1.4.4 работающий с включенной игрой.
--------------------------------------------
Ну да хД там где формат данных byte, следует искать либо 4 байта подряд, что вписывается в структуру, либо дополнение до 4 байт. Либо, если уж на то пошло, до 32 бит. И если есть значение 171 byte, обязательно должно быть значение 170 byte. И если следующим значением будет float или dword, оно не будет начинаться с 172 или 173... Поэтому если описывать флаги и придерживаться общего формата, хоть флаг и битовый формат данных, адрес следует указывать кратный структуре. Хотя сколько человек, столько и мнений...
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
sumikot, что-то я ничего не понял из этого объяснения.
Независимо от размеров полей структуры они всегда будут лежать одно за другим, подряд. Поэтому кратность необязательна ввиду различных размеров (1, 2, 4 байта и т.д.).
Например, одно значение было dword и лежало по адресу, кратному 4, оно занимает по своему адресу 4 байта. А если за ним byte, то он уже займёт 1 байт. Следующее значение независимо от типа в любом случае будет лежать по адресу, не кратному 4. А Вы, товарищ, утверждали, этого не может быть. Ещё как может, вот.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Последний раз редактировалось BritishColonist; 09.04.2012 в 21:52.
Где то в старых темах ДрШтайн выводил структуру перса в ексел и раскрашивал известные переменные. Dword и float всегда занимают адреса, кратные 4 и оканчиваются на 0,4,8 и С. Структуры персонажей, мобов, лута, НПСов кратны 4ем. Так, известные мне структуры персонажа имели длинну 0xCC4, 0xD44, 0xF18, 0x115C, 0x1274 с изменением версий клиента. Даже более продвинутый клиент PWI (работает уже на directx9) имеет подобную структуру. Если не верите - можете сами составить таблицу и проверить. Удачи в изысканиях )
Все таки нашел скрипт, который у меня загружал поле структуры перса. Он раскрашивает только возможные ID структуры и возможные адреса массивов. Получившийся файл прикрепляю. Если есть желание - разметить знакомые переменные дело 5ти минут.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось sumikot; 09.04.2012 в 22:50.
все данные в структуре независимо от типа, кратны dword
fail
Кроме того, мы говорили о конкретной структуре и о конкретных её полях, которые
а) вполне могут быть помещены в одном байте;
б) соответственно могут лежать по адресам, не кратным 4.
P.S. А вообще, вижу, что бесполезно спорить, поэтому вот ещё оффсетики к теме.
PlayerStructStart = BA +1C +34 // структура игрока
InventoryStart = PlayerStructStart +CAC // структура его инвентаря
ItemsStart = InventoryStart +C // начало указателей на предметы
ItemInfo = InventoryStart +(X*4) // начало инфы о предмете, лежащем в ячейке X. если здесь лежит 0, то ячейка пуста.
ItemInfo: (дальнейшая инфа проверялась на броне, оружии и бижутерии)
+8 - TypeId (dword) // Id из базы
+10 - Count (dword) // кол-во предметов в ячейке
+18 - Price (dword) // цена (вроде за один предмет, но точно не помню. возможно, что за всю кучу, если предметов несколько)
+40 - Description (wchar_t*) // юникод-строка, содержащая описание предмета (включая звёздочки. кажется, там же есть и коды цветов и символы перехода на новую строку)
+78 - CrafterName (wchar_t*) // имя создателя предмета (содержит только ник, без подписи "создал:")
+A4 - ExtraEffectsPtr (dword) // указатель на начало структуры дополнительных свойств предмета (сюда относится, например, скорость атаки или кол-во прибавляемой предмету прочности)
+A8 - ExtraEffectsCount (unsigned short) // количество дополнительных эффектов (если предмет белый, здесь лежит 0)
ExtraEffectsPtr:
+0 - Effect1Id (dword) // идентификатор первого свойства
+C - Effect1Value (float/dword) // значение свойства (например, для +25% прочности здесь будет лежать дробное число 0.25, а для +7 интеллекта - просто 7, но уже целого типа)
+1C - Effect2Id (dword) // те же данные второго свойства
+28 - Effect2Value (float/dword)
+38 - Effect3Id (dword) // ..и третьего
+44 - Effect3Value (float/dword)
Но свойств может быть больше трёх, надеюсь, не возникнет проблем с логикой подсчётов смещений для остальных свойств. Насчёт пения и скорости атаки - точных типов и идентификаторов не помню, кому надо - проверите сами.
Да-да, это те самые смещения, что используются в автокрафтере пения, выложенном Домиником в разделе "боты/читы/скрипты". Я решил-таки поделиться ими с пабликом, только умоляю, не надо теперь плодить свои "оригинальные" программы по крафту.
Кстати, можно "дюпнуть" предмет в инвентаре, скопировав ItemInfo в ячейку, для которой этот указатель равен NULL (в CE - 0). Существовать он будет только на клиенте, что позволяет творить нехорошие дела с некоторыми предметами. Если вы понимаете, о чём я :3
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Последний раз редактировалось BritishColonist; 09.04.2012 в 23:16.
Никто не искал оффсеты на будущее?
[Ссылки могут видеть только зарегистрированные пользователи. ] не предлагать, base адреса не соответствуют адресам в збт-клиенте
Из структуры игрока из изменившихся совпадает разве что lvl 0x48C и только
Актуальные для збт-клиента base адреса: 0xa571e0, 0xa57acc.
Интересуют офсеты для имени персонажа, класса, id клана, списка игроков вокруг
все данные в структуре независимо от типа, кратны dword
Тут расуждать можно только о конкретной программе. Размер полей одного и того же типа может отличаться в зависимости от того, как компилировали прогу. Пример из c++ builder: существует такая директива препроцессора, как
#pragma pack(n), где n= 1,2,4. Прагма pack позволяет влиять на упаковку смежных элементов в структурах и объединениях
Соглашение может быть таким:
pack(1) - выравнивание элементов по границам байтов;
pack(2) - выравнивание элементов по границам слов;
pack(4) - выравнивание элементов по границам двойных слов;
Итого, если мы в проге используем директиву #pragma pack(4), то в структурах даже под байтовые значения будет выделено 4 байта.
Последний раз редактировалось dwa83; 12.04.2012 в 01:33.
все данные в структуре независимо от типа, кратны dword, поэтому равны nn0, nn4, nn8, nnC
Поэтому 78B и 271 даже теоретически быть не может.
Еще - невидимость для убийцы или для ГМ? Если для убийцы, то найти легко по своему персу, а что касается ГМ, то найти невозможно, если сам не ГМ.
Ну в общем то вы правы. данные все хранятся кратно dword. Значит этот флаг часть большей структуры.
В сообщении написано что флаги для именно ГМ - я являюсь ГМ поэтому и утверждаю это.
Полюбому где-то лежит описатель структуры в котором указан размер структуры и кол-во переменных, но вот типы переменных именно не указываются - они определяются при обращении к структуре из тела программы при ее работе и контролируются только при компилировании.
Да нам этого и не надо - если мы работаем с найденным байтом и видим, что изменения его влияют на показатели в клиенте, то нам всерн в каком месте мы находимся в начале поля структуры или в середине - смещение надо указывать именно к этому месту .. все правильно мы и делаем.
Добавлено через 18 часов 56 минут
Посмотрел новый клиент с ЗБТ. Похоже, китайцы сменили компиллятор, по шаблонам оффсеты и адреса вообще не находятся. Пока только BaseAddress и GameRun смог найти с помощью дизассемблера...
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось whoami; 12.04.2012 в 11:38.
Причина: Добавлено сообщение
alegr, тут всё просто.
Пробуй использовать первый адрес после начала структуры игрока.
Т.е. у тебя много строк, но ты начни проверять с той, у которой адрес больше, чем начало структуры игрока. Скорее всего первая из этих строк будет ником, отображающимся в характеристиках игрока и на полоске с яростью, а вторая - ником, отображающимся над головой.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3