Current time: 23.04.2025, 02:35 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Разные вопросы
» Спрашивайте - отвечаем
Author Message
Berserker Offline
Administrators

Posts: 16744
Post: #1711

Quote:Как доказательство - убранные из ЭРЫ старые воговские кампании. Чем помешали?
Это же не доказательство. Там достаточно было поменять режим вогификации по умолчанию или порядок загрузки скриптов или обработку "!!!" в коде. Проще говоря, просто никому не интересно даже пару строк в них править и дальше попытаться потестировать игру, пройдя кампанию.

Quote:И эпопея с обновлениями WoG Scripts, которые на WoG 3.58f особо и не глючат, а на ЭРЕ в ванильном варианте - не редко лезет ругань отладчика и вылеты.
Из факта, что что-то глючит, не следует заключение о плохой поддержки ЕРМ 1. Под ЕРМ 1 понимается коллекция документированных команд, триггеров, переменных и описания их работы. Помимо этого есть масса недокументированных особенностей и ошибок. Если код полагается на них, то он становится непереносимым с любым языком программирования и с любой средой.

Доказательствами служат демонстрации разницы в работе команд, переменных, событий. Выше я уже писал, что эту разницу оцениваю в условный 1% или меньше. Где-то нужно вог-опции вручную сбросить, где-то явно инициализировать временные переменные, не полагаясь на 0.

Иллюстрация: в старом движке вызовы free(мусорная память) не приводили к вылетам, а vy100, где y100 = -100000 могло работать без проблем и портить память. Баги исправили — появились вылеты с памятью и ошибки во время выполнения на некорректных данных.

Думается, что ты хочешь сказать на деле, что есть плохая поддержка старых багов, ошибок, недокументированных возможностей и т.д. Тут соглашусь. С новыми инструментами мы устранили несколько утечек памяти, а код ЕРМ в WoG Scripts ребята регулярно обновляли, убирая зависимость от неициализированных переменных или исправляя ошибки, которые раньше движок «проглатывал».

Когда есть баг в Эре в реализации конкретной ERM команды, мне об этом так и пишут и присылают код для проверки. Давно не видел подобных отчётов.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
Yesterday 17:07
Find all posts by this user Quote this message in a reply
Barin Offline

Posts: 827
Post: #1712

Правильно заметили, я изначально начинал делать мод под Wog 3.58f, потом перебрался на Эру. Глубокими познаниями не занимался, всё делал опираясь на воговские кампании и некоторые коды с форума. Буду как-то выкручиваться, наверное всё-таки придётся на Эру 3 перебираться и кое-что переделывать (сюжет домового в бане к примеру). Вылет посреди игры очень раздражает, такое не хочется выпускать в релиз.


Моя страница в ВК
Моя разработка мода
Yesterday 17:13
Find all posts by this user Quote this message in a reply
Elmore Offline

Posts: 649
Post: #1713

Barin, Если желаете, чтобы в ваш мод играло как можно больше игроков - придерживайтесь 2 правил:
- Мод должен полностью работать на последней ERA
Это позволит устанавливать мод на сборку через Лаунчер в один клик.
- 100% переводимого текста должно быть в json.
Позволит локализовать любой мод за пару минут.


Image: widget.png?style=banner2
Yesterday 18:08
Find all posts by this user Quote this message in a reply
Guru105 Offline

Posts: 824
Post: #1714

Берс, а этот новы менеджер памяти, как он будет влиять на совместимость?

У меня нет malloc в плагинахъ.

Для выделения памяти в основном используется геройский new (0x617492)
В homm3h это o_New()_
Еще память выделяется, когда что-то скачивается из лодов.
Пример 0x55C9C0 (LoadDef вроде)

И еще память в куче может выделяться под контейнеры std::string, std::vector, std::map и так далее.
Я не вижу, как Эра может это отследить.
Отказаться от использования std::vector - не, это не вариант.
(This post was last modified: Yesterday 18:48 by Guru105.)
Yesterday 18:08
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16744
Post: #1715

Guru105, да никак, старые плагины могут работать без перекомпиляции. Если используешь new, то выделенная память зачтётся на счётчик игры.

Контейнеры Эры не отследит, если не используешь последний SDK. Там перехватываются функции new, new[], delete, delete[], что на ряде компиляторов даёт частичное отслеживание. Собственно, так daemon_n у себя утечки памяти в плагинах и нашёл.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
Yesterday 22:42
Find all posts by this user Quote this message in a reply
Guru105 Offline

Posts: 824
Post: #1716

То есть можно не волноваться, большое спасибо)
И еще мне очень нравится мой новый ник)
(This post was last modified: Yesterday 23:40 by Guru105.)
Yesterday 22:55
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2025 MyBB Group