(18.05.2021 00:23)Berserker Wrote: И если защита уходит в -2 (+10 атака, -3 защита), она не должна отображаться и считаться как 254.
1. Окно героя никогда не покажет отрицательные значения первичных навыков из структуры героя. Там всё что ниже нуля воспримется кодом как 0, а всё, что выше 99 - как 99 (с Тифоном - до 250). Разработчиками игры для хранения первичных навыков задан именно диапазон от 0 (1) до 99. С отрицательными значениями вылезет куча глюков виде отрицательного урона с отрицательными очками магии и ещё кое-чем...
2. Расчёт бонусов от артефактов производится в dword. Результат - такой же dword. Показ в окне героя производится из dword. Можно хоть -100500 показать, Тифон это совершенно не трогает (это трогает только Эмералд).
3. Бонусы от артефактов пишут в структуру героя только неопытные ERM-скриптёры, после чего ещё куча багов вылезает, когда артефакт с героя снимается, а бонусы остаются
. Сама игра никогда так не делает, поэтому так не нужно делать и современным скриптёрам, это уже давно пережиток воговского прошлого, когда просто не умели по-другому. Хранить бонусы артефактов можно, например, в ассоциативной памяти, а ещё лучше в специально предназначенной для этого содовской таблице, но делать это в структуре героя - как опять превращать WoG в Богов Костылей.