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

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

Прошу помощи! Не срабатывает проверка:

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

function generic_object_binder:use_callback(obj, who)
    if self.use_flag == nil and self.object:section()~="m_trader" then
    self.object:set_nonscript_usable(false)
    self.use_flag = true

end
    if self.object:alive() or self.used then return end

    local knife = who:item_in_slot(0)
    if who:id() ~= db.actor:id() or (knife~=nil and who:active_slot() == 0) then
    local wnd = mutant_lut.MutaNTlut(obj,who)
    level.start_stop_menu(wnd, true)
    wnd.owner = self
    self.used = true
    else
    news_manager.send_tip(db.actor,"1 есть!")

    if db.actor:item_in_slot(0):condition() <= 0.20 then
    news_manager.send_tip(db.actor,"2 есть!")
end
    return
end
end

 

Изменено пользователем Colder

Подарки

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

    Всем привет, пилил озвучку ГГ во время убийства мутантов на ЗП, все ок, звуки запускаются, но обрываются спустя 2 секунды. С файлами звуков все окей, вне игры воспроизводятся полностью. С чем это может быть связано? Код в bind_monster.script, в функции death_callback:
     

    local snd_ppc = {
    [clsid.bloodsucker_s] = {'ppc\\kill\\humanoid_1','ppc\\kill\\monster_1'}
    }
    if snd_ppc[victim:clsid()] then
    sound_object(snd_ppc[victim:clsid()][math.random(#snd_ppc[victim:clsid()])]):play(db.actor,0,sound_object.s2d)			
    end

     

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

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

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

    Может кто-нибудь подсказать, где прописано расстояние, на котором НПС "видят" бесхозные арты и начинают идти к ним?
    Ну и вообще, где прописано, что они должны собирать бесхозные арты?
    ----------
    Хочу или сильно урезать им зрение именно на счёт артов, а не вообще.
    Или отменить совсем эту их функцию. 
    Арты в поле должны спавняться исключительно для игрока, а не для НПС (имхо). И мне сильно не нравится, что мои арты берёт кто-то кроме меня :)

    Изменено пользователем mikelik
    • Нравится 1
    • Смешно 2

    Мысли, написанные с грамматическими ошибками, невозможно воспринимать как умные.

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

    @mikelik в watcher_act.script скорее всего. У тебя же NLC, это важно. Там свои велосипеды. @Okichi может знать, она что-то меняла там.

    • Спасибо 2
    • Согласен 2
    • Полезно 1
    Ссылка на комментарий
    1 час назад, mikelik сказал:

    мне сильно не нравится, что мои арты берёт кто-то кроме меня

    :offtopic:

     

    • Нравится 1
    • Смешно 4

    Отношения между людьми- главная ценность в человеческом обществе.
    Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
    Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
    Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

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

    Арты в поле должны спавняться исключительно для игрока

    Как сказали выше, watcher_act. В АМК и многих модах на его базе можно отсечь арты сразу по классу или по секции (в ф-ии "ev_see_stuff:evaluate" локальная ф-ия "check_item(o)"). И в НЛС вроде бы всё похожее. Но остаётся ещё оффлайн воровство (amk_offline_alife.script) 

    ps У меня самого, кстати, не выходит запретить неписям подбирать оружие. Пробовал вносить в исключения по классу, по секции и даже как IsWeapon(obj), всё равно подбирают. Всем остальным побрезгуют, если вещь в исключениях...

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

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


    Подарки

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

    Но остаётся ещё оффлайн воровство (amk_offline_alife.script)

    Спасибо. Нашёл.
    Чтобы не разбираться сильно в расстояниях "видимости" артов и не напортачить, просто закомментировал весь класс артов.
    Конечно, будет немного глупо выглядеть, если арт окажется прямо под ногами НПС, а тот будет брезговать. :) Ну да не страшно, такой случай, может, только один на всю игру будет.

     

    А воровство, оно же с ящиков и нычек. Это не подбор полевых артов. Без воровства никак, если в игре есть платные камеры хранения.

    • Согласен 1
    • Полезно 1

    Мысли, написанные с грамматическими ошибками, невозможно воспринимать как умные.

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

    А воровство, оно же с ящиков и нычек

    Ну с пола они тоже поднимают в оффлайне...

    Изменено пользователем mole venomous
    • Полезно 1

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


    Подарки

  • 5
  • 2
  • 4
  • 5
  • Ссылка на комментарий
    3 часа назад, mole venomous сказал:

    У меня самого, кстати, не выходит запретить неписям подбирать оружие.

    Можно попробовать добавить в конец биндера watcher_act.script, что-то типа:

     

    action = manager:action(stalker_ids.action_gather_items)
    --action:add_precondition(world_property(evid_see_stuff, false))
    action:add_precondition(world_property(evid_near_stuff, false))

    • Спасибо 1
    • Полезно 1
    Ссылка на комментарий
    2 часа назад, gam сказал:

    добавить в конец биндера watcher_act.script, что-то типа

    Спасибо за наводку. Подсмотрел кое-где, изменил ф-ию "add_to_binder"  и теперь можно НПСам запрещать брать указанное оружие.

    • Нравится 1

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


    Подарки

  • 5
  • 2
  • 4
  • 5
  • Ссылка на комментарий
    5 hours ago, mole venomous said:

    У меня самого, кстати, не выходит запретить неписям подбирать оружие.

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

    @mole venomous не поможет, если непись будет близко с оружием, грубо говоря, пройдет по нему. Если оружие окажется лучше имеющегося, он его просто пропылесосит. Это тоже самое, как если в непися бросить оружие.

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

    @dsh , я думаю, что именно 

    8 минут назад, dsh сказал:

    не отключить полностью

    но частично прогресс есть. Раскидав кучи запрещённых и разрешённых стволов, всё проверил.

    Но если в одной куче будет всякое, видимо, будет именно так:

    10 минут назад, dsh сказал:

    грубо говоря, пройдет по нему

    и всё таки стырит.

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


    Подарки

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

    Вылет при загрузке сохранения (любого):
    [error]Expression    : !m_error_code
    [error]Function      : raii_guard::~raii_guard
    [error]File          : ..\xrServerEntities\script_storage.cpp
    [error]Line          : 748
    [error]Description   : pure virtual function called
     

    О чём говорит эта ошибка? Я не знаю, на каком этапе этот вылет появился, только сейчас заметил.

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

    Чтобы не разбираться сильно в расстояниях "видимости" артов

    Миша, у тебя сборка на основе 3.7 - а это значит, что все необходимое в скриптах там уже есть, я делала.
    И в вотчере, и в амк_оффлайн_алайф добавлена обработка нового параметра из конфига, который говорит неписям " не сметь это трогать, оно тебе не надо от слова совсем".
    Взято из ДШ-мода, само собой.
     
    Единственное, что тебе нужно  сделать - это в базовой для всех твоих артов секции добавить вот такой параметр:
    watcher_act.bad_item = true

    Пример можешь посмотреть в artefacts_unique.ltx, там я вставляла этот параметр для  единственного квестового арта, который спавнился после диалога с Юриком как награда , чтоб этот арт тут же не воровали сидящие в лесочке сталки.
    Ты же можешь добавить его прямо в секцию af_base

    Изменено пользователем Okichi
    • Спасибо 1
    • Нравится 1
    • Полезно 2

    След от кругов на воде - это тоже след (с)

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

    @Colder Это настолько зашито в движок, что в ТЧ/ЧН делается попытка поставить в слот брони любой полученный предмет со словом "outfit" в секции – даже флешку.

    Параметр default_to_ruck = true в конфиге брони не помогает.

    • Спасибо 1

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

    Шпаргалка

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

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

    Как передать предмет неписю от актора не по секции, а по id? Нужно сделать это в диалоговом окне, типа как функцией "dialogs.relocate_item_section_from_actor(first_speaker,second_speaker,section)".

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

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

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

    При попытке загрузить игру получаю вылет:

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

    Expression    : fatal error
    Function      : CScriptEngine::lua_error
    File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
    Line          : 73
    Description   : <no expression>
    Arguments     : LUA error: ...Oaiu ?a?iiauey\gamedata\scripts\dxr_inventory.script:132: attempt to index global 'wpn1' (a nil value)

    Вот сам скрипт:

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


    local rec_wnd = nil
    local initial = false

    class "InvenToryWindow" (CUIScriptWnd)

    function InvenToryWindow:__init(owner) super()
        self.owner = owner
        self:Init(0,0,1024,768)
        self:InitControls()
    end
    --// ---------------------------------------------------------------------
    function InvenToryWindow:__finalize()
    end
    --// ---------------------------------------------------------------------
    function InvenToryWindow:InitControls()
        self.stat = CUIStatic()
        self.stat:Init(0,0,1024,768)
        self.owner:AttachChild(self.stat)
        local xml = CScriptXmlInit()
        xml:ParseFile("inventory_new.xml")

        self.fast_use_slots_wnd = axr_keylogger_use_slot.FastUseSlotsWnd(self)
        self.stat:AttachChild(self.fast_use_slots_wnd)

        wpn1 = xml:InitProgressBar("wpn1_condition_progress", self.stat)
        wpn1:Show(false)

        wpn2 = xml:InitProgressBar("wpn2_condition_progress", self.stat)
        wpn2:Show(false)

        wpn3 = xml:InitProgressBar("wpn3_condition_progress", self.stat)
        wpn3:Show(false)

        wpn4 = xml:InitProgressBar("wpn4_condition_progress", self.stat)
        wpn4:Show(false)

        outfit = xml:InitProgressBar("outfit_condition_progress", self.stat)
        outfit:Show(false)

        wpn8 = xml:InitProgressBar("wpn8_condition_progress", self.stat)
        wpn8:Show(false)

        wpn9 = xml:InitProgressBar("wpn9_condition_progress", self.stat)
        wpn9:Show(false)

        wpn10 = xml:InitProgressBar("wpn10_condition_progress", self.stat)
        wpn10:Show(false)

        initial = true
    end
    --// ---------------------------------------------------------------------
    function InvenToryWindow:ShowWnd()
        if initial and rec_wnd.stat~= nil then
        rec_wnd.stat:Show(true)
    end
    end
    --// ---------------------------------------------------------------------
    function InvenToryWindow:HideWnd()
        if initial and rec_wnd.stat~= nil then
        rec_wnd.stat:Show(false)
    end
    end
    --// ---------------------------------------------------------------------
    function InvenToryWindow:DetachWnd()
        self.owner:DetachChild(self.stat)
        initial = false
    end
    --// ---------------------------------------------------------------------
    local inventory_window

    function on_info(info_id)
        if info_id=="ui_inventory" then
        inventory_window = level.main_input_receiver()
            if not initial then
        rec_wnd = InvenToryWindow(level.main_input_receiver())
    end
            if not rec_wnd.stat:IsShown() then
        rec_wnd:ShowWnd()
    end
        elseif info_id=="ui_inventory_hide" then
        if rec_wnd then
        rec_wnd:DetachWnd()
    end
    end
    end
    --// ---------------------------------------------------------------------
    function on_update()
        if db.actor:has_info("ui_inventory") then
        local wpn1_condition_progress = 0
        local wpn_1 = db.actor:item_in_slot(1)
        if wpn_1 then
        wpn1_condition_progress = wpn_1:condition()*101
        wpn1:Show(true)
        wpn1:SetProgressPos(wpn1_condition_progress) else
        wpn1:Show(false)
    end
        local wpn2_condition_progress = 0
        local wpn_2 = db.actor:item_in_slot(2)
        if wpn_2 then
        wpn2_condition_progress = wpn_2:condition()*101
        wpn2:Show(true)
        wpn2:SetProgressPos(wpn2_condition_progress) else
        wpn2:Show(false)
    end
        local wpn3_condition_progress = 0
        local wpn_3 = db.actor:item_in_slot(4)
        if wpn_3 then
        wpn3_condition_progress = wpn_3:condition()*101
        wpn3:Show(true)
        wpn3:SetProgressPos(wpn3_condition_progress) else
        wpn3:Show(false)
    end
        local wpn4_condition_progress = 0
        local wpn_4 = db.actor:item_in_slot(0)
        if wpn_4 then
        wpn4_condition_progress = wpn_4:condition()*101
        wpn4:Show(true)
        wpn4:SetProgressPos(wpn4_condition_progress) else
        wpn4:Show(false)
    end
        local outfit_condition_progress = 0
        local armor = db.actor:item_in_slot(6)
        if armor then
        outfit_condition_progress = armor:condition()*101
        outfit:Show(true)
        outfit:SetProgressPos(outfit_condition_progress) else
        outfit:Show(false)
    end
        local wpn8_condition_progress = 0
        local wpn_8 = db.actor:item_in_slot(8)
        if wpn_8 then
        wpn8_condition_progress = wpn_8:condition()*101
        wpn8:Show(true)
        wpn8:SetProgressPos(wpn8_condition_progress) else
        wpn8:Show(false)
    end
        local wpn9_condition_progress = 0
        local wpn_9 = db.actor:item_in_slot(9)
        if wpn_9 then
        wpn9_condition_progress = wpn_9:condition()*101
        wpn9:Show(true)
        wpn9:SetProgressPos(wpn9_condition_progress) else
        wpn9:Show(false)
    end
        local wpn10_condition_progress = 0
        local wpn_10 = db.actor:item_in_slot(10)
        if wpn_10 then
        wpn10_condition_progress = wpn_10:condition()*101
        wpn10:Show(true)
        wpn10:SetProgressPos(wpn10_condition_progress) else
        wpn10:Show(false)
    end
    end
    end

     


    Подарки

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

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

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

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

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

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

    Войти

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

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

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

    AMK-Team.ru

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