AndreySol 215 Опубликовано 11 Августа 2020 Поделиться Опубликовано 11 Августа 2020 06.08.2020 в 12:03, Stalkersof сказал: Если я буду использовать модульную систему подключения скриптов к биндеру. Это даст какой нибудь значительный результат в производительности и уменьшении времени загрузки игры. Я думаю, что не даст - какая разница чем ты будешь нагружать биндер, результат будет одинаков. 1 Ссылка на комментарий
Stalkersof 183 Опубликовано 11 Августа 2020 Поделиться Опубликовано 11 Августа 2020 Да перешел на ОГСЕ сигнал. Ну так по ощущениям вроде пошустрее игра, по загрузке вроде тоже полегче. Ну еще ОГСР движок на новый билд перевел. Пошустрее вроде бы пошустрее. Freeplay Graphic Mod(FGM) Ссылка на комментарий
DibokDibokin 1 Опубликовано 13 Августа 2020 Поделиться Опубликовано 13 Августа 2020 Здравстуйте. Пытаюсь привязать объектам, чьи визуалы box_wood_01, box_paper и box_metall_01 хоть какие-нибудь метки на ПДА и миникарте. Вот последний код, который я пытался использовать: local is_box = { ["dynamics\\box\\box_wood_01"] = true, ["dynamics\\box\\box_metall_01"] = true, ["dynamics\\box\\box_paper"] = true, } function show_boxes() local sim = alife() for i=1,65534 do local obj = id and db.storage[id] and db.storage[id].object if (obj and is_box[obj:get_visual_name()]) then level.map_add_object_spot_ser(obj.id, "название_метки") end end end До этого были ещё и другие. Сейчас и не вспомню. Второй день сижу, пытаюсь. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 13 Августа 2020 Поделиться Опубликовано 13 Августа 2020 (изменено) Только что, DibokDibokin сказал: local obj = id and db.storage[id] and db.storage[id].object И чему тут будет равен obj ? Сдается мне, тип будет boolean, а значение false, потому что в этой цепочке and-условий первым идет неопределенное id, если верить коду, равное nil. Поэтому следующая проверка if (obj and... - по факту проверяет if (false and... - и далее уже ничего не выполняется. И до попытки найти поле id у объекта "false", код не добирается. А то вылетел бы. Только что, DibokDibokin сказал: Второй день сижу, пытаюсь. Когда код творит что-то не то, что от него ожидается, полезно его снабдить выводами в лог интересующей информации. Пусть пишет, как у него дела, у кода этого. Тогда и дебаг быстрее делается. Изменено 13 Августа 2020 пользователем Zander_driver 1 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
DibokDibokin 1 Опубликовано 13 Августа 2020 Поделиться Опубликовано 13 Августа 2020 14.08.2020 в 00:52, Zander_driver сказал: И чему тут будет равен obj ? Вот ещё вариант: local is_box = { ["dynamics\\box\\box_wood_01"] = true, ["dynamics\\box\\box_metall_01"] = true, ["dynamics\\box\\box_paper"] = true, } function show_boxes() local sim = alife() for i=1,65534 do local se_obj = sim:object(i) if (se_obj and is_box[se_obj:get_visual_name()]) then level.map_add_object_spot_ser(se_obj.id, "название_метки") end end end Лог вылета: FATAL ERROR [error]Expression : <no expression> [error]Function : CScriptEngine::lua_error [error]File : ..\xrServerEntities\script_engine.cpp [error]Line : 189 [error]Description : fatal error [error]Arguments : LUA error: d:\stalker\gamedata\scripts\xr_show_box.script:11: attempt to call method 'get_visual_name' (a nil value) stack trace: 0023:00773DCC xrCore.dll, xrDebug::fatal() 0023:054CEC1F xrGame.dll, CDialogHolder::UseIndicators() 0023:00453F6E xrEngine.exe, CInput::OnFrame() 0023:0040F2DA xrEngine.exe, CRenderDevice::message_loop() Добавлено HellRatz, 16 Августа 2020 Запрещен оверквотинг (цитирование сообщения большого объема, спойлеров, изображений). П 2.6 правил форума. Для цитирования достаточно выделить нужную часть сообщения, обратиться по нику. Ознакомьтесь: http://www.amk-team.ru/forum/topic/13514-obyavleniya/ Заметка изменена 16 Августа 2020 Ссылка на комментарий
Zander_driver 10 334 Опубликовано 13 Августа 2020 Поделиться Опубликовано 13 Августа 2020 Только что, DibokDibokin сказал: get_visual_name Такой метод есть у клиентских объектов, но у серверных его нет. О чем лог собственно, и сообщает. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
WinCap 316 Опубликовано 13 Августа 2020 Поделиться Опубликовано 13 Августа 2020 @DibokDibokin, попробуй так: local s_obj = alife():object(i) if s_obj ~= nil then local c_obj = level.object_by_id(s_obj.id) if (c_obj and is_box[c_obj:get_visual_name()]) then 1 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
mdm64 579 Опубликовано 15 Августа 2020 Поделиться Опубликовано 15 Августа 2020 Доброго времени! Думается, мой вопрос имеет прямое отношение к скриптам - как реализовать (и есть ли мануал?) замедление или полную остановку игрового времени во время диалогов с неписями, во время чтения различных найденных документов ? Ссылка на комментарий
Zander_driver 10 334 Опубликовано 15 Августа 2020 Поделиться Опубликовано 15 Августа 2020 @mdm64, level.set_time_factor, если правильно помню. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
ted.80 278 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 15.08.2020 в 15:36, mdm64 сказал: как реализовать (и есть ли мануал?) замедление или полную остановку игрового времени во время диалогов с неписями Я так понимаю - хотите фичу а-ля Фоллаут? при диалогах и открытии инвентаря - все и всё вокруг замирают и ожидают действия игрока? 15.08.2020 в 15:58, Zander_driver сказал: level.set_time_factor, Это остановит только течение времени - смену дня и ночи и погодных циклов, а вот НПС и зверушки как бегали и стреляли/кусались так и будут 2 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
UriZzz 1 004 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 В shadows addon 0.8 реализовано замедление времени по горячей клавише, может есть смысл по ковырять аддон? 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
mdm64 579 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 @Zander_driver, Да, он, вернее, требуется управление им. @ted.80, Да, именно так. Просто в моём моде, который ещё верстается, есть довольно много больших диалогов и другой текстовой информации, во время которых (если игрок умеет читать) может произойти всё, что угодно - от выброса до нападения мутантов или враждебных сталкеров. Да и само время игры тратится по сути впустую, частенько будет получаться так - утром проснулся, похавал, поговорил с неписем или прочитал найденную инфу, и уже пора ужинать и баиньки... Конечно, несколько преувеличенно сказал, но суть именно такова. Вот этого мне и нужно избежать. @UriZzz, Честно говоря, пропустил эту фичу, аддон вроде как знакомый на слух. Ну, на крайняк придётся ковырнуть его, просто на это тоже требуется время, а чтобы разобраться в чужих скриптах, иногда немалое. Потому и задал вопрос, вдруг есть у кого нужное, уже выдернутое или просто есть. Ссылка на комментарий
aromatizer 4 460 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 2 часа назад, mdm64 сказал: есть довольно много больших диалогов и другой текстовой информации Предлагаю пару простых вариантов: 1. В gamedata/config/alife.ltx: time_factor = 3 или меньше. Это уменьшит скорость течения времени в игре. 2. Ставить игру на паузу при чтении текстов. Соответственно, надпись "пауза" переместить так, чтобы не мешала. 1 Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
mdm64 579 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 @aromatizer, Не лучший вариант. У меня обычно стоит time_factor = 10, и то потери игрового времени напрягают, а многие для себя ставят от 3 до 6. А ставить на паузу тоже не вариант - каждый раз перемещать надпись "Пауза", а кроме того, насколько я помню, в режиме паузы в ЗП прокрутка не работает, опять же, иногда по несколько раз за прочтение одного документа снимать паузу, прокручивать и снова ставить паузу... сгодится, разве что, в качестве старого деревянного костыля.... 1 Ссылка на комментарий
mole venomous 3 433 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 12 минут назад, mdm64 сказал: каждый раз перемещать надпись "Пауза" Зачем каждый раз? 2 Здесь могла быть ваша реклама. Ссылка на комментарий
aromatizer 4 460 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 (изменено) 2 часа назад, mdm64 сказал: У меня обычно стоит time_factor = 10, и то потери игрового времени напрягают Не понял: переведи. А так-то time_factor = 10 предназначен для того, чтобы игрок быстрее бежал вперед, а не вдумчиво читал простыни текстов.) Думается мне, что оптимальное значение time_factor = 3. Изменено 16 Августа 2020 пользователем aromatizer Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
mdm64 579 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 (изменено) @aromatizer, Да, для чтения 3-ка удобнее, слов нет. Но понимаешь, как-то контрреволюционно выглядит ситуация, когда ГГ за 3-10 минут выносит хорошо вооружённую многочисленную базу, тратя на переход из одного здания в другое несколько секунд. Не? Я не сторонник иссуплённого реализьма, но всё-таки какие-то более или менее реальные соответствия, хотя бы в плане затрачиваемого времени должны быть. Другой вопрос, что привязывать к реальному времени чтение документов и диалогов попросту не вижу смысла. Изменено 16 Августа 2020 пользователем mdm64 1 Ссылка на комментарий
ted.80 278 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 6 часов назад, mdm64 сказал: время игры тратится по сути впустую, частенько будет получаться так - утром проснулся, похавал, поговорил с неписем или прочитал найденную инфу, и уже пора ужинать и баиньки В игре есть парные info_portion: ui_inventory/ui_inventory_hide, ui_talk/ui_talk_hide, которые отлавливаются при - открытии/закрытии - инвентаря и диалога соответственно, написать Function() [и поставить её на апдейт] которая будет менять time_factor от 1 до 10, в нужное время - это убережёт от выбросов, голода, жажды, и смерти от старости - во время чтения длинных диалогов, но от зверушек и злобных нпс не спасёт. 2 2 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
mdm64 579 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 @ted.80, Так, а вот это уже очень интересно! я с парными поршнями дела не имел, поэтому просьба, если не сильно трудно, можно написать какой-то образец, инструкцию или шаблон толковый? Я хотя бы смогу освоить эти парные поршни, судя по описанию, они мне много где будут нужны. Ссылка на комментарий
ted.80 278 Опубликовано 16 Августа 2020 Поделиться Опубликовано 16 Августа 2020 @mdm64, попробуй этот код сунуть в файл bind_stalker.script в function actor_binder:update(delta) в самый конец функции перед заключительным end if db.actor:has_info("ui_inventory") or db.actor:has_info("ui_talk") then level.set_time_factor(1) elseif db.actor:has_info("ui_inventory_hide") or db.actor:has_info("ui_talk_hide") then level.set_time_factor(10) end 1 1 3 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти