Не знаете ли как зделать трейнер на Delphi?. То есть в игре есть числовое значение (например здоровье). Его нужно найти и исправить. Только напишите поподробней, plz. Заранее благодарен. pcgamer@mail.ru
Здравствуйте, PC Gamer! Есть два способа: 1. Покопаться в созранном файле и исправить там все что нужно. 2. Влезть в пространство адресов игрушки и там уже исправлять что нужно. Первый способ более простой, а для второго ттебе нужно разбираться в организацией памяти и ее менеждмента и защиты в виндах!))) Есть там конечно в WinAPI такие функции, будем надеяться что тут такие знатоки есть!)))) Ответ отправлен: 07.08.2002, 19:36 Отправитель: Pablo Отвечает baldr
Доброе время суток, PC Gamer! А ты знаешь как вообще такие вещи исправляются? Немного теории: Во время игры она "замораживается" и в памяти ищется какое-либо число. Например, у игрока 3 жизни. Ищется во всей (или не во всей, а только в некоторой области) памяти все числа 3. Их позиции запоминаются. В игре специально создается ситуация когда число жизней уменьшается (увеличивается) - например, сознательно убивают персонаж. Далее по всем запомненным ранее адресам смотрится - какие из них стали равны текущему количеству жизней. Если их несколько, то опять убивают персонаж. И так до тех пор, пока не будем точно знать - по какому адресу содержится число жизней. Тогда это число изменяют на, скажем, 99 - И играют дальше... Примерно так. А написать свой довольно сложно по причине труностей с тем, что многие игры перехватывают довольно
много ресурсов.
Ответ отправлен: 09.08.2002, 01:32 Отправитель: baldr
Вопрос № 117
Здравствуйте! У меня такой вопрос: Программа на Delphi должна отредактировать файл boot.ini. Подскажите, пожалуйта функцию WinAPI, при помощи которой можно из буквы диска получить номер винчестера, раздела и т.д. Заранее спасибо!
Здравствуй, Slava! Ниже описаны апишные функции для работы с логическими дисками : GetLogicalDrives - получение числа логических дисков GetLogicalDriveStrings - получение букв логических дисковы GetDriveType - получние типа диска исходя из буквы GetDiskFreeSpace - получние сободного места диска исходя из буквы GetVolumeInformation - получение системной информации исходя из буквы диска Следующая функция предоставляет относительно низкий доступ к диску. DeviceIoControl - прямое управление дисковым устрйоством определенным идентификатором Чтобы получить идентификатор устройства нужно использовать следующую функцию: hDevice = CreateFile("\\.\C:", 0, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL);
Ответ отправлен: 09.08.2002, 22:19 Отправитель: Pablo Отвечает Артём Шегеда
Приветствую Вас, Slava!
Насколько я понял, этот файл принадлежит WindowsNT, а значит, Ваша задача немного упрощается. Смотрите документацию по функции DeviceIoControl, в частности, параметр dwIoControlCode=IOCTL_DISK_GET_DRIVE_LAYOUT и dwIoControlCode=IOCTL_DISK_GET_PARTITION_INFO. Эта фукция полноценно работает только в WindowsNT (хотя возможно её использование под Win95). А вообще, не мешало бы заглянуть на Microsoft MSDN и поискать то, что Вам нужно. А отмазки, что интернет дохлый и денег много на него надо - не катят, поскольку такой URL пройдёт на ура: попробуй - понравится
(глядишь, подсядешь как на наркоту) Ответ отправлен: 09.08.2002, 12:58 Отправитель: Артём Шегеда
Вопрос № 118
Здарова эксперты! У меня тут глюк какойто пытаюсь запустить браузер по оперделенному аддресу, ну типа ShellExecute(0,'open','http://www.rusfaq.ru',nil,nil,SW_SHOW); В итоге немного пошебуршит винт, и нифига не открывается :< Поможите, кто чем могет,.. сами мы не местные.. и все такое...
иначе - ищи в реестре: у тебя неадекватно реагирует система на HTTP URL
Ответ отправлен: 09.08.2002, 12:22 Отправитель: Артём Шегеда Отвечает Sanya
Приветствую Вас, Mr. J! Попробуй так: ShellExecute (Handle,'open','http://www.rusfaq.ru',nil,nil,SW_SHOW) и посмотри что функция возвращает, в случае успешного выполнения возвращается значение больше 32! Удачи! Ответ отправлен: 09.08.2002, 02:51 Отправитель: Sanya
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.