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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Forser 47 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) Я понимаю, что уже надоел, но последний вопрос на сегодня: Возможно ли сделать новое условие для каллбека через скрипты? И если возможно, то как его зарегистрировать? Изменено 3 Июля 2015 пользователем Forser Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948060
Карлан 1 050 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) Мне всегда нравились такие вопросы. Бамбарбия - твой выход, у меня фатал эррор . "На сегодня дров достаточно, учите матчасть."(с) Изменено 3 Июля 2015 пользователем Карлан Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948067
Kirgudu 1 342 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 (изменено) @Карлан, не-не, я уже одной ногой в отпуске, на 2 недели оставляю раздел на тебя и остальных дровосеков. Но перед уходом на правах модератора призываю всех участников темы к постам по существу, без перекидывания топорами и личных выпадов! +: dc или кто-нибудь ещё из ответственных, этот мой пост и всё лишнее выше под снос, плз, когда сочтёте нужным. Изменено 3 Июля 2015 пользователем Kirgudu 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948070
Zander_driver 10 348 Опубликовано 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948129
RayTwitty 575 Опубликовано 3 Июля 2015 Поделиться Опубликовано 3 Июля 2015 А можно ли отследить процесс загрузки игры через скрипты? музыкальное сопровождение.Штатных функций для проигрывания без онлайного объекта в сталке нет, но можно попытаться через дополнительные библиотеки для луа запустить какой-нибудь mp3-трек прямо в плеере фоном. Помнится в каком-то билде, амбиент-музыка на локацях именно так и была реализована)) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948149
macron 1 905 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) Как-нибудь можно обнулить parent_id у объекта? Вот есть объект gluk_object. Надо что-то типа gluk_object.parent_id == 0. Изменено 4 Июля 2015 пользователем macron Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948323
Карлан 1 050 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @macron, от парентов вообще бывает трип, лично мне так и не удалось, делал задержку аж до 5 секунд. Реквестирую знатоков. "Обнуленный" парент это кстати 65534 (показатель бесхозности), 0 - это актор. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948329
macron 1 905 Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948354
Карлан 1 050 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @macron, бесхозность = валяние на земле. Не сработает, вот я к чему. Попробуй добавь проверку на серверный объект, удаляем то как никак его. local obj=level.object_by_id(i) local sobj=alife():object(i) if sobj then --//... end 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948363
Zander_driver 10 348 Опубликовано 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948383
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 Конечно, дико извиняюсь, но, вроде как, бесхозная вещь это s_obj.parent_id = 65535 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948390
Карлан 1 050 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, какая разница он ro, то что делал макрон это бесполезно. Спасибо за заметку, я сам не помню уже точно эти цифры. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948395
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) Возможно целесообразно сделать drop_item, дальше запустить level.add_call и как только parent_id == 65355, то удалит его. У меня кстати в таком случае проблем не было. Хотя, мне не понятна до конца проблема "рождения" глючных объектов и в чём их "глюк". Изменено 4 Июля 2015 пользователем makdm Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948400
Карлан 1 050 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, удаляешь сталкера, вместе с ним и инвентарь удаляется, зачем дропать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948401
vampirnik77 121 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 @makdm, На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером и это вызывает вылет при загрузке сейва. Официальная страница проекта Neof-One Crew Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948403
Zander_driver 10 348 Опубликовано 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948410
Карлан 1 050 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) @vampirnik77, как ты сделал сей дивный вывод (мне правда интересно)? Погляди причину под капотом, а то воюешь с ветряками. Изменено 4 Июля 2015 пользователем Карлан Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948412
macron 1 905 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 (изменено) На сколько я понял, проблема в том, что бывает такое, что у "глючного" объекта совпадают координаты с левелченджером и это вызывает вылет при загрузке сейва. Да, координаты совпадают. Но вылетает из-за того, что эти объекты еще ставят себе id от левелчейнжера в качестве parent_id. Я почему-то такого у себя никогда не видел... В OLR заспавнено очень много "всякой дряни" и физики. Возможно, из-за нехватки ID или еще чего, игра иногда дурит. В общем, вот что сейчас вышло. Объекты в нужной точке в момент сейва так и не удаляются. Если исправить больше нечего, забьем. Вроде в далеком будущем в новой версии обещали многое движком исправить. В test.txt сам текст + полный bind_stalker.script на всякий случай. http://rghost.ru/6qN89Tfr8 Изменено 4 Июля 2015 пользователем macron Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948418
Zander_driver 10 348 Опубликовано 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948421
makdm 37 Опубликовано 4 Июля 2015 Поделиться Опубликовано 4 Июля 2015 Да, координаты совпадают @macron, а что мешает при спавне объекта проверить координаты спавна и если они в зоне левел-ченджера, то сдвинуть спавн за пределы зоны перехода вглубь локации? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/319/#findComment-948422
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти