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

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

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

@Mass, Сталкер это клиент-серверная игра. Т.е. в ней есть сервер, на котором "все" (Ну, почти) объекты, существуют всегда. И "клиент" в котором только актор и его ближайшее окружение. Только то, что входит в онлайн-радиус, или находится на той же локации что и актор.

Вот те объекты, которые есть на клиенте - они в онлайне. level.object_by_id получает онлайновый / клиентский объект. Объект который находится за радиусом алайфа, будет скорее всего, оффлайн. Т.е. игроком в онлайне, в игре, наблюдаться не будет, даже если геометрия локации как бы позволяет увидеть его на этом расстоянии. Для разных классов объектов переход в онлайн-оффлайн может несколько по разному работать, некоторые могут загружаться в онлайн вместе с локацией, невзирая на расстояния до актора.

Любые какие угодно объекты на других локациях (Т.е. все кроме той, где актор сейчас) - всегда в оффлайне.

 

Есть (бывают) еще системы компрессии. Которые в онлайн-радиусе могут создавать / мониторить состояние неких объектов, а когда объекту пора уйти в оффлайн, он просто удаляется (И из сервера тоже), чтоб не создавать нагрузку на игру, а оставляется лишь некая запись, содержащая минимальную информацию чтобы этот объект восстановить когда будет надо.

Изменено пользователем Zander_driver
  • Полезно 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.

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

Лишь геометрия загружается полностью:biggrin:, если бы и с локациями можно было бы проделывать такое, разбивать на квадраты и подгружать (динамическая подгрузка ландшафта), можно было бы локи возводить какого угодно размера, пока весь ЖД не забьется))).

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

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

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

UriZzz.gif

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

@Zander_driver

50 минут назад, Zander_driver сказал:

Т.е. игроком в онлайне, в игре, наблюдаться не будет,

Я вот также думал, пока в лог не вывел пару функций из xr_gulag.script. Когда при загрузке юзается level.object_by_id, а актор еще не определен. Это нормально?. Давно в сталкерские коды не лазил, решил вспомнить...

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

Здравствуйте! 

Ковыряюсь в ЛостАльфе, хочу сделать так, чтобы можно было лечить врагов. 

 

Разрешил и настроил диалог, настроил изменение изменение отношение на нейтрала. 

 

Но после того, как нпс подлечился, он не выходит из состояния боя (хотя становится нейтралом). Целится в актора, пытается его ударить, но не может. Если мы отходим чуть дальше, или сам нпс отходит в укрытие, он переходит в состояние post_combat_wait, ждёт, и потом уже всё нормально. 

 

Можно ли как-то "выключить бой" после лечения, чтобы нпс сразу забывал про актора, не переходя в посткомбат? 

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

он не выходит из состояния боя

Обычно, в имеющихся схемах, ИМХО, нужно сделать сейв-лоад... 

Ссылка на комментарий
1 минуту назад, Space.Marine сказал:

Обычно, в имеющихся схемах, ИМХО, нужно сделать сейв-лоад... 

Можешь подсказать как? Я тут только начинаю разбираться. 

Добавлено  Опричник,

Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

Ссылка на комментарий
только что, Pug-Lover сказал:

есть ли какой-нибудь способ телепортации, изменения позиции НПС?

Есть способ известный мне - это скрипт мобильного чейнджера (mobile_changer). Автор: Singapur22. Но уточняю для ТЧ.

Изменено пользователем gam
Ссылка на комментарий
3 минуты назад, gam сказал:

Есть способ известный мне - это скрипт мобильного чейнджера (mobile_changer). Автор: Singapur22.

Конечно, спасибо, но где его можно скачать чтобы опробовать?

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

@gam,  Я только что проверил и понял, что этот скрипт только для телепортации игрока? Просто мне нужна телепортация других объектов типо НПС, предметов и прочего.

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

@Pug-Lover,  Если Вы укажете, что именно требуется, было бы проще определиться. Если перемещение как Волк из ТЧ с Кордона на Милитари, вроде файл аллспавн и логика его движения, или способ обхода аномалий-воровства, либо удалить нпс и заспавнить скриптом на нужном месте. Как-то так имхо.

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

@Usman_Shinobi, попробуй после лечения сделать npc:enable_memory_object(db.actor, false)

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@gam, Мне нужен способ динамичной телепортации или изменения позиции объекта по такому принципу:
 

Скрытый текст

function teleport_func()
local id, obj
for id=0, 65535 do 
obj = level.object_by_id(id) 
if obj then 
local obj_pos = obj:position()
local actor_pos = db.actor:position()
if (and obj_pos:distance_to(actor_pos) > 0.1) then
-- тут функция телепорта
end 
end
end
end

 

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

@Pug-Lover, А чем не устраивает метод:

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

?

  • Полезно 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.

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

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

Скрытый текст

function ch_next:cheat23()
local id, obj
for id=0, 65535 do 
obj = level.object_by_id(id) 
if obj then
local obj_pos = obj:position()
local actor_pos = db.actor:position()
if (obj_pos:distance_to(actor_pos) > 0.1) then

-- *установка метки*
end 
end
end
end

 

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

@Pug-Lover, level.map_add_object_spot(obj:id(), "red_location", "То, что будет написано во всплывающей подсказке")

Или, если нужна постоянная метка (не пропадающая после перезагрузки игры), то

level.map_add_object_spot_ser

  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

@Pug-Lover,  Имхо динамику я вижу переводом обжектов в онлайн из оффлайна.

А метки наверно прописать таким образом:

function check_obj()
	local sim = alife()
	for id=1, 65534 do
		local obj = sim:object(id)
		if obj then
			local sec = obj:section_name()
			if (sec == "тут имя нпс, предмета")
				if game_graph():vertex(obj.m_game_vertex_id):level_id() == sim:level_id() and obj.parent_id == 65535 then
					level.map_add_object_spot_ser(obj.id, "eliminate_lager_location", "Матёрый")
				end
			end
		end
	end
end

 

Изменено пользователем gam
Ссылка на комментарий

Мне стыдно задавать такой нубский вопрос, но поиск по теме результатов не дал. Смотрю под лупой конфиги аномалий и не могу понять: какой параметр отвечает за урон, которые они наносят? Про иммуны в actor.ltx помню, но это другое.

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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