(13.01.2021 02:20)XEPOMAHT Wrote: Можно и публично. Но Ассемблер я знаю так себе, на 3 с минусом.
Эх, мне бы Вашу скромность
Если Вы смогли создать Эру+ и MoP 2.18, то это уже как минимум 4. Насчёт плюсов и минусов пока ничего не скажу из-за нехватки опыта, но я готов с уверенностью заявить, что, если Вы можете применять свои знания в таком масштабе, то это совершенно точно не 3!
Спасибо за помощь, спасибо за советы и спасибо за открытость!
(13.01.2021 02:20)XEPOMAHT Wrote: Лучше оставить это на ERM и не переводить на Си. Т.к. это решение приемлемо именно для ERM (правда, не факт, что в будущем может начать вылетать после обновления Эры, HD-мода или какого-нибудь плагина). На ERM всегда можно исправить руками любого игрока, знающего язык. На Си - всегда затруднительно, т.к. синтаксис там в разы сложнее и непонятнее для непрограммистов типа меня.
Тут я с Вами полностью согласен, но только вот у ERM есть множество ограничений, а также всегда существует вероятность, что кто-то где-то возьмёт и использует какой-то индекс, который должен оставаться нетронутым. Как показывает мой опыт, комбинация Си с ERM наиболее удобна для разработки. Например, массивы, а также все, что связано с переменными, выглядит намного более логично и понятно, лично мне такой код читать намного удобнее. Также у меня, как у разработчика, сразу открывается множество новых возможностей вроде использования двумерных массивов (насколько я знаю, в обычных скриптах это делать нельзя).
(13.01.2021 02:20)XEPOMAHT Wrote: Для небольшой функции вроде посещения Колизея Магов надёжнее не использовать существующую содовскую функцию Арены, а написать свою (тем более, содовская функция написана не очень качественно, как будто Арену программировали наспех прямо перед релизом бета-версии Третьих Героев, например там и подсказку забыли добавить, и проверки на переполнение Атаки/Защиты нет, и лишние спецфункции для Арены зачем-то добавили, хотя остальные подобные объекты карты спокойно обходятся без них и т.д.).
Она явно уже давно переделана: проверка на переполнение, например, там есть, и я даже написал в теме про UN:C, как на нее можно влиять. Также в коде своей функции я модифицирую как раз эту самую проверку:
Code:
Magic->WriteByte(0x49E4F6, 0x78); //Смещение до первого навыка при проверке лимита
Magic->WriteByte(0x49E512, 0x79); //Смещение до второго навыка при проверке лимита