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

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

 
 
53 минуты назад, Apka сказал:

Пытаюсь распаковать all.spawn из Под прикрытием смерти. Клондайк 2.0

Без оригинального распаковщика, который использовал автор мода, тебе вряд ли удастся распаковать спавн.

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


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

Lenyapk 

function get_npc_squad_name(npc_sid)
    local npc = get_story_object_id(npc_sid)
    local squad = get_object_squad(npc)
    if squad ~= nil then
        return squad:section_name()
    end
    return "none"
end


Чтобы проверить, что НПС со стори ИД принадлежит скваду (который без стори ид, он необязателен), нужно сделать так
get_npc_squad_name("стори_ид_нпс") == "секция_сквада"

Изменено пользователем liner
  • Мастер! 1

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


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

Всем здравствуйте, вопрос такого плана, как поправить снорков, а то даже жалко их при нападении на гг если увернутся они улетаю как Су 30 и смотрится это скажем так не комильфо, хотя конфиг m snork не трогал и не чего там не менял кроме выпадения запчастей.


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62
 

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


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

в чем может быть ошибка?

! Unknown command:  dump_infos
stack trace:

0023:0692E8B3 xrGame.dll, CDialogHolder::CDialogHolder()
0023:0692FB45 xrGame.dll, CDialogHolder::CDialogHolder()
0023:06142EA3 lua.JIT.1.1.4.dll, luaopen_io()

 

 

эта ошибка выходит при добавлении в simulation:

zat_dolg_warrior_squad = zat_dolg

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

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 02.06.2022 в 20:34, Lenyapk сказал:

подскажите , как проверить через скрипт принадлежность npc к скваду

If alife():object ( npc:id() ).group_id ~= 65535 then return true end

  • Мастер! 1

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

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


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

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

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


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

Boomer Нет проблем. Удаляйте штатной функцией destroy_object по стори_ид. Но убедитесь что труп не удаляется release_body_manager.script


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

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


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

Мне нужна функция, которая убирает всё оружие из инвентаря ГГ. Именно, что оружие, а не все вещи. Подскажите, как это сделать, пожалуйста.

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


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

Здраствуйте, да, я тупой. Как заспавнить гг на юпитере и сделать так чтобы в игре был только юпитер+ убрать всем дефолтные  квесты  зп. Прошу прощения, писал Сережа 14 лет додик. Лучше бы учился, чем делал очередной школомод длиною 4 минуты и вылетами после каждого действия. Ибо проблема в том, что везде пишут разное и все не то, все не работает . Хотя опыт в кодинге у меня был,  1.5 года работают с ардуино, хотя там больше по железу, могу сделать среднеполигонального чупакабрика в блендере. А вот логику модов сталкера понять не могу.  И в гайдах пишут так, что на первой странице всё понятно, а на второй-ничего. Либо я дурак, либо я дурак, либо плохо ищу. Буду неимоверно благодарен, если скинете ссылку на более-менее понятный, желательно линейный гайд.

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

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


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

Крим Пробуйте такую:
 

function rel_actor_wpn()
	local function is_gun(npc, item)
		if isWeapon(item) then
			alife():release(alife():object(item:id()), true)
		end
	end
	db.actor:iterate_inventory(is_gun, nil)
end 

 


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

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


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

Приветствую. Создал торговца, только мне одно не нравится, после его смерти не пропадает его продаваемый лут. Как-то можно удалить этот лут?


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

