Баба ЯГА 7 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 7 минут назад, naxac сказал: for i = 1, count do хорошо, а COUNT - сколько ставить? Если больше 300000 - вылет upd: попробуй сам перебрать вертексы и сам всё увидишь, не работает такой перебор, он всё не перебирает. Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
naxac 2 440 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 (изменено) @Баба ЯГА, вот так только что попробовал, всё работает: Скрытый текст function ggg() local pos = db.actor:position() local vpos local n = 0 for i = 1, 595499 do -- для Кордона vpos = level.vertex_position(i) if vpos and vpos:distance_to_sqr(pos) < 9 then n = n + 1 log(i) end end log("found %s vertexes", n) end вот что получил: Скрытый текст 385291 386206 386207 386208 386209 386210 387120 387121 387122 387123 387124 387125 387126 388033 388034 388035 388036 388037 388038 388039 388945 388946 388947 388948 388949 388950 388951 389852 389853 389854 389855 389856 389857 389858 389859 390747 390748 390749 390750 390751 390752 390753 391639 391640 391641 391642 391643 391644 391645 392549 392550 392551 392552 found 53 vertexes Изменено 1 Октября 2019 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Баба ЯГА 7 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @naxac, точно, проверил, всё работает! Ты меня просто спас Ничего не пойму, а чего у меня вылетало тогда? Я же вроде всё тоже-самое делал... 1 час назад, naxac сказал: с помощью, например, Graph Viewer где его взять? Чтобы каждую локацию не декомпилировать для LE? Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
naxac 2 440 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, https://yadi.sk/d/jriWu9cMSPglHg Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Баба ЯГА 7 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @naxac, спасибо! Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
abramcumner 1 141 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 4 часа назад, Баба ЯГА сказал: Я же вроде всё тоже-самое делал... Вообще не то же самое. Ты перебирал game-вертексы, game-вертексы объединены в game_graph, у game-вертекса есть game_vertex_id. Соответствуют graph_point в СДК. Их на локацию в среднем по 250 штук, ну и на всю игру тысяч 5. А есть level-вертексы с level_vertex_id. Соотвествуют аи-нодам в СДК, на каждой локации по 500к. 3 Ссылка на комментарий
Graff46 598 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 Интересует вопрос навигации НПС в оффлайне и на другие локации. Для того чтобы отправить куда-то НПС (он может уходить в оффлайн и переходить на другие локации) используется метод что-то вроде :set_move_path(). Я писал схемы логики без патч и лук поинтов, НПС передвигаются/стоят на основе данных левел вертексов, по сути задаем НПС поворот и заставляем идти пока дистанция до левел вертекса будет достаточно мала, это всё работает на онлайновском НПС и в пределах локации. Меня интересует вопрос можно ли скриптово без использования патч поинтов заставить НПС ходить в оффлайне и на другие локации? Ссылка на комментарий
Kirgudu 1 186 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, обрати внимание на модуль lua_helper. В нём есть уже готовые функции как для поиска минимальных и максимальных game- и level-вертексов на локации, так и для определения ближайшего вертекса к заданным координатам ( а также куча других полезных функций). Если нет желания интегрировать весь модуль в свой мод, можно как минимум изучить реализацию. Инструмент Ссылка на комментарий
Баба ЯГА 7 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @abramcumner, начинаю вникать потихоньку... @Kirgudu, обязательно посмотрю. Ребята, как поставить метку на карту по заданным координатам? Не на объект, а просто в нужную точку на карте? upd: есть идея поставить пустой рестриктор и на него поставить метку, но возникает вопрос - можно ли ставить пустой рестриктор и будет ли это большая нагрузка на ресурсы если таких рестрикторов и меток будет скажем - 500 штук? upd2: где-то видел не могу найти - как заспавнить пустой рестриктор через скрипт? Нашёл, вот так можно? local sobj = alife():create( "space_restrictor", pos, lv, gv ) upd3: и ещё. можно ли поставить метку на level_vertex? Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Kirgudu 1 186 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, initial, upd: никак, можно, не будет. upd2: сам же спрашивал и уже получал ответ здесь. upd3: только на объект. Инструмент Ссылка на комментарий
Баба ЯГА 7 Опубликовано 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 сказал: сам же спрашивал и уже получал ответ здесь. я помню что спрашивал уже это, искал тут, но не нашёл, пришлось спросить ещё раз... Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Kirgudu 1 186 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 (изменено) @Баба ЯГА, навскидку на ум приходит только перебор вертексов вокруг твоих координат и определение вертекса с минимальным расстоянием. См. комментарии выше и lua_helper. И прекрати флудить, задавая те же вопросы другими словами. Изменено 1 Октября 2019 пользователем Kirgudu Инструмент Ссылка на комментарий
Баба ЯГА 7 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Kirgudu, ты не понял, это всё мне уже @naxac выше подсказал, это всё готово уже - нахожнение веретексов вокруг ГГ, в итоге я знаю веретексы вокруг ГГ и их координаты, но не знаю как получить game_vertex - для level вертекс, ну я не знаю как ещё объяснить. Вот я ж выше писал: local sobj = alife():create( "space_restrictor", ЭТО ЕСТЬ, ЭТО ЕСТЬ, ЭТО КАК УЗНАТЬ??? ) Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Kirgudu 1 186 Опубликовано 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 Инструмент Ссылка на комментарий
Баба ЯГА 7 Опубликовано 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. красный цвет Добавлено Опричник, 1 Октября 2019 Правила форума, п. 2.3 (красный цвет в постах) Предупреждение. Мы, вчера, соседям сказали, что материализация - состоялась, чтобы ваш авторитет не уронить. Вот, мол, было изваяние, а теперь - стала Марья Ивановна. Многие верят ... © Ссылка на комментарий
Kirgudu 1 186 Опубликовано 1 Октября 2019 Поделиться Опубликовано 1 Октября 2019 @Баба ЯГА, полегче, полегче. Красным цветом и прописными буквами пиши в другом месте. Надо разжевать и в рот положить, да? Извини, не по адресу обратился. Предпочитаю дать пищу для самостоятельных размышлений, хотя бы минимальных. 47 минут назад, Баба ЯГА сказал: Ну нашёл я в радиусе 20 метров по твоему скрипту 4 гейм вертекса и что мне с ними делать? Например, модифицировать функцию так, чтобы сразу искала единственный гейм-вертекс, находящийся на минимальном расстоянии от твоих координат, а не все вертексы в радиусе 9 метров. 52 минуты назад, Баба ЯГА сказал: И откуда мне знать какой минимальный гейм вертекс на локации вертекс а какой максимальный. 8 часов назад, Kirgudu сказал: обрати внимание на модуль lua_helper. В нём есть уже готовые функции как для поиска минимальных и максимальных game- и level-вертексов на локации, так и для определения ближайшего вертекса к заданным координатам ( а также куча других полезных функций) Инструмент Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 11 Октября 2019 Поделиться Опубликовано 11 Октября 2019 Времени доброго! А подскажите пожалуйста, куда ковырнуть, чтобы навыки по обходу аномалий у NPC откорректировать? Только я в них влетаю, ни одного трупа НПС от аномалий :| Ссылка на комментарий
Graff46 598 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @_Sk8_AsTeR_, Сталкеры обходят аномалии.Автор: Red75 СКАЧАТЬ: https://yadi.sk/d/9RfY4v5QsfEAn 1 2 Ссылка на комментарий
gam 117 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @Graff46, Совсем не лишне бы было указать версию/патч, и допустим с Кругловым могут возникнуть неполадки (правится), да и зомбарям как нить отрезать (бреду себе). Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 12 Октября 2019 Поделиться Опубликовано 12 Октября 2019 @Graff46, а в солянке та же схема интегрирована от товарища Ред? Просто поведение НПС несколько отличается - соляночной от этого мода. В солянке НПС плавно обходят аномалии, а в моде они начинают впадать в режим "готов стрелять" и с пушкой в руках оббегают аномалию по маленькому шагу, выглядит очень странно Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти