AMX MOD X
Пятница, 07.02.2025, 05:09:32



Приветствую Вас Гость | RSS
[ Главная ] [ определить точку , куда смотрит игрок (в Х юнитах от него) - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
определить точку , куда смотрит игрок (в Х юнитах от него)
Vbios__Дата: Суббота, 07.07.2007, 20:48:10 | Сообщение # 1
Рядовой
Группа: Скриптеры
Сообщений: 16
Репутация: 0
Статус: Не в сети
а как определить точку , через которую проходит вектор TraceLine , но VecEndPos в х юнитов от взгляда игрока?
 
AlModДата: Воскресенье, 08.07.2007, 11:30:34 | Сообщение # 2
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
все гораздо проще, получить точку куда смотрит игрок можно так:

Code

new origin[3]
get_user_origin(id,origin,3)

3 - Режим, когда записываются координаты, куда смотрит игрок


 
Vbios__Дата: Воскресенье, 08.07.2007, 12:52:16 | Сообщение # 3
Рядовой
Группа: Скриптеры
Сообщений: 16
Репутация: 0
Статус: Не в сети
и спрайт , который я хочу вставить шоб игрок видел перед собой - будет перед стенкой
 
VENДата: Воскресенье, 08.07.2007, 20:47:56 | Сообщение # 4
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Вот вспомогательная функция:
Code
stock fm_get_aim_origin2(index, Float:origin[3], Float:offset = 0.0) {
         new Float:start[3], Float:view_ofs[3]
         pev(index, pev_origin, start)
         pev(index, pev_view_ofs, view_ofs)
         xs_vec_add(start, view_ofs, start)

         new Float:dest[3]
         pev(index, pev_v_angle, dest)
         engfunc(EngFunc_MakeVectors, dest)
         global_get(glb_v_forward, origin)
         xs_vec_mul_scalar(origin, 9999.0, dest)
         xs_vec_add(start, dest, dest)

         engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, index, 0)
         get_tr2(0, TR_vecEndPos, dest)

         if (!offset) {
                 origin = dest
                 return 1
         }

         xs_vec_sub(dest, start, dest)
         xs_vec_mul_scalar(origin, xs_vec_len(dest) + offset, origin)
         xs_vec_add(start, origin, origin)

         return 1
}

Просто указываешь (дробную) величину смещения (offset) (в HL единицах). Смещение производится относительно vecEndPos. Отрицательное смещение приблизит точку к игроку, положительное - отдалит. Нулевое смещение (по умолчанию) выдает "чистый" vecEndPos.

Прим.: Используется XS библиотека by PM [ #include <xs> ].

Сообщение отредактировал VEN - Воскресенье, 08.07.2007, 21:02:57
 
Vbios__Дата: Вторник, 10.07.2007, 16:12:01 | Сообщение # 5
Рядовой
Группа: Скриптеры
Сообщений: 16
Репутация: 0
Статус: Не в сети
а можно както относительно vecStartPos - я как не вертел , неполучается cry
 
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2025