Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Я полагаю это делается в файле game_tutorials в секции intro_game, но как точно не знаю.
Неверно полагаете. Всё делается через обычный рестриктор. Откройте: gamedata\configs\scripts\zaton\zat_b101_logic.ltx Вот они все эти квесты. Используйте схему: on_info = {!black_screen} %=действие%
Еще такой вопрос, как сделать, чтобы спустя какое-то время после выдачи квеста мне пришло озвученное сообщение, которое у меня уже готово в отдельном скрипте. А после его окончания выдать достижение.
ЦитатаAziatkaVictor ()
Находим <intro_game>, пишем скрипт на выдачу квеста и прописываем его в <function_on_stop>.
Я как раз так и пробовал, это в принципе тоже работает, но квест выдается прямо во время интро.
Сообщение отредактировал alexx556 - Четверг, 01.08.2019, 10:04
Находим <intro_game>, пишем скрипт на выдачу квеста и прописываем его в <function_on_stop>
не самый лучший вариант, ибо квест будет выдаваться не после интро, а после каждого элемента интро (там ведь не один <function_on_stop>), из-за этого можно будет услышать звук выдачи квеста ещё до того, как интро закончится сам долго бился над тем, как же сделать всё "красивенько", через рестриктор у меня почему-то не работало (потому что криворукий ), ну в итоге просто взял и сделал вызов скрипта вместо запуска интро через движок, заодно и избавился от надоедливого зависания игры после загрузки при начале новой игры, потому что игра уже не пытается запустить интро
Сообщение отредактировал zhenya4342 - Четверг, 01.08.2019, 10:04
не самый лучший вариант, ибо квест будет выдаваться не после интро, а после каждого элемента интро (там ведь не один <function_on_stop>), из-за этого можно будет услышать звук выдачи квеста ещё до того, как интро закончится
Именно так, у меня сначала как раз это и получилось. Через рестриктор теперь все работает правильно.
Сообщение отредактировал alexx556 - Четверг, 01.08.2019, 10:15
В сдк пропала текстура земли, цвет остался а текстуры нету. У меня сломался сейв уровня, поэтому я декомпилировал локацию с качеством Draft.
Добавлено (01.08.2019, 12:59) --------------------------------------------- Так же там много погрешностей, это можно как-то исправить или это вручную придется менять?
Еще, как вариант, использовать нет-пакеты для определения состояния тела игрока (стояк, шаг, бег и тд...) (это проще с одной стороны ибо не придется вешать на апдейт, но с другой стороны у нет-пакета задержка 1-2 сек.)
Так же вопрос, в сдк у текстур с альфа каналом появился черным фон, при компиляции это будет или нет, если да то какой шейдер надо поставить? Заранее спасибо!
AziatkaVictor, обыкновенный заборчик в игре это всего лишь текстура с альфа каналом, так что выводы делай сам но альфа не будет отображаться на драфте насчёт шейдера хз ¯\_(ツ)_/¯
Сообщение отредактировал zhenya4342 - Четверг, 01.08.2019, 23:24
LibyanMapper, для этого создаёте нового НПС (есть в интернете много уроков по созданию НПС), а чтоб на нём был новый скин, в строчке <visual> прописываете путь к модельке НПС, например <visual>actors\stalker_neutral\stalker_neutral_1</visual>.
Добавлено (03.08.2019, 00:33) --------------------------------------------- Всем привет! Есть у меня один сложный и интересный вопрос из-за того, что в моём моде используется AtmosFear 3, надеюсь найдётся кто-нибудь кто сможет помочь разобраться в проблеме. Требуется подключить один подземный уровень, причём чтобы на локации не было выброса и других погодных явлений (как и в оригинальных подземках). Уровень подключить удалось, копируя секции оригинальных подземок (заметил, что их подключали чутка по другому нежели надземные уровни). Проблема заключается в следующем: уровень сам работает, но попасть на него нельзя, вылетает. То есть, если спавнить ГГ в начале игры на уровне - всё работает. А стоит заспавнить на другой локации и перейти на локу - вылет (предполагаю, что проблема с погодой). Такая проблема только с новой локацией, остальные уровни нормально работают. Уровень прописан в game_graphs.ltx. Знаком "..." я сократил те части файлов, которые я не правил и они остались неизменными от оригинала\мода AtmosFear 3. Название локации в файлах: "tube".
-- Устанавливаем состояние менеджера, распарсивая строку состояния function WeatherManager:set_state_as_string(ss) --self.debugMessages[7]:SetText(ss) self.state={} local laststring for lvlstring in string.gmatch(ss,"[^;]+") do laststring=lvlstring end
local i,j,grname,curs,nexs=string.find(laststring,"([^=]+)=([^,]+),([^,]+)") --459 строка if not grname then abort("WeatherManager:set_state_as_string: malformed state string. "..ss) end --local lvl_name=self:unpack_level(lvl) local current_state=self:unpack_state(curs) local next_state=self:unpack_state(nexs) local graph_name=self:unpack_graph_name(grname) local graph=self:get_graph_by_name(graph_name) self.curr_weather=current_state self.next_weather=current_state if graph==nil then -- Старая сохранёнка? Будем считать что на этом уровне - статическая погода else --self.debugMessages[11]:SetText("loaded string="..laststring) --self.debugMessages[12]:SetText("self.state["..graph_name.."]={current_state="..current_state..",next_state="..next_state..",graph_name="..graph_name..",graph=}") self.state[graph_name]={current_state=current_state,next_state=next_state,graph_name=graph_name,graph=graph} end end
... diff_sec = math.ceil(game.get_game_time():diffSec(self.inited_time)/level.get_time_factor()) local level_name = level.name() if(level_name=="tube" or level_name=="labx8" or level_name=="jupiter_underground" or self.atmosfear.opt_enable_psi_storm==0) then --self.atmosfear.debugMessages[12]:SetText("psi storm skipped because of level") self:skip_psi_storm() return end ... local level_name = level.name() if(level_name=="tube" or level_name=="labx8" or level_name=="jupiter_underground" or self.atmosfear.opt_enable_psi_storm==0) then self:finish() return end ...
... local level_name = level.name() if(level_name=="labx8" or level_name=="jupiter_underground" or level_name=="tube" or self.atmosfear.opt_enable_blowout==0) then --self.atmosfear.debugMessages[12]:SetText("Surge skipped because of level") self.skip_message = true self:skip_surge() return end ... local level_name = level.name() if(level_name=="labx8" or level_name=="jupiter_underground" or level_name=="tube" or self.atmosfear.opt_enable_blowout==0) then printf("Surge stopped because of level!") self:end_surge() return end ...