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/
naxac 2 594 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 @UriZzz, if level.map_has_object_spot(obj.id, "green_location") ~= 0 then ... где obj - серверный объект нпс. 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324407
aka_sektor 1 479 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 3 часа назад, Kirgudu сказал: имея id, можно получить сам объект Просто там дело было в вылете: https://ap-pro.ru/forum/100-9999-826159-16-1452077092 И вопрос касательно того, что значат цифры 1394: child registered but not found [1394] Думал это может story_id а выходит, просто id, который никем кроме движка не указывается. Отсюда вопрос, как зная id из вылета, найти объект с таким id? - Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324417
Zander_driver 10 348 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 13 минут назад, aka_sektor сказал: Отсюда вопрос, как зная id из вылета, найти объект с таким id? Вот так 21 час назад, aka_sektor сказал: alife():object(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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324420
Nikolai990 0 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 Всем привет, кто может помочь локацию соединить с остальными, буду очень благодарен. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324430
naxac 2 594 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 @Nikolai990, *.graph recompiler (ggRC) v.0.7: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewdownload&cid=37 Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324437
Okichi 979 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 3 часа назад, aka_sektor сказал: как зная id из вылета, найти объект с таким id? Боюсь, что в данном случае - никак, потому что этого объекта уже нет. Здесь, емнип, имеется парент, у которого есть зарегистрированный в игре потомок, но реально потомка уже не существует. Точно такой же вылет был, причем в качестве парента указывался объект "лестница". Так и не смогла отрыть, что же за "чайлд" мог быть у лестницы... След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324454
Zander_driver 10 348 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 8 минут назад, Okichi сказал: Так и не смогла отрыть, что же за "чайлд" мог быть у лестницы... Такие вылеты и такие взаимосвязи ловятся перебором серверных объектов при загрузке сейва. На постоянку такие проверки вешать на лоад конечно не надо. Но если вылет возник - то повесить. Перебрать все 65к объектов, у них проверить парент, получить этот парент, проверить его класс, и соответствует ли он тому набору классов, которому позволено иметь чилды. При нормально устроенной игре, эта вся канитель не даст ничего, т.е. 65к проверок вернут нулевой результат. А если вот такой вылет возникает, то как раз и будет поймана эта пара до исчезновения чилда, до вылета, до вообще всего что такая парочка могла бы натворить. И выводится в лог - владелец такой-то, секция такая то. Чилд такой-то, секция такая-то. Дальше уже дело техники, выяснить что это за фигня и как так получилось, что они воссоединились. Устраняется причина, а затем и описанная проверка. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324456
Okichi 979 Опубликовано 4 Апреля 2020 Поделиться Опубликовано 4 Апреля 2020 1 минуту назад, Zander_driver сказал: А если вот такой вылет возникает, то как раз и будет поймана эта пара до исчезновения чилда, до вылета, Дело в том, что на момент, когда мы стали ловить этот вылет, объекта-потомка с таким id в игре УЖЕ не было. Конечно же, он наверняка существовал N сэйвов назад, но у нас этих N не было, а были последние несколько - и в них объекта-потомка с таким id не существовало тоже. Поскольку вылет такой случался при автосэйве (переход с локи на локу) и только в нем - а автосэйв при этом на другой локации создавался нормально, то дальше не копали. След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324457
DMT 2 Опубликовано 5 Апреля 2020 Поделиться Опубликовано 5 Апреля 2020 04.04.2020 в 10:03, Zander_driver сказал: Где treasure, obj, npc - это клиентские объекты тайника, перемещаемого итема, и НПС, соответственно. И делать надо в цикле, перебирая все итемы в тайнике. А как сделать? Я же заранее не знаю, что окажется в тайнике. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324512
Zander_driver 10 348 Опубликовано 5 Апреля 2020 Поделиться Опубликовано 5 Апреля 2020 10 минут назад, DMT сказал: не знаю, что окажется в тайнике. А зачем это знать? Функции iterate_inventory в тайниках тоже работают, перебирая инвентарь тайника. 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. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324515
aka_sektor 1 479 Опубликовано 6 Апреля 2020 Поделиться Опубликовано 6 Апреля 2020 04.04.2020 в 19:48, Okichi сказал: в данном случае - никак, потому что этого объекта уже нет. Парадокс. А вот тут писали: 17.02.2012 в 00:03, smeh сказал: LuaChecker-0.3 Может я не правильно пользуюсь? 17.02.2012 в 23:01, Artos сказал: проверяй файлы чекером. Только не тем, который ты упоминал, а "Syntax Checker" (by Gun12), который тебе уже посоветовал Капрал Хикс 17.02.2012 в 11:19, Капрал Хикс сказал: script Syntax Checker - есть на stalkerin.gameru.net. Не виснет на больших скриптах и может скрипты проверять группой. Вот он: http://stalkerin.gameru.net/modules.php?name=Downloads&d_op=viewtheoned&lid=447 Есть ли какое-то принципиальное отличие от чекера представленного в утилите SciTe: https://modfaq.ru/SciTE (кста, вопрос к @Charsi тоже, он советовал) - Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324735
Okichi 979 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 22 часа назад, aka_sektor сказал: Парадокс Ну вот выше Зандер_драйвер дал схему, как можно попробовать обнаружить. Искать по предыдущим сэйвам, в которых этот объект-потомок еще существовал. Но иногда в некоторых модах сразу при НИ запускается удаление ненужных объектов ( то, что есть в аллспавне, например, но реально не требуется в игре). Тогда, если этот чайлд вот так, с НИ, удалили - то уже не найти. Тем более, что узнаем мы об этом ( получим вылет) только тогда, когда придем на локу, где этот удаленный объект находился. И то - не сразу, а когда будем там перегружаться или переходить на другой уровень: вылет будет при разрушении уровня, т.к., если я правильно поняла dsh-а, при разрушении уровня игра сначала пытается удалить "потомков", и только потом - их парентов. След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324872
AndrewMor 534 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 1 час назад, Okichi сказал: Но иногда в некоторых модах сразу при НИ запускается удаление ненужных объектов Есть такое дело. Сам в моде так делал, когда объект не нужен со старта НИ, но в дальнейшем для квеста требуется. Но заспавнить заново проще по spawn_story_id (ессно, его изначально нужно в спавне прописать). Тогда такой объект наверно можно и отследить. Сталкер - наше всё! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324891
aka_sektor 1 479 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 Кто разбирается в логике? Беглым взглядом гляньте: Скрытый текст [logic@ex_gar_eger] suitable = {=check_npc_name(ex_gar_eger)} prior = 200 active = animpoint@ex_gar_eger level_spot = quest_npc [animpoint@ex_gar_eger] cover_name = ex_gar_a1_eger_cover avail_animations = animpoint_sit_normal combat_ignore_cond = true combat_ignore_keep_when_attacked = true gather_items_enabled = false help_wounded_enabled = true corpse_detection_enabled = false invulnerable = false def_state_moving = assault on_info = {+ops_quest_taked} %=release_npc% meet = meet@ex_gar_eger [meet@ex_gar_eger] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 close_snd_distance = 3 use = nil close_snd_hello = nil trade_enable = true allow_break = false meet_on_talking = true Чего неправильно может быть? Выяснил только, что вылетает из-за строчки: on_info = {+ops_quest_taked} %=release_npc% Если убрать %=release_npc%, то вылета нет. Это для чего служит? - Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324931
Okichi 979 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 @aka_sektor, это попытка выполнить ф-ю release_npc, когда получаем поршень ops_quest_taked. Надо проверить, существует ли эта ф-я в xr_effects.script. 2 След от кругов на воде - это тоже след (с) Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324937
aka_sektor 1 479 Опубликовано 7 Апреля 2020 Поделиться Опубликовано 7 Апреля 2020 @Okichi, да, уже выяснили что её нет. Непонятно почему её написали, упоминаний во всем инете, кот наплакал. Использовали в итоге destroy_object - Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1324938
Kirgudu 1 339 Опубликовано 9 Апреля 2020 Поделиться Опубликовано 9 Апреля 2020 06.04.2020 в 19:58, aka_sektor сказал: кста, вопрос к @Charsi тоже, он советовал Вопросы Charsi задавать бесполезно - он уже больше года не интересуется Сталкером и сюда не ходит. Лично я для проверки и локального запуска скриптов пользуюсь как раз его разработки плагином к N++: https://yadi.sk/d/UIMIb8_8vZtMD 3 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1325137
Graff46 623 Опубликовано 11 Апреля 2020 Поделиться Опубликовано 11 Апреля 2020 Хочу реализовать идею для обхода НПС динамических объектов в частности автомобильной техники. Делать это на ристрикторах достаточно спорный вариант т. к. запрещающие рестрикторы не так просто спавнить и удалять, есть мысли чтобы объекты издавали пустой звук но в тегах прописать определённый ИИ радиус и тип данжер, или же сделать так чтобы НПС воспринимали объекты как аномалии. Хочется услышать конструктивные идеи на этот счет. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1325557
dsh 3 824 Опубликовано 11 Апреля 2020 Поделиться Опубликовано 11 Апреля 2020 @Graff46, не нужно изобретать велосипед. В движке ЗП есть обход динамических физ. объектов. Перенеси оттуда. Пример такого переноса можно увидеть в моем репозитории OGSR https://github.com/dsh2dsh/OGSR-Engine/commit/df1edaadef9fdcca7ac1c0c3ee8a16743513c85a 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1325561
Graff46 623 Опубликовано 12 Апреля 2020 Поделиться Опубликовано 12 Апреля 2020 (изменено) @dsh метод set_ai_obstacle применяется сразу к клиентскому объекту? Изменено 12 Апреля 2020 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/512/#findComment-1325651
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти