Overf1rst 1 500 Опубликовано 1 июля, 2020 Тема посвящена моддингу на платформе Тень Чернобыля. Правила темы: Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском, ответ на него, вероятно, уже есть. Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода. Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа). Благодарность выражаем в личке или же ставим реакцию. Посты с благодарностями в теме будут удаляться. 6 4 1 3 1 3 6 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar 42 минуты назад, vader_33 сказал: local outfit = db.actor:item_in_slot(6) if outfit then local cond = outfit:condition() ..... end это не подходит? 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 3 минуты назад, vader_33 сказал: это не подходит? Сейчас проверяю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar щас полистал lua_help, для получение брони есть отдельная функция, без прописывания слотов. А то их вечно меняют local outfit = db.actor:get_current_outfit() 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 vader_33 Ошибку выдает Дополнено 0 минут спустя local outfit = db.actor:item_in_slot(6) if outfit then local cond = outfit:condition() ..... end Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar какую ошибку? В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 Expression : fatal error Function : CScriptEngine::lua_error File : С:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...\games\stalker shoc\gamedata\scripts\posihion.script:39: bad argument #2 to 'format' (number expected, got userdata) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar а что в 39 строчке? В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 (изменено) Строку вывожу string.format("Armor %f\\n", outfit).. Дополнено 1 минуту спустя Использовал это local outfit = db.actor:get_current_outfit() и это local outfit = db.actor:item_in_slot(6) if outfit then local cond = outfit:condition() ..... end Изменено 11 мая, 2021 пользователем Askar Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar нужно переменную cond использовать, это значение состояния брони, а outfit - это объект, а не текстовая информация 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 (изменено) 12 минут назад, vader_33 сказал: нужно переменную cond использовать, это значение состояния брони Это если использовать? Спойлер local outfit = db.actor:item_in_slot(6) if outfit then local cond = outfit:condition() ..... end Дополнено 1 минуту спустя А если использовать local outfit = db.actor:get_current_outfit() И выводить это так string.format("Armor %f\\n", outfit).. То все равно ошибку выдает Изменено 11 мая, 2021 пользователем Askar Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 (изменено) Askar да, только без многоточия string.format("Armor %f\\n", cond) Если будет ошибка - весь скрипт выложите, кусками сложно выявлять ошибки Изменено 11 мая, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 Только что, vader_33 сказал: только без многоточия А для чего нужно многоточие? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Только что, Askar сказал: А для чего нужно многоточие? это просто обозначил, что вместо многоточия пишете свои действия Дополнено 1 минуту спустя 4 минуты назад, Askar сказал: И выводить это так string.format("Armor %f\\n", outfit).. То все равно ошибку выдает не outfit надо выводить, это не текстовая информация, а целый объект. Для string.format нужна именно текстовая информация 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 Последний пост Дополнено 0 минут спустя Я оттуда брал скрипт Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Askar выложите весь скрипт, так гадать насчет ошибки можно долго. Если не хотите в общий доступ выкладывать - в личку скиньте В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end -- local out = db.actor:item_in_slot(6) -- Это работает -- if out then -- local condit = out:condition() local outfit = db.actor:get_current_outfit() -- Это не работает local pos, dir = db.actor:position(), db.actor:direction() -- Присваиваем положение актера и направление взгляда local msg = string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Координаты ГГ string.format("health: %.2f\\n", db.actor.health).. -- Жизнь string.format("Armor %.2f\\n", outfit) if cs ~= nil then cs:wnd():SetText(msg) end --end end Дополнено 4 минуты спустя Если закоментировать эту строку, string.format("Armor %.2f\\n", outfit), скрипт запускается Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 (изменено) Askar Спойлер смотрите, в Lua в пределах условия "if что-то then" локальные переменные не выносится. Поэтому, если надо определить какую-то переменную, нужно ее выносить вообще в начало функции. Так попробуйте function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local outfit = db.actor:get_current_outfit() local cond = 0 if outfit then local cond = outfit:condition() news_manager.send_tip(db.actor, cond, 0, "default", 8000) end local pos, dir = db.actor:position(), db.actor:direction() -- Присваиваем положение актера и направление взгляда local msg = string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Координаты ГГ string.format("health: %.2f\\n", db.actor.health).. -- Жизнь string.format("Armor %.2f\\n", cond) if cs ~= nil then cs:wnd():SetText(msg) end --end end Изменено 11 мая, 2021 пользователем vader_33 1 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 vader_33 Ошибка при вызове функции. Ладно, спасибо большое за помощь. И все равно не понятно почему не работает local outfit = db.actor:get_current_outfit() Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 (изменено) Askar значит вообще всё выкладывайте, у себя в игре попробую. Отдельно определение состояния нормально работает Дополнено 1 минуту спустя Askar а щас какая ошибка и в какой строчке? Изменено 11 мая, 2021 пользователем vader_33 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 1 минуту назад, vader_33 сказал: всё выкладывайте Хорошо, завтра выложу, спасибо) А тут есть какое то ограничение по кол-ву отметок? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 Только что, Askar сказал: А тут есть какое то ограничение по кол-ву отметок? не знаю, выводил только около 5 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 11 мая, 2021 (изменено) ui_custom_msgs.xml Спойлер <cs_debug x="450" y="80" width="600" height="100" complex_mode="1"> <text font="graffiti22" r="240" g="217" b="182" a="255" align="l"/> </cs_debug> bind_stalker.script строку object_binder.update(self, delta) дописываем: Спойлер function actor_binder:update(delta) object_binder.update(self, delta) posihion.posihion_mod() В папке gamedata/scripts файл posihion.script, это был предпоследний вариант function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local outfit = db.actor:get_current_outfit() -- Это не работает local pos, dir = db.actor:position(), db.actor:direction() -- Присваиваем положение актера и направление взгляда local msg = string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Координаты ГГ string.format("health: %.2f\\n", db.actor.health).. -- Жизнь string.format("Armor %.2f\\n", outfit) if cs ~= nil then cs:wnd():SetText(msg) end end Это последнее, что изменил function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local outfit = db.actor:get_current_outfit() local cond = 0 if outfit then local cond = outfit:condition() news_manager.send_tip(db.actor, cond, 0, "default", 8000) end local pos, dir = db.actor:position(), db.actor:direction() -- Присваиваем положение актера и направление взгляда local msg = string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Координаты ГГ string.format("health: %.2f\\n", db.actor.health).. -- Жизнь string.format("Armor %.2f\\n", cond) if cs ~= nil then cs:wnd():SetText(msg) end end Дополнено 0 минут спустя 6 минут назад, vader_33 сказал: только около 5 Понятно Изменено 11 мая, 2021 пользователем Askar Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
vader_33 1 142 Опубликовано 11 мая, 2021 (изменено) Askar ой, туплю. Если выносить переменную "local что-то" за "if .. then " потом эту переменную надо писать без local local cond = 0 if outfit then cond = outfit:condition() news_manager.send_tip(db.actor, cond, 0, "default", 8000) end Дополнено 2 минуты спустя Askar у меня теперь работает Спойлер function posihion_mod() local hud = get_hud() local cs = hud:GetCustomStatic("cs_debug" ) if cs == nil then hud:AddCustomStatic("cs_debug", true) cs = hud:GetCustomStatic("cs_debug" ) end local outfit = db.actor:get_current_outfit() local cond = 0 if outfit then cond = outfit:condition() news_manager.send_tip(db.actor, cond, 0, "default", 8000) end local pos, dir = db.actor:position(), db.actor:direction() -- Присваиваем положение актера и направление взгляда local msg = string.format("pos: %.2f,%.2f,%.2f\\n", pos.x, pos.y, pos.z) .. -- Координаты ГГ string.format("health: %.2f\\n", db.actor.health).. -- Жизнь string.format("Armor %.2f\\n", cond) if cs ~= nil then cs:wnd():SetText(msg) end end Изменено 11 мая, 2021 пользователем vader_33 2 В беге за рассветом приближаешь свой закат Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lone_Loner 81 Опубликовано 12 мая, 2021 21 час назад, vader_33 сказал: описатели текстур надо еще вписывать в файл system.ltx [texture_desc] vader_33 , Спасибо, сработало "Вы даже не представляете, сколько модов бы я мог разработать, если умел". Помогите с заготовкой для мода, пожалуйста. #free_SamArt Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Askar 0 Опубликовано 12 мая, 2021 vader_33 За что отвечает эта строка? В 12.05.2021 в 02:43, vader_33 сказал: news_manager.send_tip(db.actor, cond, 0, "default", 8000) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты