Current time: 30.11.2024, 10:41 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Авторам плагинов
» Заметки по ERA API
Author Message
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #2

(19.11.2020 17:39)Berserker Wrote:  Если Вы используете структуры данных, которые имеют вероятность быть расширенными Эрой или другими плагинами, то для сохранения совместимости и предотвращения вылетов следует поступать следующим образом

На практике это было использовано 1 раз в Тифоне для структуры монстров (и то только после того, как Берсеркер это сделал сам, у меня так и не вышло такое добавить в код плагина), больше нигде "вероятность быть расширенными Эрой" слава богу не встретилась. И вообще, тут понятнее термин "перенесёнными в памяти", а не "расширенными": например Тифон 3.2 расширяет структуру героев, но не переносит её в памяти (сделано для совместимости с HD-модом и прочими модами, в которых RedirectMemoryBlock никогда не будет в силу отсутствия исходных кодов или возможности перекомпиляции или просто автору плагина наплевать на совместимость).

(19.11.2020 17:39)Berserker Wrote:  Таким образом Вы обеспечите корректную работу всех других плагинов и новых версий Эры.

Чтобы это работало на практике, нужно, чтобы это применялось в двухстороннем порядке. Например, тот же Тифон 3.2 переносит кучу всяких данных, но RedirectMemoryBlock применяется только для структуры монстров для совместимости с era.dll, но абсолютно не известно, какие перенесённые структуры потребуются ЭРЕ в будущем 105 (а Тифон переносит ещё много что... 148 ).

В подавляющем большинстве случаев для чтения перенесённых структур лучше использовать базовые адреса структур (любая прямая адресация в коде может быть принята за базовый адрес) - это позволяет не договариваться с автором плагина, в котором перенесена структура, о добавлении RedirectMemoryBlock. Тем более, одна структура может быть перенесена только одним плагином (например Тифон никогда не заработает вместе с Аметистом так же как ERA+ будет всегда конфликтовать с вражеским Knightmare Kingdoms), а самих плагинов, меняющих структуры, существует не так много.

Для совместимости плагинов как раз и созданы сборники плагинов - никому не нужный отечественный ERA+ и никому не нужный его зарубежный аналог Knightmare Kingdoms. Т.е. для создания какого-то по-настоящему глобального мода для ERA, типа Horn of the Abyss, выбираются сборники плагинов, которые имеют проверенную совместимость (но, как понимаете, до этого ещё дело не дошло, ВСЕ современные моддеры на ERA ограничиваются созданием небольших модов), а не подбираются отдельные плагины (которые всё равно будут частью подплатформ ERA).
(This post was last modified: 19.11.2020 19:01 by XEPOMAHT.)
19.11.2020 18:40
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Messages In This Thread
Авторам плагинов - Berserker - 19.11.2020, 17:39
RE: Авторам плагинов - XEPOMAHT - 19.11.2020 18:40
RE: Авторам плагинов - Berserker - 19.11.2020, 19:12
RE: Авторам плагинов - XEPOMAHT - 19.11.2020, 20:38
RE: Авторам плагинов - feanor - 19.11.2020, 22:58
RE: Авторам плагинов - Berserker - 19.11.2020, 23:20
RE: Авторам плагинов - Berserker - 19.11.2020, 23:29
RE: Авторам плагинов - XEPOMAHT - 20.11.2020, 00:58
RE: Авторам плагинов - Berserker - 20.11.2020, 01:15
RE: Авторам плагинов - feanor - 20.11.2020, 01:54
RE: Авторам плагинов - Berserker - 20.11.2020, 02:41
RE: Авторам плагинов - feanor - 20.11.2020, 13:04
RE: Авторам плагинов - XEPOMAHT - 20.11.2020, 13:21
RE: Авторам плагинов - Berserker - 20.11.2020, 17:39

Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group