В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга
• Не флудить • Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там • В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти
1. Какая стоит игра, с каким патчем? 2. Какой мод, версия мода? 3. Что правили своими ручками? 4. Лог вылета и последние 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 - содержит секции конфигов уникального оружия и костюмов.
denis2000, ну вот, хоть кто-то мне ответил ) У меня требования "наискромнейшие" если так можно выразиться, добавить пару НПС, диалоги прописать, с простейшими квестами на это всё куча очень подробных гидов, поэтому вопросов и не возникает у меня. Вопросы есть в спавне в основном, например как через скрипт заставить смотреть НПС куда я хочу? В алл.спавне есть look на этот счет, есть точки передвижения, то есть больше возможностей чем у скриптового спавна получается...
Цитатаdenis2000 ()
В оригинале оно и не пропадает.
Мне нужно как раз наоборот ) То есть я заспавнил НПС бандита на АТП, с Валом например, но чтобы ГГ не получил эту пушку, мне нужно чтобы при убийстве оружие с него не выпало, вот
Добавлено (16.06.2017, 20:04) --------------------------------------------- Ну и да, если со спавном всё наладится у меня, то добавить уже готовых мутантов в игру, будет тоже неплохим бонусом для меня, там по сути та же аналогия должна быть
Вопросы есть в спавне в основном, например как через скрипт заставить смотреть НПС куда я хочу? В алл.спавне есть look на этот счет, есть точки передвижения, то есть больше возможностей чем у скриптового спавна получается...
Не правильный вывод. Всё с точностью наоборот. Спавн НПС через all.spawn - в "топку". Метод 2007 года. Всё только через скрипты. А куда смотреть НПС, задаётся в его логике, а не в all.spawn
А что насчет не драфта? Sherlok13, Скрипт death_manager.script функция keep_item. Если возвращает false предмет будет удален. Конкретно в этих строках анализируется оружие в слотах НПС:
local item_id = item:id() local item_in_slot = npc:item_in_slot(1) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end item_in_slot = npc:item_in_slot(2) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end
Сообщение отредактировал denis2000 - Пятница, 16.06.2017, 20:58
Хочу поправить на свое, но не могу сообразить откуда игра берет это значение если нигде оно не прописано ? Пытался добавить свою надпись по аналогии - не выходит, игра ее просто не видит.
Где "ver." - это сразу текст. Т.е если заменить "ver." на "Вася111" и убрать .. mm:GetGSVer(), будет отображаться в левом нижнем углу "Вася111". Лично я добавил в ЗП текст по одному из гайдов в интернете таким способом:
Дописал над оригинальным скриптом статика следующее:
Код
local add_ver = xml:InitStatic ("add_version",self) add_ver:TextControl():SetText ("Мой текст")
Где "add_version" - это название статика, и в конфиге тоже. Естественно, можно писать все, что хочется, лишь бы удовлетворяло требованиям написания скриптов.
Вышло следующее:
Код
local add_ver = xml:InitStatic ("add_version",self) add_ver:TextControl():SetText ("Мой текст")
local _ver = xml:InitStatic ("static_version",self) local mm = _G.main_menu.get_main_menu() _ver:TextControl():SetText ("S.T.A.L.K.E.R. CoP ver. " .. mm:GetGSVer())
А затем в ui_mm_main и ui_mm_main_16 (что уже вами было найдено) прописал координаты по аналогии с оригиналом и сдвинул куда мне нужно. А вообще - в гугле все есть, учитесь искать. И если мне не изменяет память, тот тутор был конкретно даже для ТЧ.
Сообщение отредактировал ROZBEN - Пятница, 16.06.2017, 21:52
denis2000, так, допустим я не хочу чтобы с волка выпал его автомат, я должен прописать ниже этих строк :
item_in_slot = npc:item_in_slot(2) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end
Точно такую же свою, раз мне нужен второй слот только, правильно?
item_in_slot = npc:item_in_slot(2) if item_in_slot ~= nil and item_in_slot:id() == item_id then item:unload_magazine() --' Тут надо уменьшить кондишн оружия item:set_condition((math.random(15)+75)/100) return true end
По идее, нам нужно прописать сюда id персонажа, то есть esc_wolf и его оружие wpn_ak74u, и в конце return false Но что куда я не знаю, т.к не разбираюсь в этом пока
Добавлено (16.06.2017, 22:22) --------------------------------------------- makdm, неожиданный ответ, я думал сейчас все профи только через алл спавн работают, а новички наподобие меня, через скрипты, т.к некоторые детали проще через скрипты сделать
Сообщение отредактировал Sherlok13 - Пятница, 16.06.2017, 22:20
Такая проблема: при вызове db.actor:eat(sl_b) в коде
Код
local sl_b = db.actor:object("sleep_booster") for i=1,sleep_time do alife():create(sl_b,db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) if sl_b ~= nil then db.actor:eat(sl_b) end end
происходит вылет stack trace: В чем проблема? Если убрать эту строку - все работает. Вызываю из функции dream_callback2() в ui_sleep_dialog.script Заранее спасибо!
Как делаются задания (Зов Припяти) типа "быть в таком-то месте в такое-то время", т.е. как проверить, нахожусь ли я (ГГ) в нужном месте в промежуток времени с 13:00 до 15:00 (к примеру)?
Спасибо заранее.
Сообщение отредактировал Jeka81 - Суббота, 17.06.2017, 17:56
что такое sl_b движок не понимает. Ему нужна секция объекта.
ЦитатаJeka81 ()
Как делаются задания (Зов Припяти) типа "быть в таком-то месте в такое-то время"
Ставится рестриктор с определёнными размерами. Рестриктору прописывается логика. В логике рестриктора проверяется, находится ли ГГ внутри рестриктора и одновременно проверяется время. Если все условия выполнены, то происходит событие.
Сообщение отредактировал makdm - Суббота, 17.06.2017, 18:08