Подскажите, пожалуйста, какие есть способы узнать высоту поверхности (пола) карты в определённой точке? Если возможно, конечно, и как.
Навскидку: пол\потолок TraceRay вверх\вниз, если ничего не нашло, то WorldMax[2] - WorldMin[2] - текущая Z координата для потолка карты, и для пола другие знаки.
Спасибо, вариант с TraceRay сейчас попробую. А можно подробнее про ? Я не совсем понял, что есть текущая Z координата? У нас есть самая высокая и самая низкая точка, но где взять текущую Z для потолка?
Тогда второй способ не подходит. Пробую первый: Код: public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:_angles[3], &weapon) { if(IsPlayerAlive(client) && buttons & IN_USE) { decl Float:Origin[3]; decl Float:Angles[3]; new Float:Ceiling = 0.0; new Float:Floor = 0.0; GetClientEyePosition(client, Origin); Angles[0] = 89.0; TR_TraceRayFilter(Origin, Angles, MASK_PLAYERSOLID_BRUSHONLY, RayType_Infinite, Trace_FilterPlayers, client); if(TR_DidHit(INVALID_HANDLE)) { TR_GetEndPosition(Origin, INVALID_HANDLE); Floor = Origin[2]; } Angles[0] = -89.0; TR_TraceRayFilter(Origin, Angles, MASK_PLAYERSOLID_BRUSHONLY, RayType_Infinite, Trace_FilterPlayers, client); if(TR_DidHit(INVALID_HANDLE)) { TR_GetEndPosition(Origin, INVALID_HANDLE); Ceiling = Origin[2]; } PrintToConsole(client, "%f %f", Floor, Ceiling); } } Показывает пол/потолок корректно. Поправьте, если есть ошибки или есть что улучшить.