Перейти к контенту

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

Я понимаю, что уже надоел, но последний вопрос на сегодня: Возможно ли сделать новое условие для каллбека через скрипты? И если возможно, то как его зарегистрировать? 

Изменено пользователем Forser
Ссылка на комментарий

Мне всегда нравились такие вопросы. Бамбарбия - твой выход, у меня фатал эррор :(. "На сегодня дров достаточно, учите матчасть."(с)

Изменено пользователем Карлан
Ссылка на комментарий

@Карлан, не-не, я уже одной ногой в отпуске, на 2 недели оставляю раздел на тебя и остальных дровосеков. ;)

 

Но перед уходом на правах модератора призываю всех участников темы к постам по существу, без перекидывания топорами и личных выпадов!

 

+: dc или кто-нибудь ещё из ответственных, этот мой пост и всё лишнее выше под снос, плз, когда сочтёте нужным.

Изменено пользователем Kirgudu
  • Спасибо 1
Ссылка на комментарий

 

 

сделать новое условие для каллбека

Что сие вообще такое?

 

Подавляющее большинство мыслимых событий в игре так или иначе можно скриптами отловить. С разной степенью мороки.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

А можно ли отследить процесс загрузки игры через скрипты?

музыкальное сопровождение.

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

Как-нибудь можно обнулить parent_id у объекта? Вот есть объект gluk_object.  Надо что-то типа gluk_object.parent_id == 0.

Изменено пользователем macron
Ссылка на комментарий

@macron, от парентов вообще бывает трип, лично мне так и не удалось, делал задержку аж до 5 секунд. Реквестирую знатоков. "Обнуленный" парент это кстати 65534 (показатель бесхозности), 0 - это актор.

Ссылка на комментарий
"Обнуленный" парент это кстати 65534 (показатель бесхозности), 0 - это актор.

Поэкспериментировал с перепаковкой сейва. Если у глючных объектов ставить parent_id = 0, то они действительно появляются в инвентаре актора. Обычно это арты и антирады, так что нормально. А если им ставить 65534, то еще при загрузке такого сейва идет вылет 001B:036AF2D9 xrGame.dll. Вообще, изначально планировалось удалять эти объекты согласно немного доработанному варианту того скрипта, что недавно обсуждали. Сама схема работоспособна, но конкретно удаление не срабатывает ни через amk.remove_item(gluk_object), ни через alife():release(gluk_object, true). Может, хоть обнуление parent_id сработает.

Изменено пользователем macron
Ссылка на комментарий

@macron, бесхозность = валяние на земле. Не сработает, вот я к чему. Попробуй добавь проверку на серверный объект, удаляем то как никак его. 

local obj=level.object_by_id(i)
local sobj=alife():object(i)
if sobj then
--//...
end
  • Спасибо 1
Ссылка на комментарий

 

 

alife():release(gluk_object, true).

А в функцию вообще серверный объект передается, или что?

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@makdm, какая разница он ro, то что делал макрон это бесполезно. Спасибо за заметку, я сам не помню уже точно эти цифры.

Ссылка на комментарий

Возможно целесообразно сделать drop_item, дальше запустить level.add_call и как только parent_id ==  65355, то  удалит его.

У меня кстати в таком случае проблем не было.

Хотя, мне не понятна до конца проблема "рождения" глючных объектов и в чём их "глюк".

Изменено пользователем makdm
Ссылка на комментарий

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

Ссылка на комментарий

 

 

На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером

По-хорошему лучше найти причину возникновения таких объектов, и ее уже лечить. Я почему-то такого у себя никогда не видел...

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

@vampirnik77, как ты сделал сей дивный вывод (мне правда интересно)? Погляди причину под капотом, а то воюешь с ветряками.

Изменено пользователем Карлан
Ссылка на комментарий
На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером и это вызывает вылет при загрузке сейва.

Да, координаты совпадают. Но вылетает из-за того, что эти объекты еще ставят себе id от левелчейнжера в качестве parent_id.

 

Я почему-то такого у себя никогда не видел...

В OLR заспавнено очень много "всякой дряни" и физики. Возможно, из-за нехватки ID или еще чего, игра иногда дурит.

 

В общем, вот что сейчас вышло. Объекты в нужной точке в момент сейва так и не удаляются. Если исправить больше нечего, забьем. Вроде в далеком будущем в новой версии обещали многое движком исправить. В test.txt сам текст + полный bind_stalker.script на всякий случай.

http://rghost.ru/6qN89Tfr8

Изменено пользователем macron
Добавлено Dennis_Chikin,

Короче, тебе надо не удаление при сохранении, а удаление при загрузке.

https://dl.dropboxusercontent.com/u/27871782/xl_offline.script - что-то типа такого (см. с конца)

Ссылка на комментарий

 

 

из-за нехватки ID

В таком случае происходит простой и незамысловатый вылет not enough ids.

 

 

 

Объекты в нужной точке в момент сейва так и не удаляются

читаем: нормальные методы нахождения нужных объектов и их удаления так и не были применены. но если самому ковыряльщику уже ненадо, то забьем в самом деле...

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

 

 

Да, координаты совпадают

@macron, а что мешает при спавне объекта проверить координаты спавна и если они в зоне левел-ченджера, то сдвинуть спавн за пределы зоны перехода вглубь локации?

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...