Shennondoah 130 Опубликовано 23 Июня 2020 Поделиться Опубликовано 23 Июня 2020 (изменено) Ребята, а вот как бы сделать такую штуку, есть несколько уникальных тайников, при подходе к ним начинает пищать прибор, полученный нами при определенном задании, открывались бы тайники только с этим прибором, вот в чем фокус, не могу допетрить, как пищалку сделать, чтобы работала в режиме "горячо-холодно" т.е. чем ближе ГГ к тайнику, тем чаще писк? Навеяно Dying Light'ом и приборами Толги и Фатина, даже модельку дернул. Сделать к тайнику безопасную и невидимую аномалию думал, чтоб детектор определял только её, но мне надо, чтоб пикало из рюкзака, а не в руках. Платформа ЗП если что. Изменено 23 Июня 2020 пользователем Shennondoah Оц тоц перевертоц, бабушка здорова, Оц тоц перевертоц кушает компот. Оц тоц перевертоц и мечтает снова Оц тоц перевертоц пережить налет! Ссылка на комментарий
Zander_driver 10 333 Опубликовано 23 Июня 2020 Поделиться Опубликовано 23 Июня 2020 14 минут назад, Shennondoah сказал: как пищалку сделать, чтобы работала в режиме "горячо-холодно" т.е. чем ближе ГГ к тайнику, тем чаще писк? Заполучить любым удобным образом ссылку на объект-тайник, взять его позицию, взять позицию актора, померить расстояние. От этого расстояния вычислить интервал писка, и воспроизводить звук писка с этим интервалом. Запускать скрипт при наличии "прибора" в инвентаре или там где надо... Все это вполне делается в Lua-скриптах. Разложить задачу на составляющие, и делать каждый из ингредиентов) Если какой-то ингредиент вызывает затруднения, то спрашивать уже по нему. Как то так. 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. Ссылка на комментарий
Shennondoah 130 Опубликовано 24 Июня 2020 Поделиться Опубликовано 24 Июня 2020 (изменено) 20 часов назад, Zander_driver сказал: Заполучить любым удобным образом ссылку на объект-тайник, взять его позицию, взять позицию актора, померить расстояние. От этого расстояния вычислить интервал писка, и воспроизводить звук писка с этим интервалом. Запускать скрипт при наличии "прибора" в инвентаре или там где надо... Все это вполне делается в Lua-скриптах. Разложить задачу на составляющие, и делать каждый из ингредиентов) Если какой-то ингредиент вызывает затруднения, то спрашивать уже по нему. Как то так. Получилось более-менее, спасибо Сделал 4 состояния, медленный, средний, чаще и частый писк, прям как в DL получилось, только вот пищит постоянно, как сделать проверку вот на наличие приборчика в инвентаре? А, всё, допетрил, сделал Чуть неправильно прописал. Изменено 24 Июня 2020 пользователем Shennondoah Добавлено Опричник, 24 Июня 2020 Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/ Устное предупреждение. Оц тоц перевертоц, бабушка здорова, Оц тоц перевертоц кушает компот. Оц тоц перевертоц и мечтает снова Оц тоц перевертоц пережить налет! Ссылка на комментарий
Demosfen 142 Опубликовано 24 Июня 2020 Поделиться Опубликовано 24 Июня 2020 Добрый день, решили адаптировать Бартер из НС 2016 с gui интерфейсом, взяли скрипт "ui_barter_menu" адаптировали его под себя, добавили активацию скрипта через диалог, запускаем игру а он почему то начинает работать самостоятельно, хотя как я понял должен работать только при вызове функции из диалога, есть у кого какие мысли на этот счет? 1 Ссылка на комментарий
phalcor 60 Опубликовано 26 Июня 2020 Поделиться Опубликовано 26 Июня 2020 Вот такой, казалось бы, простой вопрос: труп Крысюка после ухода/возврата на локацию становится невидимым (оффлайн). (У меня он в исключении у уборщика, потому цел). Следующая комбинация не переводит его в он-лайн: local sim = alife() sim:set_switch_online (id, true) sim:set_switch_offline (id, false) А вообще это возможно? Чтобы он стал нормальным, видимым трупиком? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 27 Июня 2020 Поделиться Опубликовано 27 Июня 2020 (изменено) Здрасьте. [ЧН 1.5.10] Проверка типа заряженных патронов с условием "если в руках оружие". Пока в руках бинокль, нож, болт или ничего, проверка срабатывает каждый раз и, как ожидается, сигналит "no_wpn". После переключения на пистолет проверка срабатывает 1–2 раза (иногда выдает "левое" значение вроде "219" или "17") и дальше молчит. Триггер проверки – callback "use_object". Повторяющиеся вычисления через actor_binder:update(delta) с такой проверкой тоже останавливаются. Spoiler function use_check(obj) if obj:section() == "bandage" then local item = db.actor:active_item() if isWeapon(item) and item:section() ~= "wpn_knife" then local sobj = alife():object( item:id() ) local pk = net_packet() sobj:STATE_Write(pk) local size = pk:w_tell() pk:r_seek(size -2) local ammo_type = pk:r_u8() +1 news_manager.send_tip(db.actor, "loaded: " .. ammo_type) else news_manager.send_tip(db.actor, "no_wpn") end end end Сдвиг -2 от конца STATE-пакета опирается на данные из [m_netpk.script]: Spoiler function net_cse_alife_item_weapon:__init(obj,mode) … self.st_props = { … { name = 'ammo_type', type = 'u8', default = 0 }, { name = 'cse_alife_item_weapon__unk1', type = 'u8', default = 0, ver = 6 } --/ CS&SCoP Изменено 27 Июня 2020 пользователем Norman Eisenherz 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
abramcumner 1 146 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @Norman Eisenherz, на самом деле совсем не смешно. Что выдает артосовский m_netpk.script? Ссылка на комментарий
WinCap 316 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @Norman Eisenherz, я уже не помню про ЧН, может там как в ЗП, нужно pk:w_begin(0) добавлять? 1 1 S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @abramcumner при подключенном модуле игра вылетает уже на стадии "Сервер: старт" (хоть с сейва, хоть новая). Подключал согласно инструкции: [scripts\_g.script] function start_game_callback() … m_netpk.attach() -- новая строка end Файл [_g.script] чистый, в папке [gamedata] только он и [m_netpk.script]. Spoiler Expression : fatal error Function : CScriptEngine::lua_error File : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp Line : 180 Description : <no expression> Arguments : LUA error: ...\common\stalker clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil) Проблемная строка – замена пробелов на пустое место. Ошибка при формировании сообщения об ошибке. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
abramcumner 1 146 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 5 минут назад, Norman Eisenherz сказал: Arguments : LUA error: ...\common\stalker clear sky\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil) Это специальный вылет же. 975 строка - функция abort в ЧН. Что выше в логе? Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @abramcumner Неподключенный конфиг… [m_netpk] выдает результат правильно при каждом обращении. В чем ошибка моего кода? Такой код точно работает в ТЧ; в ЧН отличие STATE-пакета оружия в одном новом параметре u8, то есть сдвиг еще -1 от конца. Методы класса net_packet не изменились. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 333 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 (изменено) @Norman Eisenherz, А таки для чего делать свои костыли, когда есть готовый исправно работающий инструмент? Поневоле вспоминается анекдот про "шашечки или ехать". 23 минуты назад, Norman Eisenherz сказал: Черный ящик это И что? Под капотом работающего агрегата копаются только тогда, когда категорически не устраивает, как он работает. Вот только, что может не устраивать в модулях Артоса, решительно не понятно. Ну, кроме морально-устаревшей самой по себе идеи, делать что-либо через нет-пакеты... Но от нее-то вы отказываться не хотите. Изменено 28 Июня 2020 пользователем Zander_driver 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. Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @Zander_driver Черный ящик это. Опять же, базовые методы, вокруг которых не требуется строить 20 дополнительных проверок – не костыли. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
abramcumner 1 146 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @Norman Eisenherz, первое правило велосипедиста: педалишь свой велосипед - сверяй с проверенным. По ошибке: 1. обрати внимание на пост @WinCap,в ЧН/ЗП конструктор net_packet не иницилизирует позиции чтения/записи. Надо делать w_seek 2. Я бы все-таки проверял класс объекта при разборе нет-пакета. cse_alife_weapon по-моему только нож использует. Ну и да, библиотека Artos`а учитывает все это и еще кучу другого. 3 часа назад, Norman Eisenherz сказал: Опять же, базовые методы, вокруг которых не требуется строить 20 дополнительных проверок – не костыли. Ну как не костыли. Не работают же эти базовые методы Ссылка на комментарий
Norman Eisenherz 309 Опубликовано 28 Июня 2020 Поделиться Опубликовано 28 Июня 2020 @abramcumner WinCap точнее написал: w_begin(0). Начальная позиция "гуляет" (интересно, какое в этом удобство), вот и работала проверка через раз. Это не костыли – это различия версий, о которых можно узнать только из вот таких обсуждений, потому что в справочнике сказано: "созданный пакет по умолчанию имеет позиции чтения и записи, установленные в 0". 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Expropriator 2 118 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 (изменено) Вопрос по скрипту ОГСМ ogsm_rt_manager.script. В игре, с локациями ЧН, вылета не было. Вылет идёт по спавну в алспавн мертвого сталкера на новой локации. --Регистрация целей для тасков типа kill_stalker function CRandomTask:register_target(obj) if IsStalker(obj) thenfor k,v in pairs(self.task_id_by_type["kill_stalker"]) do -- !!! ТУТ ВЫЛЕТ !!! if obj.alive ~= nil and obj:alive() == true and obj:profile_name() == self.task_info[v].target then if self.task_info[v].target_objects == nil then self.task_info[v].target_objects = {} end table.insert(self.task_info[v].target_objects, obj.id) end end end end Может перечисление локаций ЧН сделать, типа такого? if level.name() == "agroprom_underground" then Или куда то надо новую локацию прописать или трупы? Кто шарит в ОГСМ ( кроме Kirgudu)? А там еще ака Bak намутил rx_wmgr.script . Короче, для нового уровня - ОГСМ - это Ж... Изменено 2 Июля 2020 пользователем Expropriator Ссылка на комментарий
Zander_driver 10 333 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 12 минут назад, Expropriator сказал: ТУТ ВЫЛЕТ А какой вылет, это военная тайна? Может там достаточно проверку if type() == 'table' воткнуть, и всего делов... 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. Ссылка на комментарий
Expropriator 2 118 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 (изменено) Без ОГСМ всё работает. @Zander_driver, [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : ..\xrServerEntities\script_engine.cpp [error]Line : 180 [error]Description : <no expression> [error]Arguments : LUA error: ...orovka_beta2\gamedata\scripts\ogsm_rt_manager.script:978: bad argument #1 to 'pairs' (table expected, got nil) Спавню нпс на новой локации из профиля ОГСМ. Или я вообще туплю. Тут в ЧН же можно спавнить нпс через алспавн напрямую? Это же не ЗП, что бы через респавн. Изменено 2 Июля 2020 пользователем Expropriator Ссылка на комментарий
Kirgudu 1 207 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 (изменено) 3 часа назад, Expropriator сказал: Кто шарит в ОГСМ ( кроме Kirgudu)? А я тебе не подойду вместо Kirgudu? Не было там никакой привязки к локациям, насколько я помню. К смартам - да, но не в заданиях типа "kill_stalker". Проверь, что ты не почистил ненароком конфиг misc\rt_manager.ltx При первом после загрузки обращении к менеджеру (например, как раз из se_stalker.on_register()) там считывалось содержимое секции list, затем по каждой строке этой секции читались уже свойства заданий и записывались в массив self.task_info. Далее делался перебор этого массива и в зависимости от значения свойства type добавлялось значение в один из массивов task_id_by_type[type]. Пустым он мог оказаться только в том случае, если из конфига не получено ни одного задания нужного типа. Изменено 2 Июля 2020 пользователем Kirgudu 1 1 1 Инструмент Ссылка на комментарий
Expropriator 2 118 Опубликовано 2 Июля 2020 Поделиться Опубликовано 2 Июля 2020 @Kirgudu, я так понял, что у меня незаходят стартовые скрипты. В начале должно быть потемнение и музыка в голове, а уж после пойдёт правильная гаме. Странно. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти