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

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

1 час назад, Norman Eisenherz сказал:

уведомление скрывается при переходе на другую локацию

А при Save/Load'е?

Мне кажется, что info_callback срабатывает только один раз, при выдаче.

S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


Подарки

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

    @WinCap При перезагрузке на Кордоне уведомление остается. Вроде такая же последовательность net_destroy / net_spawn…

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

    Шпаргалка

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

    @Norman Eisenherz, вместо нет-спавна лучше используй первый апдейт.

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

    naxac.gif


    Подарки

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

    Потестил еще: на Кордоне уведомление отображается всегда после 1-й загрузки, на Свалке или после перехода Кордон > Свалка > Кордон всегда после 2-й загрузки. В обоих случаях тестил с выходом из игры и с обычной перезагрузкой. Сделал add_call на прогрузку ГГ – уведомление отображается каждый раз.

    (Инфо-поршень "esc_bridge_pass_off", как выяснилось, вообще не выдается до возврата на Кордон, но это уже другой вопрос).

     

    @naxac "Первый апдейт" – привязаться к actor_binder:update(delta) и остановить выполнение после однократного выведения статика, или речь о чем-то другом?

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

    Шпаргалка

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

    @Norman Eisenherz, да. В ТЧ со статиками всегда такая фигня: после перехода между локациями они не выводится из нет-спавна, где-то что-то, видимо, не успевает отработать как надо, потому что новый уровень грузится.

    • Согласен 1

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

    naxac.gif


    Подарки

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

    @Norman Eisenherz, осмелюсь предложить свой вариант.

    Для разрешения прохода нужно выдать "esc_bridge_pass_on".

    Когда ГГ воспользуется проходом, или его по каким-то причинам отменят, нужно удалить "esc_bridge_pass_on".

     

    Скрытый текст
    
    local need_update = true
    local has_static = false
    
    -- // actor_binder:info_callback(npc, info_id) // --
    function info(info_id)
    	if info_id == "esc_bridge_pass_on" then
    		local time_hrs = level.get_time_hours() + 1
    		local time_min = level.get_time_minutes()
    		time_min = math.ceil(time_min/10)*10
    		if time_min == 60 then
    			time_min = 0
    			time_hrs = time_hrs + 1
    		end
    		if time_hrs > 23 then time_hrs = time_hrs - 24 end
    		xr_logic.pstor_store(db.actor, "time_hrs", time_hrs)
    		xr_logic.pstor_store(db.actor, "time_min", time_min)
    		need_update = true
    	end
    end
    
    -- // actor_binder:update(delta) // --
    function update()
    	if not need_update then return end
    
    	if not db.actor:has_info("esc_bridge_pass_on") then
    		get_hud():RemoveCustomStatic("bridge_pass")
    		need_update = false
    		has_static = false
    		return
    	end
    	
    	local time_hrs = level.get_time_hours()
    	local time_min = level.get_time_minutes()	
    	local pstor_hrs = xr_logic.pstor_retrieve(db.actor, "time_hrs", 0)
    	local pstor_min = xr_logic.pstor_retrieve(db.actor, "time_min", 0)
    	if (time_hrs >= pstor_hrs) and (time_min > pstor_min) then
    		db.actor:disable_info_portion("esc_bridge_pass_on")
    		return
    	end
    	
    	if has_static then return end
    	local st = get_hud():AddCustomStatic("bridge_pass", true)
    	st:wnd():SetTextST(string.format("Проход до %02d:%02d", pstor_hrs, pstor_min))
    	has_static = true
    end

     

     

    S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


    Подарки

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

    Здрасьте.

     

    Попадалась информация о старой версии мода "Худ рук", в которой текстура рук подменялась за счет классов то ли оружия, то ли брони. Кто-нибудь помнит, как этот мод работал? Хочется назначить 3–4 вида перчаток без полной замены моделей рук и перехода на правозатворное оружие.

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

    Шпаргалка

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

    о старой версии мода "Худ рук"

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

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

    naxac.gif


    Подарки

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

    @naxac А новая версия правит движок, чтобы позволить прямую замену текстур… Тогда все, снимаю вопрос.

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

    Шпаргалка

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

    Подскажите по системе зон в которые НПС не могут ходить? Вроде это сделано рестрикторами. И какие есть методы ограничивать навигацию НПС в игре.

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

    Если про исходно-ТЧ-оригинальный механизм, то там у них в нетпакете хранится табличка in-рестрикторов и out-рестрикторов.

    Хранятся там собственно id объектов. В шейп которых нельзя заходить / нельзя выходить. И там же дивные заморочки на тему того, что если рестриктор допустим удаляется, то его упоминания надо удалять из памяти все нпс и мутантов (а у них такая же система). Иначе непременный вылет, и конечно же, без лога. Как же иначе-то. Но так же не возбраняется в любой момент рестриктор создать-настроить, и записать в память всем кому надо.

    Впрочем, я таки полагаю что при открытых исходниках вся эта болтовня не очень актуальна. И в куче движков уже может быть все совсем иначе.

    • Полезно 1

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

    Здрасьте.

     

    ТЧ 1.0006, Армейские склады: сообщение "Сталкер, ты подходишь к барьеру" выдается дважды. В описании рестриктора только одно сообщение, в [xr_effects] такого сообщения нет. Где искать лишнюю копию?

     

    Spoiler
    
    [alife_l07_military.ltx]
    name = mil_actor_blockpost					-- текст сообщения
    type = tips							-- тип сообщения: "send_tip"
    on_info = {=mil_actor_enemy_freedom} nil			-- проверка друг/враг
    on_actor_inside = %+mil_blockpost_free_task%			-- инфо "mil_blockpost_free_task" (+ задание "mil_blockpost_job")
    on_info2 = {+mil_blockpost_free_task} sr_sound_act		-- звуковое сообщение при получении инфо-поршня
    sender = freedom						-- отправитель текстового сообщения
    on_signal = tip_sended | sr_idle				-- ? (деактивация рестриктора)

     

     

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

    Шпаргалка

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

    @Norman Eisenherz, забыли добавить single = true, наверное.

    Мне кажется, правильным будет такой вариант:

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

    [sr_tip1]
    name = mil_actor_blockpost
    type = tips
    sender = freedom
    on_info = {=mil_actor_enemy_freedom} nil
    on_actor_inside = sr_sound_act %+mil_blockpost_free_task%

     

    S.T.A.L.K.E.R. CoP Objects (upd 10.04.24)


    Подарки

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

    Кто знает, что с Шустрым не так? Он, зараза, спаунится с НИ, несмотря на то, что в all.spawn ему указал

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

    [spawner]
    cond = {+tutorial_wounded_start}

    С бандитами на АТП это работает.

    Здесь могла быть ваша реклама.


    Подарки

  • 5
  • 4
  • 3
  • 4
  • Ссылка на комментарий

    @mole venomousтуттут и тут.  object_flags возможно?

    Изменено пользователем Купер
    • Спасибо 1
    • Полезно 1
    Ссылка на комментарий
    On 3/28/2020 at 9:37 PM, WinCap said:

    @Norman Eisenherz, забыли добавить single = true, наверное.

    Мне кажется, правильным будет такой вариант:

      [sr_tip1] (Reveal hidden contents)

    [sr_tip1]
    name = mil_actor_blockpost
    type = tips
    sender = freedom
    on_info = {=mil_actor_enemy_freedom} nil
    on_actor_inside = sr_sound_act %+mil_blockpost_free_task%

     

    Добрался, наконец, попробовать: просто "single = true" в имеющейся логике убирает второй текст, но затыкает и звук, и задачу. Без "single = true" сообщений, как ни крути, выдается два. В итоге, вот такой порядок дает нужный результат:

    Spoiler
    
    [alife_l07_military.ltx]
    name = mil_before_blockpost_restriktor
    …
    [logic]
    active = sr_idle
    
    [sr_idle]
    on_info = {=mil_actor_enemy_freedom} nil
    on_actor_inside = %+mil_blockpost_free_task%
    on_info2 = {+mil_blockpost_free_task} sr_tip
    
    [sr_tip]
    name = mil_actor_blockpost
    type = tips
    sender = freedom
    single = true
    on_signal = tip_sended | sr_sound_act
    
    [sr_sound_act]
    snd = characters_voice\scenario\military\pda\mil_pda_7
    on_signal = sound_end | nil

     

     

    Добавлено  HellRatz,

    Запрещен оверквотинг (цитирование сообщения большого объема, спойлеров, изображений).
    Для цитирования достаточно выделить нужную часть сообщения.
    Устное предупреждение по пункту 2.6 правил форума.
    Правила цитирования

    • Нравится 1

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

    Шпаргалка

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

    @Norman Eisenherz, Я всегда, кстати, думал, где, как и почему выдается сообщение, логику копал. А дело-то в рестрикторе.

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

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

    Здрасьте.

     

    Есть ли какой-то фикс для меток, которые остаются после сюжетных заданий (АТП, X-16, РГ-6)? Пробовал удалять метки по инфо-поршням завершения заданий – удаление срабатывает через раз, как будто инфо-поршни не выдаются, хотя сами задания засчитываются стабильно.

    ТЧ 1.0006

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

    Шпаргалка

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

    Что это значит: https://ap-pro.ru/forum/100-9999-826370-16-1452102986

    Цитата

    уникальный id объекта который ему назначил движек при спавне.
    alife():object(id) - возвращает объект, с таким номером.

    ?

     

    Это какая-то проверка, помогающая найти ID объекта? Если да, то как правильно и куда ещё вписывать, чтобы потом прочесть в логе.

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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