В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга.
Не флудить
Предварительно просматривайте раздел. Ответ на ваш вопрос может быть там.
В своем вопросе указывайте платформу моддинга - Тень Чернобыля, Чистое небо или Зов Припяти.
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Конфиг компа. 5. Лог вылета и последние 25 строк (помещать под спойлер).
Структура папок и файлов в корневом каталоге игры:
...\S.T.A.L.K.E.R\gamedata\anims – папка содержит исполнительные файлы эффектов (например от ПНВ).
...\S.T.A.L.K.E.R\gamedata\config – папка содержит основные конфигурационные файлы (т. е. большинство настроек игры)
...\S.T.A.L.K.E.R\gamedata\meshes – содержит модели игровых предметов и персонажей...
...\S.T.A.L.K.E.R\gamedata\scripts – папка со скриптами (рабочими файлами содержащими в себе наборы функций) – основная папка, отвечающая за ответные действия игры и действия производимых игроком в игре.
...\S.T.A.L.K.E.R\gamedata\shaders – папка содержит в себе конфигурационные файлы шейдеров.
...\S.T.A.L.K.E.R\gamedata\sounds – здесь находятся все звуки игры (разложены по своим каталогам и папкам)
...\S.T.A.L.K.E.R\gamedata\spawns – содержит файл спавна – очень важный файл – не трогать без нужды!!!
...\S.T.A.L.K.E.R\gamedata\textures – содержит разложенные по каталогам и папкам текстуры используемые в игре.
Теперь разберем папки в каталоге «config»
...\S.T.A.L.K.E.R\gamedata\config\creatures - содержит массу конфигурационных файлов, в основном отвечающих за взаимодействие Главного героя игры (в дальнейшем ГГ) и прочего окружения в игре и ТТХ самого ГГ.
...\S.T.A.L.K.E.R\gamedata\config\gameplay – содержит конфиг. файлы персонажей игры (НПС) отвечающие за внешний вид, статус, снаряжение. Файлы: character_desc_ххх (где ххх – название локации) и character_desc_general (отвечает за зомбированного персонажа). Также содержит файлы диалогов и профилей НПС.
…\S.T.A.L.K.E.R\gamedata\config\misc – конфиг.файлы торговцев (папки с именами торговцев), артефактов, брони, квестовых предметов, уникальных предметов, файл отвечающий за награды за автозадания, файл эффектов (алкоголизма, ранения, ПНВ и прочих)...
…\S.T.A.L.K.E.R\gamedata\config\mp – среди прочих содержит важный файл mp_ranks – отвечающий за выпадение оружия и патронов из рук ГГ и НПС – без прописывания добавляемого в игру оружия в этот файл при выпадении нового оружия из рук ГГ\НПС будут следовать вылеты.
…\S.T.A.L.K.E.R\gamedata\config\text\rus – содержит файлы описаний всего и вся находящегося в игре (брони, артефактов, оружия, предметов и прочего).
…\S.T.A.L.K.E.R\gamedata\config\weapons – содержит конфиг.файлы оружия и боеприпасов используемых в игре.
…\S.T.A.L.K.E.R\gamedata\config\weathers – содержит конфиг.файлы настройки погоды на локациях.
Теперь немного подробнее о файлах.
...\S.T.A.L.K.E.R\gamedata\config\misc:
Папка shop_ххх (ххх – имя торговца) – содержит конфиг.файлы ассортимента торговца.
outfits – содержит секции конфигов костюмов.
artefacts - содержит секции конфигов артефактов.
items - содержит секции конфигов предметов.
monster_items - содержит секции конфигов частей монстров
postprocess - содержит секции конфигов пост. процессов (например: ПНВ).
quest_items - содержит секции конфигов квестовых предметов.
task_manager - содержит секции наград за автоквесты.
unique_items - содержит секции конфигов уникального оружия и костюмов.
У кого есть желание, создать FAQ по основным вопросам моддинга - обращаемся в ЛС.
Эммм... Я так понял, что вы пытаетесь некоторых зверушек сделать дружелюбными к ГГ при помощи логики. Не проще добавить в конфиг этих зверушек особей , изначально дружелюбных к ГГ?
_Val_, иногда бывает, что такое нужно сделать для одного конкретного мутанта, а из-за одного создавать группировку, как-то не ахти... Вопрос такой: Из-за чего может вылетать игра, когда из неё выходишь? С изменённым _g скриптом(выводить всё в лог) вылет пропадает. Всё это на ТЧ версии 1.0004 без правок движка.
ins33, mob_home - если монстрам не угрожает опасность,они просто сидят около точки? Свиньи, вроде должны спать, А НЕ.... Ладно. mob_home.script
---------------------------------------------------------------------------------------------------- -- Mob Home ---------------------------------------------------------------------------------------------------- -- Разработчик: Jim ----------------------------------------------------------------------------------------------------
local def_min_radius = 20 local def_max_radius = 40 class "mob_home"
---------------------------------------------------------------------------------------------------- -- CONSTRUCTION SCHEME ---------------------------------------------------------------------------------------------------- function mob_home:__init(obj, storage) self.object = obj self.st = storage end
---------------------------------------------------------------------------------------------------- -- RESET SCHEME ---------------------------------------------------------------------------------------------------- function mob_home:reset_scheme() local minr, maxr = def_min_radius, def_max_radius local ptr = patrol(self.st.home) local path_info = utils.parse_waypoint_data(self.st.home, ptr:flags(0), ptr:name(0)) local r = 0
if self.st.home_min_radius then minr = self.st.home_min_radius else r = path_info.minr if r then r = tonumber® if r then minr = r end end end
if self.st.home_max_radius then maxr = self.st.home_max_radius else r = path_info.maxr if r then r = tonumber® if r then maxr = r end end end
-- check min and max radius if minr > maxr then _G.abort("Mob_Home : Home Min Radius MUST be < Max Radius. Got: min radius = %d, max radius = %d.", minr, maxr) end
self.object:set_home(self.st.home, minr, maxr, self.st.aggressive) -- xr_logic.mob_capture(self.object, not self.st.no_reset) end
function mob_home:update(delta) local actor = db.actor if xr_logic.try_switch_to_another_section(self.object, self.st, actor) then return end if mob_alife_mgr.alife_control(self.object, actor, self.st.alife_mode) then return end -- Монстр после выхода из alife может уже быть не под скриптом, поэтому взять опять под скрипт if not xr_logic.mob_captured(self.object) then self:reset_scheme() return end end
function mob_home:deactivate() self.object:remove_home() end
---------------------------------------------------------------------------------------------------- -- ADD_TO_BINDER ---------------------------------------------------------------------------------------------------- function add_to_binder(npc, ini, scheme, section, storage) printf("DEBUG: add_to_binder: npc:name()='%s', scheme='%s', section='%s'", npc:name(), scheme, section)
local new_action = mob_home(npc, storage)
-- Зарегистрировать все actions, в которых должен быть вызван метод reset_scheme при изменении настроек схемы: xr_logic.subscribe_action_for_events(npc, storage, new_action) end
---------------------------------------------------------------------------------------------------- -- SET_SCHEME ---------------------------------------------------------------------------------------------------- function set_scheme(npc, ini, scheme, section, gulag_name) local storage = xr_logic.assign_storage_and_bind(npc, ini, scheme, section) -- storage.alife_mode = mob_alife_mgr.cfg_get_mode(ini, section, npc) storage.no_reset = utils.cfg_get_bool(ini, section, "no_reset", npc, false) --
Вообще не проблема - несколько строчек в конфиге против бесконечных экспириментов с логикой. Arist, из моб_хоум монстры сами переходят в комбат, если поблизости есть враг.
Arist, СПАСИБО!!! ЗАРАБОТАЛО!!! Как ты 59 стр, углядел? Ещё вчера заметил, что в mob_walker и mob_kicker есть xr_logic.mob_captured(self.object), добавил, но не сработало, без xr_logic.mob_capture(self.object, not self.st.no_reset)
Sanjaaa, >>Тыц<< BeeRsek, По этому и скрипт ковыраю. _Val_, Тут есть момент с геймплеем, и одной группировкой не обойтись. Хотя так поступил с 2-мя зверушками, но это другая история. TYOPA, А как ты понимаешь, что не вышел, а вылетел?
пытался сделать катсцену, состоящую из нескольких сцен, но не получается. Нашел даже тутор, оказалось по сути то же самое:
Код
[logic] active = sr_idle
[sr_idle] on_info = {!black_screen +agru_nvidia_presentation} sr_cutscene@cam1 ;Здесь мы проверяем инфопоршен agru_nvidia_presentation и функцию ;black_screen (нет ли черного экрана) и переходим в секцию sr_cutscene@cam1
[sr_cutscene@cam1] point = agru_nv_camera_walk ;точка walk где игрок будет находится после камеры look = agru_nv_camera_look ;точка look куда будет направлена камера игрока после камеры cam_effector = scenario_cam\agroprom_underground\camera1_0_904 ;файл камеры и путь к нему on_signal = cameff_end | sr_cutscene@cam2 ;сигнал окончание камеры и переход в следующую секцию
[sr_cutscene@cam2] ....
проблема в том,что не переключается на sr_cutscene@cam2,а сразу после окончания sr_cutscene@cam1 "телепортирует" на путь point. Что не так?
ins33, [color=red]не заработало. [color=gray]Проще всё-таки не заморачиваться, а в логике монстра ставить переход на mob_walker при приближении Актора: on_actor_dist_le_nvis = 25| mob_walker. Это ты и сам знаешь. Подумаешь, пара лишних строк в логике.
Добавлено (17.04.2014, 15:51) --------------------------------------------- BeeRsek, кидай Актора из рестриктора в рестриктор. Здесь, на месте приземления ставь второй рестриктор и в нём по новой катсцену и так далее: point = agru_nv_camera_walk ;точка walk где игрок будет находится после камеры look = agru_nv_camera_look ;точка look куда будет направлена камера игрока после камеры
Я попытался сделать квест по одной статье, но нет диалога на выдачу квеста, всё перепроверял но всё на месте. Не подскажите из-за чего может отсутсвовать диалог?
BeeRsek, можно и в одно.Это первое что пришло в голову.А так,попробуй:
Код
[logic] active = sr_idle
[sr_idle] on_info = {!black_screen +agru_nvidia_presentation} sr_cutscene@cam1 on_info2 = {!black_screen +agru_nvidia_presentation2} sr_cutscene@cam2 on_info3 = {!black_screen +agru_nvidia_presentation3} sr_cutscene@cam3 ;Здесь мы проверяем инфопоршен agru_nvidia_presentation и функцию ;black_screen (нет ли черного экрана) и переходим в секцию sr_cutscene@cam1
[sr_cutscene@cam1] point = agru_nv_camera_walk ;точка walk где игрок будет находится после камеры look = agru_nv_camera_look ;точка look куда будет направлена камера игрока после камеры cam_effector = scenario_cam\agroprom_underground\camera1_0_904 ;файл камеры и путь к нему on_signal = cameff_end|sr_idle %+agru_nvidia_presentation2% ;сигнал окончание камеры и переход в следующую секцию
ALEX13, из-за того, что ты что-то не сделал. Не прописал диалог персонажу, поставил на него неверные условия.. Что можно сказать, если ты ничего конкретного не показываешь?