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 Ссылка на комментарий
UnLoaded 313 Опубликовано 21 Февраля 2015 Поделиться Опубликовано 21 Февраля 2015 Мы говорим о аналоге инфопорций - логических переменных , которые нужно сохранять . Извиняюсь не понял действительно, разговор вроде про и-п был сначала. А вообще-то, если нужна единичная переменная под хранение булевого(true\false) значения - то можно использовать под это и-п, тем самым не заморачиваясь на самостоятельное сохранение\загрузку ее при сэйв\лоад. Ссылка на комментарий
DDamian724 18 Опубликовано 23 Февраля 2015 Поделиться Опубликовано 23 Февраля 2015 Здравствуйте. Мне нужен небольшой скрипт, который откроет КПК, когда GG обрабатывает конкретный объект в его руках. PDA будет открыт после 3 секунд держит конкретный объект в его руках. Ссылка на комментарий
Zander_driver 10 342 Опубликовано 24 Февраля 2015 Поделиться Опубликовано 24 Февраля 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. Ссылка на комментарий
DDamian724 18 Опубликовано 25 Февраля 2015 Поделиться Опубликовано 25 Февраля 2015 It's not possible to make this script? Ссылка на комментарий
Malandrinus 615 Опубликовано 25 Февраля 2015 Поделиться Опубликовано 25 Февраля 2015 @DDamian724, the major issue, if I remember correctly, is that using the vanilla engine it is not possible to open the PDA window from a script. When using extensions, x-ray extensions for instance, it is possible but for the specific version of engine (SHOC 1.0006). The script itself shouldn't be very difficult to make: perform a periodical check of the current item and, depending on it, show the PDA window. The periodical check can be performed using update event in the actor's binder. 1 Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
mumie 2 Опубликовано 28 Февраля 2015 Поделиться Опубликовано 28 Февраля 2015 (изменено) Всем привет. Недавно столкнулся с проблемой, которую пока решить не могу(мозгов видимо нету). Может подскажите чего. Есть функция, которая работает со строкой(Она считывает значение соответствующего edit_box и записывает в переменную textstring). Далее запускается функция которая сверяет строку(значение textstring) с значениями элементов таблицы(в таблице написаны названия имеющихся в файле функций). Тут думаю всем понятно, что если имеется совпадение, то на этой итерации вызывается функция с именем которое есть в таблице. (На этом этапе все работает отлично). Вопрос состоит в том, что бы перенести эти функции(для экономии места в файле) в другой, тем самым создав, что то вроде "библиотеки". И вот здесь уже проблема. Ибо я додумался лишь до конструкции типа: local fun_table = { "QWERTY", "GETWEAPON", "GETMEDKIT" } function start_fun(textstring) local flag = 0 for i=1,#fun_table do if textstring == fun_table[i] then flag = 1 end end if flag == 1 then this[textstring]() flag = 0 end end Красным выделена сама конструкция вызова соответствующей функции. Как ее можно было модернизировать, что бы я мог вызывать таким "компактным" способом функции из другого файла? Заранее благодарю. P.S. Код детский, написан для примера. Извиняюсь, в пред просмотре было выделено) this[textstring]() --вот этот оператор меня интересует. Изменено 28 Февраля 2015 пользователем mumie Ссылка на комментарий
Desertir 202 Опубликовано 28 Февраля 2015 Поделиться Опубликовано 28 Февраля 2015 (изменено) @mumie, может что-то вроде function execute_by_name(function_name) local my_function = my_library[function_name] if type(my_function) == "function" then my_function() end end Изменено 28 Февраля 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
mumie 2 Опубликовано 28 Февраля 2015 Поделиться Опубликовано 28 Февраля 2015 (изменено) @Desertir, Да, работает. Спасибо огромное. Почему то проверять тип элемента и сохранять в переменную я не додумался. Ну буду учиться на ошибках и запоминать мысли умных людей) Изменено 28 Февраля 2015 пользователем mumie Ссылка на комментарий
mumie 2 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 Снова здравствуйте. А функция string.gmatch() при проходе по строке как себя ведет с цифрами? Игнорирует их или как то можно цифры прочитать в смешанной строке?Вот таким циклом: for w in string.gmatch(str, "%a+") do end разделяю строку на слова, и все хорошо, до того момента, пока не напарывается в строке на число. Функция не видит цифр. Может я ключ не правильный написал?Заранее спасибо! Ссылка на комментарий
Desertir 202 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 (изменено) @mumie, изучи маленько регулярные выражения. А вообще замени a на w. Изменено 1 Марта 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
UnLoaded 313 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 при проходе по строке как себя ведет с цифрами Так-же, как и с остальными строковыми символами - буква и цифра в строке равнозначны. Ссылка на комментарий
mumie 2 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 @Desertir, ну на самом деле и "." бы подошла в моем случае. Ссылка на комментарий
Desertir 202 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 (изменено) @mumie, точка это любой символ, шаблон .+ вернет всю строку. Если ты делишь строку на слова, разделенные пробелом, которые содержат числа, тебе нужен паттерн %w+. В твоем вопросе не было никакой конкретики по поводу того, какие строки ты пытаешься делить, кроме "разделяю строку на слова" (можно предположить по пробелам или запятым или чем-то не буквенным) и "смешанная строка". Что значит "смешанная", что с чем смешали? А вопрос "как ведёт себя функция с цифрами" весьма странный. Нормально ведёт, не хулиганит, только шаблон нужный надо задавать. Изменено 1 Марта 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Nazgool 250 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 (изменено) @mumie, https://yadi.sk/d/4EUvTWhzdnAve Глава 21.3 "Шаблоны". Я зря что-ли столько времени убил на это руководство? Если ты делишь строку на слова, разделенные пробелом ... тебе нужен паттерн %w+ На любителя. Я, например, использую %S+. Но в данном случае не до жиру ) Изменено 1 Марта 2015 пользователем Nazgool 2 Ссылка на комментарий
Desertir 202 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 На любителя.Ага. [a-zA-Z0-9]+Да чего уж там, можно все и перечислить abcde... Но S это отрицание s, так что S не эквивалентно w. Поэтому я оговорился, не обязательно пробелами делить слова (коммы например). Твой случай захватит и некоторые другие символы кроме букв и цифр, а речь пока шла только о них. Я к чему, что это 2 разных случая, так что "до жиру" и даже вполне. Нет, если у него нету запятушек и прочего то без разницы, но мало ли. ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
RayTwitty 510 Опубликовано 1 Марта 2015 Поделиться Опубликовано 1 Марта 2015 Я зря что-ли столько времени убил на это руководство?Блин, чувак, ну а как ты это руководство выложил? Неизвестно где, неизвестно когда. Тут же нет телепатов, чтобы знать, что кто-то там делал мануалы. Да банально в подпись забить и ссылку в шапку - уже какой-то прок будет. Мне например тоже интересна некоторая информация, но ведь её же не найти... З.Ы. мануал на родном языке - вдвойне приятно, спасибо. Ссылка на комментарий
Nazgool 250 Опубликовано 2 Марта 2015 Поделиться Опубликовано 2 Марта 2015 (изменено) @Desertir, дружище, я не случайно привел цитату ...Если ты делишь строку на слова, разделенные пробелом...тебе нужен паттерн %w+ Являясь как бы скриптером, я не могу себе позволить упускать даже мелких деталей, поскольку, сам понимаешь, такие мелочи могут кардинально изменять код. Поэтому вышеприведённую цитату я воспринимаю буквально (как задачу). А она звучит как разделение по пробелам (вернее пробельным символам). Поэтому, в данном контексте, разделение %S+ точнее подходит под определение задачи. Под другую цитату решение может быть совершенно другим. Блин, чувак, ну а как ты это руководство выложил? Неизвестно где, неизвестно когда. Чувак, кто ищет - тот всегда найдет. Как еще можно назвать тему "Язык Lua. Общие вопросы программирования.", чтобы было понятнее о чем там идет речь. Если почитать хотя бы последнюю страницу, то 3-й пост с краю будет то, что нужно. И в подпись добавлять бесполезно. Я не часто отмечаюсь постами. Так что быстрее всё-таки найти в теме. Да и в шапку забивать подобные вещи должен кто-то из руководства, который посчитает информацию достойной этого. З.Ы. пожалуйста. Изменено 2 Марта 2015 пользователем Nazgool Ссылка на комментарий
Kirgudu 1 249 Опубликовано 2 Марта 2015 Поделиться Опубликовано 2 Марта 2015 @Nazgool, ссылку на твой пост с переведённым руководством @Dennis_Chikin опубликовал в шапке той темы ещё в январе. Вот: http://www.amk-team.ru/forum/index.php?showtopic=11584&p=905371 Ну а я добавил сейчас пояснения. Так что действительно, «кто ищет...». Инструмент Ссылка на комментарий
Nazgool 250 Опубликовано 2 Марта 2015 Поделиться Опубликовано 2 Марта 2015 (изменено) @Kirgudu, "А ларчик просто открывался" . Спасибо. Можно ещё запилить "Справочное руководство" по функциям. У меня процентов на 60 оно уже сделано. Материала полезного куча. Но это может быть достаточно долго. Можно было бы постепенно добавлять информацию, но она раствориться по страницам. Не создавать же отдельную тему? Да и редактировать, если что, у меня нет возможности. Подумаю. В зависимости от того, как организовано - можно и создать. Есть же "справочник по функциям и классам" по движку. А можно - и в имеющуюся - не так уж часто туда что-то постится, чтобы потерялось. dc Изменено 3 Марта 2015 пользователем Dennis_Chikin 1 Ссылка на комментарий
Desertir 202 Опубликовано 2 Марта 2015 Поделиться Опубликовано 2 Марта 2015 (изменено) У меня процентов на 60 оно уже сделано.А что там? такие мелочи могут кардинально изменять кодТак именно, только вот для тебя мелочью является "пробелы", а для меня "слова", и сразу видна разница Как я рассуждаю "мне из строки нужны слова", а ты рассуждаешь "мне надо разделить строку по пробелам", я правильно понял? Но чего нужно автору, только ему и известно. говорилось о пробелах и соответствии им шаблона %w+Ну да, если посмотреть с этой стороны, то шаблон не тот Изменено 2 Марта 2015 пользователем Desertir ТЧ 1.0004. SAP и Trans mod github Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти