Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаОткрыть новую тему
> Как сделать красивый эффект?, Описание sendpacket 0c0
Hekt0
сообщение 26.11.2005, 15:27
Сообщение #1




Гость







Я хочу сделать красивый эффект, как?

-SendPacketам'и, ведь делая эффекты с помощью src.newitem act.p move.p, мы создаем предмет и говорим место куда ему встать, мы все знаем, что если мы сделаем красивый и красочный эффект, на это нам потребуется много предметов – что может вызвать «Лаги» у сервера. Для этого придумали такую вешь как 0c0 пакет. С помощь него мы не создаем предмет, а просто сервер посылает нам пакет с изображением – что «лагов» вызывает в 10-50 раз меньше. И так:

Код

•    Графический Эффект (36 байт)
•    BYTE type
•    BYTE[4] sourceSerial
•    BYTE[4] targetSerial
•    BYTE[2] itemID           //ID Итема.
•    BYTE[2] xSource          //Ось (X)  Точки появления итема
•    BYTES[2] ySource         //Ось (Y) аналогично Оси X
•    BYTE zSource             //Ось (Z) аналогично Оси Y
•    BYTE[2] xTarget          // Расстояние и направление по Оси
•    BYTE[2] yTarget          // Расстояние и направление по Оси
•    BYTE zTarget             // Расстояние и направление по Оси
•    BYTE speed               // Скорось пакета
•    BYTE duration
•    BYTE[2] unk
•    BYTE fixedDirection
•    BYTE explodes
•    BYTE[4] hue              //Оттенок
•    BYTE[4] renderMode       //Режим оттенка
 



И так рассмотрим пример, все пишется в одну строку через пробел, добавлять и убирать Значение к оси через функцию <eval>. Например:
Код

Sector.allclients sendpacket 0c0 00 D0 D0 W036b0 W<P.X> W<P.Y> B<eval <P.Z>+5> W<eval <P.X>+8>  W<eval <P.Y>+0> B<P.Z> B0 B0 0 5 3 B0 D0 D2


036b0 ID анимации заклинания Explosion, как вы заметили. Что у нас там происходит?
Мы показали что анимация начинает посылаться нам пакетом с того места, где стоит у нас игрок по трем осям
Код
 W<P.X> W<P.Y> B<P.Z>


Потом показали его сторону и дальность полета в 8 квадратиков поля
Код
 W<eval <P.X>+8>  W<P.Y> B<P.Z>


В примере у нас «Explosion» отлетает на (8 клеток) от оси <P> (от нашего персонажа).
Их так можно посылать несколькими потоками, в зависимости от желаемого результата.

P.S – Лучше всего делать пример с графическими пакетами (0c0) через функции
Код

[Function f_SP_Effect]
Sector.allclients sendpacket


Вот cкрины, что можно сделать с помощью пакетов (0с0)
http://img487.imageshack.us/my.php?image=sendpackety3oc.jpg
http://img487.imageshack.us/my.php?image=sendpacketz8nb.jpg
http://img474.imageshack.us/my.php?image=s...olechko28ti.jpg
http://img474.imageshack.us/my.php?image=s...kolechko7db.jpg
http://img474.imageshack.us/my.php?image=s...olechko39lw.jpg
http://img474.imageshack.us/my.php?image=s...olechko49tn.jpg
http://img486.imageshack.us/my.php?image=spohuyet7og.jpg
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Тема закрытаОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 20.11.2019, 7:13
Designed by Nickostyle