_Sk8_AsTeR_ 117 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 (изменено) @dsh, великолепно, всё работает! И позволь под конец еще понаглеть У тебя нет распаковщика\упаковщика подобного для all.spawn соли16 огср? Уж очень хочется поэкспериментировать с переносом той точки... Изменено 18 Августа 2020 пользователем _Sk8_AsTeR_ Ссылка на комментарий
dsh 3 824 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 1 hour ago, _Sk8_AsTeR_ said: У тебя нет распаковщика\упаковщика подобного для all.spawn соли16 огср? Нету. Но я сомневаюсь, что там нужно что-то специальное. 1 hour ago, _Sk8_AsTeR_ said: Уж очень хочется поэкспериментировать с переносом той точки... Какой точки? AI переходы находятся в game.graph, не в all.spawn. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 (изменено) @dsh, Не, подвинуть хочу не точку АИ перехода (ибо вроде как в этом нет смысла), а координаты того смарта, в который неписи сбегаются свободные в оффлайне разных группировок, "bar_visitors" которая вчерашняя. Или я опять всё напутал? Вот в этом посте я вроде описал ситуацию. А game.graph я хотел поковырять еще для других целей, и для саморазвития Изменено 18 Августа 2020 пользователем _Sk8_AsTeR_ Ссылка на комментарий
dsh 3 824 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 @_Sk8_AsTeR_, тебе на самом деле нужно убрать вот эту ситуацию 1 hour ago, _Sk8_AsTeR_ said: сбегаются свободные в оффлайне разных группировок В bar_visitors нужно принимать только дружественные группировки. Просто перечисли их в скрипте. Вот и все. Исправлять нужно причину, а не следствие. Немного теории. Позиция самого смарта никакой роли не играет. Неписи идут туда, куда им указывают пути назначенных им работ. Параметры этих путей в движке OGSR можно поменять черен конфиг. all.spawn для этого трогать не обязательно. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
Muzafir 19 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 Подскажите, как можно выдать ГГ квест без диалога с кем-либо? Во всех уроках квесты активируются в диалоге. Мне нужно чтобы ГГ получал задание после перехода на локацию. Окружить точку перехода спейс-рестрикоторами или может какой-то способ потолковей есть? Ссылка на комментарий
Zander_driver 10 334 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 Только что, Muzafir сказал: Мне нужно чтобы ГГ получал задание после перехода на локацию. В момент нет-спавна ГГ проверяй, на какой локации он загрузился. Если совпало с нужной локой - выдавай задание. Никаких рестрикторов для этого не надо. 4 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
UriZzz 1 004 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 (изменено) @Muzafir, как то так... Цитата function blablabla() local lname = level.name() if (lname == "название локации") then Функция получения квеста() end end Это дело вешается на кэллбэк net_spawn. Но нужны какие-то дополнительные условия, иначе квест будет даваться каждый раз когда будите заходить на локацию. Изменено 18 Августа 2020 пользователем UriZzz 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 @dsh, 2 часа назад, dsh сказал: нужно принимать только дружественные группировки Да я тут подумал что в таком случае пропадёт эта прикольная фишка, когда и территория бара не является абсолютно безопасным местом. Не зря же охрана стоит на блок-постах? Да и Долг начинает в мегафон так весело орать, что на территории бара враждебные элементы, прям здорово вышло! 2 часа назад, dsh сказал: Неписи идут туда, куда им указывают пути назначенных им работ Иными словами условные те же наёмники уже в оффлайне не просто приходят в определенную точку по координатам, а именно в оффлайне занимают место у костра(посиделки у костра ведь тоже работа?), а когда выходят в онлайн - появляются сразу у костра вместе с другими группировками и начинается пальба, да? Просто я думал, что они в онлайн выходят именно в определенной точке,(координаты которой указаны в соответствующей секции), и лишь только после выхода в онлайн начинают разбегаться по работам. И вот эту точку выхода в онлайн по моим скромным затеям я хотел попробовать вынести в другое место. Я ошибался, верно? 2 часа назад, dsh сказал: Параметры этих путей в движке OGSR можно поменять черен конфиг А подскажи пожалуйста, в какие конфиги глядеть? Ссылка на комментарий
Muzafir 19 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 1 час назад, UriZzz сказал: then Функция получения квеста() Ты имеешь ввиду, здесь нужно выдать игроку инфопорцию, которая стартует квест? Ссылка на комментарий
UriZzz 1 004 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 @Muzafir, ну да, функция, инфопоршинь, etc... 1 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Muzafir 19 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 Ок, спасибо. В скриптах я новичок, но с этим понятно. Сейчас буду разбираться, как повесить коллбэк на net_spawn Ссылка на комментарий
Zander_driver 10 334 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 (изменено) Только что, Muzafir сказал: как повесить коллбэк на net_spawn Он по умолчанию и так уже повешен в оригинале. Просто добавь туда свой код и все. Изменено 18 Августа 2020 пользователем Zander_driver 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. Ссылка на комментарий
dsh 3 824 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 (изменено) 2 hours ago, _Sk8_AsTeR_ said: Просто я думал, что они в онлайн выходят именно в определенной точке,(координаты которой указаны в соответствующей секции), и лишь только после выхода в онлайн начинают разбегаться по работам. Это зависит от того, как написана логика для их работ. Как напишешь, так и будет. 2 hours ago, _Sk8_AsTeR_ said: А подскажи пожалуйста, в какие конфиги глядеть? [engine_custom_spawn] waypoints_file = waypoints.ltx в system.ltx. В waypoints.ltx пути в том же формате, как в распакованом all.spawn. Изменено 18 Августа 2020 пользователем dsh 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
DibokDibokin 1 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 14.08.2020 в 03:51, WinCap сказал: @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 Не помогло. При активации функции не появляются метки на мини-карте, а ПДА не открывается. Лечится только перезагрузкой сейва. Ссылка на комментарий
WinCap 316 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 @DibokDibokin, проверь вызов функции на установку метки: level.map_add_object_spot_ser(c_obj.id, "тип_метки_из_map_spots.xml", "надпись_на_метке") S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Muzafir 19 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 Всю голову сломал этими скриптами. Если я правильно понял, чтобы выдать ГГ задание сразу после перехода на локацию, то в файле bind_stalker.script нужно найти функцию function actor_binder:net_spawn(data) и в нее вставить такой кусок кода: if (level.name() == "simeiz") and -- название локации not has_alife_info("keep_base_defend") then -- и данная инфопорция (старт квеста) не выдавалась self.object:give_info_portion("keep_base_defend ") – выдать ее end 4 Ссылка на комментарий
DibokDibokin 1 Опубликовано 18 Августа 2020 Поделиться Опубликовано 18 Августа 2020 @WinCap, тоже не сработало. function show_boxes() 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 level.map_add_object_spot_ser(c_obj.id, "warfare_stalker_spot", "box") end end end Ссылка на комментарий
h0N0r 341 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 @DibokDibokin, есть другой вариант, не по модели, а по секции [drop_box], Скрытый текст -- тестовые функции по клавише из главного меню function main_menu:OnKeyboard(dik, keyboard_action) --virtual function ... -- поставить отметку на объект с логикой drop_box (лут из коробки) if dik == DIK_keys.DIK_F1 then if (level.present() and db.actor ~= nil and db.actor:alive()) then local level_actor = game_graph():vertex(alife():actor().m_game_vertex_id):level_id() for a=1,65535,1 do local obj = alife():object(a) if obj and obj ~= nil then local level_obj = game_graph():vertex(obj.m_game_vertex_id):level_id() if level_obj == level_actor then -- отметки только на текущей карте local obj_name = obj:name() if (obj.parent_id and obj.parent_id == 65535) then local ini = obj:spawn_ini() if (obj:spawn_ini() ~= nil and obj:spawn_ini():section_exist("drop_box") == true) then level.map_add_object_spot(obj.id, "obj_location", tostring(obj_name)) -- obj_location, ид метки из map_spots.xml --[[ <obj_location> <level_map spot="obj_location_spot"/> <mini_map spot="obj_location_spot"/> </obj_location> <obj_location_spot x="0" y="0" width="4" height="4" alignment="c" stretch="1"> <texture r="0" g="255" b="255">ui_minimap_point</texture> </obj_location_spot> ]]-- end end end end end end end -- удалить отметку if dik == DIK_keys.DIK_F2 then if (level.present() and db.actor ~= nil and db.actor:alive()) then for a=1,65535,1 do local obj = alife():object(a) if obj and obj ~= nil then if (obj.parent_id and obj.parent_id == 65535) then if (obj:spawn_ini() ~= nil and obj:spawn_ini():section_exist("drop_box") == true and level.map_has_object_spot(obj.id, "obj_location")) then level.map_remove_object_spot(obj.id, "obj_location", "") end end end end end end 1 https://sites.google.com/view/xray-sdk-0-4-smg Ссылка на комментарий
Zander_driver 10 334 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 35 минут назад, DibokDibokin сказал: тоже не сработало. А вы свой же код хотя бы читаете? Пробежаться глазами по строчкам и прикинуть, что там происходит, не? В вашей функции, первая же строчка: 36 минут назад, DibokDibokin сказал: local s_obj = alife():object(i) Чему здесь равно i ? Не определено. Что вам вернет в s_obj - ничего. Я так понимаю, этот совет 14.08.2020 в 00:52, Zander_driver сказал: Когда код творит что-то не то, что от него ожидается, полезно его снабдить выводами в лог интересующей информации. Пусть пишет, как у него дела, у кода этого. Тогда и дебаг быстрее делается Решили игнорировать. Ваше право. Но тогда никакие "варианты" в скриптах не сработают, если только случайно. Любой код отладки требует, это нормально. Но отладки не будет без лога. И не будет понимания, что могло пойти не так, если не смотрели что код вообще делает, откуда в нем те или иные значения берутся. 1 3 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. Ссылка на комментарий
mdm64 579 Опубликовано 19 Августа 2020 Поделиться Опубликовано 19 Августа 2020 (изменено) Доброго времени! Задаю вопрос здесь, потому как тема по вылетам закрыта, а ошибка, судя по всему, связана со скриптами - через небольшое время после начала игры такой вылет: Скрытый текст FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : ..\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : .... world over world\gamedata\scripts\state_mgr.script:247: C stack overflow Понимаю, что ошибка где-то в анимках НПС, возможно даже, в скриптах логики неписей.Но все анимации вроде как стандартные, без изысков. И не пойму, ошибка в анимациях "обычных" неписей или квестовых, эксклюзивных, так сказать... И вдогонку - в gamedata\scripts есть набор файлов, отвечающих за анимациии НПС, может ли кто-то скинуть полный перечень файлов в этой (а если есть и в других) папках, отвечающих за эти анимации (файлы типа - smart_covers_animpoint_sit_low, smart_covers_loophole_animpoint_sit_low, state_mgr_animation и подобные им, это просто для примера). Потому как набор таких файлов в оригинале ЗП сильно отличается от аналогичного набора в исходниках СДК 0.7, в СДК он больше. Изменено 19 Августа 2020 пользователем mdm64 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти