Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

 

 

Можно ли поставить/убрать отметку на карте в ПДА по координатам, без объекта?

 

Насколько мне известно - нет.

Подсвечивают обычно именно что-либо - рестриктор, нпц, мутанта - неважно.

Не соответствует правилам.

Ссылка на комментарий

@dPlayer, а в чем суть данного действия, можно поинтересоваться? Просто может будут какие-то идеи. А вообще правильно сказали, просто метку в воздух нельзя повесить. Что мешает повесить метку на рестриктор, например?

  • Согласен 1
Ссылка на комментарий

@dPlayer, немного рассуждений.

Движок вешает метку на обьект - материальную точку(условно говоря), которая имеет координаты в 3-д мире, а на карту переноситься каким-то подобием World2Screen функции. Тот же НПЦ, рестриктор - эволюция материальной точки. Что мешает тебе написать самую упрощенную реализацию такой мат.точки специально для твоей цели? А я скажу, что - здравый смысл) 

Space restrictor без логики - и есть мат.точка, максимально упрощенная. Спавнить его можно через скрипт(есть на форуме, надо поискать) или стандартно - all.spawn.

 

Ну, по теме вроде всё :)

Изменено пользователем CRAZY_STALKER666
  • Согласен 1

Не соответствует правилам.

Ссылка на комментарий

@dPlayer, метку можно повесить на невидимый (использовать ogf модельки из equipment_cache) и неюзаемый маленький объект с такой логикогй:

[logic]
active = ph_idle@none
 
[ph_idle@none]
nonscript_usable = false
tips = 

И таким конфигом:

[fake_inventory_box]:identity_immunities
$spawn 						= "devices\fake_inventory_box"
class						= O_INVBOX
cform						= skeleton
visual						= physics\equipment_cache\equipment_box_01_case.ogf
custom_data					= scripts\fake_inventory_box.ltx
radius						= 0
script_binding      		                = bind_physic_object.init
Изменено пользователем Silver Raven
  • Спасибо 1
  • Полезно 1

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

@Kondr48, Если работать через all.spawn, то я бы тоже отдал предпочтение рестриктору. А если через скрипты, гораздо проще (меньше кода) заспавнить такой вот объект.

  • Согласен 1

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

в чем суть

 

Ну например, поисковый квест, когда отметка непосредственно на объекте делает возможным по карте прицелиться ровно на середину отметки.

 

Что мешает

 

Ничего, так и придётся делать. Просто я думал, что можно обойтись без этого костыля.

УПД, в данном случае под отметкой я говорю про синий круг:

e15988c9fe.jpg

Кстати, у него радиус меняется?

 

 

Белого - меняеться

Что-то даже не могу вспомнить про белый круг в ТЧ... Как он называется?

Изменено пользователем dPlayer
Ссылка на комментарий
Кстати, у него радиус меняется?

У синего - нет. Белого - меняеться.

 

 

прицелиться ровно на середину отметки

Все метки ставятся ровно на середину обьекта. Если он меняет положение - следуют за ним.

Метка - движковая фича... 

Изменено пользователем CRAZY_STALKER666

Не соответствует правилам.

Ссылка на комментарий

 

 

когда отметка непосредственно на объекте

Так не вижу преград для спавна рестриктора. Вешаешь на него метку. Да, она будет по центру рестриктора, но сам квестовый объект ты спавни скриптом рандомно в пределах этой метки.  ;)

  • Согласен 1
Ссылка на комментарий

Или другой вариант, который я в NLC подсмотрел. В конфиге прописываются N меток, с разными текстурами, которые представляют из себя окружности не в центре этой текстуры. На нужный предмет назначается одна из этих отметок, случайная.

Изменено пользователем dsh
  • Полезно 2
Ссылка на комментарий

Я недавно таки дошел до этих спотов, не обошлось без движка, но обертка моя выглядит как-то так:

--// позиционная метка всегда сохраняется(!), могу сделать в движке опционально если надо
function add_map_spot(id, _type, hint, ser, not_del, not_all, pos, ln)
    assert(level.present(), 'level is not loaded')
    if not not_del then --// по умолчанию почистим объект от предыдущих спотов (флаг оставлен для создания псевдо-комплексного спота)
        remove_map_spot(id, _type, not_all)
    end
    if pos and ln then
        return level.map_add_position_spot_ser(pos, ln, _type, hint or "no_hint") --// тут необходимо возвратить айди метки, чтобы ее не потерять
    else
        level['map_add_object_spot'..(ser and '_ser' or '')](id, _type, hint or "no_hint")
    end
end

Только в движке нужно доделать таки дебаг этой фишки, чтобы айдишники не путались, там просто u16 одно прибавить и всего делов, возможно будет небольшая проблема с выделением памяти (для сохранения айди), тогда придется сделать два метода и один просто связать со скриптом, который через luabind будет давать нам массив, который мы будем сохранять.

 

На самом деле уже как двести лет функционал позволяет ставить метки кликая мышкой прямо по карте пда (правой кнопкой, например), только надо небольшую скриптовую обвязку написать с примитивным интерфейсом (выбор типа метки, текст метки). То есть тут билдовский вариант уже просто нервно покуривает. То есть алгоритм примитивный, получаем реальную позицию мышки, рисуем окно, получаем относительную позицию и ставим метку.

 

В любом случае даже если используете костыли с объектами, то придется вести массив, делать вменяемые функции для создания того же рестриктора, и далее просто сразу же вешать метку, используя хотя бы вот мою обертку, что я выше привел.

Ссылка на комментарий

Ну например, поисковый квест, когда отметка непосредственно на объекте делает возможным по карте прицелиться ровно на середину отметки.

 

Поисковые квесты с отметкой на карте - бред и нонсенс.

---------------------------------

www.amk-zone.de

Ссылка на комментарий

WizziGun, на самом деле такой себе совет, учитывая что это на один квест.

Wlad777, как раз-таки нет. Не имеется ввиду же точная метка. А примерную область накрыть очень даже не бред. А то искать где же там северо-восточно-южная часть хутора не всегда удобно и вообще нужно. В этом плане выигрывает ЗП, где ключевые объекты на карте отмечены.

Изменено пользователем Kondr48
  • Согласен 1
Ссылка на комментарий

Переработал одно из сообщений для квеста:

[logic]
active = sr_tip@alex_squad_sos_signal

[sr_tip@alex_squad_sos_signal]
name = generators_alex_squad_sos_signal_message
type = tips
sender = generators_alex_squad_sos_signal
cond = {-find_sos_signal_source_task_complite}
single = true
timeout = 3000
showtime = 7000
on_signal = tip_sended | sr_idle@start_quest_timer

[sr_idle@start_quest_timer]
on_timer = 6000 | nil %+find_sos_signal_source%

Игра крашится с руганью на news_manager: 

 

FATAL ERROR
 
[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ... - trilogy\shoc\gamedata\scripts\news_manager.script:158: attempt to index field '?' (a nil value) 

 

 

 

Вроде, без все ошибок. Правильность инфопоршней проверил. Чего он еще хочет?

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

@BoBaH_671, как минимум то, что сообщение должно выдаваться в строго определенном месте.

  • Нравится 1

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Я на Gamer-Mods.ru

Ссылка на комментарий

 

 

Поисковые квесты с отметкой на карте - бред и нонсенс.

 

А вот не скажи. Как раз наоборот. Когда у меня задания вида "ну типа там, на хуторе где-то бросил". Вот это где-то и надо бы обозначить. Примерно естественно, как область. Дальше уже простая психология. Если мне надо искать где-то там, то я сразу плюну и пойду на ютубе посмотреть, т.к. я такой внимательный, что мог в упор пропустить. И потом, квестописатели очень часто не учитывают, что когда они делают/описывают тайник, они имеют в голове контекст, которого не будет у игрока. Вот и получаются очередные "за щитом". А вот когда на карте обозначена область, то я, как игрок, точно знаю, что оно тут. И могу искать до упора. Я уверен, что оно не вон за теееееем кустом, т.к. он за границами обозначенной области. И значит, если я и пропустил  и не заметил его, то где-то вот тут, а не там. И потом, когда Кузнецов говорит ( не к ночи будет упомянут ОП-2 ): отлично Стрелок, за это я тебе подарю свой тайник на ЧАЭС-2. Возникает логичный вопрос: Кузнецов, ты в своем уме? Это твой тайник, ты мне его в оплату даешь и ты не знаешь где примерно его оставил и предлагаешь искать на всей локации? Да ты издеваешься что-ли? Т.ч. примерная метка - это со всех сторон хорошо. Если бы я сам кому-то описывал какое-то место, то сам бы ему на карте нарисовал кружок и сказал: вот тут примерно тайник я сделал. Т.к. естественно я не могу с точность до метра знать его положение.

  • Согласен 3
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...