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/
svarog2741 83 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 (изменено) зациклить скрипт Сделай проверку на нахождение ГГ на локации, но тогда не на апдейт вешай, а на загрузку. Изменено 8 Июня 2015 пользователем svarog2741 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942801
Gerakruger 18 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 Пример скрипта можете написать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942804
UnLoaded 313 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 при заходе на локацию Янтарь, происходит спавн живности в лабе х-16 один раз. Помогите зациклить скрипт. Вообще-то, для этих целей - "зациклить спавн", ПЫСы придумали респавнеры... Пример скрипта - se_respawn.script. Смотрим в скрипт(включая его разновидности в различных модах), читаем на вики описание его работы(для базовой версии), рещаем свои проблемы\запросы... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942841
Gerakruger 18 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 (изменено) Вообще-то, для этих целей - "зациклить спавн", ПЫСы придумали респавнеры... Пример скрипта - se_respawn.script. Смотрим в скрипт(включая его разновидности в различных модах), читаем на вики описание его работы(для базовой версии), рещаем свои проблемы\запросы... Что такое "рещаем"? Все, что Вы написали, давно просмотрено и прочтено. Меня интересует конкретно - как в моем случае (вышеописанный скрипт спавна живности) сделать его (скрипт) циклическим. Там реально несколько строк в коде нужно прописать - прошу подсказать опять же конкретно - где и что прописать/добавить. 1. Я не требую, а прошу, гордые вы мои 2. Да, просто, чтобы спавн происходил каждый раз при посещении локации и живность при каждой загрузке добавлялась к уже существующей . 3. Если не хотите помочь с кодом - буду спрашивать на других ресурсах Изменено 8 Июня 2015 пользователем Gerakruger Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942856
svarog2741 83 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 (изменено) Пример скрипта можете написать? 1. Мне лень 2. Я забыл нужную функцию в бинде 3. Более года не использовал скриптовый спавн. Изменено 8 Июня 2015 пользователем svarog2741 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942859
Akello 175 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 (изменено) Помогите зациклить скрипт. По поводу спавна. При загрузке уровня происходит спавн актёра и перевод его в онлайн, вызывается function actor_binder:net_spawn(data) (файл bind_stalker), соответственно, поместить сюда вызов вашей функции спавна, в которой перед спавном предмета проверять имя локации: if level == "l08u_brainlab" then таким образом при каждом заходе будет спавн. Изменено 8 Июня 2015 пользователем Akello 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942886
UnLoaded 313 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 таким образом при каждом заходе будет спавн. А еще при каждой загрузке сэйва... а, просто, чтобы спавн происходил каждый раз при посещении локации и живность при каждой загрузке добавлялась к уже существующей.Там реально несколько строк в коде нужно прописать - прошу подсказать опять же конкретно - где и что прописать/добавить. Это смотря кто как понимает "циклический" спавн: не буду пальцем тыкать, но есть приличное кол-во (говно)модов в которых происходит спавн по запрошенному Вами выше варианту. Т.е. зашел на локу - заспавнилась какая-то тварь, и если просто зайти\выйти 5 раз, будем иметь 5 этих тварей. Вы серьезно считаете это правильным вариантом спавна ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942925
Gerakruger 18 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 @UnLoaded, Нет конечно, идеальный вариант - спавн через временной интервал или в привязке к выбросу (опять же временной интервал). Но мои скромные познания отнюдь не настолько обширны, чтобы использовать такой способ спавна. Кроме того, я никого не заставляю играть в тот Сталкер, в котором будет использоваться мой примитивный циклический спавн Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942929
svarog2741 83 Опубликовано 8 Июня 2015 Поделиться Опубликовано 8 Июня 2015 Но мои скромные познания отнюдь не настолько обширны, чтобы использовать такой способ спавна. возьми у меня из профиля скрипт и повесть на таймер спавн. 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942931
Akello 175 Опубликовано 9 Июня 2015 Поделиться Опубликовано 9 Июня 2015 (изменено) Нет конечно, идеальный вариант - спавн через временной интервал или в привязке к выбросу (опять же временной интервал)Вариантов миллион, можешь как вариант использовать способ, как при выдаче Меченному первого квеста при запуске, "убить стрелка", там выдается инфопоршень "storyline_actor_start" когда ты появляешься на кордоне. Изменено 9 Июня 2015 пользователем Kirgudu 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-942994
UnLoaded 313 Опубликовано 9 Июня 2015 Поделиться Опубликовано 9 Июня 2015 Но мои скромные познания отнюдь не настолько обширны, чтобы использовать такой способ спавна. Тогда, видимо, Вам стоит переместиться из темы "Скриптование" в тему "Ищу файлы\моды\аддоны" ? Правильно изложить свою просьбу, и вполне реально получить искомое... P.S. Без обид, но если Вы задали вопрос в теме "Скриптование", то предполагается что Вы решили хоть как-то его освоить. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943094
Akello 175 Опубликовано 9 Июня 2015 Поделиться Опубликовано 9 Июня 2015 (изменено) Gerakruger зайди, вопрос решим, потому что всем пофиг, на твою проблемму, если ты ещё не в курил,ни у то твоё личное дело. Изменено 9 Июня 2015 пользователем Akello Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943122
Winsor 178 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 Уважаемые, подскажите, где можно прочитать про отличия UPDATE_Read/Write от STATE_Read/Write нетпакета? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943197
Struck 61 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 @Winsor, acdc.pl 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943198
Winsor 178 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 Уважаемый @Struck, очень внимательно причитал acdc но не смог найти описания отличий STATE от UPDATE части нетпакета, не могли бы Вы подсказать - куда именно мне обратить свое внимание? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943218
Kirgudu 1 328 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 (изменено) @Struck, шикарный ответ. Человеку, слабо разбирающемуся в предмете, даёт исчерпывающий объём информации. Имхо, уж лучше вообще не отвечать, чем вот так. @Winsor, касательно первого вопроса, как можно догадаться из названия методов, они предназначены для работы с update- и state-частями нетпакета соответственно. Общие сведения есть на форуме, например здесь. Если же хочется понять, каким методом работать с определёнными свойствами определённого объекта, действительно, тут может помочь изучение файла acdc.pl. Но не абы какого - от «Universal ACDC» не пойдёт. Открой acdc.pl от bardak, предназначенный для нужной части игры. Там ищи таблицы upd_properties_info - для каждого объектного класса своя. В этих таблицах и описаны доступные свойства update-части нетпакета. В качестве альтернативы можно ещё поизучать скриптовые модули нетпакетов (для m_netpk от Artos ищи таблицы up_props). Изменено 10 Июня 2015 пользователем Kirgudu 3 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943256
Это популярное сообщение. *Shoker* 322 Опубликовано 10 Июня 2015 Это популярное сообщение. Поделиться Опубликовано 10 Июня 2015 (изменено) Вообще с пакетами там интересная ситуация в движке. Практически у всех игровых объектов есть две версии - клиентская и серверная (онлайн\оффлайн). Серверные это объекты, которые находятся на другом уровне, либо далеко от игрока (упрощённо), а клиентские это те, которые активны в данный момент. Серверный объект существует всегда, а клиентский лишь на уровне с игроком. Далее к делу: STATE_Write используются (если я ничего не путаю) лишь во время перехода объекта в оффлайн (тут правда на 100% не уверен) и в момент сохранения игры. + иногда при создании объекта. Его суть собственно - записать в сохранение те данные серверного объекта, которые точно нужно хранить. STATE_Read аналогично - при загрузке сохранения считывает данные из него в серверный объект. В остальных случаях они обычно не используются. UPDATE_-пакеты же обновляются (в зависимости от объекта) раз-два в секунду (+\-). Они служит для синхронизации (в реальном времени) некоторых данных клиентского объекта и серверного. (В том числе для мультиплеера, передавая данные между игроками) Например для физических объектов это их текущая линейная скорость, для оружия это текущее состояние, патроны и прочее. Эти данные не всегда сохраняются в сейве (для серверного объекта), но всегда передаются между игроками в мультиплеере. То-есть они обрабатывают те данные, которые нужно обновлять как можно чаще и передавать между игроками. Отсюда и название - update. Кстати по функциям net_Export\net_Import - это как раз те функции, которые собирают\считывают UPDATE_ - пакет. Они экспортированы в Lua и через них можно там в реальном времени этот UPDATE_- пакет править или считывать. Ещё стоит учесть что у клиентских объектов также есть своя функция save\load. При сохранении игры идёт запись данных всех серверных объектов, а потом запись данных всех клиентских (которые существовали на момент сохранения) Соответственно при загрузке игры этот клиентский объект сперва считывает данные из своего серверного объекта, а потом считывает\перезаписывает их сохранёнными данными клиентского объекта. (они имеют приоритет) ------------------------------------------------------- Собственно основная соль в том что в UPDATE-пакетах можно получить доступ к данным, которых нет в STATE-пакетах. Но нужно учитывать что эти данные обновляются с различной небольшой задержкой. Изменено 10 Июня 2015 пользователем *Shoker* 1 2 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943290
Struck 61 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 Собственно основная соль в том что в UPDATE-пакетах можно получить доступ к данным, которых нет в STATE-пакетах. И инверсионно. Сам капитан очевидность захлебнулся слюной. Я, например, одно время с бубном плясал, правда уже не помню помогало или нет, судя по результатам - помогало. шикарный ответ. Он верный, ты это знаешь. Если ты мне внятно объяснишь, где образованный человек (с логическим мышлением и работающей дедукцией) запутается (не отличит стейт от апдейт частей) в скрипте acdc.pl, то я скажу "есть сэр!". Другим надо-ли что-то объяснять? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943293
abramcumner 1 229 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 Он верный, ты это знаешь. Летят на воздушном шаре Шерлок Холмс и доктор Ватсон и видят на лугу человека. Холмс спрашивет его:"Сэр! Где мы находимся?". Мужчина долго думает и наконец отвечает:"На воздушном шаре." Это програмист говорит Холмс. Почему вы так думаете спрашивает Ватсон. Это элементарно. Во первых долго думал. Во вторых его ответ очень точен. А в третьих абсолютно бесполезен! 3 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943295
Dennis_Chikin 3 665 Опубликовано 10 Июня 2015 Поделиться Опубликовано 10 Июня 2015 (изменено) Ещё стоит учесть что у клиентских объектов также есть своя функция save\load. Вот здесь, кстати, все странно и загадочно. Недавно, пытаясь сохранять свои данные через это место, обнаружил, что сохраняется только то, что было в онлайне на момент сэйва, и то не каждый раз. Пришлось все переделывать под запихивание в custom через пакеты. В все неписевые "менеджеры", которые там типа что-то куда-то сохраняли, соответственнo, снес за полной бесполезностью. Изменено 10 Июня 2015 пользователем Dennis_Chikin Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/314/#findComment-943298
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти