Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий
Forser 47 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) Я понимаю, что уже надоел, но последний вопрос на сегодня: Возможно ли сделать новое условие для каллбека через скрипты? И если возможно, то как его зарегистрировать? Изменено 3 Июля 2015 пользователем Forser Ссылка на комментарий
Карлан 1 049 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) Мне всегда нравились такие вопросы. Бамбарбия - твой выход, у меня фатал эррор . "На сегодня дров достаточно, учите матчасть."(с) Изменено 3 Июля 2015 пользователем Карлан Ссылка на комментарий
Kirgudu 1 250 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) @Карлан, не-не, я уже одной ногой в отпуске, на 2 недели оставляю раздел на тебя и остальных дровосеков. Но перед уходом на правах модератора призываю всех участников темы к постам по существу, без перекидывания топорами и личных выпадов! +: dc или кто-нибудь ещё из ответственных, этот мой пост и всё лишнее выше под снос, плз, когда сочтёте нужным. Изменено 3 Июля 2015 пользователем Kirgudu 1 Инструмент Ссылка на комментарий
Zander_driver 10 342 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 сделать новое условие для каллбека Что сие вообще такое? Подавляющее большинство мыслимых событий в игре так или иначе можно скриптами отловить. С разной степенью мороки. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
RayTwitty 512 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 А можно ли отследить процесс загрузки игры через скрипты? музыкальное сопровождение.Штатных функций для проигрывания без онлайного объекта в сталке нет, но можно попытаться через дополнительные библиотеки для луа запустить какой-нибудь mp3-трек прямо в плеере фоном. Помнится в каком-то билде, амбиент-музыка на локацях именно так и была реализована)) Ссылка на комментарий
macron 1 890 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) Как-нибудь можно обнулить parent_id у объекта? Вот есть объект gluk_object. Надо что-то типа gluk_object.parent_id == 0. Изменено 4 Июля 2015 пользователем macron Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @macron, от парентов вообще бывает трип, лично мне так и не удалось, делал задержку аж до 5 секунд. Реквестирую знатоков. "Обнуленный" парент это кстати 65534 (показатель бесхозности), 0 - это актор. Ссылка на комментарий
macron 1 890 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) "Обнуленный" парент это кстати 65534 (показатель бесхозности), 0 - это актор. Поэкспериментировал с перепаковкой сейва. Если у глючных объектов ставить parent_id = 0, то они действительно появляются в инвентаре актора. Обычно это арты и антирады, так что нормально. А если им ставить 65534, то еще при загрузке такого сейва идет вылет 001B:036AF2D9 xrGame.dll. Вообще, изначально планировалось удалять эти объекты согласно немного доработанному варианту того скрипта, что недавно обсуждали. Сама схема работоспособна, но конкретно удаление не срабатывает ни через amk.remove_item(gluk_object), ни через alife():release(gluk_object, true). Может, хоть обнуление parent_id сработает. Изменено 4 Июля 2015 пользователем macron Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @macron, бесхозность = валяние на земле. Не сработает, вот я к чему. Попробуй добавь проверку на серверный объект, удаляем то как никак его. local obj=level.object_by_id(i) local sobj=alife():object(i) if sobj then --//... end 1 Ссылка на комментарий
Zander_driver 10 342 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 alife():release(gluk_object, true). А в функцию вообще серверный объект передается, или что? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 Конечно, дико извиняюсь, но, вроде как, бесхозная вещь это s_obj.parent_id = 65535 Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, какая разница он ro, то что делал макрон это бесполезно. Спасибо за заметку, я сам не помню уже точно эти цифры. Ссылка на комментарий
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) Возможно целесообразно сделать drop_item, дальше запустить level.add_call и как только parent_id == 65355, то удалит его. У меня кстати в таком случае проблем не было. Хотя, мне не понятна до конца проблема "рождения" глючных объектов и в чём их "глюк". Изменено 4 Июля 2015 пользователем makdm Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, удаляешь сталкера, вместе с ним и инвентарь удаляется, зачем дропать? Ссылка на комментарий
vampirnik77 121 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером и это вызывает вылет при загрузке сейва. Официальная страница проекта Neof-One Crew Ссылка на комментарий
Zander_driver 10 342 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером По-хорошему лучше найти причину возникновения таких объектов, и ее уже лечить. Я почему-то такого у себя никогда не видел... Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Карлан 1 049 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) @vampirnik77, как ты сделал сей дивный вывод (мне правда интересно)? Погляди причину под капотом, а то воюешь с ветряками. Изменено 4 Июля 2015 пользователем Карлан Ссылка на комментарий
macron 1 890 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером и это вызывает вылет при загрузке сейва. Да, координаты совпадают. Но вылетает из-за того, что эти объекты еще ставят себе id от левелчейнжера в качестве parent_id. Я почему-то такого у себя никогда не видел... В OLR заспавнено очень много "всякой дряни" и физики. Возможно, из-за нехватки ID или еще чего, игра иногда дурит. В общем, вот что сейчас вышло. Объекты в нужной точке в момент сейва так и не удаляются. Если исправить больше нечего, забьем. Вроде в далеком будущем в новой версии обещали многое движком исправить. В test.txt сам текст + полный bind_stalker.script на всякий случай. http://rghost.ru/6qN89Tfr8 Изменено 4 Июля 2015 пользователем macron Добавлено Dennis_Chikin, 11 Июля 2015 Короче, тебе надо не удаление при сохранении, а удаление при загрузке. https://dl.dropboxusercontent.com/u/27871782/xl_offline.script - что-то типа такого (см. с конца) Ссылка на комментарий
Zander_driver 10 342 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 из-за нехватки ID В таком случае происходит простой и незамысловатый вылет not enough ids. Объекты в нужной точке в момент сейва так и не удаляются читаем: нормальные методы нахождения нужных объектов и их удаления так и не были применены. но если самому ковыряльщику уже ненадо, то забьем в самом деле... Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 Да, координаты совпадают @macron, а что мешает при спавне объекта проверить координаты спавна и если они в зоне левел-ченджера, то сдвинуть спавн за пределы зоны перехода вглубь локации? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти