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

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

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

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

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

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


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

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

 


у

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


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

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>

 


у

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


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

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


у

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


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

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

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


у

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


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

del

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

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


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

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

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

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

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

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


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

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

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


у

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


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

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>

 

 


у

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


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

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

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


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

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

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

  • Печаль 1

у

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


Ссылка на сообщение
Поделиться на другие сайты
 
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

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


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

Сущесвтует ли какой-то пример или реализация скриптового таймера (в чистом lua, не логика), который мог бы пережить сейв-лоад? То есть чтобы отсчет продолжался даже после сейв-лоада.

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


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

Всем здравия.

Вот в чём может быть причина того, что НПС не занимает конкретно свое место в гулаге?

Решил создать обновлённый лагерь для Бара, куда вписал всех нужных мне персонажей, но конкретно двое из них наотрез отказываются занимать свои позиции.

На примере Иванцова:

Спойлер

t = { section = "logic@bar_dolg_ivantsov",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = "",
            predicate = function(obj_info)
                    return obj_info.profile_name == "bar_dolg_ivantsov"
            end
        }
        table.insert(sj, t)

Спойлер

; Иванцов (ivantsov)
[logic@bar_dolg_ivantsov]
active = walker@bar_dolg_ivantsov
on_death = death@bar_dolg_ivantsov

[walker@bar_dolg_ivantsov]
path_walk = ivantsov_walk
path_look = ivantsov_look
meet = meet@bar_dolg_ivantsov
def_state_standing = guard

[death@bar_dolg_ivantsov]
on_info = %+sar2_death_41%

[meet@bar_dolg_ivantsov]
meet_state         = 5 | guard@talk_hello
meet_state_wpn     = 5 | guard@talk_hello
use             = true
use_wpn         = true
victim             = 5 | actor
victim_wpn         = 5 | actor

В конфигах самого Иванцова проблем нет - в игре он спокойно появляется и "живёт". Но свое законное место  в лагере он не занимает.

Сам лагерь в игре работает без сбое - другие долговцы спокойно свои позиции занимают.

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


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

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


у

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


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

Всем привет.

Какие именно текстуры нужно поменять, чтобы на статическом освещении избавиться от рожицы в свете фонаря?


45545432.gif

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


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

Mawrak логика = луа.

CIDOPOBICH посмотри кондишн в сдк.

monk в папке fx глянь.

  • Спасибо 1

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


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

в папке fx глянь.

Сам спросил - сам нашёл: internal_light_att.dds

  • Мастер! 1

45545432.gif

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


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

Mawrak логика = луа.

что я имел ввиду:

логика = работает в пределах локации так как висит на объекте (такой таймер сделать это 5 секунд, я бы не спрашивал)

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

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

Изменено пользователем Mawrak
  • Смущение 1

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


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

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

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

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

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

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

Войти

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

Войти

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

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