AMX MOD X
Пятница, 26.04.2024, 15:06:55



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Скриптинг » Скрипты » UTIL_DrawBeam (функция рисования лучей)
UTIL_DrawBeam
slogicДата: Пятница, 15.12.2006, 19:48:00 | Сообщение # 1
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Code
new beam_texture

public plugin_precache()
{
   beam_texture = precache_model("sprites/lgtning.spr")
}

stock UTIL_DrawBeam(start[3], end[3], life, width, noise, red, green, blue, brightness, speed)
{
   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(TE_BEAMPOINTS)
   write_coord(start[0])
   write_coord(start[1])
   write_coord(start[2])
   write_coord(end[0])
   write_coord(end[1])
   write_coord(end[2])
   write_short(beam_texture)
   write_byte(1) // framestart
   write_byte(10) // framerate
   write_byte(life) // life in 0.1's
   write_byte(width) // width
   write_byte(noise) // noise
   write_byte(red) // r
   write_byte(green) // g
   write_byte(blue) // b
   write_byte(brightness) // brightness
   write_byte(speed) // speed
   message_end()
}

ref: xttp://forums.alliedmods.net/showthread.php?p=415451#post415451

Сообщение отредактировал slogic - Суббота, 16.12.2006, 15:07:11
 
AlModДата: Пятница, 15.12.2006, 20:20:07 | Сообщение # 2
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Как насчет описания

 
slogicДата: Воскресенье, 17.12.2006, 17:43:15 | Сообщение # 3
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (AlMod)
Как насчет описания

А что там непонятно? Я поправил код немного.
 
DeNДата: Воскресенье, 17.12.2006, 18:21:22 | Сообщение # 4
Рядовой
Группа: Пользователи
Сообщений: 13
Репутация: 1
Статус: Не в сети
ВОТ это я искал.
Вещь полезная.


Язык Си — как нож мясника: прост, остр, и исключительно
эффективен в умелых руках. Как и всякое острое орудие, Си
может принести увечья тем, кто не умеет им пользоваться.


Сообщение отредактировал DeN - Воскресенье, 17.12.2006, 18:25:34
 
AlModДата: Воскресенье, 17.12.2006, 19:28:07 | Сообщение # 5
Сонный кодер
Группа: Админы
Сообщений: 600
Репутация: 27
Статус: Не в сети
Зачот evolution

 
RE_an1m@t0rrДата: Суббота, 12.05.2007, 14:23:40 | Сообщение # 6
Лейтенант
Группа: Скриптеры
Сообщений: 77
Репутация: 0
Статус: Не в сети
подобное можно найти в hlsdk_const.inc
 
VENДата: Суббота, 12.05.2007, 15:27:13 | Сообщение # 7
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Репутация: 45
Статус: Не в сети
Нет там такого. Возможно, ты имел ввиду message_const.inc или const.h из HLSDK.

Кстати, часто необходимо нарисовать луч, имея при этом дробные координаты. В этом случае следует использовать финкцию:
Code
    engfunc(EngFunc_WriteCoord, coord)

Вот еще одна функция для рисования луча от entity до точки:
Code
draw_beam(id, ent, const Float:end[3], const RGB[] = {0, 255, 0}) {
  engfunc(EngFunc_MessageBegin, MSG_ONE, SVC_TEMPENTITY, Float:{0.0, 0.0, 0.0}, id)
  write_byte(TE_BEAMENTPOINT)
  write_short(ent) // от какой entity рисовать луч
  engfunc(EngFunc_WriteCoord, end[0]) // x координата конца луча
  engfunc(EngFunc_WriteCoord, end[1]) // y координата конца луча
  engfunc(EngFunc_WriteCoord, end[2]) // z координата конца луча
  write_short(g_spriteid_laserbeam) // index модели/спрайта луча - получают при прекешировании
  write_byte(0) // начальный фрейм
  write_byte(0) // фрэймрэйт
  write_byte(BEAM_TIME) // время отображения луча в секундах * 10
  write_byte(BEAM_WIDTH) // ширина луча
  write_byte(0) // фактор искажения луча
  write_byte(RGB[0]) // red составляющая цвета луча
  write_byte(RGB[1]) // green составляющая цвета луча
  write_byte(RGB[2]) // blue составляющая цвета луча
  write_byte(BEAM_BRIGHT) // яркость луча
  write_byte(0) // скорость вращения луча
  message_end()
}

И еще можно рисовать луч от "аттача" данной entity. В этом случае entity должна быть "монстром" (игрок, заложник и прочее). "Аттачи" игрока:

0x1000 - правая рука
0x2000 - левая рука

Т.е., например, можно нарисовать луч от правой руки игрока, заменяя write_short(ent) на write_short(ent | 0x1000)

Сообщение отредактировал VEN - Суббота, 12.05.2007, 15:29:58
 
AMX Mod X Форум » Скриптинг » Скрипты » UTIL_DrawBeam (функция рисования лучей)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024