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

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

 
 

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

 

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


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

denis2000

С проверкой НПС методом precondition таким скриптом

Спойлер

function uni_dialog_precond(first_speaker, second_speaker)
    local npc = dialogs.who_is_npc(first_speaker, second_speaker)
    return character_community(npc) == "stalker" or
            character_community(npc) == "bandit" or
            character_community(npc) == "freedom" or
            character_community(npc) == "dolg"
end

получаю вылет

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\priquel\sources\engine\xrServerEntities\script_engine.cpp
Line          : 180
Description   : <no expression>
Arguments     : LUA error: ....l.k.e.r - clear sky\gamedata\scripts\dialogs.script:542: attempt to call global 'character_community' (a nil value)

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


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

Paradox27kms character_community - это функция из _g.script, проверьте ее наличие и то, что она не закоментирована.

  • Мастер! 1

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

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


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

Приветствую, где мне найти функцию - level.map_add_object_spot()? Хочу с её помощью добавить новый иконки на карту. Никак не получается найти ссылку на level. 

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


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

61dimon161 Пространство имён level экспортируется в скрипты движком. Подробнее здесь - https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkcijam-i-klassam/?do=findComment&comment=343515

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


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

заспавнить

alife():create(секция_предмета, координаты_ящика, lv_id_ящика, gv_id_ящика, id_ящика)

 

Если что вот что бы удалить

function delete_item_in_inventory_box(actor, npc, p)
--p[1] - стори_ид_ящика
--p[2] - имя_предмета
local inv_box = get_story_object(p[1])
local items_table = {}
local release_item = true

local function add_items(inv_box, item)
   table.insert(items_table, item)
end

inv_box:iterate_inventory_box(add_items, inv_box)

for k,v in pairs(items_table) do
   if (v:name() == p[2]) and release_item then
      alife():release(alife():object(v:id()), true) 
      release_item = false
   end
end

end

 

 


Дополнено 21 минуты спустя
1 час назад, 61dimon161 сказал:

Хочу с её помощью добавить новый иконки

Какою именно иконку и куда вы её хотите добавить?


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»

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


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

denis2000 спасибо я юзаю чн и там действительно в _g.script нигде не задействована строчка character_community, хотя скрипты в игре есть указывающие на неё, пришлось брать из зп.


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

denis2000 Не сработало. Нашел более рабочий вариант

Спойлер

function level_zaton(first_speaker, second_speaker)
    return level.name() == "zaton"
end

 


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

denis2000 и ещё возможно ли реализовать такое что например есть два нпс с одинаковым диалогом и нужно сделать так чтобы у одного нпс я его пролистал и он пропал а у другого тот же диалог остался? Желательно при условии чтобы это были симмуляционные челы. 

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

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


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

Нашел более рабочий вариант

С более рабочими кавычками :u1F601:

14 часов назад, Paradox27kms сказал:

есть два нпс с одинаковым диалогом и нужно сделать так чтобы у одного нпс я его пролистал и он пропал а у другого тот же диалог остался?

Конечно. Используйте precondition с проверкой инфопорции выданной данному НПС. А в конце диалога через action выдавайте соответственно. Мало кто знает, а еще меньше использует то, что не только у ГГ есть инфопрции, они есть у каждого объекта.

Спойлер

<precondition>dialogs.dont_has_info_dialog_complit</precondition>

<action>dialogs.give_info_dialog_complit</action>

function dont_has_info_dialog_complit(first_speaker, second_speaker)
    local npc = who_is_npc(first_speaker, second_speaker)
    return not npc:has_info("dialog_complit")
end

function give_info_dialog_complit(first_speaker, second_speaker)
    local npc = who_is_npc(first_speaker, second_speaker)
    npc:give_info_portion("dialog_complit")
end

 

Изменено пользователем denis2000
  • Лайк 1
  • Мастер! 1
  • Спасибо 1

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

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


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

Мало кто знает, а еще меньше использует то, что не только у ГГ есть инфопрции, они есть у каждого объекта.

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

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

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


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

denis2000 Как сделать чтобы при нажатии на горячую клавишу воспроизводилось действие, например на ESC? К примеру выдать поршень P.S я пока знаю способ только из различных ui менюшек вызвать скрипт но это мне немножко не подходит. Или я думаю можно придумать функцию в xr_effects и запустить при старте игры в какой-нибудь рестриктор. Хотя наверное думаю можно просто и через диалог запустить скрипт.

Попробую протестировать данную функцию

Спойлер

      function key_binder(dik, keyboard_action, self)
if db.actor then

 if dik == DIK_keys.DIK_ESC then
                   db.actor:give_info_portion("infoportion")
            end

end

end

 

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

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


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

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

Проще назначить "горячей" клавишей "TAB".

Тогда проверка будет выглядеть так

