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

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

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

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

Ну вот это уже что-то...

 

А что там делает "уборщик трупов" ?

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

Забыл упомянуть про него, был поставлен дабы убрать большое количество трупов, которые были вокруг депо. По отдельности раньше всё пробовал - всё было стабильно, с таким вылетом столкнулся впервые. Однако, сейчас грешу на худ рук, т.к. при загрузке сейва, который находится не далеко от того "проблемного места", я получаю вылет уже с другим логом.

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ...dow of chernobyl\gamedata\scripts\exo_weapons.script:200: attempt to index field 'actor' (a nil value)

Так что буду копать в этом направлении.

 

Что вообще делалось в попытках исправить данную ошибку:

1) Ставился "уборищик трупов";

2) В death_manager менял 

alife():release(alife():object(item:id()), true)

на

local obj = item and item:id()and alife():object(item:id()) if obj then alife():release( obj, true ) end

3) Загружались ранние сейвы.

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

Ну, "уборщик трупов" в подобной ситуации точно не нужен. Наоборот, надо избавиться от всего лишнего.

item and item:id() and alife():object(item:id())  - это хорошая проверка, но в одном месте ее мало. Это надо делать перед любыми операциями, если собираем несколько разных изделий разных авторов, которые что-то удаляют. Плюс к тому, она же в таком случае не помешает и там, где используется transfer_item() или drop_item()

 

И. да, сама проверка делается так:  item and alife():object( item:id() )  - проверять просто наличие результата item:id() - бесполезно, так как при проблемах все умрет раньше.

А начинать, все-же, подключая дополнения по одному - менше таких вот проверок в разные места придется вписывать.

 

Вылет с attempt to index field 'actor' - говорит или об опечатке в том, что было до .actor (например вместо db.actor  - bd.actor), либо что пространство, к которому обращаемся, разрушено какими-то предыдушими действиями (например, пытались сделать db[npc_id] = ..., а npc_id не получили, или, опять же, опечатка.)

 

Ну, в общем-то, это все должно быть в той теме по ссылке.

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

Отец Диодор на Складах. Перерыл все, но никак не могу найти файл, где его логика описывается

Нет у него персональной логики.

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

@CRAZY_STALKER666 я использую доработанные сохраняемые таймеры из OGSE. Все работает, как часы. В подписи есть ссылка на репозиторий, там ogse_st_mgr.script. Правда, что бы их использовать, придется к себе почти все подсистемы нижнего уровня перенести. Но зато получишь кучу стабильно работающих плюшек, если при переносе багов не добавишь. :)

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

Класс Z_RUSTYH заточен на нанесение какого-либо хита? С ним "ржавые волосы" только проигрывают анимацию, а урона нет.

New Anomalies 1.1 ☢☢☢ "Смерть-лампа" ☢☢☢ Дисраптор

Русификатор для игры Vendetta: Curse of Raven's Cry

Ссылка на комментарий
18 часов назад, Kirgudu сказал:

Нет у него персональной логики.

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

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

Ссылка на комментарий
20 часов назад, Kirgudu сказал:

Нет у него персональной логики

Кто тебе это сказал, что у него её нет?  В all.spawn загляни. Его логика в секции спавна.

Изменено пользователем Akello
  • Не согласен 1
%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий
12 минут назад, Akello сказал:

Кто тебе это сказал, что у него её нет?  В all.spawn загляни. Его логика в секции спавна.

Ткни носом, где там логика.

 

Кусок его секции из all.spawn:

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

character_profile = sim_stalker_master_diador

; cse_alife_object properties
game_vertex_id = 1696
distance = 6.2999997
level_vertex_id = 299755
object_flags = 0xffffffbf
custom_data = <<END
; stalker_custom_data.ltx
[game_info]
END

 

  • Согласен 2

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

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

@Akello автор вопроса уже за меня ответил. Я тоже не вижу там никакой логики.
Но если ты знаешь то, что не знаем мы - ткни носом, будь любезен. Мало ли кому пригодится.

 

@AndrewMor, возможно, всё дело во флагах (0xffffffbf). Не исключено, что это как раз установка «не двигаться»; навскидку значения не помню.

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

возможно, всё дело во флагах (0xffffffbf). Не исключено, что это как раз установка «не двигаться»; навскидку значения не помню.

 

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

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

Отец Диодор "живёт" в смарттеррейне типа general_lager под названием mil_lager на Армейских складах, на позиции одного из кемперов этого смарта (его работа "называется" camper@mil_lager_guard_1_walk):

b9937f0ec03ft.jpg

Ссылка на комментарий
13 минут назад, =VENOM= сказал:

Отец Диодор "живёт" в смарттеррейне типа general_lager под названием mil_lager на Армейских складах, на позиции одного из кемперов этого смарта (его работа "называется" camper@mil_lager_guard_1_walk):

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

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

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

Да... Волк приходит туда, когда его меняет Фанат на Кордоне. Вроде, у костра сидит, но сейчас точно не помню уже...

  • Согласен 1
Ссылка на комментарий
5 минут назад, =VENOM= сказал:

Вроде, у костра сидит, но сейчас точно не помню уже...

Стоит. Там никто у костра не сидит.

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

Ссылка на комментарий
Только что, =VENOM= сказал:

 

Отец Диодор "живёт" в смарттеррейне типа general_lager под названием mil_lager на Армейских складах, на позиции одного из кемперов этого смарта (его работа "называется" camper@mil_lager_guard_1_walk)

 

 

О чем говорит Ваш скрин не догадываюсь, далее: откуда тезис, что Отец Диодор "живёт" в смарттеррейне типа "general_lager" под названием "mil_lager" (спавнится рядом бесспорно, правда работают гулаги только в онлайн, имхо)? - 'item', его работа "называется" camper@mil_lager_guard_1_walk (его ли персонально, а не гулага)?

Выше я описал в каком условии ваш тезис нерабочий, те любой гулаг со свободным местом работы - его примет(при условии, если допустимо в виде ранга), будте уверенны проверил свою точку зрения.:)

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

Скрин говорит о том, что в оригинальной игре ТЧ отловленный тестовым скриптом NPC с именем sim_stalker_master_diador имеет активной секцию  camper@mil_lager_guard_1_walk. То есть он находится на "работе" camper, универсального гулага типа general_lager смарттеррейна mil_lager с вэйпойнтом mil_lager_guard_1_walk (а смотрит в точку mil_lager_guard_1_look) - кстати, для гулагов general_lager в файлах way_<location_name>.ltx имена вэйпойнтов нужно указывать полностью, вместе с префиксом-именем смарттеррейна. Я искренне рад, что вы "уверенны" в своей точке зрения.

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

@5654 Ну это как бы "начала всех начал". Тотал коммандер в руки. Распакованный чистый ТЧ.

Вбиваешь в поиск имя - Диодор и сразу попадаешь на файл stable_bio_name.xml

Дальше видишь что сидить он под sim_stalker_master_diador_name. Вбиваешь в поиск снова уже это слово, сразу попадаешь на character_desc_simulation.xml

Ну и само собой по имени в профиле ты попадаешь на оллспавн ( тоже должен быть распакован), и т.д... 

Читай Вики, читай профили НПСов, короче читай, читай и читай. Элементарные основы здесь никто разжовывать не станет.

 

 

  • Спасибо 1
  • Согласен 2

"Кругом зомби.....у меня кончаются патроны...."

Ссылка на комментарий
18 часов назад, Kirgudu сказал:

Но если ты знаешь то, что не знаем мы - ткни носом, будь любезен. Мало ли кому пригодится.

Извини, но в секции моего спавна прописано вот так, и я там ничего не менял. Может мне спавн не оригинальный попался, всё может быть.

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

[5121]

; cse_abstract properties
section_name = stalker
name = mil_stalker_0006
position = 90.6758499145508,-3.94609975814819,55.2352981567383
direction = 0,1.13399994373322,0
version = 117
script_version = 4

; cse_alife_trader_abstract properties
money = 5000
character_profile = sim_stalker_master_diador

; cse_alife_object properties
game_vertex_id = 1539
distance = 10.5
level_vertex_id = 390313
object_flags = 0xffffffbf
custom_data = <<END
[logic]
active = kamp1

[kamp1]
center_point = mil_quest_npc_camp_1

[smart_terrains]
none = true
END

; cse_visual properties
visual_name = actors\neytral\stalker_neytral_exoskeleton

; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions = 
dynamic_in_restrictions = 
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = 90.6758499145508,-3.94609975814819,55.2352981567383
upd:o_model_old = 0
upd:o_torso_old = 0.180392156862745,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
known_customers = 
equipment_preferences = 0,0,0,1,0
main_weapon_preferences = 0,2,0,2

; cse_ph_skeleton properties

; cse_alife_human_stalker properties
upd:start_dialog = 

; se_stalker properties

 

Изменено пользователем Akello
%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий

Господа, проверил я этот спавн с Диадором, это в моем сдк в геймдате в спавне такая секция как я писал выше, в оригинальном ТЧ всё так как написал  Kirgudu.

Я ещё не разобрался почему у меня так прописано и откуда этот спавн, поэтому прошу извинений за эту инфу, я и сам не знал что этот спавн какой то левый.

 

Изменено пользователем Akello
  • Спасибо 1
%C0%EA%E5%EB%EB%EE.gif
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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