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 Ссылка на комментарий
phalcor 60 Опубликовано 30 Сентября 2024 Поделиться Опубликовано 30 Сентября 2024 Привет, сталкеры! Есть такие зомби, которые образуются из гниющих трупов сталкеров. Их section = zombie_trup_fc. Так вот, пока к ним не приблизиться почти вплотную, они находятся в спячке - лежат себе и всё. При приближении они просыпаются и идут в атаку. Подскажите, как в скрипте определить, находится ли такой зомбарь в спячке или же он уже активен и ходит. Или же не касаясь зомби, а вообще, как узнать, в каком состоянии движения (стоИт, идёт, бежит) находится монстр? Платформа ОП 2.2. Спасибо за внимание! Ссылка на комментарий
Balavnik 141 Опубликовано 30 Сентября 2024 Поделиться Опубликовано 30 Сентября 2024 С чем связана такая ошибка при ликвидации нпс? \death_manager.script:135: bad argument #1 to 'pairs' (table expected, got nil) А где зима? Ссылка на комментарий
naxac 2 477 Опубликовано 1 Октября 2024 Поделиться Опубликовано 1 Октября 2024 @Balavnik , попробую погадать на кофейной гуще. У тебя платформа ТЧ, скрипт оригинальный. Тогда вылет связан с тем, что группировка непися не добавлена в death_manager.script, либо не прописана в конфигах death_manager'a. 4 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
phalcor 60 Опубликовано 3 Октября 2024 Поделиться Опубликовано 3 Октября 2024 30.09.2024 в 17:21, phalcor сказал: как в скрипте определить, находится ли такой зомбарь в спячке или же он уже активен и ходит. Сам себе отвечаю. Нашёл неожиданное решение узнать, стоит или лежит зомбак: local dist = cobj:bone_position("bip01_head").y - cobj:position().y --высота головы над землёй if dist < 0.2 then --лежит ... Жаль, так и не нашёл прямого метода узнать положение тела монстра - всякие body_state и т.д. ничего не дали... 2 Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 3 Октября 2024 Поделиться Опубликовано 3 Октября 2024 Есть анимация fake_death, но не знаю, можно ли ее достать скриптами. 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Balavnik 141 Опубликовано 5 Октября 2024 Поделиться Опубликовано 5 Октября 2024 (изменено) Какие параметры существуют у объекта self в bind_monsters? Хочу вытащить из него секцию, self.section равен nil. Платформа SoC. Изменено 5 Октября 2024 пользователем Balavnik А где зима? Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 5 Октября 2024 Поделиться Опубликовано 5 Октября 2024 self.object – объект (мутант), для которого сработал вызов какого-то события (спавн, удаление, апдейт) self.object:section() – секция мутанта, который обсчитывается в данный момент 1 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Капрал Хикс 541 Опубликовано 8 Октября 2024 Поделиться Опубликовано 8 Октября 2024 Смотрю в скрипт sound_theme.script... В чём разница между: ph_snd_themes["gar_bandits_seryi"] = {[[characters_voice\scenario\garbage\grey_bandit_1]], [[characters_voice\scenario\garbage\grey_bandit_2]], [[characters_voice\scenario\garbage\grey_bandit_3]], [[characters_voice\scenario\garbage\grey_bandit_4]], [[characters_voice\scenario\garbage\grey_bandit_5]]} и ph_snd_themes["gar_bandits_seryi"] = {"characters_voice\\scenario\\garbage\\grey_bandit_1", "characters_voice\\scenario\\garbage\\grey_bandit_2", "characters_voice\\scenario\\garbage\\grey_bandit_3", "characters_voice\\scenario\\garbage\\grey_bandit_4", "characters_voice\\scenario\\garbage\\grey_bandit_5"} ? В первом случае это так оно закомментировано как неиспользуемое что ли? Ссылка на комментарий
Balavnik 141 Опубликовано 8 Октября 2024 Поделиться Опубликовано 8 Октября 2024 @Капрал Хикс [[ ]]Вроде бы означает игнорирование экранирования и системных символов. 1 2 А где зима? Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 9 Октября 2024 Поделиться Опубликовано 9 Октября 2024 Это запись "простой текст". Без двойных скобок одинарный слэш будет "съеден" при чтении. 1 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Balavnik 141 Опубликовано 10 Октября 2024 Поделиться Опубликовано 10 Октября 2024 Можно ли скриптово узнать gvid и lvid по позиции? OGSR Engine. @Капрал Хикс Что это? Не понимаю. Какой-то скрипт, или метод движка? Добавлено Купер, 11 Октября 2024 По позиции кого, чего? Ингейм или отладка? Здесь посмотреть, например, на предмет возможной реализации. Заметка изменена 11 Октября 2024 А где зима? Ссылка на комментарий
Капрал Хикс 541 Опубликовано 10 Октября 2024 Поделиться Опубликовано 10 Октября 2024 @Balavnik , да. Юзай mobile modmaker. 1 Ссылка на комментарий
mmindwork 45 Опубликовано 17 Октября 2024 Поделиться Опубликовано 17 Октября 2024 Ку, кто-нибудь разбирается в COC? Anomaly, барахольщики убегают хрен знает куда после перестрелки. Бессмертные. На ближайших смартах нет. Как бы им внедрить gps, что-бы понять куда они ходят? Ссылка на комментарий
Капрал Хикс 541 Опубликовано 20 Октября 2024 Поделиться Опубликовано 20 Октября 2024 Возможно ли скриптово отследить подсвечивание названия предмета по клавише F, когда он рядом лежит? Ссылка на комментарий
Это популярное сообщение. Norman Eisenherz 322 Опубликовано 21 Октября 2024 Это популярное сообщение. Поделиться Опубликовано 21 Октября 2024 В оригинале никак: • статик [maingame.xml] "pick_up_item" выводится и заполняется движком (UIPickUpItemIcon) • состояние PickupMode для команды kUSE переключается движком • событие Game().SendPickUpEvent тоже движковое В OGSR есть callback.on_pickup_item_showing. 5 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Капрал Хикс 541 Опубликовано 21 Октября 2024 Поделиться Опубликовано 21 Октября 2024 (изменено) Подскажите, как заставить один гулаг (с НПС) игнорировать другой? (С одной собакой в нём...). Изменено 21 Октября 2024 пользователем Капрал Хикс Ссылка на комментарий
Balavnik 141 Опубликовано 22 Октября 2024 Поделиться Опубликовано 22 Октября 2024 Почему не verify_if_thread_is_running = nil? Ведь эта ф-я экспортирована в LUA. А где зима? Ссылка на комментарий
rost2000 0 Опубликовано 26 Октября 2024 Поделиться Опубликовано 26 Октября 2024 Создал скрипт для включения в ПДА меток на рестрикторы по названию их секции. Вылет с логом: Скрытый текст FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...:\games\s.t.a.l.k.e.r\gamedata\scripts\sander.script:382: attempt to index local 'sobj' (a nil value) Сам код: Скрытый текст function yan_storyline_spot_add() for i = 1, 65534 do local sim = alife() if sim then local sobj = sim:object(i) if sobj and sobj:section_name() == "yan_storyline_ecolog_spot1" or sobj:section_name() == "yan_storyline_ecolog_spot2" or sobj:section_name() == "yan_storyline_ecolog_spot3" or sobj:section_name() == "yan_storyline_ecolog_spot4" then -- printf("level has sobj", sobj) level.map_add_object_spot(sobj.id, "crlc_big", "storyline_yan_spot") end end end end Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 26 Октября 2024 Поделиться Опубликовано 26 Октября 2024 1. Нужны скобки вокруг проверок имени: объект И (имя ИЛИ имя …) 2. При таком количестве проверок можно переделать код на сверку по списку: local names = { name_1 = true, name_2 = true, … } … if sobj and names[ sobj:section_name() ] then … 1 3 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
UriZzz 1 004 Опубликовано 26 Октября 2024 Поделиться Опубликовано 26 Октября 2024 Вопрос к знатокам ogsr: как работает метод level.advance_game_time(dt_ms)? Как я понял это скриптовая перемотка времени, но как оно работает? Пытался протестировать метод через колбэк на юз предмета: -- Тестируем метод перемотки времени local uSect = obj:section() local dt_ms = 6*3600 function main( obj ) if uSect == "conserva" then level.advance_game_time( dt_ms ) end end но функция вызывает вылет. Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти