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

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

 
 
11 часов назад, Andrey_Spider сказал:

В чем может быть проблема?

Для каждого уровня графы собрал? Надо сначала создать АИ-сетки для ВСЕХ уровней, графы для каждого уровня, потом общий граф, затем аллспавн. В игру закидывать: файлы level.ai и level.gct для всех уровней в каждую папку, game.graph и all.spawn. Также в конфиги всё прописать.

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


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

Доброго времени суток. Как в SDK сделать так, чтобы нпс ходил по определённым точкам, допустим мне надо, чтобы он ходил вокруг дома. Как это реализовать?

 


S.T.A.L.K.E.R.: Зона молчания

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


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

CIDOPOBICH 

 

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


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

Как выдать инфопоршень после проверки предмета у ГГ? У меня есть квест, который должен появиться после поднятия определённого предмета.

function have_pda(task, objective)
    if db.actor ~= nil then
        return db.actor:object("kostyak_pda") ~= nil then
        db.actor.give_infoportion("def_otkl_task_start")
    end
end

На форумах нашел такой код. Но при поднятии предмета не завершается квест "найти этот предмет" и не появляется следующий.

P.S. в info_l02_garbage указал выдачу квеста:

<info_portion id ="def_otkl_task_start">
	<task>def_otkl_task</task>
</info_portion>

 


S.T.A.L.K.E.R.: Зона молчания

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


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

Добрый день, возникла проблема. В SDK заспавнил оружие и костюм, а они оказались полностью сломанные, Used AI Locations отключил. Еще в настройках оружия написано 0 патронов в магазине, а спавнится 63 патрона


S.T.A.L.K.E.R.: Зона молчания

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


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

CIDOPOBICH 

Либо у них item condition 0, либо разные классы (class) в секциях сдк / игра. Флаг Used AI Locations на это не влияет.

17 часов назад, CIDOPOBICH сказал:

Насчёт классов не понял, где их посмотреть?

Для примера, открываешь w_mp5.ltx (в геймдате сдк) и находишь параметр class. Его значение должно совпадать с аналогичным значением в w_mp5.ltx (в игровой геймдате / дб).

 

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

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


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

CIDOPOBICH 

Либо у них item condition 0, либо разные классы (class) в секциях сдк / игра. Флаг Used AI Locations на это не влияет.

Вот настройки предмета в SDK

Спойлер

2051050175_2025-06-29203358.thumb.png.39ad9f681b2430931e07cb5258d87803.png

Насчёт классов не понял, где их посмотреть?


S.T.A.L.K.E.R.: Зона молчания

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


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

del

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 30.06.2025 в 00:36, CIDOPOBICH сказал:

Насчёт классов не понял, где их посмотреть?

в файлах конфигах например, строка class

у МР5 обычно ставят  class  = WP_LR300, это автоматическое оружие, при этом в отличии от класса WP_AK74, движок не требует от него указания в конфигах характеристик подствольного гранатомёта например, движок понимает, что это класс для оружия без подствольника, потому его обычно лепят на ПП, и пулемёты, а для класса СВД можно не указывать режим огня, потому что опять же движок понимает, что это класс для винтовок без автоматического огня.

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

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


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

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

Например, у меня задание "найти кпк", когда игрок поднимает kostyak_pda, выдаётся инфопоршень bar_comp


S.T.A.L.K.E.R.: Зона молчания

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


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

CIDOPOBICH В папке скриптов в файле bind_stalker ищи сторочку:
function actor_binder:on_item_take (obj)
После этой строчки вставляй такую конструкцию:
if obj:section() == "Техническое_название_предмета" and not has_alife_info("Инфопошень_который_выдаётся") then
        db.actor:give_info_portion("Инфопошень_который_выдаётся")
    end
В итоге должно выйти вот так:

Спойлер

image.png.326d5be1a9b8215405cfb43df56fae2c.png

 

Изменено пользователем Gambimo
  • Аплодисменты 1

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


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

Например, у меня задание "найти кпк"

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

<game_task id="что-то"> внутри него есть подзадания, найти ПДА например

