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/
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @naxac, точно, проверил, всё работает! Ты меня просто спас Ничего не пойму, а чего у меня вылетало тогда? Я же вроде всё тоже-самое делал... 1 час назад, naxac сказал: с помощью, например, Graph Viewer где его взять? Чтобы каждую локацию не декомпилировать для LE? Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287504
naxac 2 595 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, https://yadi.sk/d/jriWu9cMSPglHg Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287506
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @naxac, спасибо! Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287507
abramcumner 1 230 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 4 часа назад, Баба ЯГА сказал: Я же вроде всё тоже-самое делал... Вообще не то же самое. Ты перебирал game-вертексы, game-вертексы объединены в game_graph, у game-вертекса есть game_vertex_id. Соответствуют graph_point в СДК. Их на локацию в среднем по 250 штук, ну и на всю игру тысяч 5. А есть level-вертексы с level_vertex_id. Соотвествуют аи-нодам в СДК, на каждой локации по 500к. 3 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287514
Graff46 623 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 Интересует вопрос навигации НПС в оффлайне и на другие локации. Для того чтобы отправить куда-то НПС (он может уходить в оффлайн и переходить на другие локации) используется метод что-то вроде :set_move_path(). Я писал схемы логики без патч и лук поинтов, НПС передвигаются/стоят на основе данных левел вертексов, по сути задаем НПС поворот и заставляем идти пока дистанция до левел вертекса будет достаточно мала, это всё работает на онлайновском НПС и в пределах локации. Меня интересует вопрос можно ли скриптово без использования патч поинтов заставить НПС ходить в оффлайне и на другие локации? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287516
Kirgudu 1 339 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, обрати внимание на модуль lua_helper. В нём есть уже готовые функции как для поиска минимальных и максимальных game- и level-вертексов на локации, так и для определения ближайшего вертекса к заданным координатам ( а также куча других полезных функций). Если нет желания интегрировать весь модуль в свой мод, можно как минимум изучить реализацию. Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287521
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @abramcumner, начинаю вникать потихоньку... @Kirgudu, обязательно посмотрю. Ребята, как поставить метку на карту по заданным координатам? Не на объект, а просто в нужную точку на карте? upd: есть идея поставить пустой рестриктор и на него поставить метку, но возникает вопрос - можно ли ставить пустой рестриктор и будет ли это большая нагрузка на ресурсы если таких рестрикторов и меток будет скажем - 500 штук? upd2: где-то видел не могу найти - как заспавнить пустой рестриктор через скрипт? Нашёл, вот так можно? local sobj = alife():create( "space_restrictor", pos, lv, gv ) upd3: и ещё. можно ли поставить метку на level_vertex? Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287531
Kirgudu 1 339 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, initial, upd: никак, можно, не будет. upd2: сам же спрашивал и уже получал ответ здесь. upd3: только на объект. Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287546
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Kirgudu, понял, спасибо. Возник вопрос: как узнать gv вертекса. если я знаю ID и позицию (координаты)? local lvid = 30087 local vpos = level.vertex_position( lvid ) local sobj = alife():create( "space_restrictor", vpos, lvid, gv ) -- КАК УЗНАТЬ gv ??? Как узнать gv ?? 9 минут назад, Kirgudu сказал: сам же спрашивал и уже получал ответ здесь. я помню что спрашивал уже это, искал тут, но не нашёл, пришлось спросить ещё раз... Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287549
Kirgudu 1 339 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 (изменено) @Баба ЯГА, навскидку на ум приходит только перебор вертексов вокруг твоих координат и определение вертекса с минимальным расстоянием. См. комментарии выше и lua_helper. И прекрати флудить, задавая те же вопросы другими словами. Изменено 1 Октября 2019 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287552
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Kirgudu, ты не понял, это всё мне уже @naxac выше подсказал, это всё готово уже - нахожнение веретексов вокруг ГГ, в итоге я знаю веретексы вокруг ГГ и их координаты, но не знаю как получить game_vertex - для level вертекс, ну я не знаю как ещё объяснить. Вот я ж выше писал: local sobj = alife():create( "space_restrictor", ЭТО ЕСТЬ, ЭТО ЕСТЬ, ЭТО КАК УЗНАТЬ??? ) Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287553
Kirgudu 1 339 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 (изменено) 5 часов назад, Graff46 сказал: можно ли скриптово без использования патч поинтов заставить НПС ходить в оффлайне и на другие локации? В пределах локации можно и проще, по координатам - npc:set_dest_level_vertex_id(lvid) Для перемещения же на другие локации вроде надо работать с привязкой НПС к смартам. Что-то подобное обсуждали давно здесь. @Баба ЯГА, я-то всё прекрасно понял, а тебе все необходимые подсказки уже дали. У тебя есть level-вертекс и его координаты. Для поиска game-вертекса можно воспользоваться перебором, аналогичным тому, который предложил @naxac для level-вертексов. Например: Скрытый текст function get_gvid_by_pos(pos) local gmg, vpos, n = game_graph(), vector(), 0 for i = gvid_min, gvid_max do -- gvid_min, gvid_max - минимальный и максимальный game-вертексы для данной локации vpos = gmg:vertex(i):level_point() if vpos and vpos:distance_to_sqr(pos) < 9 then n = n + 1 log(i) end end log("found %s game vertexes", n) end Изменено 1 Октября 2019 пользователем Kirgudu Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287554
Баба ЯГА 12 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 (изменено) @Kirgudu, попробую объяснить ещё раз что мне нужно, курил я твой код никуда его не смог прикрутить... Итак: 1) перебираю вокруг ГГ все вертексы в радиусе 20 метров 2) заношу их в таблицу вида = id вертекса, координаты вертекса 3) спавню пустые рестрикторы по координатам найденных вертексов и на них ставлю метки. НО. чтобы заспавнить рестриктор, мне нужен ГЕЙМ ВЕРТЕКС, вот ты перебираешь гейм вертексы. а как мне определить к какому ЛЕВЕЛ вертексу подходит ГЕЙМ вертекс которые ты перебираешь? Ещё не понял? Ну нашёл я в радиусе 20 метров по твоему скрипту 4 гейм вертекса и что мне с ними делать? У меня таблица, в ней, для примера: t = { 30087 = { -120.00,-18.00,-200.00 } } вот из твоего скрипта нашло 4 гейм вертекса = 47, 22,17,44 - и как мне узнать какой именно ГЕЙМ ВЕРТЕКС нужен для спавна -> 30087 = { -120.00,-18.00,-200.00 }? t = { 30087 = { -120.00,-18.00,-200.00 } } вот мне нужно заспавнить рестриктор: local sobj = alife():create( "space_restrictor", 30087, -120.00,-18.00,-200.00 , а сюда какой из твоих геймвертексов ставить??? их четыре - какой сюда? ) @Kirgudu ??? 5 часов назад, Kirgudu сказал: for i = gvid_min, gvid_max do -- gvid_min, gvid_max - минимальный и максимальный game-вертексы для данной локации И откуда мне знать какой минимальный гейм вертекс на локации вертекс а какой максимальный. Изменено 1 Октября 2019 пользователем W.A.S.P. красный цвет Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287584
Kirgudu 1 339 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, полегче, полегче. Красным цветом и прописными буквами пиши в другом месте. Надо разжевать и в рот положить, да? Извини, не по адресу обратился. Предпочитаю дать пищу для самостоятельных размышлений, хотя бы минимальных. 47 минут назад, Баба ЯГА сказал: Ну нашёл я в радиусе 20 метров по твоему скрипту 4 гейм вертекса и что мне с ними делать? Например, модифицировать функцию так, чтобы сразу искала единственный гейм-вертекс, находящийся на минимальном расстоянии от твоих координат, а не все вертексы в радиусе 9 метров. 52 минуты назад, Баба ЯГА сказал: И откуда мне знать какой минимальный гейм вертекс на локации вертекс а какой максимальный. 8 часов назад, Kirgudu сказал: обрати внимание на модуль lua_helper. В нём есть уже готовые функции как для поиска минимальных и максимальных game- и level-вертексов на локации, так и для определения ближайшего вертекса к заданным координатам ( а также куча других полезных функций) Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1287596
_Sk8_AsTeR_ 122 Опубликовано 11 Октября 2019 Поделиться Опубликовано 11 Октября 2019 Времени доброго! А подскажите пожалуйста, куда ковырнуть, чтобы навыки по обходу аномалий у NPC откорректировать? Только я в них влетаю, ни одного трупа НПС от аномалий :| Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289744
Graff46 623 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @_Sk8_AsTeR_, Сталкеры обходят аномалии.Автор: Red75 СКАЧАТЬ: https://yadi.sk/d/9RfY4v5QsfEAn 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289776
gam 118 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @Graff46, Совсем не лишне бы было указать версию/патч, и допустим с Кругловым могут возникнуть неполадки (правится), да и зомбарям как нить отрезать (бреду себе). Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289795
_Sk8_AsTeR_ 122 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @Graff46, а в солянке та же схема интегрирована от товарища Ред? Просто поведение НПС несколько отличается - соляночной от этого мода. В солянке НПС плавно обходят аномалии, а в моде они начинают впадать в режим "готов стрелять" и с пушкой в руках оббегают аномалию по маленькому шагу, выглядит очень странно Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289835
naxac 2 595 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @_Sk8_AsTeR_, в солянке используется другая схема. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289853
_Sk8_AsTeR_ 122 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @naxac, Вот и я о том же думал, только бы понять теперь куда там копать, чтобы подкрутить НПС шансы обойти аномалии. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/500/#findComment-1289922
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти