Zander_driver 10 331 Опубликовано 12 Июля Поделиться Опубликовано 12 Июля 4 часа назад, naxac сказал: Но это неточно Но это точно и правильно 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. Ссылка на комментарий
Это популярное сообщение. Prophet13 1 060 Опубликовано 13 Июля Это популярное сообщение. Поделиться Опубликовано 13 Июля (изменено) 13 часов назад, Balavnik сказал: об объекте и координатах, на которые наведён прицел? Про координаты только щас увидел, потому дополню другим примером: Скрытый текст local rq = level.get_current_ray_query() local dist = rq.range -- Дистанция до места, на которое навели прицел. if dist then -- Тут нужна проверка, ибо при наведении на скайбокс получим nil. local pos = vector():mad(device().cam_pos, device().cam_dir, dist) -- Позиция, куда наведен прицел. local lv = level.nearest_vertex_id(pos) -- Возвращает ближайший level_vertex_id к этой позиции. local gv = cross_table():vertex(lv):game_vertex_id() -- Для переданного level_vertex_id возвращает соответствующий ему game_vertex_id. --------- end local obj = rq.object -- Объект, на который наведен прицел, если есть. Изменено 13 Июля пользователем Prophet13 3 4 OP OGSR Ссылка на комментарий
Zander_driver 10 331 Опубликовано 13 Июля Поделиться Опубликовано 13 Июля @Balavnik К слову, этот метод работает и с демо-рекордом. 1 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Купер 2 793 Опубликовано 13 Июля Поделиться Опубликовано 13 Июля @Balavnik , + в дополнение несколько готовых "типовых" вариантов реализации для наглядности. Не под прямую копипасту, конечно, на предмет "подсмотреть": старичок XRE - тут, непосредственно сам OGSR - тут, например. 2 Ссылка на комментарий
Labadal 66 Опубликовано 27 Июля Поделиться Опубликовано 27 Июля У меня такой вопрос. Все мы знаем, что для различных уровней сложности прописаны свои значения в actor.ltx. Вопрос такой, можно ли как-то получить скриптово эти значения? Например: я хочу сделать некую систему достижений, и допустим там будет достижение "читер", которое выдастся, если эти параметры были изменены игроком. (то есть на сложности новичок у меня параметр burn_immunity = 0.3 [actor_immunities_gd_novice] burn_immunity = 0.3 но если игрок, играя на сложности новичок залет в файл и поставит значение, отличное от 0.3, то я хочу это отследить.) Вопрос в том - как и возможно ли вообще. Спасибо! God save Hatsune Miku! Ссылка на комментарий
Zander_driver 10 331 Опубликовано 27 Июля Поделиться Опубликовано 27 Июля 2 минуты назад, Labadal сказал: Вопрос в том - как и возможно ли вообще. system_ltx позволяет читать любые параметры из конфигов подключенных к system.ltx. Actor тоже. 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. Ссылка на комментарий
Labadal 66 Опубликовано 27 Июля Поделиться Опубликовано 27 Июля @Zander_driver А есть какая-то документация по этому поводу? Понять бы как работает И еще такой вопрос, я, к примеру создал некую переменную. С самого начала игры она равна 0, но в какой-то момент станет равна 1. Можно ли сделать так, чтобы это значение "1", сохранялось в переменной, даже если я начну новую игру? God save Hatsune Miku! Ссылка на комментарий
CiberZold 142 Опубликовано 28 Июля Поделиться Опубликовано 28 Июля @Labadal в _g.script например делаешь такую функцию sys_ini = system_ini() function get_string( section, param, def_val, ini_file ) local ini = ini_file or sys_ini if ini:line_exist( section, param ) then return ini:r_string( section, param ) else return def_val end end потом в нужном тебе скрипте в любой функции вызываешь get_string( "секция", "значение", "дефолт значение" ) --- это будет строчка из системного конфиг файла, для игры он делится на секции, а не на файлы, на файлы разделяют люди для удобства, потому тебе надо найти секцию с иммунитетами актора это [actor_immunities_gd_novice] если тебе новичок нужен и в ней значение burn_immunity то есть чтоб играла прочитала это значение надо задать get_string( "actor_immunities_gd_noviceve", "burn_immunity", "0,3" ) 1 Ссылка на комментарий
naxac 2 438 Опубликовано 29 Июля Поделиться Опубликовано 29 Июля (изменено) 28.07.2024 в 04:06, Labadal сказал: чтобы это значение "1", сохранялось в переменной, даже если я начну новую игру? Можно записывать переменные в файл (пример). Только для этого нужно в скриптах иметь рабочее пространство имён io. Если же io нет, то можно использовать разные "костыли" - например, создать специальный файл, в названии которого сохранять нужные данные (пример). Изменено 29 Июля пользователем naxac добавил примеры 1 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Labadal 66 Опубликовано 29 Июля Поделиться Опубликовано 29 Июля (изменено) с чем связан этот вылет? Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...:\sdk\level_editor\gamedata\scripts\xr_walker.script:49: attempt to index field 'move_mgr' (a nil value) помню, что в СДК игрался. Если в xr_walker на 48 строке вписать: get_console():execute(self.object:name()) получаю в лог: Unknown command: esc_lager1 Что за esc_lager1? upd: esc_lager1 это имя секции нпс. Но как он связан со всем этим? тем более всё работало до того. Если удалить этого нпс, то в консоль кидает: Unknown command: start_game_callback_called Изменено 29 Июля пользователем Labadal God save Hatsune Miku! Ссылка на комментарий
naxac 2 438 Опубликовано 30 Июля Поделиться Опубликовано 30 Июля 6 часов назад, Labadal сказал: помню, что в СДК игрался Доигрался - виснет логика у нпс. Попробуй откатить изменения. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Labadal 66 Опубликовано 30 Июля Поделиться Опубликовано 30 Июля @naxac Да в том то и дело, что ничего такого критического не делал. откатывал, тоже ничего. Буду копать дальше, благодарю upd: взял чистые локации, загрузил кордон в сдк, удалил там всех нпс, в итоге получаю: start_game_callback_called. Можно как-то определить, в чём именно проблема. Из-за чего логика виснет, и тд? God save Hatsune Miku! Ссылка на комментарий
CiberZold 142 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @Labadal ну так посмотри в _g.script какие функции вызываются этой функцией start_game_callback(), и уже их в свою очередь просмотри, что гадать то. по умолчанию там точно должны быть task_manager.clear_task_manager() и dialog_manager.fill_phrase_table() вот тут и могут крыться проблемы с нпс. Ссылка на комментарий
Labadal 66 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold ну, я их даже закомментил, всё так же God save Hatsune Miku! Ссылка на комментарий
CiberZold 142 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля 1 час назад, Labadal сказал: я их даже закомментил а ты чем редактишь скрипты? Блокнотом? он имеет свойства ломать кодировку скриптов, нужен нормальный редактор в котором скрипты сохранять в ANSI кодировке или Win 1251 если ты пишешь скрипты с кириллицей, например комменты. Ссылка на комментарий
Labadal 66 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold ой, я не такой извращенец, чтоб в блокноте кодить)) Саблайм 3)) Ну или нотпад на крайний случай) @naxac@CiberZold Смотрите, какая забавная вещь получается. Взял сейчас чистый ТЧ. Запустил - играбельно. Распаковал кордон, залез, внес кое-какие правки, для теста. сделал build (без ошибок), сделал xrAi с ключами -f -g -m -s, тоже без ошибок. Запускаю игру - опять получаю безлоговый вылет, сам лог файл так же заканчивается этим: Сервер: Старт... ! Unknown command: start_game_callback_called Так что дело вряд-ли в повиснутой логике (ну либо сдк её ломает). С чем может быть связано? God save Hatsune Miku! Ссылка на комментарий
CiberZold 142 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @Labadal у тебя пишет ! Unknown command ,такое обычно выдаёт если вносились правки в движок, либо в скриптах ошибка. Ссылка на комментарий
Labadal 66 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold Unknown command - обычно пишет, когда ты записи в лог отправляешь. В данном случае "start_game_callback_called" отправляется функцией: function start_game_callback() printf ("start_game_callback called") ←←← вот эта вот строка task_manager.clear_task_manager() treasure_manager.clear_treasure_manager() xr_sound.clear_all_sound_object() dialog_manager.fill_phrase_table() end @Купер для ясности - распаковал ОРИГИНАЛЬНУЮ локацию, добавил на карту ОДИН ЭКЗОСКЕЛЕТ, сбилдил заново и собрал с помощью xrAI. После чего ловлю безлоговый вылет. Не думаю, что это правка как-то сильно повлияла на происходящее. God save Hatsune Miku! Ссылка на комментарий
CiberZold 142 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля 1 час назад, Labadal сказал: собрал с помощью xrAI значит коряво собрал локацию, логику смотри - по твоим словам - единственная манипуляция распаковал Кордон (кордон рабочий ), собрал обратно - вылет (значит коряво собрал, или ошибка в тексте сборщика или сам сборщик косячный). Ссылка на комментарий
Labadal 66 Опубликовано 31 Июля Поделиться Опубликовано 31 Июля @CiberZold В том-то и дело, что со сборщиком всё нормально. Раньше ведь всё было норм. God save Hatsune Miku! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти