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

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

В 14.03.2018 в 20:49, dimka02 сказал:

Возможноли как-то сохранить/загрузить название секции оружия находящегося в слоте ?

Да, в псторе.

Если вы о сейвах.

Изменено пользователем Graff46
  • Спасибо 1
Ссылка на комментарий

Давно практики не было, подкскажите, как более лаконично получить все артефакты на текущем уровне? Платформа cop.

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

Нашёл такой код:

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

local explosive_weapons = {
    ["wpn_rg-6"] = true,
    ["wpn_rpg7"] = true,
    ["grenade"] = true
    }
function npcondeath(victim, who)
    if IsStalker(who) then
  local active_item = who:active_item()
  local active_slot = who:active_slot()
  if (active_item and (active_slot == 1 or active_slot == 2)) or active_slot == 3 then
   local section = active_slot ~= 3 and active_item:section() or "grenade"
   if explosive_weapons[section] then
    particles_object("anomaly2\\body_tear_00"):play_at_pos(victim:bone_position("bip01_head"))
   end
  end
    end
end

 

Но, почему-то, партикл body_tear_00 отыгрывается даже при убийстве из любого дробовика, хотя их нет в списке. Прошу людей разбирающихся помочь. Сказали, что код из Simbion мода, но там такого не нашёл. И ещё, хотелось бы, чтобы труп после смерти исчезал. Хотя я понимаю, что тут нужна проверка на квестовость непися... Но может у кого нибудь уже есть готовое решение ?

Ссылка на комментарий
В 19.03.2018 в 10:39, Space.Marine сказал:

Нашёл такой код:

попробуйте этот:

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

local explosive_weapons = {
    ["wpn_rg-6"] = true,
    ["wpn_rpg7"] = true,
    ["grenade"] = true
    }
function npcondeath(victim, who)
    if IsStalker(who) then
  local active_item = who:active_item()
  local active_slot = who:active_slot()
  if (active_item ) then
   local section = active_item:section()
   if explosive_weapons[section] or active_slot == 3 then
    particles_object("anomaly2\\body_tear_00"):play_at_pos(victim:bone_position("bip01_head"))
   end
  end
    end
end

 

 

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

Столкнулся тут с такой проблемой. Хм...Решил что лучше здесь спросить, а не в ковырялке.

Имеем такую логику персонажа. Сразу оговорюсь - val - это Темная Долина, а не мания величия.

[logic]
active = {-val_barman_1_sleep}walker@val_bar_sleep,sleeper@val_barmen

[walker@val_bar_sleep]
path_walk = val_barman_go_sleep_walk
path_look = val_barman_go_sleep_look
on_signal = val_sleep_bar | sleeper@val_barmen %+val_barman_1_sleep%

[sleeper@val_barmen]
path_main = val_bar_1_sleep_walk

Согласно логике НПС должен подойти к диванчику, по сигналу из точки пути перейти в следующую схему(выдав поршень) и завалиться спать на этот диванчик.

В действительности происходит следующее. По логу:

on_signal___(c.v1___=___val_sleep_bar)___signalled___[val_barman_1] ----сигнал есть.
 npc = 'single_player' give_info_portion id = 'val_barman_1_sleep'             ----выдан поршень

Далее.

object___'val_barman_1':___activate_by_section:___looking___for___section___'sleeper@val_barmen'
reset_generic_schemes_on_scheme_switch:___npc:name()='val_barman_1'
calling___module('xr_sleeper')

Ну - судя по всему - в следующую схему он перешел. И тут начинается самое интересное.

Scheduler tried to update object val_barman_1

Перец раскорячивается в точке пути и не идет на диванчик. При этом с ним можно разговаривать да и видно, что он находится под логикой sleeper@

а не в nil допустим.

Путь для секции sleeper@ абсолютно рабочий. Проверено удалением предыдущей секции.

Пробовал переводить перца из волкера в ремарк и далее по таймеру в слипер с выдачей поршня. Тогда еще интересней - виснет в ремарке, не выдавая поршень.

Взрыв мозга уже. Подумываю обойтись без Бармена))

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

попробуйте этот:

Ничего не поменялось. Партикл проигрывается, как и раньше при убийстве из любого мощного ствола (дробовик, СВД и пр.) Если что - платформа ЗП.

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

@Space.Marine 

Мне кажется слот проверять совершенно не нужно. Попробуй в варианте от @Graff46 оставить в условии только наличие итема в таблице:

if explosive_weapons[section] ~= nil then

 

  • Спасибо 1

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


