Запуск партикла на позиции объекта
|
|
|
MODOSKEA
Суббота, 04.01.2014, 00:47 | Сообщение # 1
Статус: |
|
Новичок: |
|
Сообщений: |
211 |
Награды: |
1 |
Регистрация: |
06.07.2012 |
|
Запуск партикла на позиции объекта
Автор: Modoskea Описание: Запуск партикла на позиции объекта, 3 способа.
1. Первым рассмотрим использование партикла в класс action_base с помощью него можно использовать класс particle: action_base (game_object*, string)
Пример использования: action(object, particle("monsters\\polter_idle","bip01_head"))
-- object – это объект ; "monsters\\polter_idle" – путь до партикла относительно файла particles.xr ; "bip01_head" – кость объекта на ее позиции и появиться партикл.
Партикл появиться один раз и останется на позиции на которой появился за объектом не следует.
Должен работать по моему во все трилогии ТЧ/ЧН/ЗП
________________________________________________________________
2. Вторым рассмотрим класс particles_object данный класс специально предназначен для партиклов:
particles_object (string);
Тут будет правильным рассмотреть его методы (спасибо за описание некоторых методов ColR_iT):
Код function play_at_pos(const vector&); --Запуск на определенной позиции (vector = позиция по x,y,z)
function move_to(const vector&, const vector&); --от позиции движение к другой позиции (vector = позиция по x,y,z)
function looped() const; -- зациклить
function stop(); --Стоп
function stop_deffered(); -- ...
function play(); --Запуск партикла
function playing() const; -- Возвращает запущен ли партикл, (По моему const возвращает true/false)
-- Методы ниже предназначены для анимированного пути для партикла (файл .anm):
Код function load_path(string); -- Загрузить путь.
function start_path(boolean); -- Запустить партикл по загруженному .anm пути. (boolean = true/false)
function pause_path(boolean); -- Приостановить движение по .anm пути, метод start_path продолжит движение с места паузы. (boolean = true/false)
function stop_path(); -- Остановить движение по пути .anm. Метод start_path запустит движение партикла сначала пути.
Пример использования:
particles_object("monsters\\polter_idle"):play_at_pos(object:bone_position("bip01_head"))
-- particles_object("monsters\\polter_idle") –партикл "monsters\\polter_idle" путь до партикла относительно файла particles.xr; play_at_pos –метод описанный мной выше ; object – это объект ; object:bone_position("bip01_head") – позиция кости bip01_head ;
Должен работать по моему во все трилогии ТЧ/ЧН/ЗП
________________________________________________________________
3. Третьим рассмотрим start_particles это метод для game_object, партикл появляется один раз и следует за объектам остаетесь на той кости которую ему назначали.
Пример использования был в Чистом небе в последнем задании убить стрелка на ЧАЭС, вокруг стрелка было небольшое электрическое поле, оно было как раз по-моему вызвано этим методом
start_particles(string, string)
--string - первый путь до партикла относительно файла particles.xr ; string - второй кость на которой будет вызван партикл
Пример использования:
object:start_particles("monsters\\polter_idle","bip01_head")
-- object – это объект ; "monsters\\polter_idle" – путь до партикла относительно файла particles.xr ; "bip01_head" – кость объекта на ее позиции и появиться партикл. У этого метода встречал баг, при уходе объекта в оффлайн партикл исчезал без повторного вызова при входе в онлайн состояние объекта.
Должен работать только в ЧН/ЗП | в ТЧ не предусмотрен
________________________________________________________________ ________________________________________________________________ ________________________________________________________________
Дополнение от FantomICW :
Просчет позиции НПС в реальном времени через его логику.
1) В xr_effects.script:
Код function play_test_particle_npc(actor, npc) local npc_position = npc:position() local particle = particles_object("anomaly2\\gravity_blast_final00",false) particle:play_at_pos(npc_position) end
function play_test_particle_object(actor, npc) local object_position = object:position() local particle = particles_object("anomaly2\\gravity_blast_final00",false) particle:play_at_pos(object_position) end
2) Вызываем непосредственно из логики НПС/объекта:
Код %=play_test_particle_npc% Код %=play_test_particle_object%
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 01:31
|
|
Суббота, 04.01.2014, 00:47
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.07.2012 |
|
|
|
|
|
FantomICW
Суббота, 04.01.2014, 00:54 | Сообщение # 2
Проект Смерти Вопреки
Статус: |
|
Опытный: |
|
Сообщений: |
2259 |
Награды: |
8 |
Регистрация: |
06.01.2013 |
|
MODOSKEA, хочешь, могу дополнить твой тутор? Можно проиграть партикл на позиции объекта, но не на кости. Именно на позиции.
|
|
Суббота, 04.01.2014, 00:54
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.01.2013 |
|
|
|
|
|
MODOSKEA
Суббота, 04.01.2014, 00:56 | Сообщение # 3
Статус: |
|
Новичок: |
|
Сообщений: |
211 |
Награды: |
1 |
Регистрация: |
06.07.2012 |
|
FantomICW, Код particles_object (string):play_at_pos(vector():set(x,y,z)) Так ?
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 00:58
|
|
Суббота, 04.01.2014, 00:56
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.07.2012 |
|
|
|
|
|
FantomICW
Суббота, 04.01.2014, 00:58 | Сообщение # 4
Проект Смерти Вопреки
Статус: |
|
Опытный: |
|
Сообщений: |
2259 |
Награды: |
8 |
Регистрация: |
06.01.2013 |
|
MODOSKEA, нет, просчет позиции НПС в реальном времени через его логику. Типа как здесь
|
|
Суббота, 04.01.2014, 00:58
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.01.2013 |
|
|
|
|
|
MODOSKEA
Суббота, 04.01.2014, 01:03 | Сообщение # 5
Статус: |
|
Новичок: |
|
Сообщений: |
211 |
Награды: |
1 |
Регистрация: |
06.07.2012 |
|
FantomICW, ну давай людям перегородится =)
Добавлено (04.01.2014, 01:03) --------------------------------------------- FantomICW, Код particles_object (string):play_at_pos(object:position()) Так тогда да ?
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 01:03
|
|
Суббота, 04.01.2014, 01:03
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.07.2012 |
|
|
|
|
|
Exclusion Zone Mod
Статус: |
|
Бывалый: |
|
Сообщений: |
600 |
Награды: |
12 |
Регистрация: |
26.08.2013 |
|
Ухя) Как интересно, я рестриктором обычно делаю
|
|
Суббота, 04.01.2014, 01:06
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
26.08.2013 |
|
|
|
|
|
MODOSKEA
Суббота, 04.01.2014, 01:11 | Сообщение # 7
Статус: |
|
Новичок: |
|
Сообщений: |
211 |
Награды: |
1 |
Регистрация: |
06.07.2012 |
|
[Karpov_SK], ты его на определенной позиции спавнш, тут на объекте, а метод start_particles привязывает его ко объекту и следует за этим самым объектом, правда рестиктору можно путь указать движение партикла, а рестиктор по моему использует как раз методы класса particles_object.
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 01:19
|
|
Суббота, 04.01.2014, 01:11
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.07.2012 |
|
|
|
|
|
FantomICW
Суббота, 04.01.2014, 01:14 | Сообщение # 8
Проект Смерти Вопреки
Статус: |
|
Опытный: |
|
Сообщений: |
2259 |
Награды: |
8 |
Регистрация: |
06.01.2013 |
|
Цитата MODOSKEA ( ) Так тогда да ? MODOSKEA, ну, почти так же: 1) В xr_effects.script: Код function play_test_particle_npc(actor, npc) local npc_position = npc:position() local particle = particles_object("anomaly2\\gravity_blast_final00",false) particle:play_at_pos(npc_position) end
function play_test_particle_object(actor, npc) local object_position = object:position() local particle = particles_object("anomaly2\\gravity_blast_final00",false) particle:play_at_pos(object_position) end 2) Вызываем непосредственно из логики НПС/объекта: Код %=play_test_particle_npc% Код %=play_test_particle_object%
Сообщение отредактировал FantomICW - Суббота, 04.01.2014, 01:15
|
|
Суббота, 04.01.2014, 01:14
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.01.2013 |
|
|
|
|
|
MODOSKEA
Суббота, 04.01.2014, 01:29 | Сообщение # 9
Статус: |
|
Новичок: |
|
Сообщений: |
211 |
Награды: |
1 |
Регистрация: |
06.07.2012 |
|
FantomICW, добавил дополнение от тебя, людям перегородится
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 01:30
|
|
Суббота, 04.01.2014, 01:29
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.07.2012 |
|
|
|
|
|
Проект Смерти Вопреки
Статус: |
|
Опытный: |
|
Сообщений: |
2259 |
Награды: |
8 |
Регистрация: |
06.01.2013 |
|
MODOSKEA, спасибо
|
|
Суббота, 04.01.2014, 01:32
|
Статус: |
|
Сообщений: |
666 |
Регистрация: |
06.01.2013 |
|
|
|
|