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 Ссылка на комментарий
Malandrinus 615 Опубликовано 29 Марта 2015 Поделиться Опубликовано 29 Марта 2015 @Хек, используй сохраняемые таймеры. Таковые имеются в OGSE. Концы ищи отсюда 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Simonov50 2 Опубликовано 31 Марта 2015 Поделиться Опубликовано 31 Марта 2015 (изменено) так здесь все еще проще: Именно на таком варианте у меня и вылетало, а нужно именно так, как вы мне подсказали в предыдущем посте - через блок, прятать имя функции в переменной, отдельно проверять наличие листа и только при его наличии проверять функцию. Я встроил опрос внутрь своего класса (для менюшки), и всё заработало - спасибо! Но теперь вопросов стало ещё больше !!! В варианте if another_script.myfunc then another_script.myfunc() вылета не может быть в принципе. Как сделать вывод в свой файл ? Начал с local file = io.open("mu_file.txt", "a") Но на все попытки найти io или openfile возвращает nil. Специально установил чистую, лиценз.версию - результат тот же. Что бы понять нужно посмотреть, но для этого сначала нужно написать... и так далее по заколдованному кругу ... - сильно достаёт! Эх, знать бы дорожку в базовое адр.пространство чистого Lua, авторы им наверняка пользуются. Движок править. Брать исходники, и править. dc Изменено 31 Марта 2015 пользователем Dennis_Chikin Ссылка на комментарий
Nazgool 250 Опубликовано 31 Марта 2015 Поделиться Опубликовано 31 Марта 2015 (изменено) Эх, знать бы дорожку в базовое адр.пространство чистого Lua Установи расширение Lua от RvP. Если будут проблемы, то распишу подробно. Изменено 1 Апреля 2015 пользователем Nazgool Ссылка на комментарий
nikita_nz1986 130 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 Всем здравствуйте, вопрос:возможно ли заспаунить скриптом обьект прямо из папки meshes? Ссылка на комментарий
Dennis_Chikin 3 661 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 А это как ??? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Simonov50 2 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 В варианте if another_script.myfunc then another_script.myfunc() вылета не может быть в принципе.У меня вылетало именно на if another_script.myfunc при фактическом отсутствии листа another_script . Вылет во время начальной загрузки (another_script = nil value). Ошибка фиксировалась именно при наличии в тексте связки лист.функция (через точку). Присутствие условия (if) не спасало, т.к. сочетание лист.функция транслировалось целиком. Ссылка на комментарий
Карлан 1 049 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 @Simonov50, следует проверять наличие самого модуля в глобальной таблице, без этой проверки он сразу будет искать поле в твоем модуле, которого не существует в принципе, поэтому и происходит вылет. Например можно вот так: if module and module.func and type(module.func) == 'function' then Или лучше: if _G[module] and _G[module].func and type(_G[module].func) == 'function' then Ссылка на комментарий
Simonov50 2 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 (изменено) возможно ли заспаунить скриптом обьект прямо из папки meshes?Теоретически можно запустить скрипт из любой папки, но для этого должен быть нестандартный движок (с библиотеками Lua) и самое главное - этот скрипт должен делать строго то же самое, что делается при нормальном спавне. Кроме лишнего гемора ни чего не даёт! Я анализировал подобный вариант на предмет "сунул" в игру/мод новый каталог со всеми ресурсами (что бы не затрагивать игру), а потом ... Но подключать, то его к существующим скриптам (руками или програмой ) всё равно придётся! @Карлан, Спасибо, именно так я и сделал, теперь работает. @Dennis_Chikin, Движок править. Брать исходники, и править. dc Чувствовал, что в подобное вляпаюсь! Но, если я правильно понимаю, скрипты сделанные мной после такой правки, у других работать не будут? Не порекомендуете ли Вы мне какой-либо базовый набор (.bin) игры, в котором функции записи/чтения в файл работают и при этом он широко применяется модерами. У меня есть один "правленый" XR3DA.exe c работающим выводом в файл, но там "криво" работает наследование у брони и артефактов. Возникают "случайные" вылеты при вставке его в мод, где у "новых" вещей не прописаны все параметры (в расчёте на наследование). Есть ещё пяток с форсированным рендерингом, но с ними перегреваются GTX-680 (3 минуты заставки), периодические вылеты при большом количестве аддонов к оружию и при "частом" _update_delta. Вывод в файл в половине из них тоже не работает - видно, как авторы модов заменяли его выводом на консоль. Изменено 1 Апреля 2015 пользователем Simonov50 Ссылка на комментарий
nikita_nz1986 130 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 Упс!Меня не так поняли , не сам скрипт в папке meshes, а модели что в ней находятся, то есть спавнить не секции, а именно модели через скрипт? Возможно ли это? Ссылка на комментарий
Nazgool 250 Опубликовано 1 Апреля 2015 Поделиться Опубликовано 1 Апреля 2015 (изменено) Движок править. Брать исходники, и править. dc Этот комментарий к своему посту Вы прочитали, но если бы очень хотели решить свою проблему, то прочитали бы и мой пост чуть ниже. Либо не настолько нужно, либо не заметили, либо не читали вовсе. Если первый случай, то не стоило и задавать вопрос. Если второй, то без внимательности многое не просто делать, особенно скриптовать. Ну а третий случай ... неверное оставлю без комментариев ) Изменено 1 Апреля 2015 пользователем Nazgool 1 Ссылка на комментарий
Zander_driver 10 343 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 а именно модели через скрипт? Возможно ли это? В сталкере возможно все, и уж тем более такие простые вещи. Просто надо понимать, что спавнится - игровой объект. А уж у него может быть визуал конкретной нужной вам модели. Таким образом вам нужно: 1) заспавнить объект. если вспоминать оригинал, то там есть physic_object и physic_destroyable_object, но если поискать, да полазить по модам, то еще всякое найдется, это уж вы сами определите какой именно вам надо. 2) через нетпакет присвоить объекту нужный вам визуал (см. модуль для работы с нетпакетами от Артоса, хотя, есть и другие варианты) 3) опять же через нетпакеты Артоса, или через подачу импульса после входа в онлайн, задать объектам положение в пространстве, чтоб они в воздухе не висели. да кстати, в моде "Судьба зоны" который скоро выйдет, вместо всего этого вышеописанного и конечно тяжелого для новичка гемороя, будет достаточно удобный функционал, и к известным physic_object и physic_destroyable_object, будет кое-что свое добавлено. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Simonov50 2 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 Этот комментарий к своему посту Вы прочиталиПриношу извинения, если сделал что-то некорректно, но именно на этот комментарий я и отвечал. Ваш же пост я не просто прочитал, а принял к исполнению! Не сделав этого я так и останусь "слепым". За предложенную помощь отдельное Спасибо, но пока по делу спрашивать не готов (оставил резерв на будущее). Пока нагуглил luacap-2012-02-20 (как я понял он включает предложенное Вами). В чистом виде "Lua от RvP" не нашел. Сейчас ищу отдельно расширитель Lua или более позднюю версию luacap. Ещё раз приношу извинения. С уважением, Сергей. Ссылка на комментарий
Nazgool 250 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 @Simonov50, Вот я подготовил архив для расширения Lua by RvP. Инструкция внутри. https://yadi.sk/d/g7Dshghnfgzm5 Также есть возможность подключать сторонние библиотеки. Со всем этим делом очень удобно использовать "тестовый стенд". Способ нашел malandrinus. Если интересно, то могу показать как это организовать. 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 @Zander_driver, тем не менее ты спавнишь все равно по секции, а не модель напрямую. А уже с одной секцией можно сделать технический объект практически на любом классе "для посмотреть" на котором будешь визуал объекта менять по щелчку. Так же можно создать список таких объектов на разных классах, что бы смотреть поведение разных моделей с разной логикой например, которые ты делал под разные нужды (читай - классы). Так что ответ все же - нельзя. Ссылка на комментарий
Simonov50 2 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 (изменено) Если интересноОгромное спасибо !!! Не просто интересно а много больше того, о чём я мог мечтать (учитывая реалии - я по специальности не программист). Но пока подключать не к чему. Если подключить к любой "базе" (exe + dll+ ... = /bin), коих даже у меня 7 штук, то сделанное мой будет нормально работать только у одного пользователя из семи (не нарушив то, что было раньше - обязательное условие!). То есть, надо брать наиболее распространённую версию и плясать от неё. На сегодня "лицензионка" для этого явно не годится (имхо). Да и модить через Старфорсе при обилии собственных ошибок - беспредел (не вытерплю!). Требуется имхо человека, который реально в этом "варится", а не стороннего наблюдателя (типа меня). Еще раз спасибо за действенную помощь. Сергей. P.S. Исхожу из того, что "имхо оно и в африке имхо". Любое имхо имеет право быть ... , ни к чему не обязывает, не наказуемо и т.д. Изменено 2 Апреля 2015 пользователем Simonov50 1 Ссылка на комментарий
Nazgool 250 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 (изменено) Если подключить к любой "базе" ... то сделанное мой будет нормально работать только у одного пользователя из семи Эта сборка совместима со всеми официальными версиями ТЧ. Так что можно смело добавлять в каждый из 7-ми bin-ов. Главное активировать расширение вызовом RvP() в каждом из 7-ми _g.script-е. Изменено 2 Апреля 2015 пользователем Nazgool Ссылка на комментарий
Simonov50 2 Опубликовано 2 Апреля 2015 Поделиться Опубликовано 2 Апреля 2015 Эта сборка совместима со всеми официальными версиями ТЧ. Спасибо ! Но это сборка люкс, а все мои XR3DA.exe - "г..." Хотелось бы ещё и ссылочку на проверенный профессионалами "открытый" экземпляр (с нефорсированным рендером). Сергей. Ссылка на комментарий
князь 0 Опубликовано 3 Апреля 2015 Поделиться Опубликовано 3 Апреля 2015 (изменено) Слушайте парни есть вопрос, как сделать что бы после выстрела оружие исчезало из инвентаря, и под ногами актора спавнился предмет? Если можно напишите этот скрипт(ы)... это для одноразовых гранатомётов, да это для тч Изменено 3 Апреля 2015 пользователем князь Ссылка на комментарий
Zander_driver 10 343 Опубликовано 3 Апреля 2015 Поделиться Опубликовано 3 Апреля 2015 (изменено) Так что ответ все же - нельзя. Если придраться к "букве" вопроса, то да, ответ именно такой. Если же вдуматься в смысл того, что хочет вопрошающий, то я дал вполне правильный ответ. князь, а почему вы решили что тут стол заказов? Для самостоятельного поиска, рекомендую модуль отлова выстрела, автор - @*Shoker* Изменено 3 Апреля 2015 пользователем Zander_driver 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
nik1967 34 Опубликовано 6 Апреля 2015 Поделиться Опубликовано 6 Апреля 2015 (изменено) Подскажите как повесить на поднятие предмета выдачу инфопоршня без квеста. И, да, целая отдельная тема есть, где все расписано. Здравствуйте! Если не сложно, то тыкните ссылкой на данную тему. Спасибо. Вот же: http://www.amk-team.ru/forum/index.php?showtopic=13054 dc Изменено 7 Апреля 2015 пользователем Dennis_Chikin Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти