Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Вопрос по созданию бота.

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 18.12.2011, 13:07   #1
 Разведчик
Аватар для сhersаnyа
 
сhersаnyа никому не известный тип
Регистрация: 18.12.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Вопрос по созданию бота.

Я использую C# и клиент PvPpw. Чтение информации о самом игроке получилось сделать достаточно легко, используя библиотеку MemFunctions (откуда-то скачанную) и информацию с [Ссылки могут видеть только зарегистрированные пользователи. ]. Там также есть оффсеты для окружающих мобов, нпс и т.п., но я никак не могу понять, каким образом это представлено в памяти. Если можно, приведите пожалуйста пример, как получить какую-нибудь информацию из хеш-таблицы по ближайшим мобам, например.

И ещё вопрос - как выделить (поместить в таргет) какого-нибудь моба? Нигде не нашёл примеров с этим.
P.S.: да, я знаю, что есть готовые боты и проще использовать их, но написать что-то своё интереснее =)
  Ответить с цитированием
Старый 18.12.2011, 14:34   #2
 Старший сержант
Аватар для Skuka.95
 
Skuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражанияSkuka.95 блестящий пример для подражания
Регистрация: 12.06.2010
Сообщений: 186
Популярность: 1746
Сказал(а) спасибо: 27
Поблагодарили 64 раз(а) в 59 сообщениях
Отправить сообщение для Skuka.95 с помощью ICQ
 
По умолчанию Re: Вопрос по созданию бота.

сам пишу на делфи, так что толком помочь немогу (наверно) но загляни сюда http://zhyk.ru/forum/showthread.php?t=155858 может поможет)
________________
Почти забросил раздел Pw скажем спасибо TBX1n и серверу
Цитата:
Сообщение от TBX1n
Скука новый админ

  Ответить с цитированием
Старый 18.12.2011, 16:00   #3
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Вопрос по созданию бота.

У меня загрузка списка мобов происходит вот так:
Код:
            // Доступ к элементам списка осуществляется так:
            // GA +20 +380 +088 +I*4 (I In [0..N])
            // где N = кол-во игроков рядов

            // Открываем память процесса для чтения / записи
            MemoryManager.OpenProcess(selectedWindow1.ProcessId);
            // Получаем кол-во моб, которое рядом с нами
            // GA +20 +380 +14
            //var nearPlayersCount = MemoryManager.ChainReadInt32(GameRun, 0x1c, 0x24, 0x14);
            var nearMobCount = MemoryManager.ChainReadInt32(GameRun, 0x1c, 0x24, 0x14);
            // Записываем результат
            // Получаем указатель, на начало списка
            // GA +20 + 380 +88
            //var pointer = MemoryManager.ChainReadInt32(GameRun, 0x1c, 0x20, 0x88);
            var pointer = MemoryManager.ChainReadInt32(GameRun, 0x1c, 0x24, 20 * 4);

            // Начинаем пробегать по списку мобов
            for (var i = 0; i < nearMobCount; i++)
            {
                // Получаем указатель, на начало структуры из списка игроков
                var mobBase = MemoryManager.ReadInt32(pointer + i * 0x4);
                // Проверяем существует ли запись
                if (mobBase != 0)
                {
                    // Получаем данные из структуры, которые нам нужны
                    var mobType = MemoryManager.ReadInt32(mobBase + 0xB4);
                    //if (mobType == 6)
                    {
                        var mobId = MemoryManager.ReadInt32(mobBase + 0x120);
                        var mobName = MemoryManager.ChainReadString(mobBase + 0x254, 32, 0x0);
                        var mobLevel = MemoryManager.ReadInt32(mobBase + 0x124);
                        lvMobs.Items.Add(mobName).SubItems.AddRange(new string[] { mobLevel.ToString(), mobId.ToString() });
                        // Записываем полученные данные
                        //MesBox(mobName);
                    }
                }

            }
            // Закрываем дескриптор процесса
            MemoryManager.CloseProcess();
Для таргета надо послать пакет клиенту (659450 Send pack func)
Пакет я строю так:
Код:
        public static byte[] Target(byte[] id)
        {
            byte[] ret = new byte[] { 0x02, 0x00 };
            ret = Bytes.WriteBytes(ret, id);
            Injects.text = Bytes.ToString(ret);
            return ret;
        }
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон

Последний раз редактировалось FreePVP))); 18.12.2011 в 16:10. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 18.12.2011, 17:32   #4
 Разведчик
Аватар для сhersаnyа
 
сhersаnyа никому не известный тип
Регистрация: 18.12.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Вопрос по созданию бота.

FreePVP))), спасибо, как доберусь домой обязательно попробую Со списком мобов вроде всё понятно, а по поводу таргета можно немного пояснить? Что такое byte[] id, что именно возвращает функция, ну и что делает Injects.text = ...?
  Ответить с цитированием
Старый 18.12.2011, 19:28   #5
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Вопрос по созданию бота.

Посмотрите PW Development Framework
Там есть пример
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
  Ответить с цитированием
Старый 19.12.2011, 12:24   #6
 Разведчик
Аватар для сhersаnyа
 
сhersаnyа никому не известный тип
Регистрация: 18.12.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Вопрос по созданию бота.

FreePVP))), посмотрел PWFramework (и другое), но не совсем понял, какой именно id нужно передавать в пакете для выделения моба (и для других пакетов, где нужен какой-нибудь id, тоже не понятно). Пакеты, которые не требуют дополнительных данных, работают нормально, а для этих никак не могу понять, где брать id. mobId, который из var mobId = MemoryManager.ReadInt32(mobBase + 0x120), это вроде бы не то, т.к. он у всех мобов одного вида одинаков...
  Ответить с цитированием
Старый 19.12.2011, 13:27   #7
-= Мастер Света =-
 Капитан
Аватар для FreePVP)))
 
FreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского СоюзаFreePVP))) трижды герой Советского Союза
Регистрация: 24.09.2010
Сообщений: 262
Популярность: 6723
Сказал(а) спасибо: 118
Поблагодарили 346 раз(а) в 104 сообщениях
Отправить сообщение для FreePVP))) с помощью ICQ Отправить сообщение для FreePVP))) с помощью Skype™
 
По умолчанию Re: Вопрос по созданию бота.

А надо передавать World ID
Я получаю WID моба так:
Код:
var mobWID = MemoryManager.Read4Bytes(mobBase + 0x11C);
В MemoryManager надо дописать:
Код:
        public static byte[] Read4Bytes(Int32 address)
        {
            int read; var buffer = new byte[4];

            WinApi.ReadProcessMemory(OpenProcessHandle, address, buffer, buffer.Length, out read);

            return buffer;
        }
Добавлено через 4 минуты
Injects.text я не помню, зачем использовал
А функция возвращает массив байт
Вот так более правильно:
Код:
        public static byte[] Target(byte[] id)
        {
            ret = Bytes.WriteBytes(new byte[] { 0x02, 0x00 }, id);
            return ret;
        }
________________
TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115


[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот
[Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон

Последний раз редактировалось FreePVP))); 19.12.2011 в 13:31. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Помогите!] Вопрос по созданию сервера m1x* Общение и обсуждение, архив Lineage 2 4 15.04.2011 22:01
[Помогите!] Вопрос по созданию батника для бота asdada2 Общение и обсуждение 1 16.02.2011 15:53
Вопрос по созданию сервера Angelo Вопросы и ответы, обсуждения 3 02.11.2010 22:29
[Обсуждение] Вопрос по созданию бота Meg(0) Общение и обсуждение Perfect World 1 19.07.2010 17:15

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 14:00.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net