Всем привет! Нужна помощь, смысл в том, что нужно один record подменить другим(например если на вас напал кто либо из персонажей мы его бьем как моба)Структуру полей специально выровнял.
Например читаем по таргету.
Var
Mob:TMobInfo; // моб
MobPlayer:TPlayerInfo; // напавший игрок
begin
Mob := MobPlayer;
end;
Так не прокатывает.
Ниже сама структура Record:
Вообще, это называется наследованием. Не в курсе, если в дельфях виртуальные функции.
С другой стороны, если структуры (Record'ы) одинаковые, то зачем их по-разному называть? Можно тогда переименовать в TActiveObjectInfo и добавить поле тип (enum)
________________
Больше не занимаюсь читами, ушёл в серверную часть. Новый ник - int 3.
P.S. Но я всё такой же добрый модератор раздела PW.
Вообще, это называется наследованием. Не в курсе, если в дельфях виртуальные функции.
С другой стороны, если структуры (Record'ы) одинаковые, то зачем их по-разному называть? Можно тогда переименовать в TActiveObjectInfo и добавить поле тип (enum)
Идея понятна, при первых поисках, виртуальные функции есть. (Virtual)
Будем читать доп литературу в инете. (Для меня пока темный лес, если получиться , туда же подключу
Код:
TPartyPlayer = record // группа пати
WID: DWORD;
ID: DWORD;
Name: string;
Tip: DWORD;
Lvl: DWORD;
HP: DWORD;
MP: DWORD;
MaxHP: DWORD;
MaxMP: DWORD;
Distance: Single;
BaffsCount: DWORD;
Baffs: TDWORDArray;
Loc: TCoord;
WalkMode: Byte; здесь например офзет я не нашел, делаю подмену через TPlayerInfo, сравнивая ПЛ WID с WID игроками, кто рядом находиться.
end;
Последний раз редактировалось diagnost; 07.01.2016 в 02:03.
Нет никакого смысла создавать разные классы с идентичными методами и членами (в данном случае структуры)
Достаточно заполнить различные экземпляры структур нужными данными (о персонаже/мобе)
Последний раз редактировалось MembRupt; 07.01.2016 в 03:02.
Значит свободно Типы 4, 5, 8 и все это сунуть в одну таблицу.
Все это делается для того, чтобы делать подмену, например пати группа -- их структуру можно прочитать, как игроки рядом. Объединив эти таблицы можно больше инфы получить. Если собираемся атаковать игроков, а бот написан только для мобов, почему бы не сделать подмену структур, чтобы не переписывать весь цикл работы бота. Также, как мобов убиваем и собираем лут.(Это конечно я загнул, игроки не будут стоять на месте, как мобы) В любом случае, если бот будет защищаться, для нападающего будет неприятно.
Всем спасибо!! Оказалось все проще, ничего переделывать не пришлось, присвоил игрокам рядом Tip 5 и добавил соответствующую проверку.
Последний раз редактировалось diagnost; 08.01.2016 в 00:16.
Я давно не занимаюсь этим. Но.
Что мешает определить кто тебя атаковал тупо по его id. И в зависимости от этого, не подменяя записи, атаковать в ответ?
________________
Ни одно доброе дело не остается безнаказанным.
Программы:
PW: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
JD: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). .
Статьи: Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). , Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Я давно не занимаюсь этим. Но.
Что мешает определить кто тебя атаковал тупо по его id. И в зависимости от этого, не подменяя записи, атаковать в ответ?
В принципе я так и сделал, читаю информацию по таргету. Единственное что пришлось WID пати группы обнулять.
Код:
if PersInParty > 0 then
begin
for x := 0 to PersInParty - 1 do
if Party[x].WID = MobPlayer.WID then
GamerInfo.TargetID := 0;
end;
Появился еще косяк на нпс агрится, надо тоже исключение сделать.
Чтобы новую тему не создавать, спрошу здесь. Стоит задача брать кв по ПЛ( пример телепортироваться с одной локи в другую) "по принципу делай как я". Получается если ПЛ берет кв, все в грппе должны повторить. Может быть попробовать на пакетном уровне все это сделать? Ну например я получил пакет от пл как его передать остальным?
Последний раз редактировалось diagnost; 08.01.2016 в 16:16.
Через SendPacket функцию же. Только по-моему внедрять тут сниффер пакетов - это тот еще костыль, плюс надежность и скорость работы под вопросом.
Тогда посылка команд на взятие квеста придется организовывать через чат. Например посылкой команд 1/2 (клик по 1 строке, затем клик по 2 строке)
Есть еще какие-нибудь методы управления патей? На сегодняшний момент активно использую управление патей через чат.(Баф, стоять на месте, атака, отмена атаки, просто следовать за лидером пати).
Последний раз редактировалось diagnost; 08.01.2016 в 22:37.
Пока разбирался восстановил [Ссылки могут видеть только зарегистрированные пользователи. ] Исходники на Delphi XE10(пришлось немного переделать) С ней хорошо по массивам погулять, видит не сортированные массивы. Программа не моя, кто то выкладывал, уже не помню кто. Адаптирована под нынешний РУОФ с примером.
Добавил вывод в 16 системе счисления и вывод результата 4 байта [Ссылки могут видеть только зарегистрированные пользователи. ]
Теперь по теме, странно что кроме ID квеста ничего пока не вижу( чуть позже картинки выложу)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Что удалось выяснить
Цитата:
+14А0 QuestArray /Квестовый массив/
+0x8+0 Общее допустимое число квестов 19
+0x8+4 текущее количество квестов
+0x8+(i*0x20+0x8) - word id квеста(от 0 до 19)(Здесь 2 байта читаем )