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

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

Ребят, а вот такой странный вопрос.

Вот неписи (ТЧ) перемещаются в оффлайне по локациям и между ними, а в каких скриптах эти перемещения регулируются и описываются? Это в какую сторону нужно копать?

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

@_Sk8_AsTeR_ емнип, секции таких персонажей в файлах character_desc_локация, начинаются с "sim_", попробуй начать поиски отсюда

God save Hatsune Miku!

Ссылка на комментарий
21 час назад, Labadal сказал:

upd: да, можно

Хм, интересно, а в X-ray ext коллбэк before_hit (Чи как он там?) Какие данные передаёт???

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz function motivator_binder:before_hit_callback(p_s_hit, p_ignore_flags)
А вот как с этим работать - ума не приложу, пытаюсь по маленьку, но безрезультатно. 
Нашёл в тырнетах где данный калбек используется, но там все на ОГСЕ разрабатывается, чую - что должен был способ на чистом ХЕ узнать тип хита, но тут я нуб)
Когда нибудь да разберусь)

God save Hatsune Miku!

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

@Labadal огсе и X-ray ext во многом схожи, по крайней мере в коллбэках точно. Думаю есть смысл поковыряться в ём.

Сам то я не интересовался конкретно этой областью, потому и не копал в том направлении.

30 минут назад, Labadal сказал:

(p_s_hit, p_ignore_flags)

Мало о чём говорит. Это надо смотреть клиентский скрипт.

Ну да ладно.

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий
49 минут назад, Labadal сказал:

before_hit_callback(p_s_hit, p_ignore_flags)

Насколько я помню, оно в OGSR имеет такую же сигнатуру.

А помню я точно. Потому что... сам лично переделывал. И в СЗ сигнатура уже другая, но это не важно...

Вторая переменная - это bool флаг для всяких непристойностей :rolleyes::blush:, а первая (p_s_hit) - как раз объект хита, который тебе нужен. Из него уже можно тип хита вытаскивать, и подозреваю, раз сигнатура метода такая же - то можно вполне в OGSR подсмотреть, как именно он вытаскивается. Должно быть похоже, хотя наверное не идентично.

Это лишь наводка, в какую сторону копать... дальше сам :)

  • Спасибо 1
  • Полезно 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

@Labadal не понял, в смысле?

Что конкретно там есть чего нет в ext? Может я не так глубоко копал? У меня с ОГСЕшными скриптами пока ни каких проблем не возникало. Может имеются в виду шейдерные прибомбасы??? Там да, не копал, ибо не нужно конкретно мне.

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz например: 

function motivator_binder:before_hit_callback( p_s_hit, p_ignore_flags )
  self.last_hit_data = read_hit_data( p_s_hit )

read_hit_data() - из ogse.dll

@Zander_driver в том то и дело, что в огсе он вытаскивается тем, чего нет в ХЕ

https://github.com/dsh2dsh/op2ogse/blob/3f7514f804eaf1dc875cc3ce8513d8537dd53bc2/gamedata/scripts/xr_motivator.script#L673

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

God save Hatsune Miku!

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

Доброго времени! А есть ли возможность зарегистрировать НПС в конкретном гулаге, при условии что мы 100% знаем что там есть на текущий момент свободная работа?

Без редактирования gulag_локация.script 

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

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

@_Sk8_AsTeR_ По идее, в алл спавне в секции нпс пишешь 
 

[smart_terrains]
имя_гулага = true
END

и в случае свободных мест в том же гулаге, нпс=а должно в него затянуть

God save Hatsune Miku!

Ссылка на комментарий
1 час назад, _Sk8_AsTeR_ сказал:

Без редактирования gulag_локация.script

Это, типа "и на одно место сесть, и рыбку съесть и косточкой не подавиться"? В чем проблема, конфиги и скрипты править под свои похотелки? По клавиатуре лень пальцами перебирать?

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

Здрасьте.

 

[ТЧ 1.0006]
Определение объекта "Сидорович" при диалоге/торговле: получаем ссылку из [xr_motivator.script] для обычных NPC, потом проверяем условия "объект NPC отсутствует или не находится в диалоге".
Если последний записанный NPC все еще в онлайне, проверка проходит успешно, если нет – проверка не дает никакого результата, тормозит все последующие скрипты и даже выдачу инфо-поршней.
Сбой, скорее всего, случается из-за применения метода is_talking() к оффлайн-объекту (например, если до Сидора был диалог с вояками под ж/д мостом), но почему нет полноценного вылета?


