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

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

@vampirnik77 , можно на месте спавна ГГ рестриктор поставить, который запустит функцию и после этого выключится/удалится.

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

naxac.gif

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

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

 

@vampirnik77 ну вот ещё вариант. Выдавать из нетспауна поршень, у которого в action указана функция. Но опять же, это тот же флаг с видом сбоку, просто проверкой будет заниматься движок.

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

Граждане, да вы издеваетесь...

 

bind_stalker.actor_binder:net_spawn() вызывается таки один раз при старте/загрузке.

При НИ в bind_stalker.actor_binder:update() используется с оригинала еще проверка

        if not has_alife_info("storyline_actor_start") and
           (level.name() == "l01_escape")
        then
            self.object:give_info_portion("storyline_actor_start")
            _G.g_start_avi = true
            printf("*AVI* RUN START AVI")            
        end

- стартовый ролик, ага ?

 

P.S. Давайте добавим на каждую локацию ТЫЩУ рестрикторов. И будем их все перебирать каждые 20ms для проверки - какой надо удалить.

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

@Dennis_Chikin а чего их перебирать-то. Отработал свое и давай, как говорится, до свидания, типа вот такого:

on_info = {+night_watch_done} nil %=dsh.release_alive_npc%

А вот этим, которые эту проверку засунули в апдейт, я бы руки сразу на место переставил. А то они там еще и не такое в апдейт засунут.

 

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

Так это с версии 0.0000 какой-нибудь. Когда еще половина движка вообще не работала. И с тех пор ни кто и не убирал.

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

[logic]
active = remark@1

[remark@1]
no_move = true
target = actor
on_info = {+start_pas} remark@p

 

[remark@p]
anim = guard_rac
snd = esc_pash
;target = nil
on_signal = sound_end| remark@vodka

 

[remark@vodka]
anim = eat_vodka
no_move = true
target = nil

Вылетает при переходе на remark@p с логом:

Цитата

! Unknown command:  dbg:!-!-!-_Принудительный_Вылет_-!-!-!
[07/16/17 13:09:31]    ! Unknown command:  ERROR:_ERROR:_ILLEGAL_PLAY_SOUND!!!_esc_pash_for_esc_pashal_stalker
[07/16/17 13:09:31]    * Log file has been saved successfully!
[07/16/17 13:09:31]     
[07/16/17 13:09:31]    FATAL ERROR
[07/16/17 13:09:31]     
[07/16/17 13:09:31]    [error]Expression    : fatal error
[07/16/17 13:09:31]    [error]Function      : CScriptEngine::lua_error
[07/16/17 13:09:31]    [error]File          : script_engine.cpp
[07/16/17 13:09:31]    [error]Line          : 73
[07/16/17 13:09:31]    [error]Description   : <no expression>
[07/16/17 13:09:31]    [error]Arguments     : LUA error: e:\monolith_core\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (no value)

Вижу, что ругается на трек проигруемый. Но я без понятий, что с ним не так. Звуковую тему  esc_pash прописал в sound_theme как положено. Так в чем трабл?

Не соответствует правилам.

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

active = remark@1

Совсем плохо... remark не предназначен для активной схемы. 

 

Звук в моно, 44100 ?

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

@Fagot. знаю, что не предназначен. Но это абсолютно не критично в моём случае.

Проблему пофиксил - не так работал с sound_theme(забыл что, да как).

Не соответствует правилам.

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

Использую модули Artos'a из этого поста, не могу понять почему ловлю вылет когда подключаю новый уровень.

В логе ничего ценного, вроде. Если закоментить аварийное прерывание exit(), то работает, но это не выход.

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

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...l.k.e.r - call of pripyat\gamedata\scripts\_g.script:857: attempt to call global 'exit' (a nil value)

 

Ссылка на комментарий
В 15.07.2017 в 23:30, vampirnik77 сказал:

думал может какие еще варианты есть

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

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

Как в ТЧ форсировать начало диалога от лица НПЦ? Тоесть НПЦ подходит, и диалоговое окно открывается по его воле. 

В ЗП такую фишку помню, а вот для SoC не припоминаю. Но вдруг есть "костыли"? 

Не соответствует правилам.

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

Но вдруг есть "костыли"?

Костыли не костыли, но если в логике NPC в секции его meet в полях use и (или) use_wpn указать ключ self, то NPC самостоятельно "заведёт" разговор с ГГ, как только позволит расстояние. Например:

[meet@balalayka]
meet_state = 10|guard@wait
meet_state_wpn = 10|guard@wait
victim = 10|actor
victim_wpn = 10|actor
use = {=dist_to_actor_le(2)} self, false
use_wpn = {=dist_to_actor_le(2)} self, false
meet_dialog = dialog_balalayka

Здесь: если расстояние между NPC и ГГ становится менее 2 метров (независимо от того, есть ли в руках ГГ оружие или нет), то автоматически запустится диалог dialog_balalayka.

Но, возможно, понадобится дополнительно внести небольшое изменение в файл xr_meet.script (разработчики случайно или намеренно не добавили/удалили одну строчку, из-за чего ключ self не срабатывал), после этих строк:

  elseif t == "self" then
    if not is_talking then
--      printf("MM3 %s start talk", self.npc:name())

добавить строчку:

self.npc:enable_talk()

И всё должно заработать, как и было задумано.

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

Такая проблема, работаю с окнами и ловлю вылет. Вылет происходит когда из первого окна открываю второе, потом закрываю его и сразу повторяю процедуру.

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

stack trace:

0023:054BAC1E luabind.beta7-devel.rc4.dll, luabind::detail::do_call_member_selection()
0023:0801EDBA xrGame.dll, CDialogHolder::OnFrame()

 

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

Привет, народ. Напомните, пожалуйста, как удалить все вещи из инвертаря ГГ, не трогая ПДА, Нож, Бинокль(в общем не трогая определенные item-ы).

Не соответствует правилам.

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

@CRAZY_STALKER666 ,





  local can_leave = {

    wpn_knife = true,

    wpn_binoc = true,

    device_pda = true

  }

  local sim, obj = alife(), nil

  db.actor:iterate_inventory(

    function (dummy, item)

      obj = sim:object(item:id())

      if obj and can_leave[item:section()] == nil then

        sim:release(obj, true)

      end

    end,

  nil )

  • Спасибо 2

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

naxac.gif

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

Приветствую всех.
Хочу сразу перейти к делу. Изучаю моддинг по сталкеру тч. Уже научился некоторым плюхам и пока чего-то изучаю и добавляю, постепенно выстраивается свой собственный мод. :)
Вот хочу добавить проигрывание звуков при использовании аптечки, колбасы, хлеба, консервы, бинта и антирада. Плохо понимая, я старался делать всё как указано на сталкер-вики. Естественно у меня ничего не получилось.
Кто может мне помочь советом, или же киньте готовый скрипт, буду благодарен.

P.S: Изучил эту ветку по поисковику. Решение своей проблемы не обнаружил.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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