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

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


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

9 минут назад, Dennis_Chikin сказал:

Махал он рукой вблизи

Анимации есть у ТЧ модели, но как и откуда происходит вызов, то мне не известно.

c05f6ea5c970ba4ded7a78ab5369e75d4f879332

  • Полезно 1

ed_rez.gif

c1f11b67ff360413e81b4e4dcf21eb41.jpg

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

где эту атаку рукой мог бы видеть

Может быть, в ОП-2?

77ef365bf988f0788cc72b0d32a8f17d0589ef32

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

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

В 2008ом?

Я, конечно, понимаю, что виндовс, компьютер и колесо тоже Пропер создал...

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

@BFG Спасибо. Неплохо, работает поглаже, чем было раньше. Правда я уже решил не испытывать судьбу, и создал контрика на классе бюрера, с такой атакой вызываемой движком. Разумеется использовать буду твою анимацию. Правда теперь она будет вызываться не скриптом, а движком. Анимация кстати из 2571, и мне очень жаль, что ее не добавили в релиз.

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

Анимация к слову, о которой я говорил отнюдь не для атаки вблизи. Это дорелизная анимация пси-атаки. Она была хороша, в сочетании с "отступом" назад. Т.к я заметил, что в релизе считай все монстры, способные атаковать бегут на ГГ в лоб. Даже контролер, неумеющий в ТЧ драться, норовит подойти к ГГ вплотную. И это при том, что у каждого монстра в СДК есть анимация шага назад. Но увы, ПЫСы посчитали это лишним. И еще. Проверил ради любопытства. Релизная анимация пси-удара, которая играется вроде в 4 или в 3 цикла есть и в файле контролера в 2571. Но видимо в процессе создания билда, решили что 2-ручная пси-атака будет лучше. Вопрос по теме. Кто-нибудь знает как можно заставить монстра двигаться назад от ГГ. Разумеется не всегда, а только в случае опасности, т.е столкновения с ГГ. И насчет поломок анимации. В файле контроллера есть несколько одинаковых анимация, но с разными названиями. New и new_torso. К примеру new_walk_0 и new_torso_walk_0 вроде. Проверял в игре. Одна из них работает нормально, а другая намертво застывает после первого проигрывания. Только не помню какая из них)

jpwsa5byp73nyaufrbis15dcci1y.png
 

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

Заставить драться можно. Правда не понятно на сколько это правильно:  https://youtu.be/VUm7G9p_chE

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

В Соли им Людмила просто добавила параметр auto_dell = {+ поршень}

А можно поподробнее, это в спавне прописывается или как? Примерчик бы глянуть, мысль-то интересная.

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

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

Это примерно так:


local t_del = false

function dummy() end

function del_zones()
	if t_del then
		local obj
		for k, v in pairs( t_del ) do
			obj = sim:object( k )
			if obj and obj:name() == v then sim:release( obj, true ) end
		end
	end
	t_del = false
	return true
end

function se_restrictor:on_register()
	cse_alife_space_restrictor.on_register( self )
	if not self.init_flag then
		self.init_flag = true
		local ini = self:spawn_ini()
		if ini and ini:section_exist( "spawner" ) and ini:line_exist( "spawner","auto_dell" ) then
			local t = xr_logic.parse_condlist1( ini:r_string( "spawner","auto_dell" ) )
			if xr_logic.pick_section_from_condlist( db.actor, self, t ) ~= nil then
				if t_del then t_del[self.id] = self:name()
				else
					t_del = { [self.id] = self:name() }
					if sim then level.add_call( del_zones, dummy ) end
	end	end	end	end
end

 

  • Спасибо 1
Ссылка на комментарий
5 часов назад, AndrewMor сказал:

мысль-то интересная.

Только непонятно - зачем поршень выдавать))

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

[sr_idle@one]
on_actor_inside = {+amb_agro} nil %=play_snd(ambient\new\trolley) =val_test.del_restr% 

Сама функция