Если сослаться на объект NPC через level.object_by_id( obj:id() ), дальнейшая проверка условий проходит успешно, но вопрос не в этом.

 

Spoiler
[xr_motivator.script]
function motivator_binder:use_callback(obj, who)
	if self.object:alive() then
(+)
	bind_stalker.get_npc(obj)


[bind_stalker.script]
(+)
local npc

function get_npc(obj)
	npc = obj
end


function actor_binder:info_callback(npc, info_id)
(+)
	if info_id == "ui_trade" then
		if not npc or ( npc and not npc:is_talking() ) then
			npc = level_object_by_sid(3)
		end
	end

 

 

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

@AndreySol ну что за предвзятость? Мне никогда не было лень скрипты править. Суть вопроса в другом. По моей задумке я хотел через диалог с НПС уметь регистрировать его в разных гулагах. 

Например, нажав в диалоге на "иди в Деревню Новичков" НПС пойдет туда и зарегистрируется, возьмёт работу.

Нажмем на "иди на Свалку в Ангар" - он пойдет регистрироваться туда. Вот я и ищу метод (если такой возможен), как через скрипты отправить НПС туда, куда нам надо. Чтобы он не просто пришел на вейпоинт, прописанный в Path_walk, а именно чтобы встал под управление гулага.

PS

Кажется нашел, что искал. se_smart_terrain:register_npc( obj )

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

@_Sk8_AsTeR_ А как неписи переходят из ГУЛАГа в ГУЛАГ? В зависимости от выданных/дизабленных инфопорций. Тоже можно провернуть и в диалоге. 

Здесь могла быть ваша реклама.

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

@_Sk8_AsTeR_ 

Ну так в чем проблема: настроить работы в гулаге, прописать возможные гулаги неписю, выдать определенную инфо-порцию в диалоге, а в работе гулага прописать прекондишен с проверкой этой инфо-порции и соответствия непися. Есть все необходимые стандартные возможности для твоих хотелок, а тебе обязатьльно надо "вломиться" в работу смарт-террайнов\гулагов, чтоб вот так как тебе хоца, сразу в дамки. Что тебе даст se_smart_terrain:register_npc? Ну, к примеру зарегистрируешь ты непися, и что? Все равно под него заранее надо прописать работу, соответственно емкость гулага. Какой смысл, самостоятельно, скриптами повторять всю цепочку действий, которую и так сделат движок и скриптовая обвязка смартов\гулагов? Все равно не будет тебе "раз-два и в дамки".

  • Согласен 1
  • Полезно 1
  • Сомнительно 1
Ссылка на комментарий
7 часов назад, _Sk8_AsTeR_ сказал:

Кажется нашел, что искал. se_smart_terrain:register_npc( obj )

А зачем городить огород и делать это напрямую через скрипты управления смарт-террейнами? Ведь в кастомдате непися (еще перед его спавном) _зарнее_ можно прописать все доступные ему  гулаги, переключение между которыми должно осуществляться взаимоисключающим набором инфопоршней ( как выше АндрейСол и написал ).

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

Если же все это делать  "вручную" через скрипты  - это будет восход солнца вручную, и шансов где-то да накосячить - офердофига.
Нет, это конечно можно сделать - в ДШ-моде, например, сделано - но  потребуется уйма доп. работы.

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

След от кругов на воде - это тоже след (с)

Ссылка на комментарий
1 час назад, Okichi сказал:

А зачем городить огород и делать это напрямую через скрипты управления смарт-террейнами?

А Патамушта.

 

Я так понимаю, @_Sk8_AsTeR_ хочет сделать ПОЛНУЮ динамику перемещений нпс.

И если ее делать через алл-спавн и инфопоршни, то в кастом-дату каждого нпс придется все гулаги игры записывать... да? :rolleyes:

  • Согласен 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий
24 минуты назад, Zander_driver сказал:

хочет сделать ПОЛНУЮ динамику перемещений нпс.

Во-первых, судя по тому, что человек только вот "прям щас" нашел/увидел  ф-ю, отвечающую за регистрацию нпс в гулаге, _полную_ он пока сделать не сможет. )
И каждому НПС это вряд ли  нужно( ибо НАФИГА какому-то первому встречному Васе Пупкину говорить, куда ему идти...), а имелось в виду некоторым "квестовым". 
Для десятка квестовиков - проще именно что не городить огорода.
 

След от кругов на воде - это тоже след (с)

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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