В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Expression : pm->m_animations.size() Function : player_hud_motion_container::load File : E:\priquel\sources\engine\xrGame\player_hud.cpp Line : 92 Description : motion not found [aek971_idle_sprint]
Хэлп
Добавлено (31.07.2013, 15:22) --------------------------------------------- Всегда были проблемы со стоволами..
помогите плиз с ТЧ 1.0004. как отключить патруль на кордоне? что они просто на посту стояли и не ходили некуда? с меня ++++++++++++++++++++++++++++++++++++
ins33, вот чего не знаю - того не скажу. Схема подключена и вроде бы не вылетает, но нигде не использовалась. Судя из алгоритма скрипта - при переключении на схему, монстр пытается подбежать к актору и ударить. С какими монстрами работает, я не знаю. Сама схема никаких своих параметров не принимает - её нужно просто задать:
Код
[mob_home] ... on_info = {+трям-трям} mob_kicker
[mob_kicker]
Точно не знаю, нужно ли из неё переходить явно на другую схему или она может оставаться активной на протяжении долгого промежутка времени. Сигналов никаких не имеет. Более сказать нечего, ибо тестил очень давно, всего уже и не вспомню.
ins33, так-так-так... Но эта функция выводит на худ, а нужно в GUI окно. И при чём вывести в приделах определённой зоны. ColR_iT, Теперь меня интересует как вывести в GUI окно.
ColR_iT, Худ - это интерфейс игры, т.е индикатор здоровья, радар, количество активных контактов и т.д. GUI окно - это графическое меню/окно, которое я создал. Допустим сейчас я делаю ПДА.
ColR_iT, Чуть внимательней порывшись в скриптах ТЧ, нашёл забавный момент. npc_friendly корректно работает в схеме mob_home, но только при вызове из гулага:
function load_ltx_snork2(gname, type) local i, res = 0, "" for i = 1, 10 do res = res .. "[logic@" .. gname .."_".. i .. "]\n" .. "active = mob_home@" .. gname .. i .. "\n" ..
"[mob_home@" .. gname .. i .. "]\n" .. "path_home = home" .. i .. "\n" .. "npc_friendly = true\n".. "path_look = look" .. i .. "\n" end return res end
При этом, если вызывать npc_friendly в схеме mob_home из логики, то схема действительно не работает.
ins33, ты можешь сколько угодны "рыться" в скриптах, но это тебе ничего не даст. Если параметр не прописан в схеме - он не будет работать не в гулаге, не в custom_data, при этом в конечном итоге это одно и тоже, только способ назначения логики разный. Повторюсь - оверрайды для монстров работают только в двух схемах mob_kicker и mob_walker. MoDoStRoY, тогда ясно, почему ты сказал:
Цитата (MoDoStRoY)
Но эта функция выводит на худ, а нужно в GUI окно.
Почитай вот это: >>ClicK Me<<, это поможет тебе определить понятия слов касательно игры S.T.A.L.K.E.R.
ColR_iT, Подключить оверрайд оказалось не так просто:
---------------------------------------------------------------------------------------------------- -- 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() --[[ Добавлено: Haron Описание: Теперь можно задавать радиусы home_min_radius и home_max_radius во флагах пути path_home. Для этого введены флаги minr, maxr. Они должны быть прописаны в первой точке пути. У радиусов заданых в секции приоритет больший чем для тех что заданы во флагах, т.е. если задано и там и там, то берутся значения из секции (сделано для обратной совместимости). --]] 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) end
if mob_alife_mgr.alife_control(self.object, actor, self.storage.alife_mode) then -- Добавил return end
if xr_logic.try_switch_to_another_section(self.object, self.st, db.actor) then 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)