Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
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, в профиле нпса есть строка заголовка диалога? у самого диалога есть условие на наличие или отсутствия инфопоршня? проверяй, может где то опечатка или забыл вписать.
Доброго времени суток! Не зная куда написать напишу, пожалуй, сюда. Возникли проблемы с Microsoft Visual Studio. При попытке собрать, к примеру xrGame (нажимая кнопку билд) , я получаю кучу предупреждений и ошибок. Microsoft Visual Studio устанавливал по инструкции товарища Shoker, скачивал все кроме DirectX SDK - 2009 March и 2010 June, т.к. судя по статье они нужны только для редактирования рендера. Пробовал различные репаки Microsoft Visual Studio, но во всех происходят ошибки при сборке. Прошу помочь, уважаемые умельцы с проблемой, или поделится рабочей программой. Логи ошибок
Добро. Как-то выложили функцию, чтобы поворачивать объект при спавне, решил сохранить, а сейчас хотел использовать, но словил вылет, ругается на функцию. Что не так?
Код
function spawn_object_with_direction( actor, obj, p ) --' p[1] - секция кого спаунить --' p[2] - имя патрульного пути где спаунить. --' p[3] - direction_x в радианах --' p[4] - direction_y в радианах --' p[5] - direction_z в радианах if p then
local spawn_sect = p[ 1 ] local path_name = p[ 2 ] if path_name == nil then abort("Wrong path_name for 'spawn_object_with_direction' function %s. For object %s", tostring( path_name ), obj:name() ) end if not level.patrol_path_exists( path_name ) then abort("Path %s doesnt exist. Function 'spawn_object_with_direction' for object %s ", tostring( path_name ), obj:name() ) end local ptr = patrol( path_name ) local direction_x = tonumber(p[ 3 ]) or 0 local direction_y = tonumber(p[ 4 ]) or 0 local direction_z = tonumber(p[ 5 ]) or 0 local se_obj = alife():create( spawn_sect, ptr:point( 0 ), ptr:level_vertex_id( 0 ), ptr:game_vertex_id( 0 ) ) se_obj.angle = vector():set( direction_x, direction_y, direction_z ) end end
Вопрос снят. Покумекал и исправил проблему. Кому надо, могу скинуть рабочую функцию (это реально удобно).
Сообщение отредактировал mmihaill - Понедельник, 30.04.2018, 06:37
Всем привет, вышел из лаб8икс, стрельнул в тушкана в этом здании и получил вот это. Перезагрузился, стрельнул в собаку - тоже самое.
Код
Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...call of pripyat\gamedata\scripts\xr_motivator.script:295: attempt to index field 'object' (a nil value)
Глянул в скрипте, там эта функция.
Код
-- Если пришел смертельный хит, с некоторой вероятностью делаем чувака раненым. if bone_index ~= 15 and amount > self.object.health*100 then --printf("DEADLY HIT %s %s", amount, self.object.health*100) self.object.health = 0.15 end
Кто-нибудь сталкивался? Убежал в Старый КБО грохнул бюрера - вылета не было.
Сообщение отредактировал alanbrose - Воскресенье, 29.04.2018, 20:33