Все Категории

Интересная математика

Поиск
12 дек. 2025, 12:133 дня
06.09.20
7

Интересная математика


i

Тит нанёс на КБ 3 миллиарда урона, а общий урон пачки 2,14 миллиарда. Это как? 

Просмотры
3
Комментарии
2
Комментарии
AlexUA_KhModerator
13 дек. 2025, 08:332 дня
13 дек. 2025, 19:40(отредактировано)
11.02.20
2133

Привет, для понимания этого ограничения нужно немного поговорить о программировании, так как это связано с движком Юнити и его языке C#.

Параметру урона по боссу (в поле «Нанесённый урон») присвоен тип данных integer (int), диапазон значений которого составляет ±2 147 483 647. Его используют, потому что он занимает меньше памяти и быстрее обрабатывается, если нет необходимости в более широком диапазоне.

Чтобы избежать переполнения значения и последующих ошибок в коде игры, всё, что превышает этот предел, приравнивается к максимальному значению. Следовательно, на КБ максимальное значение урона, которое может отображаться в этом окне, равно макс int, с двумя знаками после запятой - 2,14B.

Что касается персонального урона, который наносит герой, то там, скорее всего, используется более широкий тип данных, возможно:
Long - 9 223 372 036 854 775 807 или  Float - ~3.4 × 10³⁸.
Точно сказать без доступа к коду невозможно.

Вывод: это не баг и не ошибка, а следствие оптимизации кода игры в данном конкретном случае. Если ты считаешь, что диапазон стоит расширить, можешь объяснить, зачем это нужно и почему это важно для тебя - я передам твое предложение на рассмотрение.

13 дек. 2025, 12:402 дня
13 дек. 2025, 12:41(отредактировано)
06.09.20
7

я не против такого ограничения, главное чтоб ошибок в игре было меньше, а то их и так хватает :)


Можно сделать приписку в информации о КБ, что есть ограничения по суммарному урону