-- самоликвидация отработавшего рестриктора
function del_restr(actor, obj, p)
    if obj then
        local sobj = alife():object(obj:id())
        if sobj then
            alife():release(sobj,true)
        end
    end
end
-- 

 

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

alife():release() из самого себя не вполне корректно. Плюс кто-нибудь может этому рестриктору вписать тип, отличный от 0 или 3 со всеми вытекающими висяками неписей.

 

Впрочем, от вписывания его же в base_inr или base_outr все равно не спасает.

 

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
1 час назад, Змея сказал:

Только непонятно - зачем поршень выдавать))

Потому что рестриктор может быть и не одноразовый.

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

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

@AndrewMor,  непонятки аднака...Что значит не одноразовый?

Тут либо у рестра одна секция, либо несколько - которые он отрабатывает последовательно. Все равно в конце отработки можно вписать удаление. Либо от работает по кругу. Нафига его тогда удалять?

1 час назад, Dennis_Chikin сказал:

кто-нибудь может этому рестриктору вписать

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

Насчет некорректности - это к скриптеру фотографа)) Моё дело -код показать было...

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

"по кругу" - на текущей локации.

 

Впрочем, имеет смысл удалять его банально по имени/sid в числе прочих операций, когда реально становится не нужен, точно так же, как в ходе прочих операций создается. Проверка ВСЕХ существующих на наличие каких-то строк в кастомдате при каждой загрузке игры - действительно, перебор.

 

Как пример - временная мера с удалением всего ненужного при переходе на янтарь с ДТ -

...
for i, v in ipairs( {	-- более не нужный мусор на ДТ
		"rostok_space_restrictor_0001", "rostok_sniper_space_restrictor_01",
		"rostok_volkodav_talking", "rostok_space_restrictor", "rostok_start_killer_combat",
		"bar_help_professor_restrictor", "rostok_cheat_sound_restrictor",
		"ros_zone_flame_small_0005", "ros_zone_flame_small_0006", "ros_zone_flame_small_0007",
		"ros_zone_flame_small_0008", "ros_zone_flame_small_0010", "zone_flame_0000",
		"zone_flame_0001", "zone_flame_0002", "rostok_zombied_spawner",
		"rostok_sniper_pda_restrictor", "rostok_heli_scene_start_restr",
		"rostok_start_killer_combat", "rostok_chase_restrictor", "rostok_freedom_attack_zone",
		"rostok_scientist_guard_restrictor", "rostok_space_restrictor_0002",
		"rostok_volkodav_band_mapspot", "rostok_kruglov_finish_mapspot",
		"rostok_volkodav_fire_sound", "rostok_volkodav_fire_sound_end",
		"rostok_sniper_space_restrictor_01_0000", "rostok_chase_reastictor_1"
	  } ) do
		v = sim:object( v )
		if v then sim:release( v, true ) end
	end
...

с вызовом через

    for i, v in ipairs( t_info ) do

        if v[1] and ( not ( v[4] and actor:has_info( v[4] ) ) ) then

 

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

 

 

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

1,2,4,5 - такое должно удаляться только в случае, если не успело войти в онлайн (и не пытается "вот прям счаз"). То есть, грубо говоря, лучше, когда находимся на другой локации.

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

OUT и IN. Прописывать - можно, удалять в онлайне - нельзя.

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

У меня есть несколько вопросов, касающего спавна в character_desc, а именно:

1.Как заспавнить вырезанных монстров в игру? (они есть в файлах, но в файле character_desc их нет как и других мутантов)

2.Как восстановить сцену с вертолетом в Припяти? (там где пилота зомбирует контроллер)

3.И сложно ли вернуть 1 квест Сидора на поиск артефакта на свалке мусора?

Свобода - лучшие сталкеры в зоне!

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

Почитать тему внимательно начиная с первого поста.

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

 

По остальным пунктам - аналогично. Без понимания, что мы вообще хотим сделать - невозможно.

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

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

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

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

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

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

Войти

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

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

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