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 Ссылка на комментарий
Капрал Хикс 561 Опубликовано 7 Июня 2024 Поделиться Опубликовано 7 Июня 2024 В Зове Припяти при покупке патронов учитывается кол-во патронов в пачке, оно влияет на цену. Хочу в ТЧ это дело поправить. Где в trade_manager.script смотреть это? 1 Ссылка на комментарий
abramcumner 1229 Опубликовано 7 Июня 2024 Поделиться Опубликовано 7 Июня 2024 1 час назад, Black_Raven_03 сказал: а какая связь между ЗП и ТЧ-ориентированным ОГСР-движком?! я же специально указал год сборки движка - 2020! ЛуаДжиты же разные! Такое не должно и на ТЧ/ОГСР парситься. Что было под рукой, на том и проверил. 1 Ссылка на комментарий
Balavnik 151 Опубликовано 17 Июня 2024 Поделиться Опубликовано 17 Июня 2024 Можно ли отключить add_call скриптом? 1 Ссылка на комментарий
Kirgudu 1323 Опубликовано 17 Июня 2024 Поделиться Опубликовано 17 Июня 2024 (изменено) "Справочник", функция level.remove_call. Изменено 17 Июня 2024 пользователем Kirgudu 1 3 Ссылка на комментарий
phalcor 60 Опубликовано 23 Июня 2024 Поделиться Опубликовано 23 Июня 2024 Привет! Как можно определить, что это была первая загрузка (load) с момента старта exe? Ссылка на комментарий
Norman Eisenherz 354 Опубликовано 24 Июня 2024 Поделиться Опубликовано 24 Июня 2024 Например, сделать запись лога через flush и поискать в нем часть фразы "* Game … is successfully loaded from file '…sav' …" – если встречается только один раз, значит первая загрузка. В ТЧ можно добраться до файла через класс fs(), в ЧН/ЗП через библиотеку io. 1 1 Ссылка на комментарий
Balavnik 151 Опубликовано 26 Июня 2024 Поделиться Опубликовано 26 Июня 2024 Если колбек объекта не перевести в nil в net_destroy, то при удалении объекта колбек так и будет болтаться всю игру? Ссылка на комментарий
Kirgudu 1323 Опубликовано 26 Июня 2024 Поделиться Опубликовано 26 Июня 2024 Скорее всего нет, в деструкторе объекта в движке есть очистка соответствующего массива коллбэков. Но это не точно, пусть двигоправы скажут лучше, если я не прав. А вот при возможном уходе в оффлайн такого объекта хвосты останутся болтаться. 2 Ссылка на комментарий
Balavnik 151 Опубликовано 26 Июня 2024 Поделиться Опубликовано 26 Июня 2024 Можно ли как-то добавить свои консольные команды? Хочу, чтобы при вводе команды в лог записывалась информация об акторе. Ссылка на комментарий
Kirgudu 1323 Опубликовано 26 Июня 2024 Поделиться Опубликовано 26 Июня 2024 Консольные команды должны поддерживаться движком, поэтому только через его редактирование. Но если всё, что требуется вывести, доступно в скриптах, совсем не обязательно лезть в движок. Можно, например, прикрутить кейлоггер (легко находится поиском по форуму) и повесить вывод в лог на какую-либо незадействованную клавишу. 1 1 Ссылка на комментарий
phalcor 60 Опубликовано 1 Июля 2024 Поделиться Опубликовано 1 Июля 2024 Хочу уменьшить на 1 количество патронов в пачке, находящейся в инвентаре актора. Делаю так: netpacket:modify(sobj, "ammo_left", n-1) --sobj - серверный объект пачки патронов Но ничего не меняется. Подозреваю, что нужно менять в клиентском объекте, но как? (стрелять не предлагать ) Ссылка на комментарий
Kirgudu 1323 Опубликовано 1 Июля 2024 Поделиться Опубликовано 1 Июля 2024 Параметр с условным наименованием "ammo_left" есть как в state, так и в update части нет-пакета пачки патронов. В таком модуле управления нет-пакетами, как m_netpk от Артоса, это предусмотрено. Что за функционал скрывается под капотом netpacket:modify, мне не известно, но я бы посмотрел в вышеупомянутую сторону. Ссылка на комментарий
phalcor 60 Опубликовано 1 Июля 2024 Поделиться Опубликовано 1 Июля 2024 2 часа назад, Kirgudu сказал: Параметр с условным наименованием "ammo_left" есть как в state, так и в update части нет-пакета пачки патронов. Увы, так тоже не работает: (причём в update-части параметра nammo_left вообще нет, читал пакет так m_netpk.get(sobj,2)) local id = ammo_from:id() local sobj = server_object(id) local pk = m_netpk.get(sobj) local data = pk:get() data.ammo_left = n-1 pk:set(data) Тут видимо нужно с клиентским объектом как-то работать... Ссылка на комментарий
Kirgudu 1323 Опубликовано 1 Июля 2024 Поделиться Опубликовано 1 Июля 2024 (изменено) Тогда в голову приходит только пересоздание пачки с новым количеством патронов через alife():create_ammo(). Честно говоря, не уделял никогда внимания патронам. Вполне возможно, что управлять ими на лету и нельзя. Коллеги-старожилы, поправьте. Цитата причём в update-части параметра nammo_left вообще нет, читал пакет так m_netpk.get(sobj,2) При чтении полного пакета есть: data.ammo_left и data.upd.ammo_left. Но ни на что не влияет. Изменено 1 Июля 2024 пользователем Kirgudu 1 1 Ссылка на комментарий
Капрал Хикс 561 Опубликовано 5 Июля 2024 Поделиться Опубликовано 5 Июля 2024 Кто-нибудь адаптировал для себя отдельно в таск_менеджер награду инфой из АМК? У меня лыжи что-то не едут. Ссылка на комментарий
Капрал Хикс 561 Опубликовано 7 Июля 2024 Поделиться Опубликовано 7 Июля 2024 Обнаружил странное в файле treasure_manager.script... local community = parse_names(utils.cfg_get_string(self.ini, id, "community", nil, false, "", "stalker, bandit, dolg, freedom")) А как же группировки "Монолит" и наёмники? Не говоря уже о зомбированных. Ссылка на комментарий
Norman Eisenherz 354 Опубликовано 7 Июля 2024 Поделиться Опубликовано 7 Июля 2024 [utils.script] function cfg_get_string(char_ini, section, field, object, mandatory, gulag_name, default_val) – значение применяется, если группировка не указана 1 1 Ссылка на комментарий
Balavnik 151 Опубликовано 12 Июля 2024 Поделиться Опубликовано 12 Июля 2024 (изменено) [OGSR] Как скриптово получить информацию об объекте и координатах, на которые наведён прицел? В каком колбеке актора обновлять эту информацию? Неужели в update? Изменено 12 Июля 2024 пользователем Balavnik Ссылка на комментарий
Prophet13 1140 Опубликовано 12 Июля 2024 Поделиться Опубликовано 12 Июля 2024 @Balavnik level.get_target_obj() 1 1 Ссылка на комментарий
naxac 2571 Опубликовано 12 Июля 2024 Поделиться Опубликовано 12 Июля 2024 53 минуты назад, Balavnik сказал: координатах, на которые наведён прицел? Что-то вроде device().cam_pos:add( device().cam_dir:mul( level.get_target_dist() ) ) Но это неточно, в векторах не силён) 2 2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти