В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
BozKurt, Сейчас несколько раз проверил, по разному было, иногда изменения вступали в силу сразу, иной раз при загрузки автосейва с начала уровня, возможно дело в добавленных фиксах.
Добавлено (22.05.2014, 17:42) --------------------------------------------- Доброго времени суток! Я написал скрипт на спавн нескольких НПС военных сразу подружив (или "онейтралив", главное что бы не враги были) со свободой т.к. для проверки действует ли скрипт нужно проиграть минимум 2 часа, прошу проверить синтаксис.
local voen = {} function pri_spawn () -- 1-3 local obj = alife():create("rad_pri_mil_1spw",vector():set(-0.93081665039063,-9.287769317627,-45.758930206299),5668,2694) local params = amk.read_stalker_params(obj) params.sid = 1076 amk.write_stalker_params(params, obj) table.insert (voen, obj) local npc = alife():create("rad_pri_mil_1spw",vector():set(3.3436396121979,-9.1623735427856,-45.856372833252),6879,2694) table.insert (voen, npc) npc = alife():create("rad_pri_mil_1spw",vector():set(-2.6817104816437,-9.287446975708,-45.701698303223),5168,2694) table.insert (voen, npc)
-- *** -- su obj = alife():create("rad_pri_mil_sspw",vector():set(-8.9058332443237,-9.0138311386108,-15.963728904724),4283,2692) params = amk.read_stalker_params(obj) params.sid = 1078 amk.write_stalker_params(params, obj) table.insert (voen, obj) for i = 1, 5 do npc = alife():create("rad_pri_mil_sspw",vector():set(-8.9058332443237,-9.0138311386108,-15.963728904724),4283,2692) table.insert (voen, npc) end obj = alife():create("mil_freedom_respawn_1",vector():set(8.1268491744995,-9.016975402832,-15.528545379639),7744,2693) params = amk.read_stalker_params(obj) params.sid = 1087 params.custom = "[logic]\n cfg = scripts\\radar\\sward.ltx" amk.write_stalker_params(params, obj)
for i = 1, 5 do obj = alife():create("uchonye_spawn",vector():set(7.1373772621155,-23.525270462036,30.437913894653),7584,2765) params = amk.read_stalker_params(obj) params.custom = "[logic]\n cfg = scripts\\radar\\eco.ltx" amk.write_stalker_params(params, obj) end for i = 1, 5 do obj = alife():create("uchonye_spawn",vector():set(7.1373772621155,-23.525270462036,30.437913894653),7584,2765) params = amk.read_stalker_params(obj) params.custom = "[logic]\n cfg = scripts\\radar\\eco2.ltx" amk.write_stalker_params(params, obj) end this.set_community_goodwill end
function set_community_goodwill () for i,k in pairs (voen) do if k ~= nil then relation_registry.set_community_goodwill ("freedom", k.id, 1500) end end end
Добавлено (22.05.2014, 17:43) --------------------------------------------- Извиняюсь, но табуляция слетела когда копипастил.
Сообщение отредактировал Graff46 - Четверг, 22.05.2014, 17:49
Graff46, во-первых, ты не поставил скобки при вызове твоей функции set_community_goodwill; во-вторых, не следует задавать разным функциям одно и тоже имя. Лучше "обозви" свою функцию ChangeRelation.
function actor_body_state(task, objective) local on_key_sprint = game.translate_string("sprint") if on_key_sprint ~= nil then SendMessage("Нажата кнопка "..on_key_sprint) return true end return false end
В сообщении выдаёт нажата кнопка ускорение. Как отследить нажатие любой кнопки? П.С. состояние тала я получаю local num = db.actor:actor_body_state()
Graff46, Так же логика может игнорировать изменения, если она перешла на выполнение какой либо схемы, а изменения в ней произошли до неё.
Код
[logic] active = 1
[1] ; next =2
[2] и т.д
Код
[logic] active = new
[new] ;next = 1
[1] ; next =2
[2] и т.д
При таком условии, если сохранение было сделано в момент работы [1], то изменений вы не увидите.
ЦитатаGraff46 ()
прошу проверить синтаксис.
Скачай script Syntax Checker.exe и будет тебе счастье. А за одно используй редакторы с подсветкой синтаксиса.
Сообщение отредактировал ins33 - Четверг, 22.05.2014, 18:47
local on_key_sprint = game.translate_string("sprint")
В данном случае переменная on_key_sprint никогда не будет равно nil, т.к. даже, если игра не найдёт идентификатор sprint, то переменной будет присвоен этот самый идентификатор в качестве строки. Поэтому проверка на не nil всегда будет возвращать true.
Цитатаins33 ()
Как отследить нажатие любой кнопки?
Любой - это совсем любой, даже цифровой? Тогда тебе нужен колбек нажатия клавиш.
Народ вот как реализовать что одни нпс атаковали других.То есть я имею ввиду то что например одна группа нпс стоит рядом с базой где в этой базе нпс. И скаже так что " нпс " которые " снаружи " атаковали других , но при всем этом они как бы нас сопровождают. То есть они атакуют базу с сопровождением.
Что это такое? Expression : 0 Function : CUICellContainer::FindFreeCell File : D:\prog_repository\sources\trunk\xrGame\ui\UIDragDropListEx.cpp Line : 674 Description : there are no free room to place item
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...r. call of pripyat\gamedata\scripts\sim_board.script:226: attempt to index local 'spawn_smart' (a nil value)
делал новую локу решил протестить и вот как исправить?
Люди добрые помогите, сделал модель и вылетела игра. (БЕЗ ЛОГА ДАЖЕ САМ ЛОГ ПУСТОЙ (xray_имя-пользователя.log))
-------------------------------------------------------------------------------------------------------- Для создания модели я использовал milkshape 3d 1.8.4 (Да и ещё я юзал дефолтные текстуры игры)
Итак что я делал: 1.Взял готовую модель 2.Изменил ей только тестуру лица и всё 3.Начал Export в СДК (Сам Сдк на ТЧ) 4.В Сдк я назначил User data 5.Назначил анимки 6.Загрузи кости (stalker.bones- этот файл брал из Сдк 0.7 я думаю что нечего не измениться так как не смог найти файлы костей из Сдк 0.4) - (как всё делалось в некоторых туторах но я все равно не понял) 7.За тем сам экспорт модельки
Я НОВИЧОК И ПРОСТИТЕ ЗА ТАКУЮ ТУПОСТЬ.Пожалуйста посмотрите модельку и скажите в чём моя ошибка.
wind, Попытка заспавнить сквад и приписать его к несуществующему смарту не увенчалась успехом?
Цитатаwind ()
и вот как исправить?
Прописать секцию smart_terrain в all.spawn и custom_data объекта.
Добавлено (23.05.2014, 20:31) --------------------------------------------- ALEX13, не нужно в быстрые слоты пихать предметы, иконка которых занимает больше одной клетки в инвентаре.
Сообщение отредактировал makdm - Пятница, 23.05.2014, 20:29
Всем привет. Появилась такая проблема, создал новый smar_terrain с двумя animpoint-ами (один является эксклюзивной работой) а также привязал скавд из 3-х НПС. Но при тесте обнаружился баг, что на эксклюзивный animpoint сели два НПС один назначенный на эту работу, а второй как все уже догадались без работы самое интересное, что я добавил ещё одну работу и НПС на неё не реагирует хотя если закомментировать отсылку к работе бак исчезает.