Разобрался. dont_keep_items = true в [logic@ секции логики нпс поправило ситуацию

  • Лайк 1

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


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

Здраствуйте, да, я тупой.

Согласно Даннингу и Крюгеру - нет, но это не точно ?
  К сожалению инструкции "Сделать все красиво, быстро и с минимумом затрат" не существует. Поэтому или начинайте с малого: действуя с самых простых вещей постепенно продвигайтесь к более сложному или раз уж беретесь за сложную и комплексную задачу разбивайте ее на как можно более мелкие и решайте каждую из них отдельно.
  Например ваша задача примерно разбивается на: установка SDK, настройка SDK, минимальное изучение его работы, устновка и настройка конвертора, декомпиляция локации в формат SDK, работа со спавн элементами в SDK, спавн ГГ в SDK, компиляция all.spawn, настройка конфигов спавна локации смарты и сквады, создание диалогов от простых к сложным, создание квестов от примитивных к сложным.
  Как видите тут масса пунктов и каждый из них разбивается еще на несколько, при этом каждый из них способен вызвать массу конкретных вопросов. И вот когда вы сможете сформулировать конкретные вопрос по конкретному пункту, вы сможете его тут задать.


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

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


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

Согласно Даннингу и Крюгеру - нет, но это не точно ?
  К сожалению инструкции "Сделать все красиво, быстро и с минимумом затрат" не существует. Поэтому или начинайте с малого: действуя с самых простых вещей постепенно продвигайтесь к более сложному или раз уж беретесь за сложную и комплексную задачу разбивайте ее на как можно более мелкие и решайте каждую из них отдельно.
  Например ваша задача примерно разбивается на: установка SDK, настройка SDK, минимальное изучение его работы, устновка и настройка конвертора, декомпиляция локации в формат SDK, работа со спавн элементами в SDK, спавн ГГ в SDK, компиляция all.spawn, настройка конфигов спавна локации смарты и сквады, создание диалогов от простых к сложным, создание квестов от примитивных к сложным.
  Как видите тут масса пунктов и каждый из них разбивается еще на несколько, при этом каждый из них способен вызвать массу конкретных вопросов. И вот когда вы сможете сформулировать конкретные вопрос по конкретному пункту, вы сможете его тут задать.

Здраствуйте, проблема не в том, как начинать учится, все программы по типу sdk у меня есть, распаковывать, запаковывать  all.spawn умею.  Могу менять диалоги, но не могу их именно прописывать, не знаю как убрать обычные квесты, при попытке изменить место спавна гг постоянно вылазят ошибки, хотя использую вроде рабочие шаблоны. Могу менять свойства артов, оружия, апгрейдов, могу менять имя гг, его стартовый инвентарь. Могу менять ассортимент торговцев.  Но на этапе создания квестов оно мне не нужно, нужно знать, как прописывать диалоги, квесты, спавнить сквады. Проблема лишь в том, что везде пишут неполную инфу, из которой ничего токлом не понять, вот кто и где объясняет-что такое инфопоршни и куда их писать?  Куда и как правильно прописать новый диалог нпс? Везде пишут неполную инфу.  Поэтому я прошу  вас помочь с поиском понятных гайдов, а не таких типо" тут короче на строке 75737 в файле который ну я хз пропишите }[][][][][][]]{}[][;<,/,jjlrjrjl{{}p[[[p][][]?.. , потом вставьте диск номер 78 в дисковод под столом на затоне , чтобы у новикова был новый диалог "сам такой, базар фильтруй". " Заранее спасибо

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


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

что такое инфопоршни и куда их писать?

Это что-то вроде ключа, который записывается в виде текста на латинице: +my_infoportion_for_stalker
Инфопоршень выдаётся разными путями: через рестриктор, через диалог, через скрипт, но суть его везде одна: в определённый момент игры выдать ключ, который можно применять для активации чего-либо, например, если надо заспавнить объект после конкретного диалога: ставится проверка на наличие инфопорции, а в конце нужного диалога выдаём, собственно, сам инфопоршень. Подробнее...

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


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

Это что-то вроде ключа, который записывается в виде текста на латинице: +my_infoportion_for_stalker
Инфопоршень выдаётся разными путями: через рестриктор, через диалог, через скрипт, но суть его везде одна: в определённый момент игры выдать ключ, который можно применять для активации чего-либо, например, если надо заспавнить объект после конкретного диалога: ставится проверка на наличие инфопорции, а в конце нужного диалога выдаём, собственно, сам инфопоршень. Подробнее...

То есть они-это основа всех квестов?

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


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

Куда и как правильно прописать новый диалог нпс?

Отрывается профиль НПС, который, как правило, записан в одном из файлов gamedata\configs\gameplay\character_desc_...xml
И перед </specific_character> нужного профиля НПС прописывается строка: <actor_dialog>ID_диалога</actor_dialog>


Дополнено 2 минуты спустя
1 минуту назад, Mindallius сказал:

То есть они-это основа всех квестов?

Основа квестов - тело квеста. Инфопоршень как ключ выполняет лишь связующее действие, а связью может служить не только инфопорция, тем не менее, это самый распространённый способ создать последовательность происходящих событий.

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


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

Отрывается профиль НПС, который, как правило, записан в одном из файлов gamedata\configs\gameplay\character_desc_...xml
И перед </specific_character> нужного профиля НПС прописывается строка: <actor_dialog>ID_диалога</actor_dialog>


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

 

А текст диалога прописывается с папке text, в файле с таким же названием? 

 

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


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

А текст диалога прописывается с папке text, в файле с таким же названием? 

Если у тебя есть SDK, то в этой же папке есть Dialog_Editor - программа для создания диалога.

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


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

Если у тебя есть SDK, то в этой же папке есть Dialog_Editor - программа для создания диалога.

таковая имеется, в данный момент разбираюсь в ней по видео в ютубе

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


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

Mindallius Короче вот как-то так.

Спойлер

 

Создадим крайне простой диалог, с условием появления и единоразовой выдачей. Дабы не плодить лишних файлов, допишем своё в оригинальные файлы. Потребуются: character_desc_zaton.xml, dialogs_zaton.xml и info_zaton.xml, лежащие по пути gamedata\configs\gameplay, а так же файл текста st_dialogs_zaton.xml, лежащий по пути gamedata\configs\text\rus.

Для начала создадим саму основу диалога в файле dialogs_zaton.xm. В самом конце, перед заключительным тегом </game_dialogs>, пишем такой код: 
 

Спойлер

<dialog id="nash_testoviy_dialog">
<has_info>zat_a2_linker_b14_quest_strange_item_done</has_info> <!-- наличие инфопоршня, при котором диалог появится, в данном случае - ориг. инфопоршень, выдаваемый по завершении квеста Бороды на Штурвал -->
<dont_has_info>nash_testoviy_info</dont_has_info> <!-- наличие инфопоршня, при котором диалог пропадёт, в данном случае - наш новый инфопоршень -->
     <phrase_list>
     <phrase id="0">
        <text>nash_text_1</text> <!-- Текст диалога, берётся в нашем случае из файла st_dialogs_zaton.xml -->
        <next>1</next> <!-- Следующая фраза -->
     </phrase>
     <phrase id="1">
        <text>nash_text_2</text>
		<next>2</next>
    </phrase>
	<phrase id="2">
        <text>nash_text_3</text>
	    <give_info>nash_testoviy_info</give_info> <!-- Выдача инфопоршня -->
    </phrase>
  </phrase_list>
 </dialog>

 

Пропишем этот диалог Бороде. Для этого в файле character_desc_zaton.xml пропишем в профиле Бороды (zat_a2_stalker_barmen),  среди прочих строк типа <actor_dialog>--------</actor_dialog> новую строку:


<actor_dialog>nash_testoviy_dialog</actor_dialog>

Диалог должен появится после сдачи изм. штурвала. 
Но! Текста в нём пока нет, отображаются только тех. названия типа nash_text_1. Соответственно пропишем текст нашего диалога в st_dialogs_zaton.xml, примерно так: 

Спойлер

<string id="nash_text_1">
	<text>Я учусь диалоги писать, не обращай внимания, это тестовый</text>
</string>
<string id="nash_text_2">
	<text>Учится - дело полезное, успехов!</text>
</string>
<string id="nash_text_3">
	<text>Спасибо!</text>
</string>

 

Теперь у диалога есть текст. Но! После прочтения он не исчезает, а повторяется заново. Чтобы диалог отображался один раз до прочтения, и нужны в частности инфопоршни. Прописываем наш новый инфопоршень nash_testoviy_info в файл info_zaton.xml среди прочих, вот так: 


<info_portion id="nash_testoviy_info "></info_portion>

Всё, по идее, если всё сделано правильно - после приноса Бороде штурвала, у него появится тестовый диалог, пропадающий после прочтения.
Если мы наоборот хотим чтобы диалог был всегда или без условий - НЕ пишем строчки  dont_has_info и has_info в первом примере

 

 



ASUS z87-k, I5-4670 @3.40GHz, MSI GTX 1050ti, 16gb ОЗУ, SSD 100gb, 2xHDD 500gb,
Windows 10 Pro. Аномали на ультрах летает. Вместе с компом по комнате.

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


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

Mindallius Короче вот как-то так.

  Скрыть контент

 

Создадим крайне простой диалог, с условием появления и единоразовой выдачей. Дабы не плодить лишних файлов, допишем своё в оригинальные файлы. Потребуются: character_desc_zaton.xml, dialogs_zaton.xml и info_zaton.xml, лежащие по пути gamedata\configs\gameplay, а так же файл текста st_dialogs_zaton.xml, лежащий по пути gamedata\configs\text\rus.

Для начала создадим саму основу диалога в файле dialogs_zaton.xm. В самом конце, перед заключительным тегом </game_dialogs>, пишем такой код: 
 

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



<dialog id="nash_testoviy_dialog">
<has_info>zat_a2_linker_b14_quest_strange_item_done</has_info> <!-- наличие инфопоршня, при котором диалог появится, в данном случае - ориг. инфопоршень, выдаваемый по завершении квеста Бороды на Штурвал -->
<dont_has_info>nash_testoviy_info</dont_has_info> <!-- наличие инфопоршня, при котором диалог пропадёт, в данном случае - наш новый инфопоршень -->
     <phrase_list>
     <phrase id="0">
        <text>nash_text_1</text> <!-- Текст диалога, берётся в нашем случае из файла st_dialogs_zaton.xml -->
        <next>1</next> <!-- Следующая фраза -->
     </phrase>
     <phrase id="1">
        <text>nash_text_2</text>
		<next>2</next>
    </phrase>
	<phrase id="2">
        <text>nash_text_3</text>
	    <give_info>nash_testoviy_info</give_info> <!-- Выдача инфопоршня -->
    </phrase>
  </phrase_list>
 </dialog>

 

Пропишем этот диалог Бороде. Для этого в файле character_desc_zaton.xml пропишем в профиле Бороды (zat_a2_stalker_barmen),  среди прочих строк типа <actor_dialog>--------</actor_dialog> новую строку:



<actor_dialog>nash_testoviy_dialog</actor_dialog>

Диалог должен появится после сдачи изм. штурвала. 
Но! Текста в нём пока нет, отображаются только тех. названия типа nash_text_1. Соответственно пропишем текст нашего диалога в st_dialogs_zaton.xml, примерно так: 

  Скрыть контент



<string id="nash_text_1">
	<text>Я учусь диалоги писать, не обращай внимания, это тестовый</text>
</string>
<string id="nash_text_2">
	<text>Учится - дело полезное, успехов!</text>
</string>
<string id="nash_text_3">
	<text>Спасибо!</text>
</string>

 

Теперь у диалога есть текст. Но! После прочтения он не исчезает, а повторяется заново. Чтобы диалог отображался один раз до прочтения, и нужны в частности инфопоршни. Прописываем наш новый инфопоршень nash_testoviy_info в файл info_zaton.xml среди прочих, вот так: 



<info_portion id="nash_testoviy_info "></info_portion>

Всё, по идее, если всё сделано правильно - после приноса Бороде штурвала, у него появится тестовый диалог, пропадающий после прочтения.
Если мы наоборот хотим чтобы диалог был всегда или без условий - НЕ пишем строчки  dont_has_info и has_info в первом примере

 

 

спасибо за информацию

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


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

Подскажите, пожалуйста, что мои кривые ручонки опять сломали?
Вот такая фигня происходит при попытке посмотреть в бинокль:

Спойлер

ss-gloki-06-06-22-21-34-23-l08-yantar.jp

Текстура бинокля из ганса, scopes.xml, scopes_16.xml и ui_ingame.xml тоже родные гансовские... Куда еще копать?

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


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

FATAL ERROR
 
[error]Expression    : no_assert
[error]Function      : CXML_IdToIndex<class CPhraseDialog>::GetById
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\xml_str_id_loader.h
[error]Line          : 112
[error]Description   : item not found, id
[error]Arguments     : jup_b16_biochemist_oasis_start
 

stack trace:

Пожалуйста подскажите, что означает данная ошибка? Если что, я не трогал обычные диалоги Озёрского. Только добавил свой. Или трогал? 

character_desc_jupiter.xml dialogs_jupiter.xml st_dialogs_jupiter.xml

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


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

Mindallius 

Игра не находит id какого-то профиля... или диалога... или квеста. В общем указанный id в .xml файле.

Проверяйте правильность написания идентификатора, либо добавьте его, если таковой отсутсвует.

Если проще, то игра где-то у тебя спрашивает строку в xml с айди jup_b16_biochemist_oasis_start, а таковой строки в твоих xmlках нет. Если это оригинал, то ты, видимо, название строки поменял, вот игра теперь и ругается.

 

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


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

Mindallius 

Игра не находит id какого-то профиля... или диалога... или квеста. В общем указанный id в .xml файле.

Проверяйте правильность написания идентификатора, либо добавьте его, если таковой отсутсвует.

Если проще, то игра где-то у тебя спрашивает строку в xml с айди jup_b16_biochemist_oasis_start, а таковой строки в твоих xmlках нет. Если это оригинал, то ты, видимо, название строки поменял, вот игра теперь и ругается.

 

Видимо да, я удалил все из орига. Но ведь вроде во всех модах так? Типо в гейм дате только новое, а старое в запакованных файлах

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


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

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

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

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

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

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

Войти

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

Войти

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