В данной теме вы можете задавать любые вопросы касательно 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 по основным вопросам моддинга - обращаемся в ЛС.
Попробуйте закрыть окно ( db.actor:stop_talk() ) и вызвать свою функцию.
Я уже находил эту функцию. stop_talk() закрывает именно диалог из которого нажимается кнопка "Торговать" Все аналогичные способы из _g.show_all_ui() тоже не увенчались успехом
Сообщение отредактировал TYOPA - Вторник, 30.06.2015, 09:29
А в SDK можно непосредственно менять любую локацию. К примеру вв бункере Сидоровича добавить дверь, которая будет открывать игроку пустую комнатку или это уже в 3D Max надо.
Сначала открываем файл actor_menu.script и поменяем там "туфту" разрабов. В нём меняем xr_meet_trade_closed = false на xr_meet_trade_closed = true
В функции trade_wnd_opened() запишем xr_meet_trade_closed = false, а в функции trade_wnd_closed() запишем xr_meet_trade_closed = true
Теперь открываем файл xr_meet.script и в эвалуаторе в методе evaluate() сразу после строки
if db.actor then пишем:
if actor_menu.xr_meet_trade_closed == false and self.object:is_talking() and db.actor:is_talking() then self.object:stop_talk() db.actor:stop_talk() local hud = get_hud() hud:HideActorMenu() -- Здесь поставите флаг, по которому запустится ваша функция, и ваша же функция сбросит этот флаг. return false end
Сообщение отредактировал makdm - Вторник, 30.06.2015, 11:52
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : attempt to call a nil value
Давно уже меня интересует следующий нюанс: играл в Народную солянку для ТЧ и замечал, что пули и дробь не впиваются в цель, куда не стрельни, хоть в живую мишень, хоть в объекты местности. Они падают как под усиленной гравитацией пока земли не коснутся. В ЗП подобного нет, как известно. И я уже не помню как дела обстоят с этим в оригинале ТЧ.
Так вот вопрос: это особенности движка что ли или баллистика какая-то недоделанная? Можно ли как-то исправить? Вообще странная штука... Кого не спрашивал, никто ни сном ни духом.
скорее всего он прописан в all.spawn - там его по координатам и поищите.
Поискал, но там нет его.
Добавлено (30.06.2015, 19:49) --------------------------------------------- переформулирую вопрос, как убрать предмет на локации, где найти данные о локации, и в каком месте стоит мне нужный предмет.
Так вот вопрос: это особенности движка что ли или баллистика какая-то недоделанная? Можно ли как-то исправить?
В оригинальном ТЧ я такого не припомню, следовательно движок не причем (солянка его не правит). Смотрите настройки баллистики (bullet_manager), смотрите настройки боеприпасов которые могут дать подобный эффект.
Цитатаmafia50000 ()
пропан у Сидоровича
Это часть геометрии, SDK в помощь. В крайнем случае придется привлечь 3D редактор, для вырезки ненужных поверхностей из геометрии.
Сообщение отредактировал denis2000 - Вторник, 30.06.2015, 21:34
mafia50000, поставить СДК и подобные вопросы отпадут. Хотя, конечно, удалить пропан у Сидоровича . Судя по секции в all,spawn'e - это trader_physic_object0007. Удаляй секцию или, пока не разобрался, в bind_stalker.script в колбек на начало игры if self.bCheckStart then
Код
local se_obj = alife():object("trader_physic_object0007") if se_obj then alife():release(se_obj, true) end
Ещё раз про окна в ЧН. Как перейти к следующей функции, кнопке Взять карту. Первая карта берётся. Ещё раз. Начало скрипта(могу целиком залить или мод Stalk15): function card_game_21p:InitControls() self:SetWndRect(Frect():set(0,0,1024,768)) --// основная текстура на экране
xml:ParseFile("ui_mini_games.xml") --// файл в ui/ с настойками текстуры xml:InitStatic("card_game_21p:background", self) xml:InitStatic("card_game_21p:caption", self) xml:InitStatic("card_game_21p:picture_21p_2", self) xml:InitStatic("card_game_21p:picture_21p", self) --/Кнопки self:Register(xml:Init3tButton("card_game_21p:btn_start_game", self), "btn_start_game") --// начать игру self:Register(xml:Init3tButton("card_game_21p:take_card", self), "take_card") --// взять карту self:Register(xml:Init3tButton("card_game_21p:perevod_hoda", self), "perevod_hoda") --// переход хода self:Register(xml:Init3tButton("card_game_21p:next_tur", self), "next_tur") --// сыграть ещё раз self:Register(xml:Init3tButton("card_game_21p:btn_quit", self), "btn_quit") --// выход Скрипт btn_start_game(упростил до невозможности):
Код
function card_game_21p:card_game_21_start() local Card1 = 0 local Spil = Card_aus_table(tCards) xml:InitStatic("card_game_21p:"..Spil, self) self:SetWndPos(50, 280) Btn1:Enable(false) --// начать игру Btn2:Enable(true) --// взять карту Btn3:Enable(true) --// переход хода Btn4:Enable(false) --// сыграть ещё Btn5:Enable(false) --// выход end
Первая карта есть. Как взять вторую.
Код
function card_game_21p:take_card() -- взять карту local ActorCard = Card_aus_table(tCards) ActorPoints = math.floor(ActorPoints + CardToNum(ActorCard)) local static1, static2, static3,static4 = self:GetStatic("ActorNilCard1"), self:GetStatic("ActorNilCard2"), self:GetStatic("ActorNilCard3"),self:GetStatic("ActorNilCard4") if static1 ~= nil then self:DetachChild(static1) card = xml:InitStatic("card_game_21p:"..ActorCard, self) card:SetWindowName("ActorCards") card:SetWndPos(140, 280) elseif static2 ~= nil then self:DetachChild(static2) card = xml:InitStatic("card_game_21p:"..ActorCard, self) card:SetWindowName("ActorCards") card:SetWndPos(230, 280) elseif static3 ~= nil then self:DetachChild(static3) card = xml:InitStatic("card_game_21p:"..ActorCard, self) card:SetWindowName("ActorCards") card:SetWndPos(320, 280) elseif static4 ~= nil then self:DetachChild(static4) card = xml:InitStatic("card_game_21p:"..ActorCard, self) card:SetWindowName("ActorCards") card:SetWndPos(410, 280) end end