В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
upgr_icon_x = 300 ,upgr_icon_y = 129 - это да положение
upgr_icon_width = 258 ,upgr_icon_height = 138 - это высота и ширина
Добавлено (15.10.2013, 22:32) --------------------------------------------- Помогите с сдк!!!Что такое граф-поинты?????
Добавлено (15.10.2013, 22:32) --------------------------------------------- Expression : assertion failed Function : CGraphMerger::CGraphMerger File : D:\prog_repository\sources\trunk\utils\xrAI\xr_graph_merge.cpp Line : 597 Description : tpGraphs.size()
Это о чем ваще?
Добавлено (15.10.2013, 22:50) --------------------------------------------- А ,понял.Ток мне теперь порядок сбора локации нужно узнать.Знаю ,спрашивал уже ,но можно ещё раз?
как создать квест в сталкере зп придти на определенную точку? как сделать чтобы квест брался на определенной точке? и как создать квест что бы при взятии кого нибудь предмета появлялся квест?
wind, это все делается с помощью логики и рестрикторов. Ну, еще коллбек можно поставить. Я не буду рассказывать о создании квеста с нуля, ибо уроки в интернете есть (особое внимание удели урокам Геонозиса). А вот логику рестрикторов, пожалуй, подскажу. 1. Итак, в конфиге задание ставим кондлист выполнения:
Код
condlist_0 = {+actor_on_test_place} complete
actor_on_test_place - инфопорция, по получении которой задание будет выполнено. Логика рестриктора:
Итак, при попадании ГГ в нужное место (рестриктор), будет выдаваться финишная инфопорция. 2. Опять же, ставим рестриктор в нужном месте, и запускаем квест через его логику:
Проверяем наличие предмета через функциональную проверку actor_has_item из xr_conditions.script. Как-то так.
P.S. Под конец я переключаю секцию логики рестриктора на нулевую. Если рестриктор больше не нужен, лучше отключить его, чтобы не было дополнительной нагрузки на движок.
2. Скопировать с ТЧ/ЧН сам скрипт логики sr_sound.script и поместить в ЗП. 3. Вернуть в скрипт xr_sound.script следующие строки:
Код
--' Таблица для хранения созданных саунд обжектов. sound_object_by_theme = {} --' type = [random|seq|looped] function get_sound_object(theme, t_type) if sound_theme.ph_snd_themes[theme] == nil then abort("ph_snd_themes for theme %s", tostring(theme)) return end
if sound_object_by_theme[theme] == nil then sound_object_by_theme[theme] = {} end
if t_type == nil then t_type = "random" end
--' Выбор следующего айдишника local play_id = -1 local table_size = table.getn(sound_theme.ph_snd_themes[theme]) if sound_object_by_theme[theme].last_id == nil then if t_type == "random" then if table_size >= 2 then play_id = math.random(1, table_size) else play_id = 1 end else play_id = 1 end else if t_type == "random" then if table_size >= 2 then play_id = math.random(1, table_size - 1) if play_id >= sound_object_by_theme[theme].last_id then play_id = play_id + 1 end else play_id = 1 end else if sound_object_by_theme[theme].last_id < table_size then play_id = sound_object_by_theme[theme].last_id + 1 else if type == "looped" then play_id = 1 end end end end
printf("SOUND_OBJECT: selected id [%s] for theme [%s], type [%s], size [%s]", tostring(play_id), tostring(theme), tostring(type), table_size)
if play_id == -1 then return end --' Проверяем создан ли у нас соответствующий саунд обжект или его надо создать if sound_object_by_theme[theme][play_id] == nil then if type(sound_theme.ph_snd_themes[theme][play_id]) == "table" then sound_object_by_theme[theme][play_id.."_r"] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id][1].."_r") sound_object_by_theme[theme][play_id.."_l"] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id][1].."_l") else sound_object_by_theme[theme][play_id] = get_safe_sound_object(sound_theme.ph_snd_themes[theme][play_id]) end end
sound_object_by_theme[theme].last_id = play_id
--' Возвращаем саунд обжект if type(sound_theme.ph_snd_themes[theme][play_id]) == "table" then return sound_object_by_theme[theme][play_id.."_r"], sound_object_by_theme[theme][play_id.."_l"] else return sound_object_by_theme[theme][play_id] end end
local sound_object_by_path = {} --' Обертка вокруг функции, возвращающий звуковой объект. function get_safe_sound_object(path) if sound_object_by_path[path] == nil then sound_object_by_path[path] = sound_object(path) end return sound_object_by_path[path] end
function stop_all_sound_object() for k,v in pairs(sound_object_by_path) do if v:playing() then v:stop() end end end function clear_all_sound_object() sound_object_by_theme = {} end
Сообщение отредактировал FantomICW - Среда, 16.10.2013, 18:25