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 Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 2 Ноября 2020 Поделиться Опубликовано 2 Ноября 2020 @Zander_driver, нужно было отследить сразу 2 события: сначала ПКМ и сразу ЛКМ, когда ПКМ еще нажато. Но уже справился, все работает, спасибо Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 2 Ноября 2020 Поделиться Опубликовано 2 Ноября 2020 @AndreySol Где найти разобранный на файлы C++ движок ЧН? Движок ЗП тоже было бы интересно почитать. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndreySol 215 Опубликовано 2 Ноября 2020 Поделиться Опубликовано 2 Ноября 2020 @Norman Eisenherz Ну наверное поиск рулит. Я исходники ТЧ брал давным-давно со Сталкерин, но там сейчас ссылку на скачивание убрали. Еще можно спросить в разделе Редактирование движка и Ищу файлы\моды.... Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 22 Ноября 2020 Поделиться Опубликовано 22 Ноября 2020 Здрасьте. Как проверить, что дождь не только идет в данный момент, но и попадает на ГГ (ГГ не находится в здании)? Версия игры любая без движковых правок. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Zander_driver 10 343 Опубликовано 22 Ноября 2020 Поделиться Опубликовано 22 Ноября 2020 Только что, Norman Eisenherz сказал: ГГ не находится в здании... без движковых правок. Никак. В оригинальном движке без правок, нету практически ничего доступного скриптам, по теме проверки геометрии уровня на что-нибудь. Есть ли над ГГ крыша, не найдется ли в ту сторону бетонной стены... это скриптам было неведомо. 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. Ссылка на комментарий
HellRatz 2 896 Опубликовано 23 Ноября 2020 Поделиться Опубликовано 23 Ноября 2020 @Zander_driver, как вариант, наверно, можно расставить в каждом помещении по рестриктору, и делать проверку на нахождение в нем. Ну и проверять текущую погоду. Если дождь, и ГГ вне рестриктора, то... Ещё то извращение, но без правок вижу только такую ситуацию. 2 GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Раритетные моды на моем облаке — на память о былом. Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 23 Ноября 2020 Поделиться Опубликовано 23 Ноября 2020 В ЧН часто есть готовые рестрикторы – укрытия от выброса, но у них нет внешних конфигов логики. Можно ли без перебора [all.spawn] определить, что ГГ находится в рестрикторе с именем "(level)_vibros_#"? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
naxac 2 477 Опубликовано 25 Ноября 2020 Поделиться Опубликовано 25 Ноября 2020 (изменено) @Norman Eisenherz, function func() local lvl = level.name() local pos = db.actor:position() local n = 1 local name, obj while true do name = string.format( "%s_vibros_%s", lvl, n ) obj = db.zone_by_name [ name ] if obj then if obj:inside( pos ) then return true end else return false end n = n + 1 end end Это если имена с нумерацией от 1 и по возрастанию. Если вразброс, то придётся всю zone_by_name перебирать в поисках нужных рестрикторов. Изменено 25 Ноября 2020 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 25 Ноября 2020 Поделиться Опубликовано 25 Ноября 2020 @naxac Нашел перебор укрытий в [xr_surge_hide.script]: Spoiler local board = sim_board.get_sim_board() local hide_tbl = {} local n = 0 for k,v in pairs(board.smarts) do if v.smrt.actor_hides~=nil then for kk,vv in pairs(v.smrt.actor_hides) do local obj = alife():object(vv) if(obj) then n = n + 1 hide_tbl[n] = obj end end end end После этого как раз выполняется проверка через inside. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
otani-san 61 Опубликовано 27 Ноября 2020 Поделиться Опубликовано 27 Ноября 2020 Прошу помощи скриптёров. Поигрываю в мод-сборку на основе FreeplayStart 1.21, но с изменённой оружейкой, добавленными мутантами, АИ-паком и прочими вкусностями от Alex5773 Сборка очень нравится, но у неё есть серьёзный недостаток - спустя непродолжительное время начинают наглухо ломаться сейвы с логом вылета, что под спойлером. Скрытый текст FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : .\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: d:\games\soc\gamedata\scripts\rgr.script:378: attempt to index local 'dead_otf' (a nil value) stack trace: К сожалению, автор данной сборки не помог с исправлением данного вылета, да и не заходит на АМК уже с августа. Возможно, кто-то из скриптеров поможет исправить данный баг, возможно даже небезвозмездно, в разумных пределах, конечно Сам в скриптовании Сталкера не шарю. Прилагаю сам мод и сломанный сейв: https://dropmefiles.com/jR5Fi Ссылка на комментарий
ted.80 371 Опубликовано 28 Ноября 2020 Поделиться Опубликовано 28 Ноября 2020 8 часов назад, otani-san сказал: Прошу помощи скриптёров. Привет, тебе нужно изменить пару строк в файле rgr.script ищи 374 строку --Ставим кондишн броников с трупов, пока рандомно и вот это: Скрытый текст if select_string=="dead_otf" then local dead_otf dead_otf = level.object_by_id(tonumber(params_string)) dead_otf:set_condition((math.random(65)+25)/100) end меняй на это: Скрытый текст if select_string == "dead_otf" then local dead_otf = level.object_by_id(tonumber(params_string)) if dead_otf then dead_otf:set_condition((math.random(65)+25)/100) end end 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Марка демченков 5 Опубликовано 29 Ноября 2020 Поделиться Опубликовано 29 Ноября 2020 Есть какой-нибудь скрипт, который будет отображать на карте расположение и название смарт-террейнов (ЗП)? Ссылка на комментарий
WinCap 316 Опубликовано 29 Ноября 2020 Поделиться Опубликовано 29 Ноября 2020 @Марка демченков, в файле "_g.script" измени значение переменной "dev_debug", в оригинале строка 37. dev_debug = true Поищи в скриптах, где она используется. Сможешь что-нибудь добавить или изменить, по желанию. S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Архаист 0 Опубликовано 30 Ноября 2020 Поделиться Опубликовано 30 Ноября 2020 (изменено) У меня такой вопрос(возможно не в ту тему обратился, поправьте). Играю в ОП 2.1, установлены правки. Столкнулся с такой проблемой: не отображается в инвентаре несколько ед. оружия(пустое место со шкалой прочности и хар-кой), вижу его только держа в руках. То, что обнаружил - это Неизвестное оружие(квестовое - Охотник и добыча), FN "Hostel" и McMillan CS5 после покраски его у Долговязого. Самостоятельно найти где что исправить я не в состоянии. Нужна помощь. Да и если опишите, что и как изменить, просьба указать полный путь к необходимому файлу от корневой папки. Заранее благодарю. Изменено 30 Ноября 2020 пользователем Архаист Дополнение Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 5 Декабря 2020 Поделиться Опубликовано 5 Декабря 2020 Доброго времени! Подскажите пожалуйста, каким образом можно сделать проверку, видит ли вражеский NPC нашего ГГ в процессе перестрелки? А также каким образом можно сделать проверку, что наш ГГ - приоритетный текущий враг для NPC? Ссылка на комментарий
Zander_driver 10 343 Опубликовано 5 Декабря 2020 Поделиться Опубликовано 5 Декабря 2020 (изменено) @_Sk8_AsTeR_, if npc:see(db.actor) then -- он его видит... local enemy = npc:get_enemy() -- это тот кого нпс хочет убить if enemy and enemy:section() == 'actor' then -- оказывается, это актор... Изменено 5 Декабря 2020 пользователем Zander_driver 1 2 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. Ссылка на комментарий
Colder 12 Опубликовано 5 Декабря 2020 Поделиться Опубликовано 5 Декабря 2020 Всем привет! Подскажите пж функцию на сброс визуала гг рабочую! Ссылка на комментарий
Это популярное сообщение. Painter 3 475 Опубликовано 6 Декабря 2020 Это популярное сообщение. Поделиться Опубликовано 6 Декабря 2020 (изменено) @Colder, есть небольшой костыль от @Charsi. Должен работать: Скрытый текст 1. С помощью любого текстового редактора создайте файл new_fix.script и поместите его в папку gamedata/scripts 2. Откройте ранее созданный файл new_fix.script и впишите в него следующий код: function visual_fix(obj) if obj:clsid() == clsid.equ_stalker_s or obj:clsid() == clsid.equ_exo then local outfit = db.actor:get_current_outfit() if outfit and outfit:id() ~= obj:id() then db.actor:transfer_item(outfit, db.actor) end end end Сохраните изменения. 3. Скопируйте оригинальный файл bind_stalker.script из ресурсов игры в папку gamedata/scripts 4. Откройте файл bind_stalker.script и найдите в нём строку function actor_binder:on_item_take (obj). После этой строки напишите: new_fix.visual_fix(obj) Должно получиться: function actor_binder:on_item_take (obj) new_fix.visual_fix(obj) Сохраните изменения. Готово. Также можно подсмотреть решение в OGSM CS 1.8 CE (файл ogsm.script). Изменено 6 Декабря 2020 пользователем Jurok 5 Портфолио Ссылка на комментарий
Colder 12 Опубликовано 7 Декабря 2020 Поделиться Опубликовано 7 Декабря 2020 Вообщем писал я в этой теме где то месяц назад! Была у меня проблемы с модом такие как: пропадала анимация бега, сброс визуала и т.п искал проблему почти меся) т.к много файлов подключено в моде. Оказалось это из-за скрипта не помню от кого НА РЕСПАВН АРТЕФАКТОВ какие там ошибки не знаю, ковыряться не стал. Откл. скрипт и все заработало/бред. Может кто посмотрит его! https://yadi.sk/d/7tHdc9vjT7BfSQ 1 Ссылка на комментарий
gam 117 Опубликовано 8 Декабря 2020 Поделиться Опубликовано 8 Декабря 2020 21 час назад, Colder сказал: ковыряться не стал А смена названия самого менеджера (art_mgr.script) и забыть прописать правильно изменение в биндере актора? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти