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

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

 
 

Belka_mod Скинь simulation.ltx


𝐒𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟, 𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫…𝐬𝐭𝐨𝐩 𝐡𝐢𝐭𝐭𝐢𝐧𝐠 𝐲𝐨𝐮𝐫𝐬𝐞𝐥𝐟

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


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

Белыми кружочками отображаются рестрикторы. Настройка отображения в файле PDA.script

А в видеоуроке было написанно что в custom data нужно прописать story id и имя смарттеррейна_spot.Странно. Может я чего не понял


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

Belka_mod Скинь simulation.ltx

Вспомнил! Я забыл из него убрать нпс, спавн которого убрал. Тоесть в Level Editor я его убрал и спавн перекомпилировал, а из simulation.ltx его из секции с юпитером не убрал.

Да, в этом было дело.

И не знаешь почему иногда 2 разных сообщения объединяются?

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

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


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

И не знаешь почему иногда 2 разных сообщения объединяются?

На будущее - для таких вопросов есть специальная тема: Вопросы по сайту

Они не будут объединятся, если между первым и вторым сообщением более 5 часов.


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

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


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

Приветствую, для того чтобы run_tutorial пропал не при нажатии F, а через время нужно прописать другое значение в <disabled_key>quit</disabled_key> в game_tutorial.xml? Или в <guard_key>use</guard_key>?

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


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

День добрый, написал код в xr_motivator для спавна предметов НПС.
 

function motivator_binder:__init (obj) super(obj)
	self.spawned_items = false
end

function motivator_binder:net_spawn(sobject)
	if not self.spawned_items then
		self.spawned_items = true
    	-- тут происходит спавн предметов
    end
end

function motivator_binder:save(packet)
  	packet:w_bool(self.spawned_items)
end

function motivator_binder:load(reader)
  	self.spawned_items = reader:r_bool()
end

Т.е. по логике один раз заспавнилися предметы, и дальше self.spawned_items должно быть всегда true для данного НПС.
Но получается так: начинается новая игра, прихожу в лагерь к НПС и для них срабатывает этот код - все заспавнилось как надо. Но, дальше ухожу от них (чтоб все эти НПС перешли в офлайн), далее в офлайне для них f5-f9, снова прихожу к ним, и для них ещё раз срабатывает данный код. Выяснил, что не срабатывает метод load, и получается что self.spawned_items снова false.

Как можно решить данную проблему?

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


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

Выяснил, что не срабатывает метод load, и получается что self.spawned_items снова false.

Метод load для motivator_binder работает 100%. Проверяйте внимательнее - идея кода принципиально верная.

Но, зачем это делать здесь, в скрипте, совершенно не понятно! Может раскидаете, что вам так настойчиво нужно спавнить?

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

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

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


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

Здравствуйте.Я расставил smart cover'ы для зомбированных сталкеров на копачах(Окрестности Юпитера) в количестве 15 штук,назвал их по имени смарт-террейна с припиской animpoint и порядковым числом.Настроил эти smart cover'ы? прописал 3 сквада зомбированных по  4 нпс в каждом в squad_descr_jupiter и в simulaion.Решил всё проверить в игре,но в середине загрузки локации такой вылет:

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...- Зов Припяти\gamedata\scripts\se_smart_cover.script:50: attempt to index field '?' (a nil value)

squad_descr_jupiter.ltx simulation.ltx

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

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


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

Domovoi Вы же в рестрикторе стартуете туториал? Вот там таймер и сделайте, который отключит туториал по истечении заданного интервала времени.


Belka_mod Вылет скорее всего означает неправильную настройку смарт-коверов в SDK. И ко всему, я вот, вообще, не уверен в наличии у зомбированных сталкеров анимаций для анимпоинтов; вейпоинты пилите.

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

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

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


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

Domovoi Вы же в рестрикторе стартуете туториал? Вот там таймер и сделайте, который отключит туториал по истечении заданного интервала времени.


Belka_mod Вылет скорее всего означает неправильную настройку смарт-коверов в SDK. И ко всему, я вот, вообще, не уверен в наличии у зомбированных сталкеров анимаций для анимпоинтов; вейпоинты пилите.

Я сейчас вместо зомбированных прописал сталкеров,такая же фигня. Но я не расставлял простых графпоинтов. Может из-за этого?

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

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


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

Приветствую, делал кат-сцену всё работало как надо потом прописал  =create_cutscene_actor_with_weapon(topi_scene_visual_actor_1:topi_camer_1_stalker_actor_walker_1_walk) чтобы вроде прописал всё как надо в spawn_sections_general.xml, логика тоже правильная словил вылет 


Expression    : fatal error
Function      : lua_pcall_failed
File          : c:\xray\forward frontier\public build\src\layers\xrrender\resourcemanager_scripting.cpp
Line          : 101
Description   : <no expression>
Arguments     : LUA error: d:\stalker Çîâ Ïðèïÿòè1\gamedata\scripts\xr_effects.script:3106: attempt to index global 'obj' (a nil value)

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


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

Domovoi Судя по логу вылет происходит из-за отсутствия точек пути topi_camer_1_stalker_actor_walker_1_walk.


2 часа назад, Belka_mod сказал:

Я сейчас вместо зомбированных прописал сталкеров,такая же фигня.

Запоминается последняя фраза — это Штирлиц вывел для себя, словно математическое доказательство 🤣

Товарищ Исаев, а вы весь пост читать не пробовали?

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

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

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


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

Domovoi Судя по логу вылет происходит из-за отсутствия точек пути topi_camer_1_stalker_actor_walker_1_walk.


Запоминается последняя фраза — это Штирлиц вывел для себя, словно математическое доказательство 🤣

Товарищ Исаев, а вы весь пост читать не пробовали?

Читал я весь пост.

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


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

Belka_mod Значит уже знаете, что делать. Удачи в модостроении.


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

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


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

Создаю смарт с тушканами:

[smart_terrain]
squad_id = 1
max_population = 1

[exclusive]
tushkano_01 = monsters.ltx
tushkano_02 = monsters.ltx
tushkano_03 = monsters.ltx
tushkano_04 = monsters.ltx
tushkano_05 = monsters.ltx

Логика mob_home:

[mob_home]
path_home = tushkano_home
home_min_radius = 10
home_max_radius = 20
aggressive = true

[logic@tushkano_01]
active = mob_home

[logic@tushkano_02]
active = mob_home

[logic@tushkano_03]
active = mob_home

[logic@tushkano_04]
active = mob_home

[logic@tushkano_05]
active = mob_home

Точка на карте имя_смарта_tushkano_home. Когда подхожу к ним, тушканы стоят в ряд, бегут на месте, видят меня, но не атакуют, красные по отношению ко мне, злые, но бегут на месте. В чём может быть проблема?

Кстати, создавал полтергейста огненного, так же с mob_home, так он меня вообще не видел, бегал сквозь него, а ему всё равно. Какие настройки я забыл в данном случае?

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

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


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

Как можно решить данную проблему?

QueroMas Можно использовать триггер-инфопоршень. Типа методов game_object:

    function has_info(string)
    function dont_has_info(string)
    function give_info_portion(string)
    function disable_info_portion(string)
И цеплять этот уникальный string (например, "npc_got_quest_item_xxx") либо в контекст актёра, либо в контекст самого непися, исходя из логики сюжета.


Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

Метод load для motivator_binder работает 100%. Проверяйте внимательнее - идея кода принципиально верная.

Но, зачем это делать здесь, в скрипте, совершенно не понятно! Может раскидаете, что вам так настойчиво нужно спавнить?

Я в спавн секцию прописываю какие-то предметы для спавна, когда мне нет необходимости создавать отдельный профиль для НПС. Плюс замена модели НПС (когда выбирается рандомно), плюс выдача рандомного оружия.
Почему я решил что load не срабатывает - просто добавил вывод смс в методы save/load, и при вышеперечисленном алгоритме действий метод load не срабатывает.

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


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

День добрый, написал код в xr_motivator для спавна предметов НПС.

Я так думаю, что метод net_spawn(sobject) обрабатывается движком первым. А затем уже идет обработка метода load(reader)

Ставьте ваш спавн в UPDATE, проблема, думаю, исчезнет.

  • Спасибо 1

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

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


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

Ставьте ваш спавн в UPDATE

Имхо, идеальный update (вообще любого объекта/класса) должен быть вообще пустым. Или содержать обработчики только для часто повторяющихся и жизненно важных ситуаций. Однократная проверка по факту спавна в такую политику не вписывается. А доли процента у процессора скушает. Так курочка и клюёт по зёрнышку: там долька, тут долька, а по итогу тормоза.

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

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

