А тогда минус один только от +10% или от -10% тоже? Признаться, ни раз...
X3 Terran Conflict / X3 Земной конфликт
 
X3 Terran conflict  
 

На сайте онлайн (человек): 32



 



А тогда минус один только от +10% или от -10% тоже? Признаться, ни раз...

Terran Conflict (X3TC) / Форум / Форум по игре X3 Terran Conflict (X3TC) / X3 Земной конфликт / Абордаж. Продолжение.

Абордаж. Продолжение.
(http://x3tc.net/x3_forum/?tid=1039)
Автор: boojum
(29.10.2013 15:26:31)

 eliseeff писал(а):
А тогда "минус один" только от +10% или от -10% тоже?
 

Признаться, ни разу не видел в обже манипуляции с дробями :) Округления какие-то неявные присутствуют, конечно, при делении. Хз что получается при 5 / 2, скореее всего, обрубает вниз до целого. Наверное поэтому там часто для вычисления шансов используются выражения типа 5 <= rand(100). В том числе и от этого я по инерции отталкивался, когда пытался воспроизвести формулу.

Но речь не об этом. Та единичка получается по вине функции рандома. Алгоритм, насколько я вижу в коде, последовательно таков:

part = Defence / 10
Defence = Defence + SE_Random(part * 2) - part.

Но как мы знаем, функция SE_Random дает рандом от 0 до (аргумент - 1). То есть эти -1 идут вперед к +10%.
Например, при Defence = 100 получаем 100 + [0..19] - 10 = диапазон значений [90..109]

PS: Defence привел лишь для примера. С уровнем атаки аналогичная фигня. Свистопляски с рандомами это конечная фаза перед сравнением, все надбавки за расу и девайсы идут раньше, поэтому я их отбросил как несущественный в данном случае фактор.

дерево темы → Абордаж. Продолжение. Абордаж. Продолжение. »
Список игр