![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]() ![]()
Сообщение
#1
|
|
![]() В миру GrayFace Сообщений: 2 529 Спасибо сказали: 817 раз ![]() |
После 5.5+ лет эпизодической работы над WoG 3.59 в рамках CoreWoG у меня наконец есть хорошая промежуточная версия, а также время и желание заново собрать команду.
Итак, альфа-версия WoG 3.59, open source: https://github.com/GrayFace/wog Версию для тестирования можно скачать из Releases. Сразу предупреждаю, что багов там много - новые скрипты ВоГификации почти не тестировались и есть непойманный баг, приводящий к вылету. И еще, элементов новых городов здесь нет. Основные изменения: - Скрипты Lua (с полной поддержкой команд ERM). Новые скрипты рекоммендуется делать на Lua, в том числе для того, чтобы не было конфликтов. В info\AboutLua.txt есть вводная информация про Lua. - Новая система создания диалогов на Lua. Такжде можно изменить любой стандартный диалог. Скриптам ERM эта функциональность недоступна. См. info\Tutorials\dialogs.htm и скрипты, приложенные к нему. - Возможность загружать свои LOD'ы. - Моды. Не финальная версия. - Различные новые команды ERM. Например, GOTO. См. файлы info\ChageLog*.txt. - Новые скрипты, сделанные оригинальной комадой ВоГа. Что еще надо сделать: - Поддержка новых городов. В процессе разработки. - Завершение поддержки модов, загрузка архивов SND и VID и т.п. - Включение HD Mod'а или совместимость с ним. Добавление различных фич из Эры. - Новая графика для меню. В меню компаний теперь есть и компания SoD, поэтому кнопки компаний надо как-то переставить. - Исправить скрипты ВоГификации. Отсортировать их, чтобы в них хоть как-то можно было ориентироваться. - Собственно, новые города. - Обновление ERM Help, соединение с информацией по скриптам Lua. Если Вы хотите участвовать в разработке 3.59 или модов для него, добавляйтесь ко мне в скайп: (мой ник)_grayface. По предыдущему опыту, групповой тектовый чат в Скайпе отлично подходит для общения команды. Напишите мне на мыло или в ЛС, если Skype Вам не подходит по какой-то причине. P.S. отлепленная ветка со старой информацией о 3.59 и ссылкой на ролик с Бастионом: http://forum.df2.ru/index.php?showtopic=12961 -------------------- ДНК банана на 50% состоит из человека.
Спасибо сказали: izrukvruki, Shurup, Vadim_FVE, XEL, fireman, hippocamus, IQUARE, Agar, Чёрный Абишай, magoth, Nestor, Vade Parvis, tolich, AKuHAK, FCst1, lion-killer, Starseeker, hommer, Adept, feanor, dik X.B., StasPV, Throutle, packa, Etoprostoya, Kislolord, Berserker, SerAlexandr, Гры2, Господин Уэф, Axolotl, Maximus, Day7, DemonTwR, Эроласт, ivyl, Hobbit, igrik, Арысь-Поле, Zabuza-san, Corkes, Black Dragon, Theodor, Orzie, AleXXXSC, WWWoWaNuS, Ozymandias II, Grossmaster |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() laughed as one fey Сообщений: 12 167 Спасибо сказали: 20602 раза ![]() |
Чем отличаются разные типы хуков, есть ли среди них аналог патчеровского сплайса (подмена функции своей без явного перехвата всех вызовов) и как можно осуществить прямой доступ к структурам в памяти?
А то использование ERM из-под Lua явный костыль. |
|
|
![]()
Сообщение
#3
|
|
![]() В миру GrayFace Сообщений: 2 529 Спасибо сказали: 817 раз ![]() |
Чем отличаются разные типы хуков, есть ли среди них аналог патчеровского сплайса (подмена функции своей без явного перехвата всех вызовов) и как можно осуществить прямой доступ к структурам в памяти? Да, hookfunction. Основные: hookfunction - - заменяет функцию с возможностью вызова оригинала. hookcall - так же, но подмена вызова функции. autohook - хук в какое-то место в коде. Эти хуки автоматически вызывают код, затёртый инструкцией call (в случае hookcall это не нужно). Возможности ставить несколько хуков в одно место у меня пока нет. patcher я не использовал и он мне не понятен без сорсов. Хотелось знать, что именно каждый его хук делает. Я набросал их в info\LuaMem.txt, но не написал никаких описаний. Прямой доступ к памяти - скажем, Код local base = mem.u4[0x699538] mem.u1[base+0x1F458] = 1 -- сделать игрока читером u4 - 4-байтовое беззнаковое. i4 - знаковое. u1 - байт и т.п. r8 - double, r4 - single. Для строк: mem.pchar - read-only mem.EditPChar - с редактированием mem.EditConstPChar - для защищённой памяти mem.DynStr - для динамических строк Героев Функция mem.string: -- mem.string(p) - read null-terminated string -- mem.string(p, size) - read null-terminated string not more than 'size' bytes -- mem.string(p, size, true) - read 'size' bytes as string Есть возможность описывать структуры, как в Data\zvs\Lua\structs.lua. MMExtension на этом в основном построен. А то использование ERM из-под Lua явный костыль. В будущем можно сделать API-прослойку с функциями с говорящими именами. Или использовать движок структур с вызовом ЕРМа для установки некоторых значений. -------------------- ДНК банана на 50% состоит из человека.
|
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 September 2025 - 14:56 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|