Подарки

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

    Scheduler tried to update object

    как правило - перемещение или анимации.

    В ремарке без перехода куда-либо еще как себя ведет ?

     

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

    @Dennis_Chikin 

    А без перехода я не пробовал.

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

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

    Попробуй

    Завтра проверю, но... Если в условии есть конкретно переменная explosive_weapons и для неё заданны конкретные параметры wpn_такое-то, то какого не работает ? 

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

    Возможно ли такое поведения скрипта из-за того, что у меня значения k_ap и k_hit в конфигах некоторых боеприпасов больше единицы ? 

    Изменено пользователем Space.Marine
    Ссылка на комментарий
    or "grenade"
       if explosive_weapons[section] then

    А что, вообще, хотели этим сказать ?

     

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

    А что, вообще

    Как я уже упоминал, я не специалист и, даже, не любитель. Я так понимаю, что условия такие, если некоторые заданные в explosive_weapons стволы а также гранаты, то - бабах ! Код из Simbion, как говорят. И, да, там есть фишка на эффект разрыва трупов для дум-дум боеприпаса (из описания мода). Как я припоминаю, это всё, тянется ещё из АМК мода для ТЧ. Я просто не понимаю, неужели это настолько проблематично (скорее просто на не нужно) решить спецам ? 

    Изменено пользователем Space.Marine
    Ссылка на комментарий
    8 часов назад, Dennis_Chikin сказал:

    А что, вообще, хотели этим сказать ?

    При активных 1 и 2 слотах проверяется секция оружия, 3-ий слот считается гранатным ив нем проверка не делается.

    Мне кажется номера слотов, что в ТЧ, что в ЗП несколько другие, из-за того и глюки.

    • Согласен 1

    Подарки

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

    Господа Скриптоведы .Кто знает, какой файл в Lost Alpha управляет патронами на поясе? Хочу отключить. В интернате ни черта не могу найти(((

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

    А что, вообще, хотели этим сказать ?

    Если ты имел в виду синтаксическую ошибку, то её там нет. Условие является независимым, а предыдущую строку надо читать целиком, как самостоятельное присвоение:

    local section = active_slot ~= 3 and active_item:section() or "grenade"

     

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

    if who:active_slot() == 3 then ...

    else

      local item = who:active_item()

      if item and t[item:section()] then ...

      end

    end

     

    Может, все-таки так ?

     

    Или сразу:

    if who and who.active_slot and ( ( who:active_slot() == 3 ) or ( who:active_item() and t[who:active_item():section()] ) ) then ... end

     

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

    А вот кстати еще один животрепещущий вопрос. Что за гадская схема kamp

    Какой раз уже сталкиваюсь - если непись идет с пути патрулирования к костру...уже находится под схемой kamp...то если его в момент передвижения(до того - как он уселся) - дернуть в другую схему, то сразу срабатывает Scheduler

    Я конечно это дело обошел, методом дописывания неписю еще одного пути прямо к костерку по схеме walker, но что-то меня это начало утомлять.

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

    Изрядно гадская, да. Пришлось шаманствовать с removeNpc():

        local kamp_end = xr_evaluators_id.stohe_kamp_base + 1
        local on_pos = xr_evaluators_id.stohe_kamp_base + 2
    
        local mgr = npc:motivation_action_manager()
    
    -- todo: слишком сложно. ПРОСТО оторвать лишние эвалюаторы СОВСЕМ. Оставить все в одном.
        local a = mgr and mgr:action( xr_actions_id.alife )
        if a then a:remove_precondition( kamp_end )
        else log( "warning", "(%s):removeNpc, no action (alife) (%s)", self.center_point, npc:name() )
        end
    
        a = mgr:action( xr_actions_id.stohe_kamp_base + 3 )
        if a then
            xr_logic.unsubscribe_action_from_events( npc, st, a )
            mgr:remove_action( xr_actions_id.stohe_kamp_base + 3 )
            -- log( "info", "(%s):removeNpc, %s, 2", self.center_point, npc:name() )
        else log( "warning", "(%s):removeNpc, no action (action_kamp_wait) (%s)", self.center_point, npc:name() )
        end
    
        mgr:remove_action( xr_actions_id.stohe_kamp_base + 1 )
        -- log( "info", "(%s):removeNpc, %s, 3", self.center_point, npc:name() )
    
        mgr:remove_evaluator( kamp_end )
        -- mgr:add_evaluator( kamp_end, property_evaluator_const( true ) )
        mgr:remove_evaluator( on_pos )
        -- mgr:add_evaluator( on_pos, property_evaluator_const( true ) )
    
        -- if npc:name() == "bar_dolg_ivancov" then
        --    log( "info", "(%s):removeNpc, %s, remove_evaluators, ok", self.center_point, npc:name() )
        -- end
    
        st.on_position = false    -- поскольку строжейж грохнуть не дают, сделаем вид, что он новый.
        st.count = 0
        st.pos_lvid = nil
        st.dest_lvid = nil
    
    

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

    Я тут поэкспериментировал и вроде как получается, что в спавне (скриптом) можно не указывать точно гейм-вертекс, главное что бы он был с данной локации (на которой спавним)...

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

    Доброго времени!

    Каким способом можно реализовать удаление предмета из инвентаря с течением времени с момента взятия этого предмета.

    Пример: экзоскелет работает только с аккумулятором (это я сделал), но через некоторое время аккумулятор разряжается и удаляется из рюкзака.

    Подайте идею.

    Важнейшая задача цивилизации - научить человека мыслить.

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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