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

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


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

У свежезаспавненного монстра очевидно нет ни каких эксклюзивов. Соотвественно, они ни где не запоминаются.

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

 

Упс... Не ожидал, что в ОП-2 это изменено. Вот из ОП-2:

function se_monster:on_before_register()
	self:fill_exclusives()
end

В Солянке по другому?

 

 

У свежезаспавненного монстра очевидно нет ни каких эксклюзивов. Соотвественно, они ни где не запоминаются.

 

Отладка показывает, что свежеспауненого мутанта немедленно, вон в том коде, затягивает в любой свободный гулаг. Если выразиться точнее, не в том коде конкретно, а в промежутке между create() и вызовом amk.on_REspawn(), который вызывает amk_mod.respawned(), который и ставит мутанту custom_data.

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

Я что-то запутался, скрипт smart_terrain.script, в оригинальном должна быть 1031 строка, вот эта:

local ltx         = ini_file( "misc\\" .. self.gparams.type .. ".ltx" )

Собсно что есмь такое? type я тут понимаю - имя гулага, собственно какая роль этого конфига в этом скрипте? Чисто статистическая?

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

Отладка показывает, что свежеспауненого мутанта немедленно, вон в том коде, затягивает в любой свободный гулаг. Если выразиться точнее, не в том коде конкретно, а в промежутке между create() и вызовом amk.on_REspawn(), который вызывает amk_mod.respawned(), который и ставит мутанту custom_data.

Не знаю, что там в моде. Есть чистый ТЧ, se_respawn.script:

obj = alife():create(spawn_section,
	...
obj:brain():update()
local smart_terrain_id = obj:smart_terrain_id()
То есть для распределения по гулагам специально вызывается obj:brain():update(). До этого вызова смарт не задан.
Ссылка на комментарий

@abramcumner, а при чем тут чистый ТЧ, если я в самом первом сообщении, на эту тему, написал:

 

Кто использует респаунеры из Солянки, которые при спауне мутантов делают вот так:

 

Ах да, это же русский форум. ;)

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

ТЧ 1.0006 + НС 

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

В том же пресловутом watcher_act.script есть проверка по npc:memory_visible_objects() , по которой сталкеры движутся к выброшенному объекту из инвентаря. но физические объекты не попадают в этот список. 

Т.е. я хочу, чтобы сталкер подошел к "брошенному" (заспавненному ящику) и, например, попытался сделать "use" на него. само собой, ящик спавниться абсолютно произвольно. Эти объекты можно "увидеть" в amk_offline_alife.script но как то странно срабатывает , т.е. сталкер может "заметить" ящик за 400 метров от себя, игнорируя тот что лежит под ногами...

Благодарю за информацию!

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

 

 

проверка по npc:memory_visible_objects()

Не проверка а перебор. С выбором "наилучшего" объекта, к которому нпс и пойдет. Почему для него объект лежащий за 400 метров оказался лучше того что под ногами, это другой уже вопрос.

 

 

но физические объекты не попадают в этот список.

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

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

Ты не удосужился даже логику показать, под какой схемой он работает, на что ты вообще надеешься?

В логике проблем нет (ибо это обычная remark) стандартную sit она же проигрывает, а новую анимацию (sit_stul) рядом с гулагом не хочет.

У меня несколько вариантов в чем причина:

1)Гулаг находиться на новой локации (сразу отпадает, ибо на кордоне деревню новичков сломало).

2)Я где-то напортачил в мозгах смарта или Гулага (хотелось бы узнать все файлы относящийся к мозгам).

3)Возможно надо где-то дополнительно прописать анимацию чтобы смарт или гулаг отпустили бедного нпса (в этом варианте тоже я слабо уверен).

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

Пытаюсь создать глобальный мод с новым сюжетом,буду рад любой оказанной помощи

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

 

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

Да . Выводил. O_PHYS_S в этот список не попадает... 

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

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

1. Спрашиваем у нпс что он видел, движковым методом, сохраняем это в таблицу.

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

3. В watcher_act.script делаем перебор по обеим таблицам, или сливаем их в одну и уже по ней гоняем перебор.

4. Profit

  • Спасибо 1

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@плащ, ремарк как базовая? Вы когда-нибудь перестанете издеваться? "Мозги" гулага - smart_terrain.script/xr_gulag.script, ну и gulag_*.script (но это уже мозжечок). Ты вообще уверен что у тебя этот нпс становится под гулаг? Если его гулаг подбирает, то нет ничего удивительного что он анимацию не отыгрывает. Пиши в кастом дату игнор смартов, у меня работает.

 

@Zander_driver, слишком заморочено, лучше сразу физиков на попадание во фруструм проверять и тут же доливать в таблицу, профит сразу.

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

 

 

Zander_driver, слишком заморочено, лучше сразу физиков на попадание во фруструм проверять и тут же доливать в таблицу, профит сразу.
Ты более коротко и менее понятно для не-сильно ориентирующихся, написал по сути то же что и я.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@Zander_driver, ващпе если хоть немного хотеть понять, то как-бы код из соседней темы подойдет на 100%, и ваши всякие мемори-визиблы нафиг не нужны в случае с физиками да и вообще. По другому движок-онли.

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

Спасибо всем кто откликнулся и за Ваши идеи.

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

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

@Карлан, Если хотеть немного понять, можно заметить что добавляя в watcher_act поиск физ.объектов, вопрошающий не хотел выкинуть оттуда все остальное что там уже было.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

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

@плащ, ремарк как базовая? Вы когда-нибудь перестанете издеваться? "Мозги" гулага - smart_terrain.script/xr_gulag.script, ну и gulag_*.script (но это уже мозжечок). Ты вообще уверен что у тебя этот нпс становится под гулаг? Если его гулаг подбирает, то нет ничего удивительного что он анимацию не отыгрывает. Пиши в кастом дату игнор смартов, у меня работает.

Извини если чего плохо объяснил, вот файлы:

 

НПС

[11541]
; cse_abstract properties
section_name = stalker
name = pred_sergant_mayor_Vaskes
position = -556.44348144531,14.339447021484,246.32183837891
direction = 0.0580197647213936,0,0.998315453529358

; cse_alife_trader_abstract properties
money = 5000
character_profile = pred_sergant_mayor_Vaskes

; cse_alife_object properties
game_vertex_id = 3880
distance = 0
level_vertex_id = 95372
object_flags = 0xfffffffb
custom_data = <<END
[smart_terrains]
none=true

[logic]
cfg = scripts\logic\vaskes.ltx
END
; cse_visual properties
visual_name = actors\stalker_hero\stalker_hero_novice_1

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 2
dynamic_out_restrictions = 
dynamic_in_restrictions = 

upd:health = 2
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -556.44348144531,14.339447021484,246.32183837891
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 0
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties

upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 2,2,1,2,0
predicate4 = 2,2,1,2

; cse_ph_skeleton properties

upd:start_dialog = 

; se_stalker properties

Смарт

 

[11543]
; cse_abstract properties
section_name = smart_terrain
name = pred_post_nato
position = -564.25579833984,15.655229568481,266.97406005859
direction = -0.951673030853271,0,-0.307113021612167

; cse_alife_object properties
game_vertex_id  = 3880
distance = 5
level_vertex_id = 84213
object_flags = 0xffffff3e
custom_data = <<END
[smart_terrain]
type = pred_post_nato
capacity = 2
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2.5480751991272

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties

 

 

Смарт рассчитан на двух НПС и эти двое прекрасно выполняют свою работу 

 

 

[logic]
active = remark
meet = no_meet

[remark]
anim = sit_stul
meet = no_meet 

 

 

sit_stul = { prop = { maxidle = 5,
sumidle = 3,
rnd = 100 },
into = { [0] = {"sit_idle_0"} },
out = nil,
idle = { [0] = "sit_idle_0" },
rnd = nil }, 
 sit_stul= {weapon = "none",
movement = nil,
mental = nil,
bodystate = nil,
animstate = nil,
animation = "sit_stul"
}, 

 

 

 

Еще раз опишу проблему:Новая анимация (вырезанная с ЗП) прекрасно работает но только в дали от гулага.

Рядом с гулагом она либо просто не функционирует (как на predbannik'е) либо ломает гулаг (как на escepe), при этом если в логике написать стандартную анимацию (вроде sit или sit_ass) все шикарно работает!

 

P.S. поставил smart_terrain.script и xr_gulag.script со стандартного ТЧ проблема не пропала.

Пытаюсь создать глобальный мод с новым сюжетом,буду рад любой оказанной помощи

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

@плащ, не берусь ничего утверждать, но анимация сидения работает у меня лично, да и не только у меня вот отсюда.

[zaton_kardan_look_2]
points = p0
p0:name = wp00|a=sit_stul_sleep
p0:flags = 0x1
p0:position = 105.325080871582,-3.93491101264954,182.070297241211
p0:game_vertex_id = 3686
p0:level_vertex_id = 1147194

и не используй в логике в активной схеме, если только она не изменится

[remark]
  • Согласен 1

Intrel Core i5 9400F, msi gtx 1660 super ventus, RAM 16g-DDR4, HD 2000g, Win 10x64, SSD 256g, SSD m2 500g.

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

 

 

в СДК глянуть это тебе надо в партикл эдиторе открыть свой файл и выбрать нужный партикл,

Вот и спрашивал, как? Партикл эдитор запускаю, справа отображается список партиклов. А как его в том же СДК воочию увидеть?

 

Чтобы в игре запустить конкретный, делаю так:

local obj = db.actor:position()


obj.x = obj.x - 10
local particle_blow = particles_object([[anomaly\storm_01]])
particle_blow:play_at_pos(obj)

 

 

Но это один, а если их сотня-другая?

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

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

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

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

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

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

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

Войти

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

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

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