Перейти к содержанию

Shifr

Сталкеры
  • Публикаций

    12
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Shifr


  1. Всем здарова! Кто разбирается, можете подсказать, что за оружейный пак и графический аддон стоят в моде "Контракт на хорошую жизнь"? Или там что-то авторское? Просто уж очень красиво смотрится.


  2. 1 час назад, denis2000 сказал:

    Shifr СУдя по всему, ваш НПС не принял логику, которую вы должны были ему назначить через кастом дату в его секции, раз уж спавните таким архаичным способом.

    Вряд ли. Иначе, он бы начал случайно бродить по локации. А так, он просто стоит и втыкает на одном месте.


  3. 13 минут назад, BarmaGlot сказал:

    Shifr Подробности в студию, как именно "заспавнили", какой "функцией", каким "скриптом".

    function test_spawn()
    alife():create("test_npc",vector():set(-144.20622253418,10.000054359436,-202.291687011719),47191,2)
    end


  4. Всем привет! Недавно решил перегнать локацию Агропром из ЧН в ЗП. Ничего на ней не менял, просто декомпилировал, открыл в СДК, расставил граф поинты (4 штуки по краям), заспавнил ГГ, скомпилировал. Далее решил заспавнить на ней НПС. Создал 2 вэй поинта, на одном он должен стоять, а на другой смотреть. После прописал ему логику.
     

    Спойлер

    [logic]
    active = walker@stoit

    [walker@stoit]
    path_walk = agr_a1_npc_walk
    path_look = agr_a1_npc_look
    meet = no_meet
    def_state_standing = ward
    combat_ignore_cond = true
    combat_ignore_keep_when_attacked = true
    use_camp = false
    gather_items_enabled = false
    help_wounded_enabled = false
    corpse_detection_enabled = false

    Ну и потом заспавнил через скрипт, стандартной функцией.
    Так вот проблема заключается в том, что НПС просто тупо стоит в самой стандартной позе, вместо того чтобы держать руки за спиной. И ещё и в добавок смотрит в противоположную сторону от заданого вэй поинта. Такое ощущение, буд-то на месте его спавна отсутствует АИ-сетка, однак она там точно есть, проверял в СДК. В чем ещё может заключаться даная проблема и как её устранить?


  5. Создал смарт террейн и прописал ему такую логику:
     

    Спойлер

     

    [smart_terrain]
    max_population = 1

    [exclusive]
    glavniy = agroprom\test_squad_logic.ltx
    mehanik = agroprom\test_squad_logic.ltx
    stalker_1 = agroprom\test_squad_logic.ltx
    stalker_2 = agroprom\test_squad_logic.ltx
    stalker_3 = agroprom\test_squad_logic.ltx

     

    Далее создал логику самим НПС:
     

    Спойлер

     

    [logic@glavniy]
    active = walker@glavniy
    suitable = {=check_npc_name(glavniy)} true

    [walker@glavniy]
    path_walk = glavniy_walk
    path_look = glavniy_look
    meet = meet
    def_state_standing = ward
    invulnerable = true

    [logic@mehanik]
    active = walker@mehanik
    suitable = {=check_npc_name(mehanik)} true

    [walker@mehanik]
    path_walk = mehanik_walk
    path_look = mehanik_look
    meet = meet
    def_state_standing = ward
    invulnerable = true

    [logic@stalker_1]
    active = walker@stalker_1
    suitable = {=check_npc_name(stalker_default)} true

    [walker@stalker_1]
    path_walk = stalker_1_walk
    path_look = stalker_1_look
    meet = meet
    def_state_standing = sit_ass
    invulnerable = true

    [logic@stalker_2]
    active = walker@stalker_2
    suitable = {=check_npc_name(stalker_default)} true

    [walker@stalker_2]
    path_walk = stalker_2_walk
    path_look = stalker_2_look
    meet = meet
    def_state_standing = sit
    invulnerable = true

    [logic@stalker_3]
    active = walker@stalker_3
    suitable = {=check_npc_name(stalker_default)} true

    [walker@stalker_3]
    path_walk = stalker_3_walk
    path_look = stalker_3_look
    meet = meet
    def_state_standing = sit_knee
    invulnerable = true

    [meet]
    close_snd_hello = nil
    close_snd_bye = nil
    close_anim         = nil
    close_victim     = nil
    far_anim         = nil
    far_victim         = nil
    close_distance  = 0
    far_distance     = 0
    close_snd_distance = 3
    abuse           = false
    use = {=actor_enemy} false, true
    allow_break = false
    meet_on_talking = false

     

    После чего сделал сам сквад:
     

    Спойлер

    [test_squad]:online_offline_group
    faction = stalker
    npc = glavniy, mehanik, stalker_default, stalker_default, stalker_default
    target_smart = test_squad_smart
    story_id = test_squad

    Далее в логике рестриктора написал такое:
     

    Спойлер

     

    [logic]
    active = sr_idle@spawn

    [sr_idle@spawn]
    on_info = %=create_squad(test_squad:test_squad_smart)% sr_idle@nil

    [sr_idle@nil]

     

    И всё. Теперь мне нужно, чтобы при получении инфопоршня они все перешли в другую точку. Но как это сделать?


  6. 1 час назад, denis2000 сказал:

    Shifr 

    
    [zat_b22_medic]:online_offline_group
    ...
    target_smart = {+zat_b22_medic_respawn} zat_medic_home_smart, zat_stalker_base_smart

     

    Пробовал. Продолжает стоять на том же месте. Может быть дело в том, что у каждого НПС в скваде своя эксклюзивная логика, работающая через секцию "walker".


  7. Всем привет!
    Как сделать чтобы сквад НПС перебегал в другую точку(за пределы смарта в котором изначально заспавнен, каждый НПС имеет свою эксклюзивную логику), после получения определенного инфопоршня?


  8. 1 час назад, Paracetamol сказал:

    Shifr 

      скрипт (Скрыть контент)

    function название_функции()
    local cnt = db.actor:object_count()
    for i=0, cnt-1 do
    local item = db.actor:object(i)
    local sobj = alife():object(item:id())
    if sobj then
    alife():release(sobj,true)
    end
    end
    end

     

    Вылетает с таким логом:
     

    FATAL ERROR
     
    [error]Expression    : !m_error_code
    [error]Function      : raii_guard::~raii_guard
    [error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
    [error]Line          : 748
    [error]Description   : e:\test_mod\gamedata\scripts\xr_effects.script:3066: attempt to index local 'nightvision' (a nil value)


  9. Всем привет! Прописал НПС логику, такую логику:

    [logic]
    active = walker@1
    danger = danger_ignore

    [danger_ignore]
    ignore_distance = 5

    [walker@1]
    path_walk = walk_1
    path_look = look_1
    meet = meet
    invulnerable = true
    def_state_standing = sit
    on_info = {+first_dialog_end} walker@2

    [walker@2]
    path_walk = walk_2
    path_look = look_2
    meet = meet
    invulnerable = true
    def_state_standing = wait
    def_state_moving = assault

    [meet]
    close_snd_hello = nil
    close_snd_bye = nil
    close_anim         = nil
    close_victim     = nil
    far_anim         = nil
    far_victim         = nil
    close_distance  = 0
    far_distance     = 0
    close_snd_distance = 3
    abuse           = false
    use = {=actor_enemy} false, true
    allow_break = false
    meet_on_talking = false
    trade_enable     = false
    Как сделать чтобы после того как персонаж приходит в точку walk_2, выдавался инфопоршень?