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 Ссылка на комментарий
naxac 2 477 Опубликовано 23 Сентября 2017 Поделиться Опубликовано 23 Сентября 2017 @power-cat , ну и что, что не используются. Файл-то весь грузится. Если эти переменные у тебя используются один раз одной функцией, то и пихай их в эту функцию, зачем выносить за ее пределы? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Akcok 164 Опубликовано 24 Сентября 2017 Поделиться Опубликовано 24 Сентября 2017 (изменено) И выходит function at line N has more up 60 значений. p.s. в другое место сунул, всё стало ок, канеш помогло, но тем не менее этот чёртов лимит не устраивает. Изменено 24 Сентября 2017 пользователем power-cat Ссылка на комментарий
mole venomous 3 534 Опубликовано 24 Сентября 2017 Поделиться Опубликовано 24 Сентября 2017 В 07.09.2017 в 11:46, _Sk8_AsTeR_ сказал: как заставить НПС съесть водку Думаю, тут надо ковырять логику НПС, где через условия заставлять его проигрывать нужные анимации по порядку. В итоге, когда НПС очнётся, маленько хитовать его, как бы похмелье. Здесь могла быть ваша реклама. Ссылка на комментарий
BossBoroda 7 Опубликовано 26 Сентября 2017 Поделиться Опубликовано 26 Сентября 2017 Expression : xml_doc.NavigateToNode(path,index) Function : CUIXmlInit::InitStatic File : E:\stalker\sources\trunk\xr_3da\xrGame\ui\UIXmlInit.cpp Line : 172 Description : XML node not found Arguments : tab_client:check_with_battleye ai_add_shoc_2.0f4 ставил эту логику для нпс Как исправить вылет, или посоветуйте аналоги, или может пойти на уступки и что-то вылезать из скриптов чтобы вылет пропал, пусть лучше нпс что-то не делают, чем вылет игры! Ссылка на комментарий
Overfirst 637 Опубликовано 28 Сентября 2017 Поделиться Опубликовано 28 Сентября 2017 Есть таблица key = value: local params = { ["Name"] = obj:name(), ["Character name"] = obj:character_name(), ["Profile name"] = obj:profile_name() -- и т. д. } При печати этой таблицы элементы идут не том порядке, в котором расположены изначально. Читал про функцию table.sort, всячески применял, но ни вылета, ни результата. Добавлено Overfirst, 28 Сентября 2017 PS: в таблице более десятка элементов, всегда они печатаются не в том порядке, но всегда одинаково. Добавлено Overfirst, 28 Сентября 2017 Ещё хотелось бы узнать, как можно отловить наведение прицела на физический объект, сталкера, моба и, собственно, получить этот объект. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
naxac 2 477 Опубликовано 28 Сентября 2017 Поделиться Опубликовано 28 Сентября 2017 @BoBaH_671 , Цитата как можно отловить наведение прицела на .. объект В X-Ray Extensions для ТЧ есть функция level.get_target_obj(), которая возвращает объект, на который наведён прицел, либо nil, если ни на что не наведён. Функция table.sort работает только для индексированных массивов, используй их, если хочешь упорядочивать значения. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Overfirst 637 Опубликовано 28 Сентября 2017 Поделиться Опубликовано 28 Сентября 2017 Без функции сортировки, но с индексацией: for i = 1, #params do for k,v in pairs(params[i]) do if v ~= nil then -- // -- end end end Пашет. Добавлено Overfirst, 28 Сентября 2017 @SkyLoader, thanks. ;) Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Graff46 598 Опубликовано 28 Сентября 2017 Поделиться Опубликовано 28 Сентября 2017 16 часов назад, BoBaH_671 сказал: как можно отловить наведение прицела на физический объект, Можно векторами, если не хотите с правками возится, у класса рендер_девайс есть метод или св-во которые возвращают вектор направленный перпедикулярно плоскости экрана, он как раз на уровне прицела. 1 Ссылка на комментарий
Graff46 598 Опубликовано 28 Сентября 2017 Поделиться Опубликовано 28 Сентября 2017 У меня вопрос: way- look- и остальные поинты "имют" нэт-пакеты и какой у них класс если есть? Ссылка на комментарий
naxac 2 477 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 @Graff46 , доступ к путям есть только через класс 'patrol'. Нет-пакета у путей нет, т.к. у класса нет серверной части. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
shahvkit 3 583 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 (изменено) Добрый день. Подскажите пожалуйста как прописать рецепт на варку артефакта в качестве награды за квест? То есть, как к стандартной выдаче награды в виде предмета добавляется выдача какого либо рецепта. p.s. Это нужно для модов типа "Народная солянка", "NLC7". p.p.s. Поиск информации выдал только уроки по прописыванию предметов в качестве награды. Изменено 29 Сентября 2017 пользователем shahvkit Ссылка на комментарий
dsh 3 824 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 @shahvkit в этих модах, рецепт - это просто инфопоршень, т.ч. в качестве награды просто выдавай соотв. инфопоршень. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
BFG 7 582 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 @dsh Слишком упрощаешь. Не просто поршень, а внутри поршня ещё артикль с описанием рецепта в ПДА + ещё проверка на наличие поршня при варке вручную или трансмутатором в амк_мод.скрипт + ещё парочка каких нибудь проверок, о которых я и понятия не имею. Скорее всего он хочет делать новый рецепт, а не юзать старые. А это уже не так просто. 1 "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
dsh 3 824 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 @BFG теперь ты слишком усложняешь. Все, что ты описал, нужно только для создания нового рецепта. А для выдачи уже существующего, достаточно выдать соотв. инфопоршень. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
shahvkit 3 583 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 Всем спасибо за ответы и подсказки. Буду разбираться. Главное, я узнал к чему привязываются рецепты - к схемам диалогов. Дальше проще Ссылка на комментарий
BFG 7 582 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 16 минут назад, shahvkit сказал: я узнал к чему привязываются рецепты - к схемам диалогов. Неверно. Рецепт. как было сказано выше. привязан к поршню. А поршень может быть выдан где угодно : в диалоге, по поднятию итема, открыванию двери, обыске трупа, смерти вертолёта, заходы\выходу из рестриктора, да вообще на любое событие. Вопрос собсно реализации ТВОЕГО сюжета, а там уже конкретней смотреть надо. 1 "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
aka_sektor 1 477 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 (изменено) 4 минуты назад, BFG сказал: по поднятию итема Пишут такое: Цитата при загрузке уровня создаются клиентские объекты предметов , лежащих в инвентаре и они в нем регистрируются в сам факт регистрации в скриптах и отдается колбеком item_take то значит что этот код будет постоянно вызываться при загрузке уровня или просто сейв\лоад Изменено 29 Сентября 2017 пользователем aka_sektor 1 - Ссылка на комментарий
BFG 7 582 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 1 минуту назад, aka_sektor сказал: то значит что этот код будет постоянно вызываться при загрузке уровня. Я уж не знаю как оно сделано, но что-то по логам я не припомню, чтоб в Соли на каждый заход на локу вызывался код на поршень. А итем мог быть поднят на локе неделю назад. Значит есть методы обхода. Шах ведь не пишет что конкретно он задумал и что собственно хочет от всей этой рецептуры. Толку то переливать из пустого... Напишет, тогда сразу будут конкретные примеры. 1 "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
aka_sektor 1 477 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 (изменено) 6 минут назад, BFG сказал: есть методы обхода Заглушка: if obj:section() == "имя_предмета" and not has_alife_info("фэйковый_инфопоршень") then give_info("фэйковый_инфопоршень") end И ещё: Цитата При взятии любого предмета (и после загрузки, да) выполняется весь код метода этого коллбека. Изменено 29 Сентября 2017 пользователем aka_sektor - Ссылка на комментарий
Капрал Хикс 542 Опубликовано 29 Сентября 2017 Поделиться Опубликовано 29 Сентября 2017 Вопрос такой - как монстрячую логику Сидоровича отвязать от скрипта mob_trader.script? Есть нормальная модель с сидячими анимациями из ЗП, хочу её посадить в каморку, так скрипт ругается на анимки. Если нужно, предоставлю логи вылетов и переписанную логику Сидора без анимок оригинального. По-хорошему, можно конечно удалить оригинального и заспавнить нового НПС с его диалогами, но не хочется дополнительной возни. 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти