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

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

18 минут назад, F.Constantine сказал:

       return function (gulag)
            local actor = db.actor


            xr_gulag.setGulagRelation ("esc_blokpost", game_object.enemy, db.actor)

Ну это их делать врагами без всяких условий каждые ~2-3 секунды. И актор, повторяю, в игре появляется не сразу. Так что лучше бы посмотреть, как дальше проверяются условия.

  • Спасибо 1
Ссылка на комментарий

@Dennis_Chikin, ок, покумекаю еще. И протестирую полностью с новой игры. Пока - опять же с новой игры - патруль и часовые на блокпосте сразу в бинокле красненькие. Под мостом - нейтралы... 

Еще раз спасибо!

Ссылка на комментарий
3 часа назад, F.Constantine сказал:

хошь сохранить нейтралитет - ползай на пузе ночью и пытайся по тихому стибрить чемоданчик, не хошь - выноси всех, но потом не обижайся.

Так у тебя гулаг вояк на блок-посту изначально будет враждебен к ГГ. Какой же тут нейтралитет ?

Еще раз предлагаю: не трогай изначальное отношение вояк к остальным, а изучи возможности combat_ignore + combat_ignore_cond в логике. 

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

@AndreySol

2 часа назад, AndreySol сказал:

Какой же тут нейтралитет ?

Нейтралитет всей группировки в целом. За исключением нескольких гулагов, занятых охраной секретных объектов или военных баз/блокпостов. Таких гулагов в игре всего 4 - пара на Кордоне (солдаты на блокпосту и спецназ) и пара на Агропроме (гарнизон НИИ и вояки в коллекторах). Ну, еще нужно сделать враждебными вояк, атакующих группу Крота на том же Агропроме, и спецназ у лаборатории №18. Всё, остальные меня устраивают как нейтралы - причем не только к актору, а к большинству фракций, кроме бандюков и наймов, к примеру. Ты не встречал в игре отряды солдат, просто ходящих по локациям - с одной на другую? При некоторых моих настройках респавна у меня их на Свалке получалось очень густо :). Вот они тоже, к примеру, могут себе идти и никого не трогать, вместо того, чтобы атаковать все, что шевелится.

Ну, так как проще: сделать враждебными полдюжины вполне определенных гулагов к ГГ и двух - к "одиночкам", или просчитывать и править все остальные возможные встречи вояк, причем со всеми группировками :) ?

А combat_ignore + combat_ignore_cond - да, тоже полезно может быть.

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

@hack.pavlov, в x-ray extensions для этого есть функция level.get_target_obj()

А без XE - проверять, совпадает ли вектор направления на объект с направлением камеры - для всех онлайновых объектов. Как это сделать - можно подсмотреть, например, в скрипте фотоаппарата из "фотографа"

Изменено пользователем naxac
  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Всем привет. При разборе логики у меня неоднократно возникал вопрос. Можно ли логически заставить сталкера стрелять по другому сталкеру? 
В схеме я перевожу его на remark и отыгрываю анимацию ***_fire. Всё работает отлично, пока в качестве цели (по story_id) указан мутант, бандит или зомбированный (короче, недружественное существо). Однако, если приказать одному сталкеру стрелять по другому нейтральному сталкеру, то он просто наведёт на него ствол и замрёт. Я не очень силён в xr_***-скриптах, поэтому буду очень благодарен тому, кто подскажет, как реализовать это без костылей и красиво (под костылями я имею в виду проигрывание звука выстрела и одновременно вызов хита по цели. Выглядит это максимально картонно, а посему хочу насильно "приказать" одному сталкеру стрелять по другому, невзирая на группировку). 

Пока писал назрел ещё один вопрос. В оригинальной ТЧ есть момент, когда ГГ подходит к Кузнецову, и у того (несмотря на то, что он во вражьей группировке) появляется диалог. Однако мне в попытках исправить по аналогии секцию meet создать что-то подобное не получилось. Пытался даже играться с game_relations.ltx (выставлять отношения к группировке killer на 0), но диалоги не появлялись. Подозреваю, что где-то прописаны группировки (в dialog_manager.ltx?), в котором явно задано, с кем эктор может говорить, а с кем - нет. Но вот что-то совсем не получилось разобраться, как конкретно этот dialog_manager работает. Опять же, буду благодарен за любые подсказки по данному вопросу. Спасибо.

 

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

@Дмитрий Зверев, перед тем, как нпсу стрелять, поссорь его с целью, например, вызвав функцию из логики.

 

