Волосатые ноги Channel 0 Опубликовано 20 Июня 2019 Ребята, как правильно создать smart_terrain в ЧН на конкретно новой подключенной локации? В ЗП к примеру без проблем создаю... или же на оригинальных локациях. Так вот при создании террейна на подключенной локации получаю такой лог (мб я что-то где-то не дописал?): Скрытый текст Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: ....t.a.l.k.e.r. - clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil) А вот сама секция, вроде правильно прописал: Скрытый текст [6317] ; cse_abstract properties section_name = smart_terrain name = pri_smart_terrain_1_1 position = 12.283582687378, -1.7314429283142, 54.096656799316 direction = 0, 0, 0 id = 65535 version = 124 script_version = 8 spawn_id = 1757 ; cse_alife_object properties game_vertex_id = 1645 level_vertex_id = 117094 distance = 2.8 object_flags = 0xffffff3e custom_data = <<END [smart_terrain] END ; cse_shape properties shapes = 1 shape_0:type = sphere shape_0:offset = 0,0,0 shape_0:radius = 3.11679911613464 ; cse_alife_space_restrictor properties restrictor_type = 0 Забавно то, что если удаляю этот смарт то игра работает как надо. Поделиться этим сообщением Ссылка на сообщение
Волосатые ноги Channel 0 Опубликовано 21 Июня 2019 (изменено) @naxac -- ірешнуть игру (после вvвода сооб ения об ошибке в лог) function abort(fmt, ...) local reason = string.format(fmt, ...) assert("ERROR: " .. reason) error_log("ERROR: " .. reason) log(string.format("%s",nil)) end Если я правильно понял убрать строку которую выделил черным шрифтом? А всё я понял о чем ты, но как это сделать? 8 часов назад, naxac сказал: @Волосатые ноги Channel, Это функция abort срабатывает, ЕМНИП. Там выше строки, на которую ругается игра, есть вывод в лог, раскомментируй его, и тогда в логе будет написана причина вылета. Смотри значит что я сделал и результат: Скрытый текст В этом скрипте заменил строчку log(string.format("%s",nil)) на log(string.format("ERROR: " .. reason)) function abort(fmt, ...) local reason = string.format(fmt, ...) assert("ERROR: " .. reason) error_log("ERROR: " .. reason) log(string.format("%s",nil))end Далее после этих манипуляций игра даже загрузилась, смарт заработал нормально, НПС в нем пошли на свои прописанные им места, но позже последовал такой вылет: Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: ...k.e.r. - clear sky\gamedata\scripts\state_mgr.script:422: attempt to index field '?' (a nil value) Изменено 21 Июня 2019 пользователем W.A.S.P. оверквотинг Поделиться этим сообщением Ссылка на сообщение
Волосатые ноги Channel 0 Опубликовано 21 Июня 2019 (изменено) 10 часов назад, Kirgudu сказал: @Волосатые ноги Channel, ты изменил именно ту строчку, которая провоцирует принудительный вылет в случае критической ошибки. Естественно, игра пошла дальше, но ошибка никуда не делась, а стала всего лишь отложенной. Оставь последнюю строчку как в оригинале, а переменную reason выведи в лог дополнительно, вставив соотв. код до последней строки функции. Спасибо, но тут не совсем понял, напиши лучше сам видоизмененную функцию если не трудно. И кстати по крайней мере я понял что смарт работает как надо. Изменено 21 Июня 2019 пользователем Волосатые ноги Channel Поделиться этим сообщением Ссылка на сообщение
Волосатые ноги Channel 0 Опубликовано 21 Июня 2019 (изменено) Мда... игра удивляет не в первый раз, ну оно и понятно. Как всегда делаешь (косячиш) что-то одно, а логи ссылают в основном на несуществующие проблемы не коим образом не относящиеся к проблеме. Оказывается что игра вылетает из-за кривых путей для НПС, тобишь если непись идет по косячному почему-то по мнению игры пути walk то игра вылетает... просто нужно их переписать. Отследил так: просто убирал из сквадов по одному неписей и решение само пришло. Тогда вот еще вопросик: как сделать чтобы названия смартов отображались в КПК как в Повелителе Зоны? P.S в скриптах данного мода мною ничего схожего найдено небыло. Изменено 21 Июня 2019 пользователем Волосатые ноги Channel Поделиться этим сообщением Ссылка на сообщение
Волосатые ноги Channel 0 Опубликовано 7 Июля 2019 После спавна сквада мутантов на новый смарт, следует такой лог вылета gamedata\scripts\smart_terrain.script:628: attempt to index local 'job' (a nil value) Поделиться этим сообщением Ссылка на сообщение