В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
ColR_iT, а так неправильно будет Uyman358 сделать:
Код
function gen_kill_som(npc, actor) local npc = level_object_by_sid(20073) if npc and npc:alive() then npc:kill(npc) end local npc = level_object_by_sid(20074) if npc and npc:alive() then npc:kill(npc) end local npc = level_object_by_sid(20075) if npc and npc:alive() then npc:kill(npc) end local npc = level_object_by_sid(20096) if npc and npc:alive() then npc:kill(npc) end end
Arist А если бы нужно было удалять ...дцать НПС, то писал бы метры портянки? Не знаю как игра будет смотреть на твой код, но Lua точно обиделась бы Есть же оператор переменного количества аргументов '...'. Хотя эта функция, похоже. вызывается из логики? Но от этого суть дела не меняется. Из логики :
Код
function gen_kill_som(npc, actor, p) for i = 1, #p do local npc = level_object_by_sid(i) if npc and npc:alive() then npc:kill(npc) end end
Из скрипта :
Код
function gen_kill_som(...) local args = {...} for i = 1, #args do local npc = level_object_by_sid(i) if npc and npc:alive() then npc:kill(npc) end end
И пользуйтесь для любого количества НПС столько раз, сколько нужно.
Сообщение отредактировал Gun12 - Воскресенье, 14.04.2013, 15:59
поставил на свой мод полоску радиации на худ. он не отображается. раньше отображалось а щас не отображается. несколько раз все проверял ставил заного и ниче не идет. что делать?
Может кто-нибудь знает, возможно ли на тч из зп перенести на худ иконки и клавиши бытрого действия(например в зп по умолчанию стоит аптечка-F1, тушенка-F4 ну и т.д.)?
А если бы нужно было удалять ...дцать НПС, то писал бы метры портянки?
К сожалению - да. Спасибо за мастер-класс. Uyman358, насчёт вылета: Мастер,возможно специально не поставил в скрипт один end. Я, правда, не глядя его в script Syntax Checker от Gun12(без него уже никак ).End сразу показал. Что касается скрипта.Я им вызываю схему "Компаньоны" от KamikaZze. npc:alive() - не срабатывает, пишу: npc.alive ~= nil. Вызов из диалога:
Код
function hunter_enter(args,npc) local args = {094,095} for i = 1, #args do local npc = level_object_by_sid(args[i]) -- вместо (i) if npc and npc.alive ~= nil then companion_start_following(npc, actor) end end end
Из логики(xr_effects):
Код
function gen_kill_som(npc, actor, p) for i = 1, #p do local npc = level_object_by_sid(p[i]) -- вместо (i) if npc and npc.alive ~= nil then _hunter.companion_start_following(npc, actor) end end end
Простите, это я так копипастил из SciTE. Хуже что за мной тоже не думая скопировали. p[i] -- вместо (i) - Конечно же. Целый день занимаюсь lua, уже мозги заплыли.
Сообщение отредактировал Gun12 - Понедельник, 15.04.2013, 01:21
Uyman358, возвращаясь к проблеме "хеппи-енда". Находясь на таком расстоянии - их такой функцией не убить, во всяком случае на чистом ЗП, где радиус алайфа ограничен 150 метрами. Метод kill применяется только для онлайновых объектов, т.е. для тех, которые находятся в радиусе алайфа. Для того, чтобы их убить - получай по story_id их серверные объекты и убивай их методом on_death. Arist
Цитата
npc:alive() - не срабатывает, пишу: npc.alive ~= nil.
Это из той же оперы. Метод alive() используется для онлайновых объектов, а свойство alive - для серверных. ZECK, в сети ходит уже готовый мод, в котором это реализовано. При наличии некоторого опыта и сноровки - это можно сделать и самому за совсем небольшой промежуток времени.