В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
mwesten1, ссылка не работает, назначение скриптам горячих кнопок - смотрел, только не понял. Если не ошибаюсь, там все-таки довольно специфичный пример, на адаптацию конкретного "мода", у меня же несколько другой случай.
Допустим есть у меня файл "qte1.script" и куда и как в "ui_main_menu.script" мне нужно вписать "qte1.start_qtimevnt()", чтобы заработало по нажатию какого-нибудь пункта меню? Блин, после Армы дико туплю, привык уже к ее скриптам, там любой хардкор за пять минут напишу, а тут от мелочей аж мозги закипают. Скрипт на отснятие координат - знаю, ускорение времени - тоже знаю, с такими проблем не возникает, они мелкие все и внутри "ui_main_menu.script" идут, а мне нужно по нажатию запустить функцию из другого, внешнего скрипт-файла.
Сообщение отредактировал Dorian23Grey - Пятница, 18.10.2013, 03:46
Dorian23Grey, по поводу кнопки в меню timaxa007 правильно говорит. По поводу рестриктора, да, можно. Напоминаю, что все функции, которые можно вызвать через логику, находятся в xr_effects.script. Вызываются они вот так:
Код
%=функция%
Если в функции нужно указать аргумент, то обычно так:
Код
%=функция(аргумент)%
Если аргументов должно быть указано несколько, то так:
Код
%=функция(аргумент_1:аргумент_2:аргумент_3...)%
Допустим, ЗПшная функция oasis_heal будет в логике вызываться просто:
Код
%=oasis_heal%
ведь аргументов не имеет:
Код
function oasis_heal() local d_health = 0.005 local d_power = 0.01 local d_bleeding = 0.05 local d_radiation = -0.05 if(db.actor.health<1) then db.actor.health = d_health end if(db.actor.power<1) then db.actor.power = d_power end if(db.actor.radiation>0) then db.actor.radiation = d_radiation end if(db.actor.bleeding>0) then db.actor.bleeding = d_bleeding end db.actor.satiety = 0.01 end
А вот функция scenario_autosave будет вызываться с аргументом, в своей форме имеет некоеp[1]:
Код
function scenario_autosave(actor, npc, p) local save_name = p[1] if save_name == nil then abort("You are trying to use scenario_autosave without save name") end
if IsImportantSave() then local save_param = user_name().." - "..game.translate_string(save_name)
get_console():execute("save "..save_param) end end
Вызов:
Код
%=scenario_autosave(название_сейва)%
В целом, чтобы вызвать новую функцию через рестриктор, нужно добавить ее в xr_effects.script, и в зависимости от формы запустить "в процентах".
function main_menu:InitCallBacks() ... self:AddCallback("btn_new_btn", ui_events.BUTTON_CLICKED, self.OnNewButton, self) end
function main_menu:OnNewButton() My_MOD.act_fun() end
Цитатаtimaxa007 ()
function main_menu:OnKeyboard(dik, keyboard_action) ... if dik == DIK_keys.DIK_W then My_MOD.act_fun() end
- Спасибо! Это как раз те примеры, которые мне и нужны были! Все работает)))
Добавлено (18.10.2013, 16:14) --------------------------------------------- Еще вопросик... в Арме есть такая команда, как "sleep" - позволяет отсрочить использование дальнейшей части скрипта на энное кол-во секунд. Например:
Kill NPC1; sleep 60; Kill NPC2;
- Т.е. после убийства первого нпс ожидается 60 секунд, и только после этого умирает второй.
Вопрос: как в Сталкере сделать аналогичное ожидание посреди скрипта?