satanian, вопрос не сильно понятен. Ты хочешь чтоб после того как ты отдал предмет НПС или взял, спавнился где-нибудь другой НПС?? Если да, то читай тутор по функциям диалогов
Сообщение отредактировал Novellus - Пятница, 25.05.2012, 15:13
satanian, Необходимо создать спейс рестриктор, а так же сделать инфо поршень для предмета и рестриктора, после у тебя при взятии нужной вещи стазу налетятся НПС
satanian, обширный вопрос, поскольку ты не назвал обстоятельства "подбора" нужного тебе предмета, поэтому приведу пример в общем случае... В файле bind_stalker.script есть функция on_item_take, собственно это колбек на появление предмета в инвентаре актора. В конец этой функции, пишешь вот такой код:
Code
if (db.actor:dont_has_info("item_is_take")) and (obj:section == "section_name") then --# Спавним НПС. alife():create("stalker_name", vector():set(x,y,z), level_vertex, game_vertex) --# Затычка, чтобы спавн проходил один раз. db.actor:give_info_portion("item_is_take") end
Где: section_name - секция твоего предмета; stalker_name - id профиля НПС, которого ты будешь спавнить; item_is_take - инфопорция, которая будет свидетельствовать о взятии предмета, тем самым спавн НПС будет проходить один раз; Далее пишешь нужные координаты (x,y,z), вставляешь соответствующие level_vertex и game_vertex.
Если нужно, чтобы спавнилось несколько НПС сразу, то дублируешь строку спавна нужное количество раз. Собственно всё.
В файле bind_stalker.script есть функция on_item_take, собственно это колбек на появление предмета в инвентаре актора. В конец этой функции, пишешь вот такой код:
Code if (db.actor:dont_has_info("item_is_take")) and (obj:section == "section_name") then --# Спавним НПС. alife():create("stalker_name", vector():set(x,y,z), level_vertex, game_vertex) --# Затычка, чтобы спавн проходил один раз. db.actor:give_info_portion("item_is_take") end
Где: section_name - секция твоего предмета; stalker_name - id профиля НПС, которого ты будешь спавнить; item_is_take - инфопорция, которая будет свидетельствовать о взятии предмета, тем самым спавн НПС будет проходить один раз; Далее пишешь нужные координаты (x,y,z), вставляешь соответствующие level_vertex и game_vertex. Если нужно, чтобы спавнилось несколько НПС сразу, то дублируешь строку спавна нужное количество раз. Собственно всё.
Думаю это и есть ответ на твой вопрос. Мне тоже стала интересна эта идея, посмотрю как еще можно сделать.
Добавлено (26.05.2012, 10:22) --------------------------------------------- Ребята. Меня мучает вот что - хочу вставить свой трэк в радио на Скадовске, делаю все вот по этому тутору - Как корректно вставить свою музыку в игру используя X-Ray SDK Любым музыкальным редактором, например можно использовать Sound Forge 8.0, подготавливаем наши звуковые файлы – они должны быть сохранены в следующем виде: качество сохраняемых файлов: WAV (standard) 44100Гц, Моно, 16 бит. После сохранения выбранных треков в виде WAV (standard) 44100Гц, Моно, 16 бит, их необходимо перевести в формат, поддерживаемый игрой. Для этого нам понадобится X-Ray SDK – официальный пакет разработчика для игры S.T.A.L.K.E.R. NB: Вы спросите, почему сразу не сохранять треки в формате OGG 44100Hz, Mono? Ответ прост – в комментах OGG-файла должны прописываться параметры распространения звука по игровому миру. Именно по этой причине собственные звуки в игре практически не слышно на определенных расстояниях, именно поэтому в консоль выводятся сообщения о ! Invalid ogg-comment version, file: и т.п. Итак, открываем Actor Editor либо Level Editor. На панели инструментов справа вверху ищем пункт меню Sounds, кликаем его и выбираем Sound Editor (звуковой редактор). Откроется окно редактора звука. Для того чтобы там появились наши файлы, необходимо скопировать их в папку rawdata\sounds в корне установленного Level Editor’a (например, c:\Program Files\X-Ray SDK\level_editor\rawdata\sounds). В этой папке вполне могут оказаться какие-то «левые» файлы – их можно смело удалить. NB: Важно чтобы копируемые туда файлы были именно в формате WAV! После того как вы скопировали свои файлы в папку SDK в окне Sound Editor’a должен появиться их список.
Выбираем трек и изменяем следующие параметры: Quality = 0.0 ширина полосы частоты, окружающая центральную частоту (для более плавного угасания звука или его стабильности) MinDist = 300.0 расстояние, с которого громкость звука начнет затухать (чем ниже к MaxDist тем плавнее переход но Quality нужно увеличить) MaxDist = 300.0 максимальное расстояние, на котором звук будет слышен ГГ MaxAIDist = 300.0 максимальное расстояние, на котором звук будут слышать NPC BaseVolume = 1.0 громкость
А также задается к какому типу звуков в игре он относится: в нашем случае - undefined
Game Type Описание undefined неопределенный. Ставим этот тип, чтобы NPC не реагировали на музыку и прочее. Item picking up подбирание предмета Item dropping выбрасывание предмета Item taking взятие предмета Item hiding убирание предмета Item using использование предмета Weapon Shooting Выстрелы оружия. Ставить на все виды оружейного выстрела, взрыва и т.д
обязательно выстави BaseVolume = 2.0 и Quality = 1.0 это нормализует громкость.
Weapon empty clicking щелчок УСМ при отсутствии патрона Weapon bullet hit звук попадания пули в поверхность Weapon recharging перезарядка оружия. ставим на все звуки связанные с перезарядкой оружия. NPC Injuring Ранение НПС. Ставить на все призывы о помощи в папке help (..я ранен... или ...ап-птечку) NPC Talking беседы НПС. Ставить на диологи, истории, анекдоты и гитарную музыку. Это позволит НПС-ам после анекдота
вставить коментарий (типа ... хорош...комик, блин). NPC Attaking Атаки НПС. Ставить на вопли при атаки. это подходит к папке fight.
НПС начинают более тактично вести себя при атаках ГГ-а и других групперовок. NPC dying смерть NPC NPC injuring ранение NPC NPC step шаги NPC NPC eating приём пищи NPC Anomaly idle Постоянный звук аномалей. Тлько на постоянный звук, на Hit... ставить ИМХО...NPC Injuring т.к другие
НПС начнут обходить данную аномалию в которую влез гг или кто либо. Object breaking разрушение объекта Object colliding столкновение объекта(ов), удар Object exploading взрыв World Ambient Мировое окружение. Ставить на все окружающие звуки. фонувую музыку лучше привезать к undefined.
Остальные параметры не тестировал пока. Нажимаем ОК и сного жмем на панель инструментов и ищем пункт меню Sounds жмем синхронизировать звук с игрой. Ждем. Если всё было сделано правильно, в папке gamedata\sounds в директории Level Editor’a (например, c:\Program Files\X-Ray SDK\level_editor\gamedata\sounds\) можно забрать готовые файлы ogg с правильными комментариями. Но после этого нужно удалить папку Sounds т.к все остальные ОГГ-шки станут в категорию (Delete) и вам сного нужно будить закачать папку Sounds из оригенальной gamedata После этого смело кладем наши звуки в папки игры. Не забывая удалять старые, а не заменять их.
И еще один нюанс, связанный с громкостью музыки: если при маленьком расстоянии MaxDist сделать высокую громкость или MinDist, то процесса затухания громкости будет практически не слышно – при движении ГГ это приведет как к резкому возникновению музыки, так и к такому же резкому ее прекращению.Это очень режет слух. Не забывайте применять Quality... это всегда смягчит переход звука с резкого на более мягкий. пример: MinDist=10; MaxDist=150 значение Quality =0,30 или 0,40 что значительно смягчит угасание звука.
Шаблоны для начинающих
Для всех переозвученных тем, затрагивающих окружающую среду. Это относится к папкам ambient, nature: ветра, амбианта, электричества, new_wind-ы (любые) или крики, эхо и прочее типа rnd_outdoor-а. Code Quality = 1.00 MinDist = 20.00 MaxDist = 150.00 MaxAIDist = 50.00 BaseVolume = 1.0 Game Type: =World Ambient
для звуков дождя и порыва ветра Code Quality = 1.00 MinDist = 10.00 MaxDist = 300.00 MaxAIDist = 300.00 BaseVolume = 1.50 Game Type: =World Ambient
для скриптов и мелких эффектов Code Quality = 1.00 MinDist = 1.20 MaxDist = 50.00 MaxAIDist = 20.00 BaseVolume = 1.0 Game Type: =World Ambient
для голоса НПС Code Quality = 1.00 MinDist = 10.00 MaxDist = 300.00 MaxAIDist = 300.00 BaseVolume = 1.50 Game Type: ставим в зависимости от категории
Важное замечание После того как рассортируете звуки по папкам, не забудьте! что речь нпс должна находиться не прямо в sounds\, а в character_voice\, а то потом будете несколько дней рыть где вы ошиблись и корректны ли звуки вообще. Тестирование, тестирование и еще раз тестирование? Удачного моддинга! Звук все равно орет на всю локации, как бы я его не изменял. Может кто знает другой способ правильно вставить свой трэк в радио?? Заранее спасибо))
[52] [xxxx] ; cse_abstract properties section_name = inventory_box (не трогать лучше) name = level_prefix_inventory_box_0000 (имя можно не изменять) position = -447.109985351563,- 6.13000011444092,183.639999389648 (координаты тайника ) direction = -0.062830001115799,-2.99324011802673,-0.169295996427536
; cse_alife_object properties game_vertex_id = 0 (гейм вертекс ) distance = 0 level_vertex_id = 293223 ( левел вертекс ) object_flags = 0xffffff3f custom_data = <<END [spawn] (здесь прописаны вещи которые будут лежать в тайнике ) wpn_pb wpn_ak74 ammo_9x18_pmm medkit_army drug_antidot END
; cse_visual properties visual_name = dynamicsequipment_cacheequipment_box_02_case (это визуал тайника сейчас стоит ящик можно сменить на рюкзак. ) Если хотите рюкзак пропишите это: dynamicsdevicesdev_rukzakdev_rukzak.ogf
; cse_alife_inventory_box properties tip = inventory_box_use
Вопрос к мапперам, я создал Облёт камеры по уроку geniora в тч но он не работает в игре,чесно я зделал вроде все но может что забыл, зделал путь камеры, сохранил в сдк все пашет камера летает, а в игру захожу прохожу место где камера стоит и нечего не просходит почему? помогите!
6poHR777, config/prefetch/ там нужно название нового ствола прописать помоему в одном из этих трех XML файлах prefetch_globals, old_variant_prefetch_globals, old_variant_prefetch_single, извини давно было не помню точно, я сам както наткнулся на решение этой проблемы лазия и кавыряя эти файлы.
И вопрос от меня нужно название файла каторый отвечает за параметры текстуры, тоесть когда в тебя стреляют на екране появляются вокруг прицела красные треугольники и показывают от куда по тебе стреляют(не на мине карте, а от 1-го лица). Прошу пращения за каламбур.
Сообщение отредактировал wikreznow - Суббота, 26.05.2012, 22:17
STARS1212, подозреваю, что ты просто сделал .anm файл, поскольку, если не изменяет мне память, в видео не было демонстрации непосредственно в игре. Чтобы воспроизвести этот файл, необходимо спавнить рестриктор с логикой схемы sr_cutscene. Приблизительно логика должна выглядеть так:
Здесь есть свои особенности. Для чего-то необходимо указывать точки point и look. Это имена патрульных путей в первые точки которых ГГ будет стоять и смотреть соответственно, после пролёта камеры. Собственно название .anm файла для параметра cam_effector необходимо указывать без разрешения. Параметр on_signal уводит схему в nil, чтобы анимация не воспроизводилась при повторном входе в рестриктор.
Вот, как-то так...
wikreznow, в файле system.ltx есть секция hud_hitmark - это и есть секция отвечающая за "красные треугольники".
Сообщение отредактировал ColR_iT - Суббота, 26.05.2012, 22:58
Creon, там нужно скриптово. Мол есть функция с инфопоршнем, которая заставляет первого НПСа уйти. Ставим таймер, который начинает работать когда срабатывает инфопоршень ухода, который отсчитывает через сколько должен появиться/придти другой НПС.
Когда время наступает - спавним НПС за углом и заставляем идти на место, либо сразу ставим его на место. По-поему там спавн НПС через скрипт лучше делать. А если через all.spawn, то логику через SDK пилить. ЗЫ: Таймер опционален.
А можно просто удалить первого НПС и заспавнить вместо него второго. Но этот процесс нужно скрыть от глаз игрока.