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

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

Только что, ARTLantist сказал(а):

изменить параметры параметры артефакта через скрипт?

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

На том, что в подписи моей, в принципе можно. Движок модифицирован, и такое позволяет. На некоторых других модифицированных движках наверное тоже можно такие возможности найти.

Только что, ARTLantist сказал(а):

отследить, что артефакт надет на пояс

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

В модифицированных, опять же, движках, такая возможность есть наверное практически везде. Но, как ей пользоваться, зависит от конкретного движка.

В OGSR к примеру, есть метод db.actor:iterate_belt

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

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

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

Ссылка на комментарий
45 минут назад, Colder сказал(а):

Подскажите функцию

for k,v in pairs(бла) do

  if v == true then db.actor:give_game_news('бла-бла', 'бла-бла-бла', "ui_iconsTotal_PDA", 0, 3000) end

end

 

P.S.: задавай свои вопросы в человекопонятной форме.

  • Спасибо 1
  • Согласен 2
Ссылка на комментарий
3 часа назад, Colder сказал(а):

Подскажите функцию на проверку итемов у актора

Как-то так:

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

local need_item = {
	'medkit',
	'medkit_army',
	'medkit_scientic'
	}

function actor_has_one_item()
	for k,v in pairs(need_item) do
		if db.actor:object(v) ~= nil then
			return true
		end
	end
	return false
end

function actor_has_all_item()
	for k,v in pairs(need_item) do
		if db.actor:object(v) == nil then
			return false
		end
	end
	return true
end

 

 

P.S. Стол заказов это конечно очень хорошо...

Но хотя бы иногда, перед тем как задать вопрос, заглядывайте в "xr_conditions.script" и "xr_effects.script".

  • Согласен 4

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

Может и мне подскажете, вот есть рабочий способ на удаление объекта:

local obj = alife():object("esc_af_medusa12345") -- после спавна, провалилась под террейн
if obj ~= nil then
	alife():release(obj, true)
end

и как мне применить (любопытства ради) на этот объект нек.эффекты типа:

local ph = obj:get_physics_shell() -- пробовал, вылет по nil (подозреваю, что пытаюсь применить методы клиент.объектов к серверным)
if (ph) then
	ph:apply_force(0,10000,0) -- пнуть по у вверх
end

или уж совсем дикие методы:

 

function drop_item_and_teleport(game_object*, vector);
function transfer_item(game_object*, game_object*);

 

В обоих случаях, методы вызываются от кого-то, как пример: актор, владеющий таким-то предметом, но когда итем бесхозный, то его парент 65535, т.е. владелец земля, и от неё как-то сделать вызовы.

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

@h0N0r все перечисленные методы действительно клиентские, а в переменной obj у тебя серверный объект. Если хочешь получить клиентский, следует действовать например так:
  local cobj = level.object_by_id(obj.id)

  if cobj then ... end
и далее по написанному. Однако зачем делать это после удаления, если я правильно тебя понял? Ты уж определись, что необходимо - удалить объект или придать ему ускорение.

  • Нравится 1
  • Полезно 1
  • Смешно 1
Ссылка на комментарий

@Kirgudu 

пример с удалением - это, то что работает. В общем, запуск арта в атмосферу успешен:

-- вызовы из главного меню
if dik == DIK_keys.DIK_F4 then
	if (level.present() and db.actor ~= nil and db.actor:alive()) then
		-- ##########################################
		local fail_objects_tbl =
		{
			"esc_af_medusa12345",
		}
		for k, v in pairs(fail_objects_tbl) do
			local s_obj = alife():object(v)
			if s_obj then
				local c_obj = level.object_by_id(s_obj.id)
				local ph = c_obj:get_physics_shell()

				if (ph) then
					-- >100 метров по у
					ph:apply_force(0,500000,0)
				end
			end
		end
		-- ##########################################
	end
end

 

  • Нравится 1
  • Полезно 2
Ссылка на комментарий

Здравствуйте. Подскажите, как можно "телепортировать" определенные вещи, например, под ноги ГГ?
Речь про артефакты, не хочется их удалять. Есть ли способы?

Ссылка на комментарий
16 часов назад, DibokDibokin сказал(а):

как можно "телепортировать" определенные вещи, например, под ноги ГГ?

Если имеется ввиду из инвентаря то:

db.actor:drop_item(item)

db.actor:drop_item_and_teleport(item, vector)

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

А в какой ситуации нужно перемещать ближе к ГГ? Если как в оригинале на Агро, где за воротами арты лежали, но не взять их...

 

А вообще забавно: если на апдейт повесить функцию, которая проверяет, нет ли в радиусе 3 метров (5, 50 и т.д.) артов, и если есть, их удаляет, а аналогичные спавнит в рюкзак. Прямо дистанционное собирательство.

  • Согласен 1

Сталкер - наше всё!

Ссылка на комментарий
5 часов назад, AndrewMor сказал(а):

Прямо дистанционное собирательство.

А в чем смысл ? Может тогда и играть за игрока, типа в мультик превратить игру...

Ссылка на комментарий
7 часов назад, AndrewMor сказал(а):

Прямо дистанционное собирательство.

Таки давно уже есть, Гравиган v2.0, удобнейшая вещь скажу я вам, для извлечения артов и трупов нпс - из труднодоступных мест :yes4: пользуйтесь

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

@AndreySol Смысла никакого, просто мысль вслух. Хотя бывает обидно: лежит труп, а подобраться никак - переход мешает.

Сталкер - наше всё!

Ссылка на комментарий
10 часов назад, AndrewMor сказал(а):

Прямо дистанционное собирательство

Да, та ночная звезда на Агро уже давно будоражит умы сталкеров. Отсюда и такие идеи рождаются.

Я её зверски удалил в СДК:1287641402_p02501:, шоб глаза не мазолила.

1 час назад, AndrewMor сказал(а):

Хотя бывает обидно: лежит труп

Согласен но, с патронами, шамовкой, медикаментами, стволами всё таки по проще.

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

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

UriZzz.gif

Ссылка на комментарий
17 минут назад, UriZzz сказал(а):

Я её зверски удалил в СДК

Скриптовый рандомный спавн артов - самое оно. Никогда не знаешь, где чего найдешь. Равно как с динамическими аномалиями: заранее неизвестно, где в Карусель влетишь :)

 

19 минут назад, UriZzz сказал(а):

с патронами, шамовкой, медикаментами, стволами всё таки по проще.

Это да.

  • Согласен 2

Сталкер - наше всё!

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

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

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

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

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

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

Войти

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

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

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