Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
sergej5500, по первому вопросу, то всё нужно делать в биндере НПС, в файле xr_motivator.script
1. В методе function motivator_binder:net_spawn(sobject) после строк: if not self.object:alive() then self.object:death_sound_enabled(false)
release_body_manager.get_release_body_manager():moving_dead_body(self.object) ---НЕ ЗАБЫТЬ УБРАТЬ return true end
пишите: local section = self.object:section() local ini = system_ini() self.night_eye_range = utils.cfg_get_number( ini, section, "night_eye_range", self.object, false, nil ) or 30 self.night_eye_fov = utils.cfg_get_number( ini, section, "night_eye_fov ", self.object, false, nil ) or 90
2. В методе function motivator_binder:update(delta) после строки: if object_alive then
пишите self:control_eye_range_fov()
3. Добавляете свой метод в биндер. Для этого, например, перед строкой function motivator_binder:update(delta) пишите:
function motivator_binder:control_eye_range_fov() local game_hours = level.get_time_hours() if game_hours < 5 or game_hours >= 21 then if self.object:range() > self.night_eye_range then self.object:set_range( self.night_eye_range ) end if self.object:fov() > self.night_eye_fov then self.object:set_fov( self.night_eye_fov ) end return end if self.object:range() < self.night_eye_range then self.object:set_range( self.night_eye_range ) end if self.object:fov() < self.night_eye_fov then self.object:set_fov( self.night_eye_fov ) end end
По второму вопросу: Такую функцию не имеет смысла писАть, так как у симуляционных НПС секции могут совпадать и кого удалять будет непонятно. Для удаления нужен id объекта, его можно получить по story_id Так что используйте функцию remove_npc
Всем привет! Возможно ли сделать проверку на предмет у техника, например если у техника не будет артефакта "Золотой рыбки", он не сделает ту или иную модификацию.
Народ! 2 локации, станция и станция 2, 1 терейн, 1 текстура терейна, 1 общая карта. На станции 2 всё нормально, и миникарта и глобалка совпадают до пиксела, а на станции миникарта и глобалка тоже всё отлично совпадает но нет значка актора на глобалке. куда копать???
Вопрос снят, нашёл решение.
Добавлено (26.04.2018, 11:33) --------------------------------------------- И для информации относительно реалий какая припять в ЗП и какая в ТЧ? В ТЧ вроде бы восточная?
Сообщение отредактировал Policai - Четверг, 26.04.2018, 15:21
Joni_009, В секции апгрейда есть параметр precondition_functor - эта проверочная функция для апгрейда, если вернет true - апгрейд возможен, собственно там и должна быть проверка на наличие артефакта.
При попытке разговора с группой тополя, не нашёл, как исправить, диалоги вообще не трогал. Понятно, что не хватает диалога, но в character_desc всё указано.
Expression : !phrase_dialog->m_PhraseVector.empty() Function : CPhraseDialog::SayPhrase File : D:\prog_repository\sources\trunk\xrGame\PhraseDialog.cpp Line : 146 Description : No available phrase to say, dialog[hello_dialog]
(у сталкеров была не та группировка, сорри за хлам)
Сообщение отредактировал alanbrose - Четверг, 26.04.2018, 21:30
Joni_009, здесь нужно понимать в какой очередности движок вызывает функции, отвечающие за апгрейд. Первой вызывается функция can_upgrade_item из скрипта inventory_upgrades.script. Если возвращается Истина, тогда вызывается следующая функция precondition_functor_a, которая и читает кондлист апгрейдов.
Для реализации вашей "хотелки" нужно сделать следующее:
1. В файле inventory_upgrades.script после строки function can_upgrade_item( item_name, mechanic ) пишите
xr_conditions.mechanic_srction = mechanic
2. В файле xr_conditions.script в самом низу пишите:
mechanic_srction = nil function mechanic_has_item(actor, obj, p) if p then for k, npc_id in pairs( xrs_dyn_music.npc_table ) do local npc = level.object_by_id( npc_id ) if npc and npc:section() == mechanic_srction then if npc:object( p[1] ) then return true end end end end return false end
3. Теперь можете использовать кондлист для отдельных апгрейдов оружия. Например:
Lory, в профиле нпса есть строка заголовка диалога? у самого диалога есть условие на наличие или отсутствия инфопоршня? проверяй, может где то опечатка или забыл вписать.