QueroMas Можно использовать триггер-инфопоршень. Типа методов game_object:

    function has_info(string)
    function dont_has_info(string)
    function give_info_portion(string)
    function disable_info_portion(string)
И цеплять этот уникальный string (например, "npc_got_quest_item_xxx") либо в контекст актёра, либо в контекст самого непися, исходя из логики сюжета.

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

14 минут назад, makdm сказал:

Я так думаю, что метод net_spawn(sobject) обрабатывается движком первым. А затем уже идет обработка метода load(reader)

Ставьте ваш спавн в UPDATE, проблема, думаю, исчезнет.

Смотрите, сделал скрин вывода всех сообщений. Eсли я сделал f5/f9 в оффлайне для конкретного НПС, а потом пришел к нему - для него load не срабатывает. А если я делаю f5/f9 в онлайне для НПС, то load срабатывает (второй скрин)
 

Спойлер

ss_vlad_01-04-23_23-13-45_(shadows_valley).jpgss_vlad_01-04-23_23-29-51_(shadows_valley).jpg

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

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


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

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

Наооборот, для этого эти поршни и придуманы. Вот чтение-запись через "пакеты", вот это костылища (хвала "Аномалии" за использование метода Marshal, который весь этот глюкастый нет-пакетный ужас отправил на свалку!)

Далее, тут готов поспорить, что "название модели нельзя сохранить". В принципе, можно сохранить всё что угодно, в разумных пределах. Кстати, в изначальном вопросе речь ни о каких "моделях" не шла.

  • Спасибо 1

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

Наооборот, для этого эти поршни и придуманы. Вот чтение-запись через "пакеты", вот это костылища (хвала "Аномалии" за использование метода Marshal, который весь этот глюкастый нет-пакетный ужас отправил на свалку!)

Далее, тут готов поспорить, что "название модели нельзя сохранить". В принципе, можно сохранить всё что угодно, в разумных пределах. Кстати, в изначальном вопросе речь ни о каких "моделях" не шла.

Я про модели потом уже дописал. Я имею ввиду что string через инфопоршень не сохранить. Тут без нет-пакетов никак. Мне хотелось бы понять, почему load не срабатывает. Я конечно могу всё это сделать через создание default профилей, но это будет почти полтысячи профилей, чтобы добиться эффекта  разнообразия НПС (разный визуал + разное вооружение).

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


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

Я имею ввиду что string через инфопоршень не сохранить. Тут без нет-пакетов никак. Мне хотелось бы понять, почему load не срабатывает. Я конечно могу всё это сделать через создание default профилей, но это будет почти полтысячи профилей, чтобы добиться эффекта  разнообразия НПС (разный визуал + разное вооружение).

Странно, ведь аргумент инфопоршня и есть string. Ну, да ладно. Я пока что не вижу проблемы:

в motivator_binder:net_spawn(object) чекаем инфопоршень. Если выдан, ничего не делаем. Иначе: выдаем поршень (стандартный общий флаг типа "npc_got_nre_visual", то есть одна строка-константа-метка-поршень на всех, без детализации модели), затем по вашей задумке-алгоритму каким-то образом меняем визуал и спавним/релизим пушки. Визуал и пушки сохраняются движком "на автомате". Или нет?

  • Спасибо 1

Я логи в баню удалил, а вот за за рейдеры – не помню!

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


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

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

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


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

Boomer Добавь предмету в секцию:

quest_item            = true

  • Спасибо 1

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


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

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

Так. Ваша идея понятна.

12 часов назад, QueroMas сказал:

Eсли я сделал f5/f9 в оффлайне для конкретного НПС, а потом пришел к нему - для него load не срабатывает. А если я делаю f5/f9 в онлайне для НПС, то load срабатывает (второй скрин)

Это вполне логично, зачем что-то загружать если НПС в офлайне.

Как по мне подобные манипуляции нужно проводить при спавне НПС. Мест в коде где происходит спавн НПС массовки не так много нужно просто вставить после alife():create вызов вашей функции рандомизатора.

И кстати любой объект (унаследованный от класса game_object) имеет свои инфопорции, в том числе и НПС.

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

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

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


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

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

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

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

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

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

Войти

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

Войти

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