
Malandrinus
Жители-
Число публикаций
1 930 -
Регистрация
-
Последнее посещение
-
Дней в топе
13 -
AMKoin
180 [Подарить AMKoin]
Весь контент пользователя Malandrinus
-
Shadowman, sapsan, крайне не рекомендуется пользоваться магическими числами, как это сделано в примере выше. Мне точно известно, что константы из класса/перечисления clsid отнюдь не постоянны. При добавлении в class_registrator новых сетов новые идентификаторы могут втыкаться в совершенно произвольное место и, таким образом, смещать существующие. Логики назначения я не понял, хотя, если честно, сильно и не искал. Не обязательно в этом случае, но это может стать причиной ошибок. И да, так проверять совершенно недопустимо. Надо примерно так, как это делается в функции IsMonster (в ЗП версии) local anomaly_classes = { [clsid.zone_electra_s] = true, -- <<== никаких магических чисел, только именованные константы !!!! [clsid.nogravity_zone] = true, и т.д. } function IsAnomaly(obj) return anomaly_classes[obj:clsid()] == true end Код понятнее, ошибок меньше и работает быстрее.
-
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Не понятно. Это насчёт звуков? Почему нельзя извлечь их из игровых архивов? -
Struck, не совсем понятно, что за текстура. Искал-искал, но так и не нашёл. Также не понятно, что требуется. Снять координаты отдельной иконки/картинки? Так это вроде и так можно сделать. Сначала подгоняем сетку, затем выделяем отдельную ячейку и меню "Правка -> Информация о выделении для XML" Я обратил внимание, что в ЗП появилось много новых размеров иконок. Если кому не лень, не могли бы составить списочек сочетаний? Я бы сделал небольшой апдейт с новыми предустановками для сетки.
-
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Kirag, Так вроде у ствола может быть только один прицел/подствольник/глушитель. Это прописано в конфигах и в визуале. WodkaGT, да, действительно. Я малость отстал от жизни. Интересно, аддоны как и раньше исчезают при установке? -
Shadowman, Сравнивать таблицы можно, но без дополнительных усилий они сравниваются на равенство ссылок. Это означает, что равна таблица будет всегда и только самой себе. Чтобы сравнивать "по смыслу", надо вписать таблице мататаблицу с оператором сравнения. Как-то так: local t1 = {} lcoal t2 = {} log(tostring(t1 == t2)) -- вернёт false t1.a = 3 t2.a = 3 local mt = {} mt.__eq = function(op1, op2) return op1.a == op2.a -- сравниваем по содержанию end setmetatable(t1, mt) setmetatable(t2, mt) log(tostring(t1 == t2)) -- вернёт true Пример упрощённый, но рабочий. И надо понимать, что никакой выгоды по скорости я не имею. Просто сделал синтаксическую обёртку для своего кода сравнения.
-
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Но губами то шевелит, я помню. Ты тоже думаешь, что это смоделенный кусок того же уровня? Я попытался в all.spawn поискать, но тоже не нашёл. Моя мысль была, что это должно проявляться где-то в скриптах. Дополнение: Нашел я Сидора. Значит так. Телепорт отправляет ГГ на точку пути с именем "aes2_teleport_walk_exit_trader". Там в свою очередь стоит рестриктор. Имя его "aes2_space_restrictor_trader", координаты: -247.054550170898,-18.7832088470459,-134.401412963867 При попадании в него запускается звук и отыгрывается анимация у физического объекта с визуалом Сидора. Объект имеет имя "aes2_physic_object_0002". Секция "physic_object". Координаты: -244.721908569336,-18.7780876159668,-133.974792480469 story_id = 1118 Запуск анимации выполняется функцией xr_effects.set_sidorovich_animation -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Если кто помнит, на локации с ЧАЭС был момент, когда ГГ мотается по телепортам и его заносит к Сидору. Знает кто, как это реализовано? Это движковая фича или скриптовая? Не мог ведь актор перенестись на другую локацию, для этого загрузка нужна. Или таки переносился? -
Формат файла level.ai, в котором хранится сетка уровня, подразумевает, что она выровнена по координатам. Иначе быть просто не может. Если в двух словах, то там задаётся прямоугольный параллелелпипед (бокс), ограничивающий пространство сетки на уровне, задаётся шаг сетки по X и Z. Шаг по Y неявно определяется как высота бокса разделить на 65536. Само положение узла сетки задаётся как два целых числа: номер дискретного уровня по оси Y и упакованный номер ячейки на плоскости XZ. Т.е. на плоскости XZ ячейка сетки может быть только одним из элементов прямоугольной матрицы, строго ориентировнаной по осям X и Z. Вот что я не понимаю, это почему на картинке сетка не совпадает с осями координат? Или меня зрение подводит?
-
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
кровоSTALKER, Попробуй так. Помещаешь это в actor_binder:net_spawn if level.name() == <имя уровня> then level.add_pp_effector(<имя постэффекта>, <какой-либо номер>, true) end -
Справочник по функциям и классам
Malandrinus ответил на тему форума автора Malandrinus в Скрипты / конфиги / движок
Сегодня опишу пару мелких, но полезных классов. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Добрался до компа с игрой и проверил фишку со скриптом уровня. Не смотря на слухи, что из финальной версии это вырезали, фишка работает. Однако! 1. Это колбек на заход на уровень. Срабатывает при первом спавне ГГ на уровне и последующих заходах. Если сохраниться, то при загрузке НЕ выполнится. Так что для вышеозначенной задачи запуска эффектора не годится. Там надо, как я говорил раньше, использовать колбек на спавн из биндера актора. 2. В параметре script указывается не функция (как в большинстве случаев), а файл, точнее даже файлы через запятую. При запуске выполнится всё, что в файле в глобальной области а также функция main. Совершенно археологическая вещь в стиле билда 1935, но в общем, может быть полезно. -
Влад, поставь отладочные выводы в консоль и выяснишь, где торомозится. В твоём коде слишком много всего, кроме окна. Рекомендую воспользоваться моим тестовым полигоном, которой я описывал здесь. Отлаживать фрагменты кода станет проще.
-
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
кровоSTALKER, а я не понял, что именно ты не понял. Вот дополнительная идея. Видел где-то, что можно зарегистрировать колбек непосредственно на уровень так. В файле level.ltx конкретного уровня прописываем: [level_script] script= <выполняемая при заходе на уровень функция> В своём скрипте вызываешь эффектор и ставишь ему зацикливание. -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Нету ли у кого сейва на чистую игру ЧН в Лиманске? Проверю то место. Ну просто ГГ при заходе в рестриктор аномалии (в воду) терял бы вес и "плавал". Вообще, в ЗП (а может ещё и в ЧН) есть возможность скриптом отключить гравитацию с помощью класса physics_world. Можно управлять весом ГГ более тонко, но к сожалению это имеет глобальный эффект. А вообще впечатления забавные, полетать можно... -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Может меня подводит память, но вроде как в ЧН был момент, когда ГГ нужно было поплавать. Реализовать это в ТЧ ... хм. там есть вроде как вырезанная аномалия с убранной гравитацией. Если она в принципе работает, то теоретически можно попытаться это сделать. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
кровоSTALKER, так поставь в колбек на спавн ГГ и зацикли. -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Зачем в биндер вообще, если тебе это один раз сделать надо? -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Только всё-таки при сохранении или при загрузке из быстрой сохранёнки? Если при загрузке, то ответ один: это из-за быстрого сохранения. Не пользуйся им, забудь, что такая возможность существует. -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Главный недостаток этого способа - надо опрашивать клавиатуру в цикле. Именно нажатие не отловить. Я видел на codeproject пример с перехватом интерфейса directinput. Но что-то на моей x64 он не работает. Вот ссылка на всякий случай. -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Скачивается без проблем. Но если совсем никак, то вот он же на iFilder Кроме того, вот ссылка на офф.форум http://www.gsc-game.ru/index.php?t=community&s=forums&s_game_type=xr&thm_page=1&thm_id=13441&sec_id=14 (скопируйте руками и вставьте) Об этой альтернативе идёт речь? Суть обеих программ одинакова - опрос в цикле состояния клавиш и запись в ltx и т.д. Хук работать не будет, поскольку очереди сообщений нет. Если ткнёшь пальцем, где описано, как перехватывать ввод через DirеctX, буду признателен. -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
SCRIPT, никак -
[CoP] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
кровоSTALKER, поищи в этом посте в разделе "Пространство имён level" -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Garry_Galler, все расстояния в метрах и ни в чём другом. В приведённом фрагменте есть ошибка, связанная с побочным эффектом в этой строке local v3 =v1:sub(v2) результат также пишется в v1, что влияет на дальнейшие вычисления. Надо было так: local v3 =vector():sub(v1, v2) =) А ещё лучше не умничать и написать: local len = v1:distance_to(v2) -
[SoC] Ковыряемся в файлах
Malandrinus ответил на тему форума автора Halford в Скрипты / конфиги / движок
Garry_Galler, здесь вопрос не неточности, а скорее что хотим получить. Если измерять угол от точки взгляда, то это истинный конус взгляда выходит. Но при этом в него могут не попасть объекты рядом с ГГ и в упор не будет виден кто-либо, стоящий прямо перед ГГ (поскольку его координаты - это положение на земле). Поэтому более осмысленной будет функция yaw_degree, которая игнорирует координату y. Между прочим, всё равно будет проблема с объектами слева и справа от "полупространства взгляда", поскольку ближе к ГГ оно сужается. Поэтому имеет смысл ближе определённого расстояния проверять на больший угол видимости. Или вообще-то стоит просто использовать угол обзора, полученный из разрешения монитора и fov камеры. А ты проверь. Возьми класс profile_timer и замеряй время. Для физики не знаю, а при движении по AI сетке - никакой. Ну может только проверяется, что узел сетки кем-то занят и то не всегда. Известно же, что неписи ГГ зачастую игнорируют и сквозь стенки ходят и по воздуху гуляют. -
TREWKO, Всё работает, как ты написал. В течении часа непрерывно счастотой апдейтов вызывается эта функция. Почитай внимательней описание функции give_game_news. Тебе достаточно один раз вызвать её в любом месте. Надо только рассчитать время до нужного момента вывода. Ну или в апдейте флажок поставь. Если один раз сработало, то запомнить это и дальше не выводить.
- [ЧН] 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
- ...и другие моды