local hud = get_hud()
 if hud:GetCustomStatic("main_task") then 

------здесь то, что нужно

------сделать при нажатии TAB

end

 

 

  • Мастер! 1

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

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


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

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

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


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

Помогите пожалуйста

Создал группировку, прописал лут в death_items_by_communities, захожу в игру, спавню члена группировки и убиваю его а у него чейзер и противозаз, хотя я взять секцию лута у сталкеров а лут спавнится полностью даже арты падали хрия я их и не прописывал

Что делать? 

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


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

 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»

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


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

Подскажите пожалуйста, а куда игра запекает файлы для Статического освещения? Пытаюсь сейчас разобраться в файловых структурах. Мне почему-то казалось, что это lmap# файлы в папке с уровнем. Просто они выглядят как лайтмап, что было бы логично. Но я попробовал их все удалить, а в игре все как было, так и осталось по R1 освещению, насколько я могу судить. При этом есть папка terrain с похожими файлами, и вот от их удаления на террейне освещение ломается, как и ожидалось. А где же аналог для не-террейн геометрии? 

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


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

Можно ли выдать инфопоршень после просмотра через бинокль (или просто) в определенную точку?
И возможно ли сделать временный источник звука? Чтобы на определенной локации всё время через loop играл звук, но после получения инфопоршня - исчезал. 

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


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

Нужна проверка на ОТСУТСТВИЕ предмета у ГГ.

Я нашел только на наличие

Спойлер

function has_item_pda_2(task, objective) 
if db.actor ~= nil then
return db.actor:object("device_pda_digger") ~= nil
end
return false
end

 

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

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


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

Mawrak При компиляции в папку уровня. Файлы lmap#***.dds. Вполне возможно, что движок может их читать из разных папок. Это лайтмапы, для ВСЕЙ геометрии.


NewValveCom Да, в моде ФОТОГРАФ есть такая фича, там нужно фотографировать определенные объекты. Как именно сделано там я не смотрел, вполне возможно, что через вектор направления камеры ГГ (см. функцию npc_in_actor_frustrum).
Вообще нет проблемы проиграть зацикленный звук и отключить его в любой момент.


Paradox27kms !actor_has_item

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

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

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


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

denis2000 Это через логику а мне нужно через precondition

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


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

Paradox27kms 

function название_функции()

if db.actor:object("предмет") == nil then 

--действие

end

end


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

https://www.amk-team.ru/forum/topic/6458-uroki-po-modostroeniyu/?do=findComment&comment=670975


 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»

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


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

Mawrak При компиляции в папку уровня. Файлы lmap#***.dds. Вполне возможно, что движок может их читать из разных папок. Это лайтмапы, для ВСЕЙ геометрии.

Прикол в том что я когда удаляю эти файлы, у меня ничего визуально не меняется. Мне казалось что от этот освещение должно сломаться и стать равномерным. Ну или хотя бы вылет должен быть. А по факту вообще ноль изменений:

Спойлер

334369299_before(2).thumb.jpg.ddf6c5ba3a54f1c22a03ff5904bc464d.jpg

Спойлер

1356546313_after(2).thumb.jpg.c4dc8e1e7427e8fd4b416deb4ee336d5.jpg

Шейдер кеш чистил перед каждым скрином. Может на локе статика вообще изначально не работает корректно?


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

Для сравнения если удалить лайтмап по террейну:

Спойлер

ss_666_12-15-24_19-37-26_(gz_promzone).thumb.jpg.a15ca6cf43ca50f4ffc0d4ca9ef7d22e.jpg

 


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

Походу реально статика геометрии сломана, на же не должна вот так выглядеть?

Спойлер

ss_666_12-15-24_19-47-14_(gz_promzone).thumb.jpg.ab49b26532af4dd5b599a8053c4e3b41.jpg

 

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


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

как сделать так, чтобы ГГ мог проходить сквозь колючую проволоку? вчера искал по этой теме - ничё не нашел. полчаса конфиги читал, не могу понять как это реализуется

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


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

Dviynyk по идее это делается через материалы, нужно найти материал проволоки и назначить ему нужные параметры (прилагаю файл из распаковки где я делал его проходимым, можно по аналогии сделать свой)

earth_slide.ltx

  • Лайк 1

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


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

по идее это делается через материалы

посмотрел, у меня нету никаких материалов в геймдате ЗП. и геймдате сдк тоже нет такой директории как в конфиге

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


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

Dviynyk файл gamemtl.xr

Можно распаковывать скриптом: https://xray-engine.org/index.php?title=gamemtl.xr_compiler/decompiler_(gamemtl.xr_cdc)

Вроде можно по-нормальному через СДК их настраивать тоже

  • Хабар 1

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


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

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

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

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

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

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

Войти

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

Войти

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