Дефолты для meet выставляются в xr_meet.script, там и проверка по группировкам стоит.

  • Полезно 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@naxac, "поссорил", сменив жертве группировку. И убийце, на всякий, тоже сменил, настроив ему отношение конкретно к жертве в -5000. В итоге, при вызове скрипта из диалога и жертва, и убийца срываются в бой (хотя у обоих стоит danger_ignore по всем пунктам = 1 и combat_ignore_cond = always). Поэтому сцена, в которой убийца должен красиво решать стоящего на коленях сталкера попросту сыплется. Даже не знаю, как теперь это можно пофиксить. В любом случае, спасибо.

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

В оригинальной ТЧ есть момент, когда ГГ подходит к Кузнецову

Я в своем моде делал бандитов и легко с ними мог говорить, даже если они враги (а так и было). Вроде в логике все прописывается.

Сталкер - наше всё!

Ссылка на комментарий
6 часов назад, Дмитрий Зверев сказал:

сцена, в которой убийца должен красиво решать стоящего на коленях сталкера попросту сыплется

Фотограф - сцена расстрела дезертиров.

Сделано в 12-ом году...

 

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

Добрый вечер.

Я снова с бубном танцую вокруг relation гулагов военных. К актору разобрались, теперь бы еще к группировкам разобраться. Кому не лень, гляньте под спойлер :blush::

 

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

Для военных по дефолту установлен нейтралитет к "одиночкам" и актору. Задача - сделать гулаг атакующих группу Крота на Агропроме вояк враждебным - и группировке "одиночек", и актору.

 

Это - из gulag_agroprom.script. Выделенное жирным - мои вставки:

 

function load_states( gname, type )

    ...

    if type == "agr_factory_assault" then
        return function( gulag )


            local community = self.object:character_community()
                if community == "stalker" then
                xr_gulag.setGulagRelation ("agr_factory_assault", game_object.enemy, self.object)
            end


            local actor = db.actor


            xr_gulag.setGulagRelation ("agr_factory_assault", game_object.enemy, db.actor)


            if not actor then
                return gulag.state
            end
    …
 

Такое может быть? С актором для других гулагов работает - меня интересует по части группировки. Или - бред мой снова?

 

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

Всем привет... В ковырялке ОП 2.1 просто удалили сообщение,может тут кто поможет? Взял записку картографа до получения кода от прайма,теперь завис скрипт... Что и где в скрипте можно изменить,чтоб квест дальше пошёл?

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

Здравствуйте!

Кто подскажет, как еще используется функция who_hit_name() кроме случая self.object:who_hit_name()=="single_player"?

И как отследить хит/убийство одного моба другим мобом?

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

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

@Jekyll, who_hit_name() возвращает имя объекта, который последним нанёс хит "пострадавшему" объекту.

Отследить можно в каллбэке на хит.

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
16 часов назад, naxac сказал:

Отследить можно в каллбэке на хит

Это понятно. Мне хотелось бы увидеть пример использования who_hit_name() помимо "single_player". В добром десятке модов искал пример, но ничего другого не нашел. Отсюда напрашивается вывод, что либо ничего больше разрабы не придумали для этой функции, либо так уж очень она "нужна" в целом...:pardon:

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

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

@Jekyll, да, не так уж она и нужна. В каллбэк на хит же передается тот, кто хит нанес.

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Здравствуйте, написал вырвал из sgm мода простейший скрипт на починку пистолета, ружья и брони, засунул его в ui_main_menu.script туда, куда надо, а он совсем отказывается работать. Буду рад любой помощи.

elseif db.actor~=nil and dik==DIK_keys.DIK_R then 
                local pistol_in_slot=db.actor:item_in_slot(1)
                local rifle_in_slot=db.actor:item_in_slot(2)
                local outfit_in_slot=db.actor:item_in_slot(6)
                if outfit_in_slot~=nil then outfit_in_slot:set_condition(1.0) end
                if pistol_in_slot~=nil then pistol_in_slot:set_condition(1.0) end
                if rifle_in_slot~=nil then rifle_in_slot:set_condition(1.0) end

P.S. При нажатии на кнопку не происходит не вылета, не зависаний, просто ничего:mda:

Изменено пользователем Pug-Lover
Добавлено  Murarius,

Перемещено.

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

@Pug-Lover, это где это то самое "туда, куда надо"?:)

Тут кусок кода от одной из моих аномалий - чинятся оружейные слоты и броник - применительно к твоему случаю - вклеить в ui_main_menu.script:

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

  if dik==DIK_keys.DIK_R then
  local slot = {1,2,6}
   for n = 1,table.getn(slot) do
   local item = db.actor:item_in_slot(slot[n])
    if item ~= nil then
     item:set_condition(1)
    end
   end
  end

после строчки

if keyboard_action == ui_events.WINDOW_KEY_PRESSED then

Проще по-моему уже некуда.

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

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

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

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

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

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

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

Войти

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

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

AMK-Team.ru

×
×
  • Создать...