Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

PM Got a NaN velocity 0/1

Статус пользователя Viva
сообщение 14.12.2014, 20:08
Сообщение #1
Стаж: 12 лет

Сообщений: 158
Благодарностей: 9
Полезность: < 0

Имеется код:

Код:
stock hook_ent2(ent, Float:VicOrigin[3], Float:speed, type)
{
static Float:fl_Velocity[3]
static Float:EntOrigin[3]

pev(ent, pev_origin, EntOrigin)
static Float:distance_f
distance_f = get_distance_f(EntOrigin, VicOrigin)

new Float:fl_Time = distance_f / speed

VicOrigin[2] -= 36.0

if(type == 1)
{
fl_Velocity[0] = ((VicOrigin[0] - EntOrigin[0]) / fl_Time) * 1.5
fl_Velocity[1] = ((VicOrigin[1] - EntOrigin[1]) / fl_Time) * 1.5
fl_Velocity[2] = ((VicOrigin[2] - EntOrigin[2]) / fl_Time) * 1.5
} else if(type == 2) {
fl_Velocity[0] = ((EntOrigin[0] - VicOrigin[0]) / fl_Time) * 1.5
fl_Velocity[1] = ((EntOrigin[1] - VicOrigin[1]) / fl_Time) * 1.5
fl_Velocity[2] = ((EntOrigin[2] - VicOrigin[2]) / fl_Time) * 1.5
}

entity_set_vector(ent, EV_VEC_velocity, fl_Velocity)
}


Время от времени вызывает такую лабуду в консоли:

Цитата
PM Got a NaN velocity 0
PM Got a NaN velocity 1
PM Got a NaN velocity 1
PM Got a NaN velocity 0
PM Got a NaN velocity 0
PM Got a NaN velocity 1


И крашит сервер, кто в курсе как это править?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
voed
сообщение 14.12.2014, 20:55
Сообщение #2
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Фиксить деление на ноль, скорее всего.
Может быть здесь
Код:
new Float:fl_Time = distance_f / speed

или здесь
Код:
fl_Velocity... / fl_Time) * 1.5


Отредактировал: voed, - 14.12.2014, 20:58
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.12.2014, 21:24
Сообщение #3
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

бывает когда даешь velocity на застрявшую энтити


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Safety1st
сообщение 14.12.2014, 21:24
Сообщение #4
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Не, такая ошибка фиксируется, когда entity пытаются назначить скорость выше sv_maxvelocity.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Viva
сообщение 14.12.2014, 21:53
Сообщение #5
Стаж: 12 лет

Сообщений: 158
Благодарностей: 9
Полезность: < 0

Safety1st, можно больше инфы как это фиксить?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.12.2014, 22:02
Сообщение #6
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

тебе дали ответ
sv_maxvelocity 999999


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя [WPMG]PRoSToTeM@
сообщение 14.12.2014, 22:19
Сообщение #7
Стаж: 13 лет

Сообщений: 1514
Благодарностей: 1025
Полезность: 725

Цитата(Safety1st @ 14.12.2014, 21:20) *
Не, такая ошибка фиксируется, когда entity пытаются назначить скорость выше sv_maxvelocity.

Когда есть деление на 0, то выскакивает. Когда скорость больше sv_maxvelocity не выскакивает. Там вообще другое выскочит и то только при включённом developer: Got a velocity too high on. Почему ты это к NaN привязал не ясно.
Код:
public ClCmdVelo(const nClient) {
new szArg1[8], szArg2[8];
read_argv(1, szArg1, charsmax(szArg1));
read_argv(2, szArg2, charsmax(szArg2));

new Float:vec[3];

vec[0] = str_to_float(szArg1);
vec[1] = str_to_float(szArg2) / str_to_float(szArg1);
vec[2] = str_to_float(szArg1) / str_to_float(szArg2);

set_pev(nClient, pev_velocity, vec);
}


Отредактировал: [WPMG]PRoSToTeM@, - 14.12.2014, 22:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя csnet
сообщение 14.12.2014, 22:31
Сообщение #8
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

ах ну потому что делить на ноль нельзя


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 9 гостей читают эту тему: