Точки спавна стоят низко. Возможно и из-за кривых моделей (скинов).Что это может быть?
Точки спавна стоят низко. Возможно и из-за кривых моделей (скинов).
CheckClientSpawnHeight(client)
{
if(!client) return;
decl Float:vEyePos[3];
GetClientEyePosition(client, vEyePos);
new Handle:trace = TR_TraceRayFilterEx(vEyePos, Float:{90.0, 0.0, 0.0}, MASK_ALL, RayType_Infinite, TraceEntityFilterWorld);
if (TR_DidHit(trace))
{
decl Float:vGround[3];
TR_GetEndPosition(vGround, trace);
if (vEyePos[2] - vGround[2] < 64.0)
{
LogMessage("[DM Lite] Player spawned in ground on map %s at location x:%.0f y:%.0f z:%.0f!", g_sCurrentMap, vGround[0], vGround[1], vGround[2]);
vGround[2] += 16.0;
TeleportEntity(client, vGround, NULL_VECTOR, NULL_VECTOR);
}
}
else
{
LogMessage("Didn't find ground on map %s from location x:%.0f y:%.0f z:%.0f!", g_sCurrentMap, vEyePos[0], vEyePos[1], vEyePos[2]);
}
CloseHandle(trace);
}
Каким образом решение?@AlmazON, нет это не из за скинов, это баг завезённый в ксс в каком то паче. Я тупа так решил, просто при спавне поднимаю игроков на небольшое расстояние в вверх.
void FixSpawn(int iClient)
{
float fVecPosition[3],
fVecAngles[3];
GetClientAbsOrigin(iClient, fVecPosition);
fVecPosition[2] = fVecPosition[2] + 15.0;
GetClientAbsAngles(iClient, fVecAngles);
TeleportEntity(iClient, fVecPosition, fVecAngles, NULL_VECTOR);
}
как и второйкакой код лучше?
--- Добавлено позже ---
первый не работает
Можно покороче, быстрее набирать:fVecPosition[2] = fVecPosition[2] + 15.0;
fVecPosition[2] += 15.0;
Зачем, если NULL_VECTOR - это и есть "без изменений".GetClientAbsAngles(iClient, fVecAngles);
Смотря, как это выглядит со стороны... И не будет ли конфликта для всяких AFK-менеджеров и спавн-защиты, выполненных в различном стиле (например, таймер с координатами может забарахлить).какой код лучше?
Безтрейсовый метод, хоть и зазря игрока не трогает (нагрузка на сервер и шанс конфликтов близится к 0).выкладывай
Добавляй ещё, скажем, 25, 35... Может и не работает для бага, получить в реальных условиях не удалось.Сделал ...15
Вроде лучше
Я не могу сказать что есть фиксированная статистика 10 раундов 5 провалов.У тебя там что, постоянные провалы "под землю"? Или как тестируешь?
Спасибо!@Gogasik, выше сказали, добавь. Я не знаю, насколько проваливается игрок.
Ну отлично!@Gogasik, писал же выше, что это болезнь ксс завезённая в одном паче.