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

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

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

@Silver Raven,

on_actor_inside  = ...
on_actor_inside2 = ...
on_actor_inside3 = ...
...
Но не всегда такое разделение будет равнозначным - зависит от конкретной логики.
Ссылка на комментарий
Поделиться на других сайтах

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

Ссылка на комментарий
Поделиться на других сайтах

 

 

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

 

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

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

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Ссылка на комментарий
Поделиться на других сайтах

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

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

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

 

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

@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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Тестирование лифта (ТЧ) Youtube:  www.youtube.com/watch?v=wDVEdcL8wsI

Ссылка на комментарий
Поделиться на других сайтах

 

 Silver Raven, так и не пойму почему для этих целей не брать рестриктор который сам по себе в игре не видим...

 

Ссылка на комментарий
Поделиться на других сайтах

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

aka Stalker_AleX333
 
Мои проекты  - ЯндексДиск   |   Тестирование лифта (ТЧ) Youtube:  www.youtube.com/watch?v=wDVEdcL8wsI

Ссылка на комментарий
Поделиться на других сайтах

 

Silver Raven, по сути если там нормальная функция для спавна рестриктора, вызов функции займет одну строку с параметрами.

 

Ссылка на комментарий
Поделиться на других сайтах

Подскажите где в Сталкере находится моделька Шустрого?

Добавлено  HellRatz,

actors\novice\green_stalker_1

Ссылка на комментарий
Поделиться на других сайтах

в чем суть

 

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

 

Что мешает

 

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

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

e15988c9fe.jpg

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

 

 

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

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

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

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

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

 

 

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

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

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

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

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

Ссылка на комментарий
Поделиться на других сайтах

 

 

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

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

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 10 PRO x64 / Samsung Curved 27" x2

Ссылка на комментарий
Поделиться на других сайтах

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

Изменено пользователем dsh
Ссылка на комментарий
Поделиться на других сайтах

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

--// позиционная метка всегда сохраняется(!), могу сделать в движке опционально если надо
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

Ссылка на комментарий
Поделиться на других сайтах

@dPlayer, Можно в текстуре карты нарисовать значок (метку)

- Пролетарии всех стран, соединяйтесь!

 

Ссылка на комментарий
Поделиться на других сайтах

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

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

Изменено пользователем Kondr48
Ссылка на комментарий
Поделиться на других сайтах

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

[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
 
Мои проекты  - ЯндексДиск   |   Тестирование лифта (ТЧ) Youtube:  www.youtube.com/watch?v=wDVEdcL8wsI

Ссылка на комментарий
Поделиться на других сайтах

@Silver Raven, а что мешает нормально, без участия рестриктора, отправить сообщение?

Ранее был известен под ником BoBaH_671.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

×
×
  • Создать...