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/
Kirgudu 1 343 Опубликовано 3 Июля 2020 Поделиться Опубликовано 3 Июля 2020 (изменено) @Expropriator, теоретически all.spawn, конечно, может влиять. Например, для тех же заданий типа "kill_stalker" одним из свойств является свойство parent, указывающее на того, кто может выдать задание. Это story_id определённого персонажа, и если ты удалил его из спавна, задание с таким родителем будет полностью пропущено при инициализации, а значит не будет учтено при составлении массива task_id_by_type[type]. Таким образом, получается, чтобы ты не наталкивался на вылет, описанный выше, необходимо выполнение трёх условий: 1. Конфиг misc\rt_manager.ltx должен содержать как минимум одно задание типа "kill_stalker"; 2. All.spawn должен обеспечивать спавн как минимум одного персонажа со story_id, указанным в конфиге в заданиях типа "kill_stalker", причём этот спавн должен происходить до инициализации менеджера; 3. Вызов любого метода менеджера должен происходить только через получение его экземпляра: ogsm_rt_manager.get_rt_manager():method_name(). Конечно, менеджер можно доработать так, чтобы он был универсальным и стойким к разным условиям. Но на момент активной разработки ОГСМ такой задачи просто не возникало, поэтому имеем то, что имеем. 15 часов назад, Zander_driver сказал: Может там достаточно проверку if type() == 'table' воткнуть, и всего делов... И кстати, если ты действительно убрал весь классический спавн, тогда причина именно в этом согласно трём правилам, описанным выше. А значит, решение, предложенное @Zander_driver, скорее всего будет для тебя панацеей. Куда воткнуть такую проверку, объяснять не нужно? Вроде все тут - люди опытные. Изменено 3 Июля 2020 пользователем Kirgudu 2 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339032
phalcor 60 Опубликовано 4 Июля 2020 Поделиться Опубликовано 4 Июля 2020 А есть ли возможность поменять скриптом предмет в слоте актора? (текущий отправить в инвентарь, а вместо него взять из инвентаря) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339293
UriZzz 1 004 Опубликовано 5 Июля 2020 Поделиться Опубликовано 5 Июля 2020 @phalcor, в оригинале пожалуй без особо злой чёрной магии нет. В XRay Ext добавлены соответствующие методы. 1 1 Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339312
Norman Eisenherz 354 Опубликовано 5 Июля 2020 Поделиться Опубликовано 5 Июля 2020 Здрасьте. Как в ЧН отследить смену калибра оружия и вообще список установленных апгрейдов? Секция предмета остается той же, в нетпакете таких данных нет (если только они не пишутся в конец в виде набора stringZ). Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339442
Serge_888 114 Опубликовано 6 Июля 2020 Поделиться Опубликовано 6 Июля 2020 У меня тоже вопросик. По ЗП. Нашел на сталкерине: function set_ammo_elapsed(number) void set_ammo_elapsed(int ammo_elapsed) заряжает магазин количеством патронов, равным ammo_elapsed. Размер магазина игнорируется. function unload_magazine() void unload_magazine() разряжает магазин оружия. Оружие должно быть в инвентаре/руках объекта CAI_Stalker. Патроны из ствола пропадают. Аргументов не принимает. А как это должно выглядеть в самом скрипте? Можно примерчик кода. А то, до сих пор в основном использовал функции которые получают значения, а не задают. И вообще, это было в 18-ом году. Сам удивился. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339483
Serge_888 114 Опубликовано 7 Июля 2020 Поделиться Опубликовано 7 Июля 2020 Upd: Почему не срабатывает? local wpn = db.actor:active_item() local update_ammo = 5 wpn:set_ammo_elapsed(update_ammo) 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339595
Okichi 979 Опубликовано 7 Июля 2020 Поделиться Опубликовано 7 Июля 2020 Уважаемые камрады, подскажите, пожалуйста, работает ли на оригинальном движке команда set_fov для мутантов? Если да - то параметры она принимает в градусах или радианах? Увеличение set_range( new_value ) отрабатывает, а вот на set_fov() никаких изменений отладка не показывает. И второй вопрос - параметр "освещенности" ( luminocity_factor ) для мутантов вообще скриптами можно менять? След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1339598
Norman Eisenherz 354 Опубликовано 16 Июля 2020 Поделиться Опубликовано 16 Июля 2020 Здрасьте. Как научить NPC обходить ГГ, а не идти напролом? Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340757
Chypakabra 820 Опубликовано 16 Июля 2020 Поделиться Опубликовано 16 Июля 2020 1 час назад, Norman Eisenherz сказал: Я так понимаю, список "препятствий" динамический, Вот тут ошибочка, нпс ходят по "нодам" - клеткам расставленным в сдк, а они статические, и предметы заспавленые скриптом - "динамические" они не видят в упор 2 Личный архив по играм Архив по Trilogy EE Скрипт гладкого интерфейса AMK-Team Файлы BFG Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340778
Norman Eisenherz 354 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 @ted.80 Каким тогда образом NPC обходят динамические аномалии в модах? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340815
_g.script 3 669 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 10 минут назад, Norman Eisenherz сказал: Каким тогда образом NPC в AMK запросто обходят. Посредством скриптов 1 Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340816
UriZzz 1 004 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 (изменено) @Norman Eisenherz, ну, с аномалиями проще. Во первых они не движутся, во вторых, ты должен быть в курсе что у аномалии два радиуса действия: effective_radius и actor_blowout_radius_percent. И вот какой то из них скрипт и использует для определения границ аномалий. Изменено 17 Июля 2020 пользователем UriZzz Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340819
Kirgudu 1 343 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 @Norman Eisenherz, например https://www.amk-team.ru/forum/topic/6185-skriptovanie/?do=findComment&comment=1325557 А вообще, хорошей практикой будет (а раньше считалось ещё и хорошим тоном) проведение самостоятельного поиска по форуму на интересующую тему. Многие вопросы обсуждались не раз и не два. Вот и запрос по словосочетанию "обход аномалий" легко возвращает интересные для изучения результаты. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340820
_g.script 3 669 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 https://drive.google.com/drive/folders/14e_F0UqKAhuKtLjvRiQSZxUU0yHjcEJb?usp=sharing Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340858
Zander_driver 10 348 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 (изменено) 10 часов назад, mole venomous сказал: Посредством скриптов Строго говоря, нет. Посредством скриптов добавляются (или удаляются) зоны в список тех, которые надо/не надо обходить. А обход-то сам всегда и во все времена, выполнялся и выполняется движком. 22 часа назад, Norman Eisenherz сказал: Я так понимаю, список "препятствий" динамический, без точных координат каждого ящика и каждой аномалии, только где он хранится? space_restriction_manager.cpp Ну или, если по-старому, то через нетпакеты можно в эти списки (in_restrictions, out_restrictions) что-то добавлять/удалять скриптами. Только, это что-то должно быть (если без правок движка), рестриктором или аномалией. Чтобы туда еще и актор принимался, надо немного движок подправить. Но за идею спасибо. Изменено 17 Июля 2020 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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/521/#findComment-1340890
_g.script 3 669 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 19 минут назад, Zander_driver сказал: Посредством скриптов добавляются А как же команда AMK это организовала? Поправь меня, если я ошибся. Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340895
Zander_driver 10 348 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 Именно так и организовала, добавляя скриптами через нетпакет, зоны в in/out_restrictions. Как я выше и написал. Не было тогда другого метода. Без правок движка, другого и нету. Ну и, в 2008 году скажем, в амк не было настоящих динамических аномалий. Были "псевдо-динамические", о которых все не-разбирающиеся глубоко в механике, думали что они динамические. Суть была в том что на локации были заспавнено аномалий в несколько раз больше, чем их видно. И бОльшая часть из них была просто в неактивном состоянии, выключена. А при выбросах они включались/выключались. Но т.к. аномалии эти были на самом деле статическими, нпс их естественно обходили. Позже емнип добавили настоящую динамику, ну и механизм обхода выше описанный. Но это уже не скажу в каком году, не следил. 3 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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/521/#findComment-1340899
_g.script 3 669 Опубликовано 17 Июля 2020 Поделиться Опубликовано 17 Июля 2020 23 минуты назад, Zander_driver сказал: амк не было настоящих динамических аномалий Я тебя понял 1 Здесь могла быть ваша реклама. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340901
AndrewMor 534 Опубликовано 18 Июля 2020 Поделиться Опубликовано 18 Июля 2020 (изменено) 9 часов назад, Zander_driver сказал: Были "псевдо-динамические", о которых все не-разбирающиеся глубоко в механике, думали что они динамические. Надо же, впервые узнал. Раньше тоже считал, что динамические. А кстати, в НС-2010 уже динамические были? Изменено 18 Июля 2020 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340923
Zander_driver 10 348 Опубликовано 18 Июля 2020 Поделиться Опубликовано 18 Июля 2020 Я не копался в НС-2010, не знаю. О том что они в амк не сразу были полностью динамическими, я знаю из того факта что они были на переключаемой статике в моде "Жесть" образца 2008 - 2011 годов. А он в свою очередь был на основе как раз амк, и аномалии перенял оттуда. Но то была не последняя версия амк, из вышедших в готовом виде. 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/521/#findComment-1340924
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти