
Norman Eisenherz
Жители-
Число публикаций
828 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
20,604 [Подарить AMKoin]
Весь контент пользователя Norman Eisenherz
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Новая секция ссылается на какой-то квестовый предмет? -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Если идея @RayTwitty с падением лута под карту верна (и всесильна), можно вынести спавн предметов около ГГ в отдельную функцию с небольшим разбросом координат и скармливать в нее нужные секции. Пример см. в [xr_box.script] create_items. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Связи с номером слота быть не должно – новые детали спавнятся просто по именам. Действия "сброс оружия из рук" тоже нет, да и все равно в руках обычная модель, а не сломанная. В SDK или в каком-нибудь OGF viewer модель [wpn_flame_brk.ogf] открывается? Еще можно к спавну этой секции дописать local test_obj = alife():create("flamethrower_bad",pos,lv,gv)) и после спавна (отдельным вызовом, не в этом же цикле) проверить if level.object_by_id( test_obj.id ) -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Все детали указаны как секции, а не как объекты (тип "string", а не "userdata") – не должно быть отличий в спавне. В конфиге предмета "flamethrower_bad" не была назначена прозрачная модель? -
По поводу спавна запчастей не понял вопроса: детали "flamethrower_bad" в списке указаны, и спавн всех деталей что по-старому, что по-новому выполняется именно на пол. Для спавна в инвентарь надо указать доп. аргумент id, то есть (…, gv, npc_или_ящик:id()). Для спавна именно в инвентарь ГГ можно забить всё нулями: ("sect", vector(), 0, 0, 0). Расширение списка канистр: если годится любой объект без привязки к типу огнемета, то можно оформить через дополнительный обработчик, как показано ниже.
-
Тогда так: local feuer = { wpn_flame = 1670, wpn_rg10_ognemet = 670,} … function use_item_ammo_flame_transfer(obj) … if ammo_elapsed > feuer[ flame:section() ] then Вторую проверку оформить аналогично. Можно взять макс. значение -150 или еще как-то.
-
По умолчанию скрипт рассчитан на наличие одного инвентарного предмета с заданной секцией без проверки "в руках" или "в слоте". В первом приближении можно поправить так: -- подходящее оружие local feuer = { wpn_flame = true, wpn_rg10_ognemet = true, другие_секции, } function use_item_ammo_flame_transfer(obj) … local flame=db.actor:object("wpn_flame") item_in_slot(2) if flame and feuer[ flame:section() ] then
-
Нашел такую заметку: https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/1247/#comment-1484510
-
Какая ссылка указана в [fsgame.ltx] под именем $fs_root$?
-
Вот тут был разбор use_object для физических объектов. Не знаю, применимы ли такие правки к ТЧ.
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
[ТЧ 1.0006] Спасение долговца в ТД: пленный разворачивается на месте быстро для диалога с ГГ и медленно для диалога с Пулей, а Пуля всегда разворачивается медленно. Что и где надо поправить, чтобы у обоих NPC была только быстрая анимация? -
@Black_Raven_03 При таких условиях можно прямо указать предмет: local item = db.actor:object(sect) if item then alife():release( alife():object( item:id() ) ) end Перебор инвентаря пригодится при удалении нескольких предметов с одинаковой секцией.
-
[ТЧ 1.0006] Задача: добавить субтитры к звуку "val_rob_guard_jeer" – угроза от охранника на ферме в ТД после покупки "гаусски за 800". В [xr_meet] приветствия вычитываются по шаблону "расстояние | анимация@звук | …" – добавлять в логику действие %…% без правок скрипта бесполезно. Попытался просто вывести название звука в сообщение в указанных ниже местах скрипта – никакой реакции. Куда надо привязаться для получения ссылки на звук? [Edit] После перезапуска игры обработался вызов meet_manager.sound. Снимаю вопрос.
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
@DarkSnowder Возможно, слишком длинный текст. Не знаю, как в OGSR, а в оригинале есть ограничение в 232 знака, если текст указан не ссылкой string_id, а напрямую в скрипте, в том числе при сборке фразы по кусочкам. -
Нет, именно для этих действий точность не важна.
-
Подсветка при выборе смещается с шагом, равным высоте элемента списка – можно регулировать только частоту переключения. Отношение 5:1 или 50:1 – как раз результат теста в игре, и множители подставлены на уровне ощущений. Движок обычный, и начинку я могу только читать.
-
Эксперимент с device() описан чуть выше. Их можно считать на уровне скриптов? Не просто править множителями до уровня "так пойдет"?
-
Я уперся только в то, что счетчик стоит на месте – сам апдейт есть.
-
Такой код не дает вывода в консоль, хотя в [_g.script] применяется именно log(str). Если в старом варианте вывести не новую переменную, а сам счетчик time_global(), будет повтор одинакового значения – дело действительно в паузе и, если ее снять, при любом обращении к меню загрузки игра некоторое время будет жить своей жизнью, что нежелательно. Можно бы сделать счетчик циклов в самом скрипте, но значение device().time_delta остается на 0, а аргумент delta, в отличие от биндеров объектов, для окна не существует – неясно, какая частота обновления окна. Edit: направление было правильное, и какой-то неточный апдейт можно намутить. Соотношение циклов окна и счетчика в мс ~1:5, при загруженной игре ~1:50. Какие значения будут на другом ПК, предсказать сложно.
-
Нет, все равно одно обновление. Может, дело в движковом выводе окна – в простом скриптовом окне обновление постоянное.
-
Код типовой, в обычных апдейтах работает. Меню загрузки сейвов обновляется только один раз при создании окна.
-
@RayTwitty Если загрузить игру и переключаться между игрой и меню, счетчик будет выводиться в консоль по одному разу на каждый вход в меню.
-
@RayTwitty Добавил в [ui_load_dialog.script] код, показанный ниже: один раз сработало, дальше молчит.
-
Как на оригинальном движке создать циклическую проверку time_global вне загруженной игры, то есть без апдейта ГГ или другого объекта? Хочу сделать перемотку списка сейвов удерживанием клавиш.
-
По образу и подобию других функций в том же скрипте: сделать обработку стандартных для логики аргументов actor, npc, p (названия любые, типы "объект, объект, список") и читать свои значения, переданные из логики, по ссылкам p[1], p[2], …
УЧИМСЯ МОДДИНГУ
ИГРАЕМ В МОДЫ НА ТЧ
ИГРАЕМ В МОДЫ НА ЧН И ЗП
- [ЧН] OGSM CS 1.8 CE Fixes
- [ЧН] HARDWARMOD 3.2
- [ЗП] The Long Road
- [ЧН] New vision of War
- [ЧН] Old Good Stalker Mod - Clear Sky
- [ЗП] Unofficial Patch
- [ЗП] Смерти вопреки
- [ЗП] Контракт на хорошую жизнь
- [ЗП] Shoker Weapon Mod 2.1
- [ЗП] Hardcore pack for SGM 2.2
- [ЗП] Контракт Синдиката
- [ЗП] Клондайк 2.0
- ...и другие моды
ПОЛЕЗНОЕ И РАЗНОЕ