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/
Norman Eisenherz 355 Опубликовано 1 Мая 2024 Поделиться Опубликовано 1 Мая 2024 (изменено) Тогда должен быть доступ к свойству actor.max_walk_weight и к свойству max_weight через класс инвентаря (не знаю, как правильно ссылаться – пользователи OGSR подскажут). Если поршней несколько, info_callback как раз подойдет. - дополнение - Вроде оно (get_ аналогично): db.actor:set_actor_max_weight(num) db.actor:set_actor_max_walk_weight(num) Изменено 1 Мая 2024 пользователем Norman Eisenherz 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483037
Balavnik 178 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 Как скриптово получить информацию о состоянии оружия/брони? Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483049
Kirgudu 1 370 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 @Balavnik если объект клиентский (obj), всё просто: local cond = obj:condition() Если объект серверный (sobj), тогда либо сначала получить клиентский (объект должен находиться в онлайне): local obj = level.object_by_id(sobj.id) либо если онлайн объект отсутствует (obj = nil после получения из серверного) - действовать через нет-пакет. Пример с использованием m_netpk: local pk = get_netpk(sobj, 1) -- state часть нет-пакета local data = pk:get() local cond = data.condition Также, возможно, для серверных объектов есть что-то более удобное в OGSR. Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483056
Balavnik 178 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 @Kirgudu Это я как понял вообще для любого объекта. А если из инвентаря? Или нет разницы? Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483057
Kirgudu 1 370 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 Без разницы. При этом объект в инвентаре всегда в онлайне, соответственно, можно плясать от клиентского объекта. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483060
Balavnik 178 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 @Kirgudu А в cond что будет? Просто число 0-1? Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483061
Kirgudu 1 370 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 @Balavnik совершенно верно. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483063
Balavnik 178 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 Можно ли как-то менять текст диалогов скриптово? Делаю Сидоровича ремонтником, нужно чтобы стоимость ремонта и название починяемого ствола рассчитывались в скрипте. Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483068
Kirgudu 1 370 Опубликовано 2 Мая 2024 Поделиться Опубликовано 2 Мая 2024 37 минут назад, Balavnik сказал: Можно ли как-то менять текст диалогов скриптово? Стоит начать использовать "Справочник по функциям и классам" здесь, на форуме. Диалоги: Часть 1. Форматы файлов, базовые сведения Часть 2. Скриптовые диалоги Часть 3. Тематическая подборка функций управления диалогами Читать, вникать и пробовать. И только если что-то непонятно, задавать предметные вопросы. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483076
Norman Eisenherz 355 Опубликовано 3 Мая 2024 Поделиться Опубликовано 3 Мая 2024 Как заставить смарт спавнить определенных сталкеров? ЧН, автобусная остановка на Кордоне (esc_smart_terrain_5_10): хочу повысить живучесть новичков, на которых по сюжету нападают вояки, но не знаю, как привязать определенные профили NPC к логике смарта. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483104
Kirgudu 1 370 Опубликовано 3 Мая 2024 Поделиться Опубликовано 3 Мая 2024 (изменено) @Norman Eisenherz посмотри squad_descr_escape.ltx На автобусной остановке спавнится (esc_quest_line.ltx) строго определённый отряд с такой секцией: [esc_smart_terrain_6_8_stalker_patrol_2] Новичков sim_default_stalker_0 в нём можно поменять на персонажей с любой другой подходящей секцией из состава spawn_sections_*.ltx, в том числе на самописно-уникальных. Изменено 3 Мая 2024 пользователем Kirgudu 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483106
Balavnik 178 Опубликовано 3 Мая 2024 Поделиться Опубликовано 3 Мая 2024 26.12.2018 в 22:50, dPlayer сказал: которая запоминает НПС Можно например сохранять на сейвы списочек уже сказанных фраз что-то типа list = { Идентификатор npc = {dialog1, dialog2 и т.д.}}. Потом написать скрипт, который проверяет, сказал ли конкретный текущий нпс какой-либо текст путём проверки list[Идентификатор npc] на предмет отсутствия ранее сказанной фразы. Если текст нпс говорил, то просто вставить в диалог через give_talk_message сообщение типа "Ничего сказать не могу." Или можно воспользоваться другим методом, описанным здесь. Сам про него пока что мало знаю, поэтому подробных объяснений дать не могу. Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483143
dPlayer 571 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 @Balavnik когда я писал этот вопрос у меня не было ребёнка. Теперь вот готовимся к школе Я тогда имел ввиду механизм, который в оригинале запоминал нпс в стандартных диалогах "расскажи что интересного" - делал квест в котором надо было расспрашивать рандомных сталкеров и через пару десятков человек найти ответ. Но решения тогда и не нашёл. Где-то моё поделие на флешке валяется.. 3 Самый некомпетентный на форуме. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483153
Balavnik 178 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 Как можно получить id создаваемого объекта? Или сам объект. Пробовал просто object= alife():create(...), но create похоже ничего не возвращает. 1 Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483185
CiberZold 143 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 1 час назад, Balavnik сказал: но create похоже ничего не возвращает create создаёт причём серверный объект, alife() как бы намекает, id игра сама рандомно присваивает игровому объекту цепляя цифру к названию секции на которой создан объект, поэтому этим id никто обычно не заморачивается, а обращается к объекту или через стори ид, или по имени, по поиску нужной строки в имени секции. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483192
Kirgudu 1 370 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 1 час назад, Balavnik сказал: Пробовал просто object= alife():create(...), но create похоже ничего не возвращает. Даже если просто порыться в скриптах оригинальной игры, можно увидеть как раз то, о чём ты спрашиваешь. Файл se_respawn.script, функция se_respawn:create(prob): obj = alife():create(...) и ниже использование obj.id - вот искомый идентификатор созданного объекта. Я тебе уже писал в личке, кажется, сейчас повторю ещё раз: не ленись исследовать файлы оригинала. Несмотря на то, что они пестрят ошибками, тем не менее, в них можно найти тонны работающих примеров. В данном случае банальный поиск по файлам подстроки "alife():create" как раз вернул бы место, где ты нашёл бы ответ на свой вопрос. 3 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483194
Balavnik 178 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 (изменено) @Kirgudu Хм. Может я неправильно пишу? Прикладываю код. Скрытый текст Объект в онлайне. local dolg = create("bar_dolg_respawn_3",-212.095703125,-23.186395645142,-122.46632385254,41290,59, 1) release_dolg_kordon(dolg) function release_dolg_kordon(obj) send_message("HI") // Отладка if obj ~= nil then local objid = alife():object(obj.id) alife():release(objid, true) end end P.s. Я видимо ещё не до конца понял многих тонкостей концепции алайфа. Изменено 4 Мая 2024 пользователем Balavnik Жить стало лучше, жить стало веселей. А когда веселей живётся, то работа скорится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483196
Kirgudu 1 370 Опубликовано 4 Мая 2024 Поделиться Опубликовано 4 Мая 2024 В чём вопрос-то заключается? Чисто скриптовых ошибок не видно, а вот как движок воспринимает попытку удаления сразу после создания (в том же блоке исполнения кода) - сказать не могу. Пусть знатоки OGSR отвечают. 1 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483199
CiberZold 143 Опубликовано 5 Мая 2024 Поделиться Опубликовано 5 Мая 2024 9 часов назад, Balavnik сказал: Я видимо ещё не до конца понял многих тонкостей концепции алайфа. чтоб не париться с id (там проблема что id можно получить от объекта к которому обращаешься в конкретной функции), а если тебе надо удалить в влюбой время ,в любом месте на любой локации серверный объект обычно юзают цикл перебора всех алайф объекту и по имени удаляем. for a=1,65635 do local obj=alife():object(a) if obj and string.find(obj:name(),"bar_dolg_respawn_3") then alife():release(obj, true) end end 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483205
Norman Eisenherz 355 Опубликовано 5 Мая 2024 Поделиться Опубликовано 5 Мая 2024 @Kirgudu Я познал путь компания-разработчик (признана нежелательной)*: мало прописать новый класс и группу профилей для новых сталкеров – надо еще указать этот класс в [spawn_sections.ltx] со ссылкой… на тот же класс? При этом в логе вылета ссылка на движковую проверку с какими-то векторами – поди пойми, чего игра хочет. 3 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/616/#findComment-1483208
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти