ppc
|
Дата: Воскресенье, 12.06.2016, 23:00:37 | Сообщение # 1 |
|
Сообщений: 85
Репутация: 0 [ +/- ]
|
|
Вопрос такой: Как переместить игрока за спину другому игроку. Не просто рядом а именно тп за спину
|
|
| |
GodlikE145
|
Дата: Понедельник, 13.06.2016, 05:40:19 | Сообщение # 2 |
|
Сообщений: 33
Репутация: 9 [ +/- ]
|
|
Работай с углами поворота игрока в этот момент. Другой вопрос: как случайно не телепортнуть игрока в стену, если второй игрок будет спиной стоять к стене?
Функция, проверяющая, в стене ли находится точка (возвращает true, если точка в стене или на стене (отвесной) )
Код public bool:TRFilter_AimTarget(entity, mask, any:client) { if (entity == client) return false; return true; }
bool:InWall(Float:point[3]) { new Float:end[3]; point[2]+=3.0; TR_TraceRayFilter(point, Float:{0.0, 0.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[0] == end[0]) return true; TR_TraceRayFilter(point, Float:{0.0, 45.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1] || point[0] == end[0]) return true; TR_TraceRayFilter(point, Float:{0.0, 90.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1]) return true; TR_TraceRayFilter(point, Float:{0.0, 135.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1] || point[0] == end[0]) return true; TR_TraceRayFilter(point, Float:{0.0, 180.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[0] == end[0]) return true; TR_TraceRayFilter(point, Float:{0.0, 225.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1] || point[0] == end[0]) return true; TR_TraceRayFilter(point, Float:{0.0, 270.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1]) return true; TR_TraceRayFilter(point, Float:{0.0, 315.0, 0.0}, MASK_SOLID, RayType_Infinite, TRFilter_AimTarget); TR_GetEndPosition(end); if(point[1] == end[1] || point[0] == end[0]) return true; return false; }
Добавлено (13.06.2016, 05:40:19) --------------------------------------------- По поводу сдвига точки по вектору назад (то, что тебе и нужно сделать), посмотри тут: http://world-source.ru/forum/100-2385-1
Сообщение отредактировал GodlikE145 - Понедельник, 13.06.2016, 05:37:05 |
|
| |
ppc
|
Дата: Понедельник, 13.06.2016, 21:31:09 | Сообщение # 3 |
|
Сообщений: 85
Репутация: 0 [ +/- ]
|
|
сенкью
|
|
| |