• Страница 1 из 1
  • 1
Архив - только для чтения
Форум » Архив » Устаревшие темы » Запуск партикла на позиции объекта (мини-урок)
Запуск партикла на позиции объекта
Российская Федерация  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, хочешь, могу дополнить твой тутор? Можно проиграть партикл на позиции объекта, но не на кости. Именно на позиции.
Российская Федерация  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
Украина  FantomICW
Суббота, 04.01.2014, 00:58 | Сообщение # 4
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

MODOSKEA, нет, просчет позиции НПС в реальном времени через его логику. Типа как здесь
Российская Федерация  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
Украина  [Karpov_SK]
Суббота, 04.01.2014, 01:06 | Сообщение # 6
Exclusion Zone Mod
Статус:
Неопытный:
Сообщений: 599
Награды: 12
Регистрация: 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
Украина  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
Российская Федерация  MODOSKEA
Суббота, 04.01.2014, 01:29 | Сообщение # 9
Статус:
Новичок:
Сообщений: 211
Награды: 1
Регистрация: 06.07.2012

FantomICW, добавил дополнение от тебя, людям перегородится :)
Сообщение отредактировал MODOSKEA - Суббота, 04.01.2014, 01:30
Украина  FantomICW
Суббота, 04.01.2014, 01:32 | Сообщение # 10
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

MODOSKEA, спасибо happy
Форум » Архив » Устаревшие темы » Запуск партикла на позиции объекта (мини-урок)
  • Страница 1 из 1
  • 1
Поиск: