Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Как пологаю, происходит перебор файлов (скриптов) и перебор функций этих скриптов, и при нахождении функции с определенным названием (например "on_actor_update") вешает ее на апдейт или типа того.
Откуда вы взяли подобную чушь, мне не известно. Советую забыть ее как можно скорее. В программировании ВСЕГДА, внешние файлы содержащие исполняемый или интерпритируемый код, еще раз, ВСЕГДА регистрируются в основном коде или в других файлах, о которых основной код знает. Пример тому *.dll, внешние скрипты и тд. и тп. Посему если в X-Ray добавляется сторонний файл скриптов, содержащий дополнительные функции (абсолютно фиолетово как они называются) то вызывать их нужно принудительно из других, уже задействованных скриптов и их функций, либо из движка путем его правок!
ЦитатаAziatkaVictor ()
вроде да, лично у меня она, при смене геометрии в SDK, потихоньку съезжала куда-то.
Личный опыт - это конечно хорошо, но он не означает истинность суждений. Карта локации измениться только тогда, когда существенно измениться геометрия террена и/или достаточно большие и заметные объекты на локации, то есть мелки правки террейна или других объектов существенно не повлияют. Положение же на карте актора и других динамических объектов (которые подсвечиваются в ПДА или на миникарте) зависит от параметров в bound_rect, а поскольку, судя по всему, вы игнорировали их правильную настройку в SDK (Images\Edit minimap) или не переносили их правильные значения если геометрию не меняли, то и получали свой опыт. Lone_Loner, Я нигде не слышал, чтобы иконка оружия в окне апгрейда/ремонта масштабировалась под него, ни в ЗП ни в ЗЧ. Видимо вы сделали бессмысленные правки текстур и конфигов.
Сообщение отредактировал denis2000 - Пятница, 17.01.2020, 14:50
уже задействованных скриптов и их функций, либо из движка путем его правок!
Ну я всего предположил, но по сути, итерация же может вызываться из какого-либо скрипта / движка. Но это не больше чем предположение, проверять я это не собираюсь увы.
И зачем тогда такие предположения? Ни на о чем не основанные, ни чем не подтвержденные?
Был не прав, вот подтверждение моих (и ваших получается тоже) слов
function on_game_start() local ignore = { ["_G.script"] = true, ["class_registrator.script"] = true, ["game_registrator.script"] = true, ["ui_registrator.script"] = true, ["ce_new_attachable_item.script"] = true, ["ce_new_game_dm.script"] = true, ["sim_faction_brain_human.script"] = true, ["sim_faction_brain_mutant.script"] = true, ["ce_switcher.script"] = true, ["axr_main.script"] = true, ["lua_help.script"] = true, ["rx_gl.script"] = true } local t = {} local size_t = 0 local f = getFS() local flist = f:file_list_open_ex("$game_scripts$",bit_or(FS.FS_ListFiles,FS.FS_RootOnly),"*.script") local f_cnt = flist:Size() for it=0, f_cnt-1 do local file = flist:GetAt(it) local file_name = file:NameShort() --printf("%s size=%s",file_name,file:Size()) if (file:Size() > 0 and ignore[file_name] ~= true) then file_name = file_name:sub(0,file_name:len()-7) if (_G[file_name] and _G[file_name].on_game_start) then size_t = size_t + 1 t[size_t] = file_name -- load all scripts first end end end for i=1,#t do printf("%s.on_game_start()",t[i]) _G[ t[i] ].on_game_start() end end
По факту и есть та самая итерация, вызов происходит из функции start_game_callback() в _g.script
Сообщение отредактировал Hozar_2002 - Пятница, 17.01.2020, 16:58
Всем здравствуйте. Создал разветвленный диалог. Прописал появление одного варианта ответа, при условии: если у игрока есть определенный предмет. Это работает, проблема в другом, после 2-ого этого варианта идут еще фразы. Но как только, я использую 2-ой вариант происходит вылет.
Сам вылет:
FATAL ERROR
[error]Expression : !phrase_dialog->m_PhraseVector.empty() [error]Function : CPhraseDialog::SayPhrase [error]File : PhraseDialog.cpp [error]Line : 146 [error]Description : No available phrase to say, dialog[esc_wolf_oxota_quest]
Игра жалуется, как я понял, на отсутствие фразы, но сама раза есть. Это видно на скриншоте.
Цитата sergej5500 () Откуда движок игры узнает о том, что существует файл drink.script?
Ну дык. Скрипт к движку постучится попросит значения. В наличии они есть. Я ж говорю, я не уверен ибо играю на сборке и только пару недель назад допустил неосторожность окунуться в доработку напильником. Вполне возможно что там уже сборщики вписали в корень. Или запилили какой-нить автоподхват нового хлама.
В любом случаи надо прописать команду в файле bind_stalker.script, что бы функции заработали...
Сообщение отредактировал Stalker_Одиночка - Пятница, 17.01.2020, 18:59
[error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : ..\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...r. ecall of pripyat\gamedata\scripts\xr_logic.script:734: bad argument #1 to 'pairs' (table expected, got nil)
На что указывает вылет? Вылет при убийстве непися из любого оружия. Это на тестовой локе, на оригинале ЗП, НПС тестовые, стандартные ЗП не эксклюзив. Просто поставил чтоб проверять оружие в руках.. Скорее всего где то его не отметил, хочу понять где..))
Сообщение отредактировал Policai - Суббота, 18.01.2020, 06:59
Конечно, один в один нет, это же для ТЧ. Вот тут вылеты script_storage.cpp для ЗП (такого как у тебя точь в точь, то же нет), но они все ссылаются на схожие из ТЧ. Исходя из этого, вылет 15 вариант из ТЧ, наиболее схожий с твоим. Но я конечно могу и ошибаться, я в скриптах еще хуже чем ты.
Сообщение отредактировал WolfHeart - Суббота, 18.01.2020, 09:49
Подскажите, можно ли двери прописать отдельную логику. Можно ли ей прописать, например: чтобы она открывалась после получения инфопоршня или по истечению времени
Ну конечно. Возьмите за пример логику дверей на Янове, и редактируйте её под свои нужды.
Policai, Насколько я понимаю, то это вылет при попытке переключения на другую секцию логики у какого то объекта. Этот вылет напрямую не связан с оружием, а скорее всего с НПС. Крим, molodoy_chelovek, Или логику двери логова медика на Затоне, она проще и там как раз есть и таймер и условие отпирания по инфопорции: zat_b22_medic_door.ltx
Сообщение отредактировал denis2000 - Суббота, 18.01.2020, 11:10
Насколько я понимаю, то это вылет при попытке переключения на другую секцию логики у какого то объекта. Этот вылет напрямую не связан с оружием, а скорее всего с НПС.
Ну да... так и получается. проверил на других НПС, нормально, а вылет только на этом одном НПС..)) Не страшно, это тестовая лока. Хотел просто убедиться что не ствол виноват.