Случайная подборка модов
Arsenal Mod
4.0
Ветер времени
4.5
Новое Время. Судьба наемника
2.3
Блудный сын
2.8
Вариант "Омега"
4.0
AMK 1.4.1
4.2
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
  • Страница 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, хочешь, могу дополнить твой тутор? Можно проиграть партикл на позиции объекта, но не на кости. Именно на позиции.
  Злобная реклама
Суббота, 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
Украина  [Karpov_SK]
Суббота, 04.01.2014, 01:06 | Сообщение # 6
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
Украина  FantomICW
Суббота, 04.01.2014, 01:32 | Сообщение # 10
Проект Смерти Вопреки
Статус:
Опытный:
Сообщений: 2259
Награды: 8
Регистрация: 06.01.2013

MODOSKEA, спасибо happy
  Злобная реклама
Суббота, 04.01.2014, 01:32
Статус:
Сообщений: 666
Регистрация: 06.01.2013
  • Страница 1 из 1
  • 1
Поиск: