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

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

 
 

X721s нужно было добавить ключ "-with_lods", для вопросов для СДК есть специальная тема, пишите туда:

 

  • Жму руку 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как скриптово закрыть инвентарь ГГ?


Дополнено 10 минуты спустя

Как прочитать булеан из параметра в .ltx файле? Метод utils.cfg_get_bool не помогает.
Мне нужно прочитать значение параметра storyline. Сделал так:
    local storyline = utils.cfg_get_bool(task_ini, id, "storyline", nil, false, true)
    if(storyline==false) then
    xr_sound.set_sound_play(db.actor:id(), "pda_task")
    end
    if(storyline==true) then
    xr_sound.set_sound_play(db.actor:id(), "pda_sos")
    end
Но почему-то всегда параметр true, даже если в секции квеста указать storyline = false.
Пробовал убирать true перед закрытием скобок, функция не работала ( не читала значение параметра).
Редактировал функцию send_task.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Winzor task_ini - что в этом параметре передаете?


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

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

Читаем из файла задач. Например для задачи [darkvalley_qwest,]  делается так:

local ini = ini_file("misc\\task_manager.ltx")

local string = ini:r_string("darkvalley_qwest", "storyline ")

if string == "true" then

 xr_sound.set_sound_play(db.actor:id(), "pda_sos")

else

xr_sound.set_sound_play(db.actor:id(), "pda_task")

end

 

 

 

Изменено пользователем makdm
  • Лайк 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как сделать звуки при подбираний предметов и звук при включений и выключений фонаря?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
35 минут назад, Крим сказал:

Как сделать звуки при подбираний предметов и звук при включений и выключений фонаря?

Подбирание - файл bind_stalker.script

Функция actor_binder:on_item_take
 

Спойлер

 

local s_obj = alife():object(obj:id())

if (s_obj) and (s_obj:section_name()=="имя секции") then

xr_sound.set_sound_play(db.actor:id(), "id звука")

end

 

Плюс-минус, так

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Ferveks 

 

function actor_binder:on_item_take (obj)


    printf("on_item_take [%s]", obj:name())
    if isArtefact(obj) then
        local anomal_zone = bind_anomaly_zone.parent_zones_by_artefact_id[obj:id()]
        if anomal_zone ~= nil then
            anomal_zone:on_artefact_take(obj)
        else
            bind_anomaly_zone.artefact_ways_by_id[obj:id()] = nil
        end
        local artefact = obj:get_artefact()
        artefact:FollowByPath("NULL",0,vector():set(500,500,500))
        xr_statistic.inc_founded_artefacts_counter(obj:id())
        end
        
        local s_obj = alife():object(obj:id())
        if (s_obj) and (s_obj:section_name()=="имя секции") then
        xr_sound.set_sound_play(db.actor:id(), "id звука")
        end

--[[
        local s_art = alife():object(obj:id())
        if(s_art) then
            xr_statistic.inc_founded_artefacts_counter(s_art:section_name())
        else
            xr_statistic.inc_founded_artefacts_counter()
        end
]]
    end
    treasure_manager.get_treasure_manager():on_item_take(obj:id())
end

Добавил функцию, пару вопросов - правильно ли я её добавил? И что должно быть на "имя секции"?

Изменено пользователем Крим

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, Крим сказал:

Ferveks 

  Показать контент

function actor_binder:on_item_take (obj)


    printf("on_item_take [%s]", obj:name())
    if isArtefact(obj) then
        local anomal_zone = bind_anomaly_zone.parent_zones_by_artefact_id[obj:id()]
        if anomal_zone ~= nil then
            anomal_zone:on_artefact_take(obj)
        else
            bind_anomaly_zone.artefact_ways_by_id[obj:id()] = nil
        end
        local artefact = obj:get_artefact()
        artefact:FollowByPath("NULL",0,vector():set(500,500,500))
        xr_statistic.inc_founded_artefacts_counter(obj:id())
        end
        
        local s_obj = alife():object(obj:id())
        if (s_obj) and (s_obj:section_name()=="имя секции") then
        xr_sound.set_sound_play(db.actor:id(), "id звука")
        end

--[[
        local s_art = alife():object(obj:id())
        if(s_art) then
            xr_statistic.inc_founded_artefacts_counter(s_art:section_name())
        else
            xr_statistic.inc_founded_artefacts_counter()
        end
]]
    end
    treasure_manager.get_treasure_manager():on_item_take(obj:id())
end

Добавил функцию, пару вопросов - правильно ли я её добавил? И что должно быть на "имя секции"?

Вроде верно. Имя секции - идентификатор предмета. Например, medkit_army. То есть, при взятии армейской аптечки будет отыгрываться определенный звук. Можно сделать один звук на все предметы. Тогда нужна только строка

xr_sound.set_sound_play(db.actor:id(), "id звука")

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как по скрипту убрать не только оружия из рук ГГ, но и детектор, болт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Доброго дня. Подскажите, есть ли какой-то вариант динамически менять имя и иконку ГГ во время игры без перезагрузок? Либо, хотя бы, подменять их в инвентаре.

 

Winzor , есть функция level.show_weapon(false), но не уверен, уберёт ли она болт и детектор. Если не сработает, можно попробовать взять xr_effects.disable_ui(actor, npc, p) и на её базе сделать схожую функцию, выпилив строчки с гашением UI.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как изменить иконку ярлыка S.T.A.L.K.E.R.? Попытался найти, но ничего не нашел. Подскажите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим 1. Правой кнопкой мыши на я ярлыке, выбрать свойства, закладка "ярлык", кнопка "Сменить значек...", кнопка "Обзор".

2. Разобрать xrengine.exe редактором ресурсов (например PE Explorer) и сменить иконку зашитую в нем.


Дополнено 3 минуты спустя
20 часов назад, svi_042 сказал:

Подскажите, есть ли какой-то вариант динамически менять имя и иконку ГГ во время игры без перезагрузок?

Да, правки движка (для своего мода такую правку переносил Winsor) или пересборка нетпакета актора (этот метод рекомендовал Hozar_2002).

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

У меня ещё вопросы на 9 странице, на которые так никто и не ответил. Вот ещё вылет.

! [LUA] SCRIPT SYNTAX ERROR
! [LUA] ..._full\gamedata\scripts\yantar_artefacts_gravi_mod.script:1: '=' expected near 'meduza'
! [SCRIPT ERROR]: ..._full\gamedata\scripts\yantar_artefacts_gravi_mod.script:1: '=' expected near 'meduza'
! [ERROR] --- Failed to load script yantar_artefacts_gravi_mod
* loading script yantar_artefacts_termal_mod.script
! [LUA] SCRIPT SYNTAX ERROR
! [LUA] ...full\gamedata\scripts\yantar_artefacts_termal_mod.script:1: '=' expected near 'glaz'
! [SCRIPT ERROR]: ...full\gamedata\scripts\yantar_artefacts_termal_mod.script:1: '=' expected near 'glaz'
! [ERROR] --- Failed to load script yantar_artefacts_termal_mod
* loading script yantar_artefacts_unikal_mod.script
* loading script yantar_detectors_mod.script

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Мне нужно, чтобы в определенный момент игры саундтрек локаций отключался и больше не работал до того, пока, например не получит инфопоршень? Как можно заставить играть одну музыку и заставить её затихнуть после, также получение инфопоршня?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Вопрос по моду SGM. На Кордоне-Болотах при гибели NPC с Абаканом игра может иногда вылетать, в т.ч. без лога, т.к. по скрипту конкретно это оружие "исчезает" - release. Происходит это в случае, если сам ствол выпадает из рук. Можно ли как-то решить этот вопрос без отключения этого скрипта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 часов назад, Крим сказал:

Мне нужно, чтобы в определенный момент игры саундтрек локаций отключался и больше не работал до того, пока, например не получит инфопоршень? Как можно заставить играть одну музыку и заставить её затихнуть после, также получение инфопоршня?

Функции:

Включить эмбиент.

function sg_ambient_normal(actor,npc,p)
local v = xr_logic.pstor_retrieve(actor, 'sg_snd_volume_music', get_console():get_float("snd_volume_music"))
get_console():execute("snd_volume_music "..tostring(v))
end

Выключить эмбиент.

function sg_ambient_none(actor,npc,p)
local v = get_console():get_float("snd_volume_music")
xr_logic.pstor_store(actor, 'sg_snd_volume_music', v)
get_console():execute("snd_volume_music "..tostring(0))
end

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

simple 
1. Вылет не безлоговый, а вполне себе движковый с логом.
2. Случается он не с Абаканом, а в принципе с любым оружием (просто с Абаканом, на определенных локациях с определенными НПС это происходит статистически более часто).
3. Причина его проста и очевидна - удаленное оружие перед этим было выбрано каким-то НПС как цель для подбора в функциях движка. Объект удалили, а в "памяти" НПС цель осталась и как добраться до более несуществующей цели движек не знает.

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

