Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

Цепочка вызовов: [xr_gulag.script] gulag:initialize –> gulag_tasks.loadStates –> load_states по каждой отдельной локации.

 

Как выполняется обновление состояния уже созданного лагеря, где Толик пребывает в оффлайне?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz  могу ошибаться, но, емнип, вот этот кусочек кода выполняется на каждом апдейте , соответственно, здесь и переключается.

if type == "esc_corps" then
        return function(gulag)
            if has_alife_info("tutorial_wounded_start") then
                return 1
            else
                return 0
            end
        end
    end

 

След от кругов на воде - это тоже след (с)

Ссылка на комментарий

Я нашел только один вызов, при создании лагеря. Где именно у лагеря выполняется апдейт?

В движке упоминаний load_states или loadstates нет – по крайней мере, в [xrGame].

  • Согласен 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

@Norman Eisenherz Предложение есть -  вставить туда отладочный вывод. И будет, как минимум, понятно, с какой частотой обновляется/не обновляется проверка состояния. Один раз оно вызывается, или все же нет.

След от кругов на воде - это тоже след (с)

Ссылка на комментарий

lvid/gvid изменяются только при добавлении уровней/переделки геометрии уровня? Или существует другие случаи?

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий

@Balavnik при добавлении уровней, по моему, не изменяется. Левел вертексы (lvid) изменяются при переделке аи сетки, гейм вертексы (gvid) при добавлении/удалении гем графов, по моему. Отдыхал от сталкера, многое уже подзабыл.

Изменено пользователем UriZzz
  • Полезно 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

Что отвечает за уборку трупов с локации? Хочу, чтобы трупы убирались после выхода с локации, но это не касалось бы квестовиков.

 

Или это скриптово делается? Если делается, то примерно как?

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
1 час назад, Balavnik сказал:

Или это скриптово делается? Если делается, то примерно как?

Скриптово sak_off_corpses.script из NLC. Встречается и в других модах. По моему соответствует требованиям. Убирает трупы и оружие, можно задать квестовые трупы которые не будут убирать, число трупов на локация ну прочие настройки.

  • Нравится 1
  • Полезно 2
Ссылка на комментарий

На территории фермы в ТД, где предлагают "гаусс за 800", иногда проигрывается звук "новый контакт в КПК", но количество NPC не меняется. В чем причина такого явления?

  • Жуть! 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

Народ, прошу помощи

 

есть у меня в смарт-террейне вот такая логика

Скрытый текст

[logic@vall_nii_lager_guard1]
active = walker21@vall_nii_lager

 

[walker21@vall_nii_lager]
path_walk = guard1_walk
path_look = guard1_look

в общем, как будет выглядеть логика, при которой при подходе, скажем так, метров на 10 бот выставлял на ГГ ствол и кидал предупреждение(открывался диалог как с Крюком в цехе подстанции на Затоне в ЗП), а при подходе ближе (ну скажем 8 метров от бота) всё население террейна агрилось на ГГ? А после выполнение условия (выдачи поршня) Часовой спокойно пропускал ГГ без всяких там тыканьем стволом в лицо?

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

Ссылка на комментарий

@DarkSnowder Если мне не изменяет память, то это схема zoneguard.

Скрытый текст

[zoneguard]

path_walk = путь перемещения

*path_look = путь обзора

team = имя команды синхронизированных zoneguard-ов (из всей команды только 1 будет реагировать на игрока)

*zone_guard = имя зоны, в пределах которой игрок будет атакован

zone_warn = имя зоны, в пределах которой начинать разговор с игроком

*walker_team = team для схемы перемещения его в состоянии walker (если не задан, используется значение из поля team)

*no_move = если true, персонаж окликнет игрока с места и не будет подбегать к нему

*snd_greet = имя звуковой схемы, из которой будет проигран звук при обнаружении персонажа

*ignore_friends = true, будет игнорировать дружественных ему персонажей.

*ignore_cond = {+info -info =func !func} условия, при которых NPC игнорирует игрока

*no_danger = если true, то не отыгрывает угрожающую анимацию, нейтралам.

*anim = какую отыгрывает анимацию, если игрок ему не враждебен.

*snd_anim_sync = если true, то npc будет синхронизировать звук с анимацией

Файл: \gamedata\scripts\xr_zoneguard.script

 

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий

Интересно, а есть схема плавных рестрикторов? Скажем, входит гг в какую либо зону, и чем ближе к к центру, тем больше значение некой переменной? 

Изменено пользователем dPlayer
Ссылка на комментарий

@dPlayer  Ну  недискретных, по-моему, нет. А дискретный можно вроде как самому сделать: создаем рестриктор с таким количеством секций логики, сколько надо значений этой переменной.
И дальше в каждой секции, начиная с активной, ставим проверку на расстояние ГГ до центра,  увеличение значения переменной + выполнение нужных скриптовых действий и переход в следующую секцию.
Как-то так:

[logic]
active = sr_idle
[sr_idle]
on_info = {=dist_to_actor_le(30)} %+infoportion%(или функция, увеличивающая нашу переменную ) sr_idle@new20
....
[sr_idle@new20]

on_info =  {=dist_to_actor_le(20)} %+infoportion2%(или функция, увеличивающая нашу переменную ) sr_idle@new10

...

[sr_idle@new10]

on_info =  {=dist_to_actor_le(10)} %+infoportion3% (или функция, увеличивающая нашу переменную ) sr_idle@new5

...

Не пробовала, но по идее должно сработать.

Изменено пользователем Okichi

След от кругов на воде - это тоже след (с)

Ссылка на комментарий

@Okichi про дискретную тоже так подумал. Но хотел сделать зону, в которой чем ближе к центру, тем темнее в глазах гг, а дискретно, понятно, не красиво))

Изменено пользователем dPlayer
Ссылка на комментарий

@dPlayer А если кучу зон добавить? Не так рвано будет. Правда, насчёт стабильности не ручаюсь.

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий

Граждане, вопрос. В солянке у хваталок свой класс - Z_AMEBA.

 

Где этот класс добавляется? В конфигах только упоминание непосредственно в секции аномалии.

 

Как добавить свой класс?

Осенний каламбур. Сентябрь - лето.

img.php?nick=Balavnik&sert=2&text=t6

Ссылка на комментарий
2 часа назад, Balavnik сказал:

Z_AMEBA. Где этот класс добавляется?

В данном случае в движке (присутствует по умолчанию).

В общем случае, если без использования и правок в исходниках, то c помощью class_registrator.script:

здесь здесь здесь.

  • Полезно 2
Ссылка на комментарий

@dPlayer Так для этого не нужно рестриктора. Точнее, нужен - но on_actor_inside для него волне хватит, одного. Оттуда - запускается скриптовая функция, в ней - проверка расстояния от актора до центра рестриктора. И в зависимости от расстояния - скриптово же в этой функции уменьшаем/увеличиваем  на нужную величину  значение фоновой освещенности. Шаг дискрета поменьше - и изменение затемнения -осветления будет выглядеть достаточно непрерывным. 

 

Все проверки вообще в функции.

 

Изменено пользователем Okichi
  • Нравится 1
  • Согласен 1
  • Полезно 2

След от кругов на воде - это тоже след (с)

Ссылка на комментарий
36 минут назад, Okichi сказал:

проверка расстояния от актора до центра рестриктора

Как это выполнить, логикой в рестрикторе или функцией?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...