S.T.A.L.K.E.R. 2: Новый трейлер <<<>>> S.T.A.L.K.E.R.: Global War <<<>>> Инструмент - теперь и для ТЧ!
-
Число публикаций
697 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
15,848 [Подарить AMKoin]
Весь контент пользователя Norman Eisenherz
-
[CS] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Подтверждаю ошибку для FN2K, G36 и L85. В нетпакете оружия установленные апгрейды перечислены правильно, так что, видимо, болезнь движковая. Добавил апгрейд оптики в схему СВД: та же проблема. Описание применения апгрейда в движке ЧН/ЗП одинаковое: Ждем более продвинутых моддеров… -
[CS] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Подробнее, пожалуйста: при каких условиях и что именно случается? -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Типовой конфиг статьи с описанием задания содержит какое-то неизвестное значение: article_type=task group="task_id/???". Во всех действующих примерах значение после task_id = 0. Если создать в описании задания ссылки на несколько статей с конфигом group="task_id/0", …/1, …/2, то вне зависимости от активной задачи выводится только статья, указанная для задачи 0. Если убрать это значение совсем или указать число в несколько знаков, или указать строку "текст1/текст2/текст3", эффект тот же: статья полностью определяется через article_id без учета group – даже task_id указывать необязательно. В классе SGameTaskObjective есть метод set_article_key(str), который вроде бы ссылается на это значение, но ни одного живого примера нет, а ввод чисел или строк таким методом никак не меняет статью в описании задания. В движке есть вот такие действия при выводе статьи вида "описание задания" в КПК: Что это за значение и как его применять? -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Именно так и будет: дополнительное наложение звука при каждой перезагрузке. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Гуглятся именно что частные примеры – стоит отойти немного в сторону, и выясняются какие-то особенности, вроде того, что звук, выведенный через play_no_feedback в режиме "looped", залипает в указанных координатах до действия disconnect и проигрывается даже в других сейвах на той же локации. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Hind Звук как реакцию на нажатие клавиши? В том же скрипте главного меню добавить действие по образцу привязки DIK_Q для выхода из игры. Вот еще вариант: для 3t-кнопки можно привязать звук состояний "в фокусе" и "нажато" через теги <sound_h> и <sound_t>. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Дополнить один из штатных обработчиков, перечисленных в main_menu:InitCallBacks -
@Colder Скорее всего, прочитан id клиентского объекта как obj.id вместо obj:id()
-
См. страницу [328] здесь же: список + CGIM
-
При отслеживании события callback.hit в обработчик передается аргумент local_direction – какой-то вектор из трех дробных значений. В движке есть комментарий "convert impulse into local coordinate system". Что за значения пишутся в этот вектор и куда их можно применить?
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
1. Инфо ui_inventory + свои действия (actor_binder:info_callback). Если переключателей "достать/убрать оружие" больше одного, обязательно ввести счетчик и убирать/доставать только на околонулевых значениях – оружие, убранное дважды, надо будет и доставать дважды. 2. Никак – в скриптах можно только отслеживать состояние движковых окон и закрывать их. Можно выводить свое окно с текстурами КПК, как в модах Shoker или Hard War. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Купер Код версии MM Build 110603, правильно? Кому-то отвечал на точно такой же вопрос по Mobile Manager, но, видимо, это было в личке и уже затерто. Там были ошибки в двух или трех строках; нужны логи вылетов, чтобы не копать все скрипты. По идее, вот этих изменений должно хватить: [_Ui_Total.script] local sh_id_val = "%s*([_%w]+)%s*%=%s*([+=-\|}{)(/@_%s%,%.%w]+)%s*" local sh_id_val = "%s*([_%w]+)%s*=%s*([+=-\\%p%(%)|/_%s%w]+)%s*" [_Utils.script] for cf, sec in string.gfind(str, "%s*([%\%.-_%w]+)%s*%|%s*([-_%w]+)%s*") do for cf, sec in string.gfind(str, "%s*([\\%.-_%w]+)%s*|%s*([-_%w]+)%s*") do • знаки +- в пределах [набора] все-таки учитываются и без % • обозначения %| %, %{ равнозначны | , { • знаки | } { @ . , входят в класс пунктуации (круглые скобки – только через %) • двойной слэш \\ обязателен -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
@Купер • запятая, "=" и "|" не требуют обозначения через % • скобки, наоборот, надо обозначать через % (кроме фигурных) • обратный слэш в тексте должен быть двойным \\ (не %\) • "минус" надо обозначать через % (исключение: проверка наличия знаков [+-]?) Есть примеры исходных строк? В первом выражении просится какой-нибудь обратный шаблон – очень много знаков перечислено. -
Надо полагать, это файл из НС-2010, в котором "ориентирование на слух" представлено перебором стандартного списка memory_sound_objects. Потестил в ТЧ: бинты и прочие медикаменты при сбросе даже рядом с NPC в список источников звука не заносятся. В "солянке" не правленый движок, скрипты только – была ли в действительности такая проблема?
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Путь поиска: диалог Лиса в ТЧ, выдача награды за аптечку, ссылка give_treasure в скрипте. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Аргументы: пострадавший, значение урона, направление (вектор), нападающий, номер задетой кости на модели. Тип внешнего урона определить невозможно, но для описанного случай достаточно проверки if IsMonster(who) then (инфекция) – по крайней мере, при базовых значениях clsid мутантов. Проблема в том, что в оригинале событие hit для ГГ не обсчитывается. Можно через callback.sound + snd_type == monster_injure в [bind_monster.script], но там придется как-то разбирать, кто слышит свою атаку по ГГ, а кто просто мимокрокодил. -
Кто-нибудь разбирал методы биндеров подробно? 1. Что такое net_Relcase и почему этот метод вызывается 10–20 раз подряд при спавне объекта, а после по 1–2 раза при обращении к инвентарю и прочих вроде бы не связанных с отдельным объектом действиях? Есть старый пост, но он мало похож на правду – метод net_destroy показывает, что объект находится в онлайне при всех вызовах net_Relcase. В движке под таким методом вроде как удаляются ссылки на объект. 2. При каких условиях вызываются методы net_import и net_export? Есть другой старый пост, но он, видимо, вообще не про биндеры. 3. Зачем нужен метод reinit(section), если ссылку на секцию объекта можно получить через self.object в методе reload, который вызывается при тех же условиях "спавн / онлайн"? 4. Обязательно ли выполнять обновление объекта через общий класс object_binder в методах reload, reinit и update? 5. Обязательно ли проверять объект через object_binder.net_spawn? 6. Обязательно ли удалять биндер через object_binder.net_destroy? 7. Почему для разрушаемых объектов вроде ящиков привязка событий через set_callback указана не в reinit, а в net_destroy? 8. Обязательно ли отключать обработку событий в net_destroy?
-
[CoP] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Движок: [xrGame\WeaponMagazinedWGrenade.cpp] bool CWeaponMagazinedWGrenade::install_upgrade_impl( LPCSTR section, bool test ) … result |= process_if_exists( section, "launch_speed", &CInifile::r_float, m_fLaunchSpeed, test ); Судя по отсутствию знака "+", значение m_fLaunchSpeed заменяется. -
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
@DarkSnowder Если я правильно понимаю вопрос, в логике должно быть on_actor_inside / _outside = … %=set_weather(name)% со ссылкой на новую функцию в [xr_effects.script] function set_weather(name) level.set_weather(name, true) -- изменение сразу end -
При одном параметре можно обойтись консолью. Если надо больше, требуется полное описание задачи.
-
В ТЧ через файловую систему: local file = getFS():r_open(полный путь) или …($app_data_root$, "user.ltx") local text = file:r_stringZ() -- дальше разбирать полученный текст через string.find, string.match и прочие методы В ЧН через библиотеку io: local filename = "_appdata_\\user.ltx" for line in io.iines(filename) do -- построчное чтение local x = line:find(…) … Еще через консоль можно: get_console():get_тип(название параметра или привязки клавиши).
-
Ищу примеры применения биндеров помимо отслеживания типовых событий, связанных с ГГ, NPC, мутантами и т. д. Интересует скриптовая обвязка для новых предметов, которая невозможна без класса object_binder.
-
1. ED (hex) = 237 (16^1 * 14 + 16^0 * 13), иначе не сходится. 2. Картинка сложилась: в [lua_help.script] указаны действующие ссылки и неправильные значения, а при проверке if dik == DIK_keys.MOUSE_1 и т. п. читаются движковые значения.
-
OGSE 0.6.9.3, переназначение клавиш и кнопок для обработки новых действий: В ТЧ 1.0006 событие "нажать / отпустить ЛКМ или ПКМ" успешно ловится (в скриптовом окне) при ссылке на таблицу DIK_keys с "неправильными" кодами кнопок мыши. Как понимать указанный выше комментарий в OGSE?
-
[SoC] Ковыряемся в файлах
Norman Eisenherz ответил на тему форума автора Halford в Скрипты / конфиги / движок
Бродяга и Пёс в ЧН имеют такую же логику – даже вне задания.