Ну так что тогда про меня говорить?
По идее план у меня был бы такой. Параметры оружия описаны в VH_DBASE.C - но это не интересно, это все правится WUT, и результатов 0. Параметры ракеты - в WN_DBASE.C, но это тоже малоинтересно, M270_227MM_ROCKET практически аналогична ракете Града.
В общем, я бы посмотрел в
WN_MOVE.C:
Похоже, движение неуправляемых ракет и снарядов считается вот здесь, причем ошибка сразу же заложена.
#if !DEBUG_MODULE_DISABLE_ARTILLERY_ERROR
if (weapon_database[raw->mob.sub_type].max_range_error_ratio > 0.0)
{
int
seed;
float
h_error;
seed = get_client_server_entity_random_number_seed (en);
h_error = h_vel * get_delta_time () * weapon_database[raw->mob.sub_type].max_range_error_ratio;
new_position->x += h_error * sfrand1x (&seed);
new_position->z += h_error * sfrand1x (&seed);
}
#endif
Я бы для начала как раз этот ifdef поставил в FALSE и посмотрел тем самым, дело в динамике полета или цель сразу неправильно расчитана. На самом деле, я припоминаю, что этому отклонению max_range_error_ratio можно уже в WUT поставить очень малое значение, и вроде это не помогало. Если конечно, для ракеты Града эта ошибка вычисляется больше (или например чаще), чем для для MLRS, все было бы очень просто. Я бы поставил отладочную печать в случае ракет MLRS и Град
Далее можно попробовать исключить проблемы связанные с параметрами ракет (которые в WUT таки не правятся), сделать Град на время идентичным MLRS.