<objective>
<text>Найти ПДА</text>
внутри можно указать функции завершения этого подзадания, любая функция которая пока у тебя есть это задание на постоянном апдейте проверяет наличие предмета в рюкзаке и выдаёт true если такой предмет есть
<function_complete>тут функция проверки предмета</function_complete>

<infoportion_fail></infoportion_fail> дополнительно можно указать инфопоршни провала задания и успеха

а можно указать какой инфопоршень выдаст игра после выполнения этого подзадания ,т.к. выполнение это наличие ПДА , то при поднятии ПДА игра и выдаст нужный инфопоршень:
<infoportion_set_complete>bar_comp</infoportion_set_complete>

  • Жму руку 1

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


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

CIDOPOBICH есть способ в bind.stalker такую фичу делал на тч, чуток потом скину 


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

CIDOPOBICH в bind_stalker есть такая функция: function actor_binder:on_item_take (obj)

В ней такие строчки кидаешь:

if obj:section() == "квестовый предмет" and not has_alife_info("инфопоршень") then
        db.actor:give_info_portion("инфопоршень")
    end

Дальше уже таск в инфопоршне выдаешь и все

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

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

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


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

Как можно сделать проверку на наличие определённого кол-ва предметов в инвентаре?

Допустим есть задание, где игроку нужно найти 5 энергетиков.

Нашёл 5 энергетиков, квест выполнен. Заранее спасибо!


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

Впервые столкнулся с такой проблемой. До этого делал диалоги, всё было нормально. Но сейчас что-то пошло не так.

Я прописал сам диалог, его перевод, а в игре отображаются кодовые названия, а не текст. Перепроверил правильность написания, всё ок. Что делать?

Спойлер

	<dialog id ="dv_sv_guard_task">
		<dont_has_info>dv_find_wpn_start</dont_has_info>
		<phrase_list>
			<phrase id ="0">
				<text>dv_sv_guard_task_0</text>
				<next>1</next>
			</phrase>
			<phrase id ="1">
				<text>dv_sv_guard_task_1</text>
				<next>2</next>
				<next>21</next>
			</phrase>
			<phrase id ="2">
				<text>dv_sv_guard_task_2</text>
				<action>dialogs.break_dialog</action>
				<give_info>dv_find_wpn_start</give_info>
			</phrase>
			<phrase id ="21">
				<text>dv_sv_guard_task_21</text>
				<action>dialogs.break_dialog</action>
			</phrase>
		</phrase_list>
	</dialog>

 

Спойлер

	<string id="dv_sv_guard_task_0">
		<text>Мне нужны деньги, у вас есть какая-нибудь работа?</text>
	</string>

	<string id="dv_sv_guard_task_1">
		<text>Работа? Хм-м... думаю да. Нашему отряду нужно новое снаряжение. Подсобишь?</text>
	</string>

	<string id="dv_sv_guard_task_2">
		<text>Конечно.</text>
	</string>

	<string id="dv_sv_guard_task_21">
		<text>Прости, я не готов пока.</text>
	</string>

 

 


S.T.A.L.K.E.R.: Зона молчания

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


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

CIDOPOBICH может файл stable_dialogs_darkvalley.xml не там лежит...

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


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

CIDOPOBICH может файл stable_dialogs_darkvalley.xml не там лежит...

Проверил, лежит по пути gamedata\config\text\rus

  • Печаль 1

S.T.A.L.K.E.R.: Зона молчания

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


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

Проверил, лежит по пути gamedata\config\text\rus

Попробуй еще в eng засунуть, может у тебя ww версия...

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


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

Как можно сделать проверку на наличие определённого кол-ва предметов в инвентаре?

Допустим есть задание, где игроку нужно найти 5 энергетиков.

Нашёл 5 энергетиков, квест выполнен. Заранее спасибо!

Проверял много способов но у меня работает только такой:


function название(first_speaker, second_speaker)
local n=3 ----- количество сколько нужно
local count=0
db.actor:iterate_inventory(function (dummy, item) if item:section()=="квестовый предмет" then count=count+1 end end, nil)
if count>=n then
return true
else
return false
end
end

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


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

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

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

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

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

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

Войти

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

Войти

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

    Ни одного зарегистрированного пользователя не просматривает данную страницу