Изменено пользователем denis2000
  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 часа назад, simple сказал:

Вопрос по моду SGM. На Кордоне-Болотах при гибели NPC с Абаканом игра может иногда вылетать, в т.ч. без лога, т.к. по скрипту конкретно это оружие "исчезает" - release. Происходит это в случае, если сам ствол выпадает из рук. Можно ли как-то решить этот вопрос без отключения этого скрипта?

В SGM это дело прописано в файле death_manager.script

Найди строку

Спойлер

if not check_death_item(section) then
           alife():release(alife():object(item:id()),true)
           return
        end

Вместо этого попробуй написать такое:

Спойлер

if not check_death_item(section) then
          local timer_release = time_global() + 4000
    level.add_call(
        function ()
        if timer_release <  time_global() then
            return true
        end 
        end,
        function ()
            alife():release(alife():object(item:id()),true)
        end
    )
           return
        end

Потом напишешь пропал ли вылет.

 

  • Мастер! 1
  • Спасибо 1

Терпение... И все получится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Что означает этот лог? Я не понимаю.

FATAL ERROR
 
[error]Expression    : ai().game_graph().header().levels().end() != I
[error]Function      : CALifeGraphRegistry::setup_current_level
[error]File          : alife_graph_registry.cpp
[error]Line          : 87
[error]Description   : Graph point level ID not found!
 

stack trace:

001B:005624D1 xrCore.dll, xrDebug::fail()
001B:0348E17E xrGame.dll, CDialogHolder::operator=()

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Igor_Misery  Причины могут быть разные:
1. graph point (точка появления игрока) на следующем уровне установлен вне AI-сетки.
2. На следующем уровне отсутствует graph point, либо его название отличается от заданного в level changer'е текущего уровня (ключ Level point to change), либо оно вообще не задано.
3. Название следующего уровня (ключ level changer Level to change) не прописано в game_levels.ltx

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

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, Igor_Misery сказал:

Что означает этот лог? Я не понимаю.

FATAL ERROR
 
[error]Expression    : ai().game_graph().header().levels().end() != I
[error]Function      : CALifeGraphRegistry::setup_current_level
[error]File          : alife_graph_registry.cpp
[error]Line          : 87
[error]Description   : Graph point level ID not found!
 

stack trace:

001B:005624D1 xrCore.dll, xrDebug::fail()
001B:0348E17E xrGame.dll, CDialogHolder::operator=()

Не поставил граф-пойнт, связывающий локации. Он обязателен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, sumrak6835 сказал:

Не поставил граф-пойнт, связывающий локации. Он обязателен.

?

Да вы чё. Я просто поставил в Бар один энергетик для теста, компилятор спавна жалуется на то что нету актора, ставлю актора - игра жалуется на граф поинты. Как компилировать правильно?


Дополнено 1 минуту спустя

Я всё это дело делал на CoC, у меня даже SDK для CoC есть, в нём есть всё, что есть в игре.


Дополнено 2 минуты спустя

Тоже самое, что я в ЗП на затон поставлю консерву и игра будет на граф поинты ругаться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Добрый вечер

 

Создал новый партикл и поместил его в игру. На первом и втором рендере все работает отлично, однако на третьем и четвертом мой партикл почему-то не отображается. В чем может быть причина? Может ему нужно задать какой-то определенный параметр?

 

Вот его настройки:

spacer.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Igor_Misery сказал:

?

Да вы чё. Я просто поставил в Бар один энергетик для теста, компилятор спавна жалуется на то что нету актора, ставлю актора - игра жалуется на граф поинты. Как компилировать правильно?


Дополнено 1 минуту спустя

Я всё это дело делал на CoC, у меня даже SDK для CoC есть, в нём есть всё, что есть в игре.


Дополнено 2 минуты спустя

Тоже самое, что я в ЗП на затон поставлю консерву и игра будет на граф поинты ругаться.

Актор, минимум 4 граф-пойнта, и все создается нормально. По Затону - есть проблема со спавном. Либс весь спавн убирай, либо ищи причину я не згаю

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, sumrak6835 сказал:

Актор, минимум 4 граф-пойнта, и все создается нормально. По Затону - есть проблема со спавном. Либс весь спавн убирай, либо ищи причину я не згаю

Два вопроса. Как скомпилировать спавн локации, чтобы не стирались спавны остальных локаций? И как скомпилировать, чтобы не требовало актора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   3 пользователя онлайн