В данной теме вы можете задавать любые вопросы касательно 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 - содержит секции конфигов уникального оружия и костюмов.
Но ничего не происходит. Где я ошибся? И еще такая проблема: сделал ПДА с ГУИ интерфейсом и нужно, чтобы на этот ПДА отображалась статистика определенных действий (хедшотов, убийств ножом и т.д.) Они где надо зареганы и в обычном ПДА отображаются. Но мне нужно перенести их в свой ПДА. Вот конфиг и скрипт нового ПДА
class "ui_actor_statistica_pda" (CUIScriptWnd) --Регистрация нового класса гуи-элемента от
существующего класса CUIScriptWnd
function ui_actor_statistica_pda:__init(owner) super() --Иницилизируем класс, добавляем отсылки к
функциям self.owner = owner self:InitControls() --Отсылка к функции регистрации элементов окна self:InitCallBacks() --Отсылка к функции регистрации коллбеков (условий) end
function ui_actor_statistica_pda:__finalize() --Функция завершения работы нового класса end
function ui_actor_statistica_pda:InitControls() --Функция иницилизации элементов окна self:SetWndRect (Frect():set(0,0,1024,768)) --Установка стандартных размеров файла local xml, ctrl = CScriptXmlInit(), CUIWindow() --Задаем локальные переменные на классы xml:ParseFile ("ui_gui_elements_12.xml") --Инициализация XML-файла Gui-элемента xml:InitStatic ("statistica_pda:stat_info",self.stat_info) self.statistica_pda = xml:InitStatic("statistica_pda",self) --Регистрируем само окно self.button_close = xml:Init3tButton ("statistica_pda:btn_close",self.statistica_pda)
--Регистрация кнопки: кнопка закрытия окна self:Register (self.button_close, "button_close") end
function ui_actor_statistica_pda:InitCallBacks() --Функци коллбеков self:AddCallback("button_close", ui_events.BUTTON_CLICKED, self.OnButton_close_clicked, self)
--Коллбек кнопки закрытия end
function ui_actor_statistica_pda:OnButton_close_clicked() --Функция коллбека кнопки закрытия self:HideDialog() --То при нажатии на кнопку - закрываем окошко give_object_to_actor("actor_statistic_pda") end
function ui_actor_statistica_pda:get_stat(index) if(index==0) then return "00:00:00" elseif(index==1) then return tostring(xr_statistic.actor_statistic.killed_by_knife) elseif(index==2) then return tostring(xr_statistic.actor_statistic.head_shoot_killer) elseif(index==3) then return tostring(xr_statistic.actor_statistic.killed_by_grenades) elseif(index==4) then return tostring(xr_statistic.actor_statistic.tayniki_five_category_count) end end
function run_ui_actor_statistica_pda(folder) folder:ShowDialog(true) end
ПДА запускается, но статистики нет. Как правильно сделать? Зараннее спасибо!
Добро. ЗП. Работаю с gui-элементами и вот необходимо разъяснить один момент: как вызвать текст после получения инфопоршня или, например, при нажатии кнопки, а потом таким же образом удалять этот текст с гуи-окна?
Работаю с gui-элементами и вот необходимо разъяснить один момент: как вызвать текст после получения инфопоршня или, например, при нажатии кнопки, а потом таким же образом удалять этот текст с гуи-окна?
Текст размещается на статике. У статика вызываешь метод TextControl():SetText(text) - так добавить текст. А если хочешь скрыть или показать текст в любой момент, вызови у статика метод Show(true/false)
Если по нажатию кнопки гуи, то так регистрируется обработчик клавиш: self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.OnButton_quit_clicked, self)
где OnButton_quit_clicked - название метода в классе, который обработает нажатие. ui_events.BUTTON_CLICKED - событие, которое обрабатывается, т.е. нажатие, есть и другие события. "btn_quit" - произвольна строка, она используется как-то для связывания объект-строка где-то там в движке, особо париться насчёт неё не надо
Сообщение отредактировал DukeKAn - Суббота, 30.04.2016, 21:25
Доброго времени суток! Вопросик такой назрел. Есть список предметов. Каждый предмет имеет свою стоимость. Каким бы образом сообразить функцию, которая могла бы посчитать: имеются ли у актора предметы из этого списка, количество которых равняется определённой сумме. Пример: непись попросил игрока притащить ему разнообразного хабара на 10к рублей. Вот нужно как-то рассчитать: есть ли у игрока хабар на эту сумму, или нет. Как быть?
Сообщение отредактировал Wo1fRam - Суббота, 30.04.2016, 21:59
Wo1fRam, вот тут вроде как перебирают предметы в инвентаре актора и выбирают аптечки. Посмотри, может наведет на мысль как создать список предметов по цене.
"Удаление нескольких одинаковых предметов(например удалим 7 аптечек)" Код function Delete_2_bumazhki_sidora_from_Actor() local cnt = db.actor:object_count() local ch=0 for i=0, cnt-1 do local item = db.actor:object(i) if item:section() == "medkit" then local sobj = alife():object(item:id()) if sobj then alife():release(sobj,true) ch = ch+1 if ch == 7 then --7 - кол-во удаляемых аптечек break end end end end end
Мб можно использовать item:cost чтобы узнать цену, по тому же принципу, что и секцию.
Добавлено (30.04.2016, 22:40) --------------------------------------------- народ, что не так с логикой спейс рестрикотора. Кажется, все правильно, но тем не менее, ничего не выполняется. З.Ы. cykle_sp - инфопоршень, активирующий скрипт, в рез-те которого этот инфопоршень удаляется. А потом снова выдается через спейс рестиктор и т.д. Так это должно выглядеть, но на деле...
CoCo_Boy, Сначала название схемы, потом эффекты. Пример: on_actor_inside = sr_idle@2 %+эффекты%
Добавлено (30.04.2016, 23:01) --------------------------------------------- Хотя стой! Если +on_start это у тебя условие, то будет так: on_actor_inside = {+on_start} sr_idle
Добавлено (30.04.2016, 23:13) --------------------------------------------- Я понял что ты имел введу! Я тупой. Не слушай меня.
Написал скрипт, который должен заполнить ящики рандомными предметами из таблицы, но заметил такую екприятную вещь: несколько раз начинал НИ, и ящики заполнены одним и тем же. А нужно, чтобы предметы брались рандомно. Может не так что написал?
function create_secrets_five_category() for i=1,2 do xr_effects.spawn_object_in(nil, nil, {items_to_secret_five_category[math.random(14)],"taynik_five_category_1"}) xr_effects.spawn_object_in(nil, nil, {items_to_secret_five_category[math.random(14)],"taynik_five_category_2"}) xr_effects.spawn_object_in(nil, nil, {items_to_secret_five_category[math.random(14)],"taynik_five_category_3"}) end end
function create_secrets_four_category() for i=1,3 do xr_effects.spawn_object_in(nil, nil, {items_to_secret_four_category[math.random(24)],"taynik_four_category_1"}) end end
function create_secrets_three_category() for i=1,3 do xr_effects.spawn_object_in(nil, nil, {items_to_secret_three_category[math.random(56)],"taynik_three_category_1"}) end end
function create_secrets_two_category() for i=1,2 do xr_effects.spawn_object_in(nil, nil, {items_to_secret_two_category[math.random(81)],"taynik_two_category_1"}) end end
function create_secrets_one_category() for i=1,2 do xr_effects.spawn_object_in(nil, nil, {items_to_secret_one_category[math.random(66)],"taynik_one_category_1"}) end end
Немного не по теме, но всёж надеюсь на помощь - конвертер бардака при распаковке xdb архива выдаёт ошибку - incorrect number of parameters, в чём проблема может быть? батник правильно написан...Скачал S.T.A.L.K.E.R. Universal Extractor 2.0 - он вроде тоже эти архивы должен распаковывать - "работа программы прекращена"...хотя родные ТЧ-шные gamedata.db распаковывает на ура....Может софт какой нужен дополнительно?