Русское сообщество по скриптингу

Работа с TE_SPRITETRAIL

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Работа с TE_SPRITETRAIL

Сообщение defa » 03 сен 2010, 23:25

Автор: defa

TE_SPRITETRAIL - это движущийся светящийся спрайт с гравитацией, затуханием и столкновениями.

Приступим:
Создаём макрос и обзываем её, даём значение 15, так как под этим номером и находится TE_SPRITETRAIL:
Код: Выделить всё
#define TE_SPRITETRAIL 15    

Дальше создаём глобальную переменную, в которой будет хранится precache_model("sprites/3dmflaora.spr"), т.е. наш спрайт:
Код: Выделить всё
new g_short


Ну и собственно:
Код: Выделить всё
public plugin_precache()
{
    g_short=precache_model("sprites/3dmflaora.spr")


Дальше нам нужно узнать координаты, к примеру, игрока для использования, так как у TE_SPRITETRAIL имеются начальные и конечные координаты:
Код: Выделить всё

new origin
[3]
    
get_user_origin
(id,origin

Создаём сообщение, которое будет отправляться одному игроку:
Код: Выделить всё
message_begin(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id

Передаём свойства:
Код: Выделить всё
write_byte(TE_SPRITETRAIL) //Движущийся светящийся спрайт с гравитацией, затуханием и столкновениями
write_coord(origin[0]) //начальная позиция по x
write_coord(origin[1]) //начальная позиция по y
write_coord(origin[2]+20) //начальная позиция по z
write_coord(origin[0]) //конечная позиция по x
write_coord(origin[1]) //конечная позиция по y
write_coord(origin[2]+80) //конечная позиция по z
write_short(g_short) //index модели
write_byte(1) //количество
write_byte(15) //время отображения спрайта в секундах
write_byte(4) //масштаб отрисовки модели спрайта
write_byte(20) //скорость
write_byte(10) //произвольность в скорости      

Завершаем сообщение:
Код: Выделить всё
message_end() 

Целый примерный код:
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

#define TE_SPRITETRAIL 15
new g_short

public plugin_precache
()
{
    g_short=precache_model("sprites/3dmflaora.spr")
}
public plugin_init()
{
    register_plugin("TestTeSpriteTrail","1.0","defa")
    register_clcmd("say /test","testing")
}
public testing(id)
{
    new origin[3]
    
    get_user_origin
(id,origin)
    
    message_begin
(MSG_ONE,SVC_TEMPENTITY,{0,0,0},id)
    write_byte(TE_SPRITETRAIL) //Движущийся светящийся спрайт с гравитацией, затуханием и столкновениями
    write_coord(origin[0]) 
    write_coord
(origin[1]) 
    write_coord
(origin[2]+20) 
    write_coord
(origin[0]) 
    write_coord
(origin[1]) 
    write_coord
(origin[2]+80) 
    write_short
(g_short) 
    write_byte
(1) 
    write_byte
(15) 
    write_byte
(4) 
    write_byte
(20) 
    write_byte
(10) 
    message_end
()

Видео:
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Работа с TE_SPRITETRAIL

Сообщение kalash1k » 09 ноя 2010, 01:08

Оо. Гуд. Попробую-ка я такую фичу в соккерджем замутить с мячом :-D
Тем более что и гравити на него влияет. Интересно...

Аватара пользователя
kalash1k
 
Сообщения: 210
Зарегистрирован: 17 янв 2010, 14:08
Откуда: СССР
Благодарил (а): 15 раз.
Поблагодарили: 20 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6

Re: Работа с TE_SPRITETRAIL

Сообщение Smoky » 04 дек 2010, 22:30

А как этому шарику задать гравитацию?
Аватара пользователя
Smoky
 
Сообщения: 107
Зарегистрирован: 13 июл 2010, 22:45
Откуда: Волгоград
Благодарил (а): 16 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Работа с TE_SPRITETRAIL

Сообщение defa » 04 дек 2010, 23:28

Нет,к сожалению,гравитация сама по себе зависит от скорости и направления.
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Работа с TE_SPRITETRAIL

Сообщение Nje » 05 дек 2010, 12:34

спасибо, хорошая статья. defa, а как самому задать цвет этого шарика? Допустим, чтобы write_byte(10) // количество, и все они разных цветов?
[align=center][steam][/align]
Аватара пользователя
Nje
 
Сообщения: 417
Зарегистрирован: 22 май 2010, 13:25
Откуда: Ufa
Благодарил (а): 192 раз.
Поблагодарили: 51 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike Source

Re: Работа с TE_SPRITETRAIL

Сообщение Smoky » 05 дек 2010, 14:07

Есть такой вариант, что
[pawn]write_short(g_short) ; [/pawn] указать разные спрайты, но не знаю, будет ли работать)
или еще одну функцию добавить
Аватара пользователя
Smoky
 
Сообщения: 107
Зарегистрирован: 13 июл 2010, 22:45
Откуда: Волгоград
Благодарил (а): 16 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Работа с TE_SPRITETRAIL

Сообщение defa » 05 дек 2010, 16:55

Цвета тоже недоступны.
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Работа с TE_SPRITETRAIL

Сообщение Smoky » 05 дек 2010, 17:56

defa, ну цвет можно в спрайте задать, там много похожих шариков есть)
Аватара пользователя
Smoky
 
Сообщения: 107
Зарегистрирован: 13 июл 2010, 22:45
Откуда: Волгоград
Благодарил (а): 16 раз.
Поблагодарили: 5 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Работа с TE_SPRITETRAIL

Сообщение defa » 05 дек 2010, 18:19

Ну это будет сам цветной спрайт,а не его заданные цвета через write_byte()
Аватара пользователя
defa
 
Сообщения: 870
Зарегистрирован: 26 авг 2010, 18:22
Забанен
Благодарил (а): 34 раз.
Поблагодарили: 399 раз.

Re: Работа с TE_SPRITETRAIL

Сообщение jager_ch » 05 фев 2011, 17:18

Почему у меня плагин не работает ? Компиоится нормально , когда пишу say /test нечего не происходит .
Последний раз редактировалось jager_ch 16 авг 2011, 21:43, всего редактировалось 1 раз.
Skype jager_ch
Аватара пользователя
jager_ch
 
Сообщения: 61
Зарегистрирован: 25 янв 2011, 23:33
Благодарил (а): 6 раз.
Поблагодарили: 18 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6
War3ft

След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5