Должно выглядеть так: %=имя_функции% А сама функция прописывается в xr_effects.script
Добавлено (10.01.2013, 22:24) --------------------------------------------- LaRento, зачем скобки поставил? Логика не распознаёт никаких скобок, как и конфиги. Не смеши людей, сделай как я сказал выше.
Space Restrictor. Это определённый тип логики, который выдаёт инфпоршни, функции в скриптах при входе в зону.
Во-первых, space_restrictor - это не "тип логики", а объект. Во-вторых, он ничего не выдаёт. В-третьих, функцию не выдают, а вызывают.
Цитата (LaRento)
shape0:radius = 36.9949264526367 ; радиус зоны
Не маловат радиус? Вдруг мимо проскочишь...
Цитата (LaRento)
Код
[sr_idle@one] ; эта логика on_actor_inside = sr_idle@two ; когда ГГ в зоне , логика меняется на sr_idle@two [sr_idle@two] on_timer = 10000 | nil %+quest_start% ; при истечении 10 секунд ( 10000 - миллисекунды) выдаётся наш инфопоршень
Зачем две секции? Не легче вставить прекондишен и проверить функцией зашёл ли ГГ в рестриктор или нет?
Цитата (LaRento)
Код
on_actor_inside = nil %=имя_скрипта.имя_функции% ; думаю, что не будет вопросов
Ещё раз говорю - это ошибка!!! Для эффектов (они заключаются в знаки процента %%) функции нужно вписывать в файл xr_effects.script и указывать ТОЛЬКО её имя:
Код
on_actor_inside = nil %=имя_функции%
Цитата (LaRento)
ведь новички порой не знают что такое Спейс рестриктор.
По всей видимости - ты сам ещё новичок, который ко всему прочему заводит в заблуждение других, подобными "простынками"...
Сообщение отредактировал ColR_iT - Четверг, 10.01.2013, 22:46
ColR_iT, Не обязательно в xr_effects ставить, я уже 1.5 года пользуюсь таким способом и всё окей) Про таймер написал же правильный вариант, вот и всё. Есть свой, пиши свою статью. Лучше помоги с вопросом, который я тебе в ЛС задал, Леонид.
Во многих случаях приходится указывать не только функцию, но и её аргументы. Пример function spawn_object(actor, obj, p) --' p[1] - секция кого спаунить --' p[2] - имя патрульного пути где спаунить.
Цитата (ColR_iT)
space_restrictor - это не "тип логики", а объект
Сам спейс-рестриктор - это зона, имеющяя чёткое расположение на карте по координатам, и имеющая чёткие размеры ( может принимать форму сферы, куба, параллелипипеда или их комбинацию), при попадании в которую либо НПС либо ГГ, вызываются те, либо иные действия, которые обрабатываются движком. Сами действия и условия их наступления прописываются в логике спейс-рестриктора (зоны).
makdm, Это считается как объект, он прав. Всё, что спавнится в all.spawn - объекты, а вон он уже может быть зоной, оружием, НПС. В данном случае - это зона.
Ну и смысл всё это писать? Тут всего 3 вида(скрипты и инфопоршни = 1) различной логики рестриктора. Всё это довольно подробно описано на сталкер вики в разделе "Настройка логики 1-4ч."
3.9. Схемы логики space_restrictor
Общее замечание: Чтобы исключить ситуацию, когда актёр проскакивает через рестриктор и тот не успевает сработать, старайтесь ставить рестриктор так, чтоб минимальная ширина была больше 2 метров. 3.9.1. Схема [sr_idle] Предназначение данной схемы – включить другую схему при срабатывании одного из стандартных условий логической схемы. Сама по себе схема ничего не делает. Пример настроек рестриктора:
Обратите внимание, что после срабатывания проверки активная схема переключается в nil, чтобы не продолжать бесполезную проверку на каждом апдейте. Можно не задавать nil. Часто эта схема работает вместе со спавнером, рестриктор выдает инфопоршн, при входе в зону, а спавнер по нему уже кого-то спавнит.
файл \gamedata\scripts\sr_idle.script 3.9.2. Секция [sr_no_weapon] Данная схема убирает оружие у игрока при входе в зону. Пример настроек рестриктора:
[logic] active = sr_no_weapon
[sr_no_weapon]
файл \gamedata\scripts\sr_no_weapon.script
3.9.3. Секция [sr_sound],
snd = Перечень имён звуков разделенных запятыми.
type = Типы звуков через запятые. Для удобства введены типы наборов звуков. Т.е., например, чтобы не перечислять каждый раз весь набор звуков скрипа деревянного пола, можно указать тип floor_wooden.
*delay = Задержка перед проигрыванием звука в секундах реального времени, по умолчанию 0.
*idle = Длина периода игнорирования входа в зону после начала последнего проигранного звука. Чтоб, например, завывание было не чаще, чем раз в несколько минут. В секундах игрового времени. По умолчанию 0.
*rnd = Вероятность (в процентах) того, что звук отыграется. По умолчанию 100.
*position = Задает имя пути, в вершинах которого может отыграться звук. Есть зарезервированное значение random. Оно означает случайное место в радиусе 15…50 метров от игрока. Если этот параметр не задан, то подразумевается позиция игрока.
*slide_velocity = Скорость (м/с) передвижения звука по точкам патрульного пути. По умолчанию - 3
*slide_sound_once = true\false true - проиграть звук один раз, даже если он не дошел до последней точки пути. false – если звук закончился, а до последней точки пути не дошел, запустить его ещё раз. По умолчанию false.
*play_at_actor = true/false Заставляет звук играться от позиции актера постоянно. Если он будет равен true и будет задан путь перемещения звука (или рандом), то мы тупо вылетим.
Предназначение данной схемы: отыграть звук при входе актёра в рестриктор.
Поддерживается sound_end.
Обязательно нужно задать либо snd, либо type. Можно их задать вместе. На базе этих параметров составляется список звуков. При входе актёра в рестриктор отыгрывается случайный звук из этого списка.
Место, из которого может отыграться звук, задаётся одним из трёх: - случайное; - случайная вершина заданного пути; - позиция игрока.
Пример настроек рестриктора:
[logic] active = sr_sound
[sr_sound] type = floor_wooden snd = ambient\wind1, ambient\sparks1 rnd = 50 position = random idle = 120 delay = 3
Есть возможность сделать «скользящий звук». Необходим патрульный путь. Звук начинает отыгрываться с начала пути и перемещается от одной точки пути к другой (по мере их установки на патрульном пути) со скоростью slide_velocity.
[logic] active = sr_sound
[sr_sound] type = random position = way slide_velocity = 8 slide_sound_once = true
Файл \gamedata\scripts\sr_sound.script
3.9.4. Секция [sr_tip] Предназначение данной схемы – давать игроку сообщение (подсказку) при входе в рестриктор
name = Название новости. type = по умолчанию «news» Тип новостей: «news» – отсылается как глобальная новость, «tips» - отсылается то имени sender-a *sender = если тип = «tips», то от sender задаёт условный строковый идентификатор иконки персонажа, от которого якобы пришло сообщение. По умолчанию это иконка торговца.
*cond = Необходимые логические условия, при которых подсказка сработает. По дефолту, сработает при входе в зону.
*single = true/false (по умолчанию false). Если параметр в true, то типс будет выдан только один раз,
Пример настроек рестриктора:
[logic] active = sr_tip
[sr_tip] name = tips_esc_trader_about_pda type = tips cond = {+infoportion1 –infoportion2 } *showtime = msec – время в миллисекундах, в течение которого сообщение будет находится на экране. – ПОКА НЕ РАБОТАЕТ НОРМАЛЬНО!
Если необходимо проиграть только 1 раз, а это случается часто, то можно добавить следующую строку: on_actor_inside = nil
файл \gamedata\scripts\sr_tip.script
3.9.5. Sr_light Зона, в которой фонарики у неписей будут включены независимо от времени суток.
Занимается эта схема тем, что отлавливает всякие события, происходящие внутри рестриктора. Пока что она отлавливает только хиты и смерть сталкеров. Пример использования примерно следующий:
То есть здесь видно, что когда игрок находится внутри рестриктора, то считается количество нанесенных хитов, а также учитывается был ли кто-то убит или нет. Поскольку схема работает только с игроком – то хиты и смерть засчитываются только от игрока.
3.9.7. Sr_mapspot
При входе в рестриктор он сам себя подсвечивает на карте.
Параметры: hint - id подсказки в string table (обязательный параметр) location - название типа подсветки (не обязательный параметр, по умолчанию "crlc_small")
Пример: [logic] active = sr_mapspot
[sr_mapspot] hint = “gar_swamp” location = crcl_big
3.9.8. Sr_particle
Данная система отыгрывает партиклы как статичные так и движущиеся в указанном месте и в указанное время. Работет она следующим образом:
1) для партикловой системы с путем камеры: [sr_particle] name = explosions\campfire_03 -имя партикловой системы path = particle_test.anm -имя пути камеры mode = 1 (обязательно !!!) looped = true/false -флаг зацикленности партиклов
(обязательно с расширением ANM !!!) Здесь партиклы будут молча перемещаться по пути.
2) для партикловой системы с обычным патрульным путем: [sr_particle] name = explosions\campfire_03 -имя партикловой системы path = part_points -имя патрульного пути mode = 2 (обязательно !!!) looped = true/false -флаг зацикленности партиклов
В вейпоинтах можно задавать флаг s=имя_звуковой_темы и d=число время задержки перед проигрыванием (задается в миллисекундах. Если не задано, то 0). s - имя звуковой темы в sound_themes.ph_snd_themes из которой будет случайно выбран звук для проигрывания во время проигрывания партикла. Звук не зацикливается и играет только один раз.. Результат = партиклы отыгрываются во всех вейпоинтах одновременно (или с задержкой см. выше). При looped=true по окончании проигрывания партиклов, они будут запускаться сначала, но уже без задержек. Сигнал particle_end выдаваться не будет. При looped=false сигнал будет выдан, когда все источники партиклов отыграют. Поддерживается кондлист. Если рестриктор переходит в другую секцию, то автоматически перестают отыгрываться партиклы и замолкают звуки при них. Этот рестриктор является объектом, отслеживающим партиклы и нет никакой необходимости чтобы игрок в него заходил.
3.9.9. Sr_sound_act Итого, схема, которая играет саунд в голове актера. Всякие там переговоры по ПДА и прочие фейки
[sr_sound_act] snd = ambient\random\new_drone1 --имя звукового файла *delay = 2000 --задержка перед проигрыванием *delay_max = 4000 -- между проигрыванием звука будет взят случайный промежуток между delay и delay_max. *on_signal = sound_end | nil --по сигналу можно перейти в другую секцию. theme = <имя темы из ph_sound_themes> * stereo = true/false (по умолчанию false). При установке этого параметра к файлу, который задан параметром snd или в звуковой теме будут добавляться (автоматически) суффиксы _r и _l для загрузки левого и правого каналов и, соответственно, вся эта фигня будет играться.
Если указывается тема, то звук будет играть зациклено, случайным образом выбирая один из звуков прописанных в теме, если указывается звук, то он отыгрывается один раз. Схема поддерживает кондлист.
3.9.10 Sr_timer
Пример использования:
[logic] active = sr_timer@1
[sr_timer@1] type = dec start_value = 10000 on_value = 0 | sr_timer@2
[sr_timer@2] type = inc on_value = 15000 | nil %+info1%
Описания полей: type - тип счетчика, инкриментирующий(inc) или декриментирующий(dec). Если поле не задано - счетчик будет инкриментирующий start_value - начальное значение счетчика в РЕАЛЬНЫХ милисекундах. Для декриментирующих счетчиков задавать обязательно. Для инкриментирующих, если не задано, то считается с 0.
Переходы из секции sr_timer могут быть как по обычным условиям (on_timer, on_info) так и по специфическому условию on_value. В общем случае on_value Можно использовать для производства каких либо действий в зависимости от состояния счетчика. Например:
on_value = 5000| %+info1% | 1000| %+info2%
3.9.11. Sr_psy_antenna Зоны с такой секцией позволяют управлять эффектами от пси-воздействия (на Янтаре и Радаре). Сейчас можно управлять интенсивностью излучения и интенсивностью получения повреждений.
Способ применения: Расставить зоны, в каждой зоне написать, сколько процентов к интенсивности излучения и повреждения она добавляет/отнимает. Зоны могут быть вложены друг в друга, пересекать друг друга.
eff_intensity = - увеличение/уменьшение в % от базового значения интенсивности излучения. hit_ intensity = - увеличение/уменьшение в % от базового значения наносимого повреждения.
3.9.12. Sr_teleport Собственно, телепорт. Настраиваются следующим образом:
[logic] active = sr_teleport
[sr_teleport] timeout = 0
point1 = point1 look1 = look1 prob1 = 10
point2 = point2 look2 = look2 prob2 = 20
где: timeout - задержка в срабатывании телепорта в миллисекундах. point - одноточечный патрульный путь куда переместить look - одноточечный патрульный путь куда повернуть.
Далее идут настройки точек назначения с удельными весами. То есть в перечисленном выше примере вероятность телепортнутся во вторую точку в два раза выше, чем в первую. Максимальное количество точек назначения - 10. Телепорты необходимо ставить совместно с особой аномальной зоной, которую сейчас делает Проф. Зона добавит визуализацию и создаст эффект втягивания.
3.9.13. Sr_sleep и настройка снов. Появилась возможность задавать зоны сна.
[sr_sleep] *cond = <condlist> *type = nightmare/normal/happy/all - Задает тип сна разрешенный в данной зоне (по умолчанию all). Влияет (группирует) только на несценарные сны. *dream_prob = <число от 0 до 100> - вероятность просмотра несценарных сновидений в данной зоне (по умолчанию 80). В противном случае будет только черный экран.
Необязательное поле cond задает условие(я), при котором в этой зоне можно спать. Сейчас производится индикация зон, где разрешен сон. В левом нижнем углу отображается маленькая иконка легких при входе в такую зону. Вероятно, позже будет изменена на другую. Сновидения теперь делятся на сценарные и обычные. Сценарные сновидения отыгрываются один раз при выполнении необходимых условий. Обычные сновидения проигрываются, если нет сценарных или ни одно условие выполнения сценарных не сработало. Можно задавать вероятность отыгрывания обычных сновидений в целом, а также задавать вероятность срабатывания каждого конкретного сновидения в отдельности. Обычным сновидениям можно задавать тип и потом ограничивать по нему сны воспроизводимые в sr_sleep.
В файле misc\dream.ltx задаются настройки снов.
Секция videos. Полями задаются пути к видеофайлам со снами.
Секция dreams. Поля: regular_probability = <число от 0 до 100> - вероятность проигрывания обычных сновидений в целом regular - список секций с настройками для обычных сновидений scene - список секций с настройками для сценарных сновидений
Настройки обычных сновидений: dream - имя поля из секции videos probability = <число больше 0> - чем больше, тем больше вероятность проигрывания сна. type = nightmare/normal/happy - тип сна.
Настройки сценарных сновидений: dream - имя поля из секции videos cond = <condlist> - условия срабатывания to_regular = <вероятность,тип> - необязательное поле. Дает возможность переводить сценарный сон после первого отыгрыша в разряд обычных. <вероятность, тип> аналогичны probability и type из настроек обычных сновидений соответственно.
3.9.14.Sr_cutscene Эта схема предназначена для проведения анимации камеры c некоторым эффектом (pp_effector). Последовательность действий, осуществляемых схемой, состоит из мгновенного перемещения игрока в начало пути point и ориентации его взгляда на начало пути look, потери управления игроком и начала анимации камеры cam_effector по завершении которой игрок вновь получает управление.
[sr_cutscene] point = <имя пути> - путь в первую точку которого переносится игрок look = <имя пути> - путь в первую точку которого смотрит игрок *pp_effector = <имя файла с эффектом> - файл, расположенный в папке gamedata\anims\ и содержащий эффект (имя файла пишется без расширения) cam_effector = <имя файла с анимацией камеры> - файл, расположенный в папке gamedata\anims\camera_effects\ и содержащий анимацию камеры (имя файла пишется без расширения)
Сообщение отредактировал Uyman358 - Четверг, 10.01.2013, 23:45