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/
I am Dead 918 Опубликовано 20 Мая 2021 Поделиться Опубликовано 20 Мая 2021 Обрыл весь форум, но так нашёл ответа. Как запустить анимацию через add_cam_effector циклично? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384058
Manool 147 Опубликовано 20 Мая 2021 Поделиться Опубликовано 20 Мая 2021 2 часа назад, I am Dead сказал(а): Как запустить анимацию через add_cam_effector циклично Вот так - level.add_cam_effector("camera_effects\\earthquake.anm", 2002, true, "") true в данном случае и определяет повторять ли анимацию. Объединённый Пак OGSR Engine Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384060
I am Dead 918 Опубликовано 20 Мая 2021 Поделиться Опубликовано 20 Мая 2021 @Manool Странно, так она и вовсе не запускается. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384067
Norman Eisenherz 355 Опубликовано 21 Мая 2021 Поделиться Опубликовано 21 Мая 2021 Здрасьте. ЗП 1.6.02. Задача: вывести поверх инвентаря окно с набором дочерних статиков. Ссылка level.main_input_receiver() отсутствует, остается отслеживание режима инвентаря в [actor_menu.script] и вывод окна поверх через add_dialog_to_render с небольшой задержкой. Проблема 1: любые дочерние окна рендер-статика не видны, даже если применить к метод Show(true) – каждый элемент приходится выводить по отдельности. Проблема 2: рендер-статик выводится поверх всех элементов инвентаря, включая всплывающие окна с информацией. Кроме варианта "вырезать область в текстуре инвентаря и подставить ее обратно через AddCustomStatic вместе с новым окном", как можно решить задачу? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384224
Zander_driver 10 357 Опубликовано 22 Мая 2021 Поделиться Опубликовано 22 Мая 2021 13 часов назад, Norman Eisenherz сказал(а): Проблема 2: рендер-статик выводится поверх всех элементов инвентаря, включая всплывающие окна с информацией. Естественно. А почему должно быть иначе, если вы скриптами статик прилепили? 13 часов назад, Norman Eisenherz сказал(а): как можно решить задачу? Править движок. В принципе, вполне мыслимо написать и экспортировать в скрипты, методы позволяющие лепить свои статики не поверх, а прямо к выбранным-интересующим элементам интерфейса. Только зачем такие костыли нужны... не знаю. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine / Мимокрокодил. Я понял что моя старая подпись что-то нарушает. Удалил все ссылки. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384249
Norman Eisenherz 355 Опубликовано 22 Мая 2021 Поделиться Опубликовано 22 Мая 2021 @Zander_driver Есть пара модов, которые хотелось бы повторить в ЗП. Вот такой, например: https://drive.google.com/file/d/1yMX6bX03M0ge8kEsI2UCU_RhtzeC7NeJ. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384304
_Sk8_AsTeR_ 122 Опубликовано 22 Мая 2021 Поделиться Опубликовано 22 Мая 2021 Ребят, нужна еще помощь по логике. Пытаюсь в логике вызвать функцию по сигналу [walker1@truba1] on_signal = test | %=test% path_walk = test_walk path_look = test_look no_move = false В итоге функция ставится на апдейт. А как вызвать её только один раз? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384311
WinCap 324 Опубликовано 23 Мая 2021 Поделиться Опубликовано 23 Мая 2021 @_Sk8_AsTeR_, например так: [walker1@truba1] on_signal = test | {-inf_vizov_test_odin_raz} %+inf_vizov_test_odin_raz =test% on_info = {+povod_pereiti_v_druguyu_sekciyu} walker@next %-inf_vizov_test_odin_raz% 2 1 S.T.A.L.K.E.R. CoP Objects >200 шт (upd 21.05.26) - Скачать (Яндекс-диск) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384323
STALKER_Dragon 3 Опубликовано 24 Мая 2021 Поделиться Опубликовано 24 Мая 2021 Доброго времени суток. Задался тут вопросом: а что в сталкере происходит после смерти актора? Чисто теоретически, ничего не изменяется, можно даже сделать сделать проверку на смерть и какие-то действия NPC, если проверка вернула true. Из этого вытекает вопрос: а можно ли сделать респавн актора без загрузки сохранений? Покопавшись в скриптах, я выяснил, что за создание актора отвечают функции add_actor в файле db.script, a также скрипт actor_proxy.script. Кроме того, в мультиплеере респавн актора возможен. Как он там реализован? Применим ли этот механизм к синглу? Команды alife():release по отношению к актору, даже метвому, не работает. Что произойдет ,если скриптово удалить актора, а затем заспавнит по координатам? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384436
naxac 2 605 Опубликовано 25 Мая 2021 Поделиться Опубликовано 25 Мая 2021 22 часа назад, STALKER_Dragon сказал(а): Что произойдет ,если скриптово удалить актора, а затем заспавнит по координатам? А что мешает проверить? Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384492
Капрал Хикс 567 Опубликовано 25 Мая 2021 Поделиться Опубликовано 25 Мая 2021 Помогите разобраться, а то я забуксовал на ровном месте. Дано: скрипт использования предметов со звуками. Мне нужно следующее: при использовании определённого предмета и наличии двух инфопоршней проигрывать звук и выполнять функцию из другого скрипта, если поршней нет - не играть звук и спавнить предмет обратно в инвентарь (он съедобный, на классе антирада). Вот скрипт в упрощённом виде: Скрытый текст local tSound ={ cocacola = "scripts\\inv_drinking",item = "scripts\\inv_item" - предмет и звук для него } function using_items(obj) local sect = obj:section() local actor = db.actor if obj and tSound[obj:section()] then local snd = xr_sound.get_safe_sound_object(tSound[obj:section()]) if snd then snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0) end end if obj then if sect == "item" then if has_alife_info("info_1") and - поршень 1 has_alife_info("info_2") then - поршень 2 script.final_action() - выполнить функцию из другого скрипта end else amk.spawn_item_in_inv("item") - спавн обратно в инвентарь end end end Сейчас без наличия инфопоршней предмет просто "съедается" и звук всё равно проигрывается.... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384549
ARTLantist 16 Опубликовано 25 Мая 2021 Поделиться Опубликовано 25 Мая 2021 @Капрал Хикс убери end перед else, странно, что вылета нет, ибо их тут больше, чем надо, да и для else нет подходящего if. Если ты делаешь цепочку "если-иначе", то нужно писать так: if condition then action1 else action2 end Конечно у тебя предмет съедаться будет и не будет спавниться А на счёт проигрываемого звука: тебе его тоже нужно засунуть под проверку с инфопоршнями, ибо у тебя это выглядит так: если есть звук, то устанавливаем переменную и проигрываем этот звук. Тут же ожидать другого и невозможно) 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384550
I am Dead 918 Опубликовано 28 Мая 2021 Поделиться Опубликовано 28 Мая 2021 Можно ли на OGSR Engine заблокировать какой либо слот по определённой функции не прибегая к db.actor.hide_weapon? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384747
hArdplAyer22_22 0 Опубликовано 28 Мая 2021 Поделиться Опубликовано 28 Мая 2021 Вопрос к знатокам. Как очистить определенный инвентарный ящик по ID? То-есть, как, к примеру, определенным скриптом удалить все предметы из ящика в деревне новичков? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384847
Manool 147 Опубликовано 28 Мая 2021 Поделиться Опубликовано 28 Мая 2021 (изменено) 2 часа назад, hArdplAyer22_22 сказал(а): Как очистить определенный инвентарный ящик по ID? Вот так можно - Скрытый текст function clear_box( box_id ) -- ID ящика, который нужно очистить for a = 1, 65535, 1 do local sobj = alife():object( a ) if sobj and sobj.parent_id == box_id then alife():release( sobj, true ) end end end Причём, неважно, в онлайне ящик или нет. Изменено 28 Мая 2021 пользователем Manool Объединённый Пак OGSR Engine Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384859
hetrikWHY 34 Опубликовано 30 Мая 2021 Поделиться Опубликовано 30 Мая 2021 Нужно сделать проверку на наличие детектора "Отклик" в руках. Это возможно? active_item:section() == "detector_simple" не работает, хотя active_item:section() == "wpn_pm" - вполне себе Игра: ЧН (с OGSM) UPD: active_item:clsid() == clsid.device_detector_simple и active_item:clsid() == clsid.detector_simple_s тоже не работают. Хотя например active_item:clsid() == clsid.wpn_pm_s проверку проходит Все эти device_detector_simple, detector_simple_s и wpn_pm_s взяты из m_netpk.ltx Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1384932
_ХоЗаР_ 47 Опубликовано 31 Мая 2021 Поделиться Опубликовано 31 Мая 2021 @hetrikWHY В ЗП есть метод active_detector. Используется аналогично методу active_item. Думаю он есть и в ЧН.@Norman Eisenherz Давным - давно, (может пол года назад) Когда я переносил сортировку инвентаря из DMX мода на ЗП (Используя только оригинальный движкок, аля челенж такой). Я делал так. Окно на рендер отправлял в текущем вызове. В основном XML инвентаря убирал фон, и рендерил его из фейкового окна. Скрытый текст 6 ГБ ОЗУ DDR3 1098 мГц (Разносорт) Процессор Intel Xeon E5420 4/4 2.5 ГГц Видеокарта Gigabyte GeForce GT 240 512 МБ GDDR5 (Samsung) DirectX v10.1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1385034
_Sk8_AsTeR_ 122 Опубликовано 31 Мая 2021 Поделиться Опубликовано 31 Мая 2021 Привет! Задаю анимацию в path_look, проигрывается. Берём анимацию сидения на стуле. А как по высоте анимку подогнать под стул? Выходит что силячий нпс парит над стулом. Как ни ковырял координаты - все никак не выходит. Или высота строго задана в самой анимки и идёт отчёт высоты строго от вертекса на полу? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1385041
AndreySol 215 Опубликовано 1 Июня 2021 Поделиться Опубликовано 1 Июня 2021 @_Sk8_AsTeR_ Видимо проще подобрать стул под высоту анимации. 26.05.2021 в 05:21, Купер сказал(а): Потенциальную "дыру" А где ты ее увидел, эту дыру? Внутри play_no_feedback использует все то-же, что и play_at_pos, просто назначение ф-ций разное. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1385052
AndreySol 215 Опубликовано 1 Июня 2021 Поделиться Опубликовано 1 Июня 2021 @Купер Ну так используй каждую ф-цию по назначению - и все будет как надо. Ведь play_no_feedback для того и создана, чтоб запустить воспроизведение и забыть. И еще раз - загляни в исходники, в реализацию обоих ф-ций, сразу поймешь что и как... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/560/#findComment-1385105
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти