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 Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 22 Марта 2020 Поделиться Опубликовано 22 Марта 2020 Потестил еще: на Кордоне уведомление отображается всегда после 1-й загрузки, на Свалке или после перехода Кордон > Свалка > Кордон всегда после 2-й загрузки. В обоих случаях тестил с выходом из игры и с обычной перезагрузкой. Сделал add_call на прогрузку ГГ – уведомление отображается каждый раз. (Инфо-поршень "esc_bridge_pass_off", как выяснилось, вообще не выдается до возврата на Кордон, но это уже другой вопрос). @naxac "Первый апдейт" – привязаться к actor_binder:update(delta) и остановить выполнение после однократного выведения статика, или речь о чем-то другом? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
naxac 2 477 Опубликовано 22 Марта 2020 Поделиться Опубликовано 22 Марта 2020 @Norman Eisenherz, да. В ТЧ со статиками всегда такая фигня: после перехода между локациями они не выводится из нет-спавна, где-то что-то, видимо, не успевает отработать как надо, потому что новый уровень грузится. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
WinCap 316 Опубликовано 22 Марта 2020 Поделиться Опубликовано 22 Марта 2020 @Norman Eisenherz, осмелюсь предложить свой вариант. Для разрешения прохода нужно выдать "esc_bridge_pass_on". Когда ГГ воспользуется проходом, или его по каким-то причинам отменят, нужно удалить "esc_bridge_pass_on". Скрытый текст local need_update = true local has_static = false -- // actor_binder:info_callback(npc, info_id) // -- function info(info_id) if info_id == "esc_bridge_pass_on" then local time_hrs = level.get_time_hours() + 1 local time_min = level.get_time_minutes() time_min = math.ceil(time_min/10)*10 if time_min == 60 then time_min = 0 time_hrs = time_hrs + 1 end if time_hrs > 23 then time_hrs = time_hrs - 24 end xr_logic.pstor_store(db.actor, "time_hrs", time_hrs) xr_logic.pstor_store(db.actor, "time_min", time_min) need_update = true end end -- // actor_binder:update(delta) // -- function update() if not need_update then return end if not db.actor:has_info("esc_bridge_pass_on") then get_hud():RemoveCustomStatic("bridge_pass") need_update = false has_static = false return end local time_hrs = level.get_time_hours() local time_min = level.get_time_minutes() local pstor_hrs = xr_logic.pstor_retrieve(db.actor, "time_hrs", 0) local pstor_min = xr_logic.pstor_retrieve(db.actor, "time_min", 0) if (time_hrs >= pstor_hrs) and (time_min > pstor_min) then db.actor:disable_info_portion("esc_bridge_pass_on") return end if has_static then return end local st = get_hud():AddCustomStatic("bridge_pass", true) st:wnd():SetTextST(string.format("Проход до %02d:%02d", pstor_hrs, pstor_min)) has_static = true end S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 24 Марта 2020 Поделиться Опубликовано 24 Марта 2020 Здрасьте. Попадалась информация о старой версии мода "Худ рук", в которой текстура рук подменялась за счет классов то ли оружия, то ли брони. Кто-нибудь помнит, как этот мод работал? Хочется назначить 3–4 вида перчаток без полной замены моделей рук и перехода на правозатворное оружие. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
_Sk8_AsTeR_ 122 Опубликовано 24 Марта 2020 Поделиться Опубликовано 24 Марта 2020 А нигде не встречали способы реализации голода у НПС? Ссылка на комментарий
naxac 2 477 Опубликовано 24 Марта 2020 Поделиться Опубликовано 24 Марта 2020 3 часа назад, Norman Eisenherz сказал: о старой версии мода "Худ рук" Там, емнип, была целая куча худовых моделей оружия: на каждую пушку под каждый костюм, и столько же секций оружия: на каждый худ по секции. И, в зависимости от одетой брони, в руки спавнилось оружие с нужным худом. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 24 Марта 2020 Поделиться Опубликовано 24 Марта 2020 @naxac А новая версия правит движок, чтобы позволить прямую замену текстур… Тогда все, снимаю вопрос. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Graff46 598 Опубликовано 26 Марта 2020 Поделиться Опубликовано 26 Марта 2020 Подскажите по системе зон в которые НПС не могут ходить? Вроде это сделано рестрикторами. И какие есть методы ограничивать навигацию НПС в игре. Ссылка на комментарий
Zander_driver 10 342 Опубликовано 26 Марта 2020 Поделиться Опубликовано 26 Марта 2020 Если про исходно-ТЧ-оригинальный механизм, то там у них в нетпакете хранится табличка in-рестрикторов и out-рестрикторов. Хранятся там собственно id объектов. В шейп которых нельзя заходить / нельзя выходить. И там же дивные заморочки на тему того, что если рестриктор допустим удаляется, то его упоминания надо удалять из памяти все нпс и мутантов (а у них такая же система). Иначе непременный вылет, и конечно же, без лога. Как же иначе-то. Но так же не возбраняется в любой момент рестриктор создать-настроить, и записать в память всем кому надо. Впрочем, я таки полагаю что при открытых исходниках вся эта болтовня не очень актуальна. И в куче движков уже может быть все совсем иначе. 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. Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 28 Марта 2020 Поделиться Опубликовано 28 Марта 2020 Здрасьте. ТЧ 1.0006, Армейские склады: сообщение "Сталкер, ты подходишь к барьеру" выдается дважды. В описании рестриктора только одно сообщение, в [xr_effects] такого сообщения нет. Где искать лишнюю копию? Spoiler [alife_l07_military.ltx] name = mil_actor_blockpost -- текст сообщения type = tips -- тип сообщения: "send_tip" on_info = {=mil_actor_enemy_freedom} nil -- проверка друг/враг on_actor_inside = %+mil_blockpost_free_task% -- инфо "mil_blockpost_free_task" (+ задание "mil_blockpost_job") on_info2 = {+mil_blockpost_free_task} sr_sound_act -- звуковое сообщение при получении инфо-поршня sender = freedom -- отправитель текстового сообщения on_signal = tip_sended | sr_idle -- ? (деактивация рестриктора) Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
WinCap 316 Опубликовано 28 Марта 2020 Поделиться Опубликовано 28 Марта 2020 @Norman Eisenherz, забыли добавить single = true, наверное. Мне кажется, правильным будет такой вариант: Скрытый текст [sr_tip1] name = mil_actor_blockpost type = tips sender = freedom on_info = {=mil_actor_enemy_freedom} nil on_actor_inside = sr_sound_act %+mil_blockpost_free_task% S.T.A.L.K.E.R. CoP Objects (upd 15.11.24) Ссылка на комментарий
mole venomous 3 530 Опубликовано 29 Марта 2020 Поделиться Опубликовано 29 Марта 2020 Кто знает, что с Шустрым не так? Он, зараза, спаунится с НИ, несмотря на то, что в all.spawn ему указал Скрытый текст [spawner] cond = {+tutorial_wounded_start} С бандитами на АТП это работает. Здесь могла быть ваша реклама. Ссылка на комментарий
Купер 2 992 Опубликовано 29 Марта 2020 Поделиться Опубликовано 29 Марта 2020 (изменено) @mole venomous, тут, тут и тут. object_flags возможно? Изменено 29 Марта 2020 пользователем Купер 1 1 Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 1 Апреля 2020 Поделиться Опубликовано 1 Апреля 2020 On 3/28/2020 at 9:37 PM, WinCap said: @Norman Eisenherz, забыли добавить single = true, наверное. Мне кажется, правильным будет такой вариант: [sr_tip1] (Reveal hidden contents) [sr_tip1] name = mil_actor_blockpost type = tips sender = freedom on_info = {=mil_actor_enemy_freedom} nil on_actor_inside = sr_sound_act %+mil_blockpost_free_task% Добрался, наконец, попробовать: просто "single = true" в имеющейся логике убирает второй текст, но затыкает и звук, и задачу. Без "single = true" сообщений, как ни крути, выдается два. В итоге, вот такой порядок дает нужный результат: Spoiler [alife_l07_military.ltx] name = mil_before_blockpost_restriktor … [logic] active = sr_idle [sr_idle] on_info = {=mil_actor_enemy_freedom} nil on_actor_inside = %+mil_blockpost_free_task% on_info2 = {+mil_blockpost_free_task} sr_tip [sr_tip] name = mil_actor_blockpost type = tips sender = freedom single = true on_signal = tip_sended | sr_sound_act [sr_sound_act] snd = characters_voice\scenario\military\pda\mil_pda_7 on_signal = sound_end | nil Добавлено HellRatz, 2 Апреля 2020 Запрещен оверквотинг (цитирование сообщения большого объема, спойлеров, изображений). Для цитирования достаточно выделить нужную часть сообщения. Устное предупреждение по пункту 2.6 правил форума.Правила цитирования 1 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndrewMor 530 Опубликовано 2 Апреля 2020 Поделиться Опубликовано 2 Апреля 2020 @Norman Eisenherz, Я всегда, кстати, думал, где, как и почему выдается сообщение, логику копал. А дело-то в рестрикторе. Сталкер - наше всё! Ссылка на комментарий
Norman Eisenherz 322 Опубликовано 2 Апреля 2020 Поделиться Опубликовано 2 Апреля 2020 Здрасьте. Есть ли какой-то фикс для меток, которые остаются после сюжетных заданий (АТП, X-16, РГ-6)? Пробовал удалять метки по инфо-поршням завершения заданий – удаление срабатывает через раз, как будто инфо-поршни не выдаются, хотя сами задания засчитываются стабильно. ТЧ 1.0006 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
aka_sektor 1 477 Опубликовано 3 Апреля 2020 Поделиться Опубликовано 3 Апреля 2020 Что это значит: https://ap-pro.ru/forum/100-9999-826370-16-1452102986 Цитата уникальный id объекта который ему назначил движек при спавне. alife():object(id) - возвращает объект, с таким номером. ? Это какая-то проверка, помогающая найти ID объекта? Если да, то как правильно и куда ещё вписывать, чтобы потом прочесть в логе. Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
DMT 2 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 Как переместить всё содержимое некоторого тайника в инвентарь НПС ? Любые намёки, любые идеи пригодятся. А лучше, если есть готовое решение. Ссылка на комментарий
AndrewMor 530 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 (изменено) 03.04.2020 в 02:32, Norman Eisenherz сказал: Есть ли какой-то фикс для меток, которые остаются после сюжетных заданий (АТП, X-16, РГ-6)? Насчет фикса - не знаю, но в своем моде исправлял сам. Правда, дело было давно, и откопать не сумею теперь. Вывод: смотри квест пошагово и в нужный момент вызывай функцию удаления конкретной метки. Добавлю: та еще мутота, но все решаемо. В частности, по РГ-6 долго не мог добиться результата, в итоге все ж сделал. Но где и что правил - увы, не помню. Изменено 4 Апреля 2020 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
Zander_driver 10 342 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 2 часа назад, DMT сказал: Как переместить всё содержимое некоторого тайника в инвентарь НПС ? Как-то так treasure:transfer_item(obj, npc) Где treasure, obj, npc - это клиентские объекты тайника, перемещаемого итема, и НПС, соответственно. И делать надо в цикле, перебирая все итемы в тайнике. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти