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

[SoC] Вылеты без лога


Kolmogor

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

Сначала написал в тему по Arsenal Mod`у, но потом решил не загрязнять ее, а создать новую

 

В теме Arsenal mod Pinhead упоминал что я помог справиться с вылетом. Привожу описание того, что я сделал

 

Этот способ действует только если сейв загружается, но вылетает когда вы куда то идете или к вам идут :) вообщем если вылет почему то происходит при переходе нпц в онлайн, как в случее ниже.

 

У PinHead был вылет при подходе к мосту с жарками на ростоке . Что я сделал:

добавил в файл xr_motivator в функцию motivator_binder:net_spawn в самое начало следующую строчку:

sak.dbglog("motivator_binder:net_spawn(): self.object:name()='%s'", self.object:name())

get_console():execute("flush")

 

После этого при переходе в онлайн НПЦ в лог будет выводиться кто собственно в онлайн вышел

 

При вылете у меня в логе осталось что последним в онлайн перешел rostok_stalker_zombied_0003

 

Если сейв вываливается не сразу при загрузке, то можно этого зомби замочить. для этого я в файле bind_stalker.script заменил следующие строчки:

function actor_binder:update(delta)
  object_binder.update(self, delta)

 

на:

local is_kill = false

function actor_binder:update(delta)
  object_binder.update(self, delta)

if is_kill == false then
local obj = alife():object("rostok_stalker_zombied_0003")
  if obj then
    local name = obj:name()
    alife():release(obj, true)
    sak.dbglog("%s killed", name)
  else
    sak.dbglog("npc not found")
  end
  is_kill = true
end

 

Пока отличие этого зомби от остальных заметил только в наличии укороченного мп5. кто-нибудь пробовал с ним бегать? нормально все?

Пробовал из character_desc_yantar.xml e,bhfnm tuj - не помогло(поэтому может быть дело и не в нем, я правда не знаю чтобы изменения в этом файле подействовали надо новую игру начинать или нет)

 

Для борьбы с монстрами в таком стиле возможно потребуется добавить в файл bind_monster.script в функцию net_spawn вывод имени монстра, перешедшего в онлайн

 

- тема на контроле, не разводите лишней демогогии... (Pollux)

Поделиться этим сообщением


Ссылка на сообщение
Колмогор хотел спросить почему ты говоришь что у него mp-5 когда в character_desc_yantar

у него в секции <specific_character id="yan_zombied_default4" team_default = "1">

вот это

[spawn] \n

wpn_bm16 \n

ammo_12x70_buck = 1 \n

wpn_pm \n

ammo_9x18_fmj = 1 \n

device_torch \n

 

Почему я думаю что это его секция потому что я смотрел его секцию в all.spawn

у него визуал прописан visual_name = actors\stalker_zombi\stalker_zombie4

а такой визуал есть только у этого yan_zombied_default4 и yan_zombied_veteran_default3, у этого вообще

прописана lr-300

посмотрел в сейве :) в мп5 я совершенно не уверен пока - это пока гипотеза

И вот кстати непонятно по какому принципу назначаются нпц <specific_character id="yan_zombied_default4"

Думаешь по совпадению визуалов?

Вроде связи между ними кроме yan_zombied я не заметил - решил что случайно расскидываются

Поделиться этим сообщением


Ссылка на сообщение
[spawn] \n
wpn_mp5 \n
ammo_9x19_fmj = 1 \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
device_torch \n

Насколько я понимаю, визуал, указанный в character_desc... имеет приоритет, профайл при спавне выбирается в зависимости от ограничений гулага и уровня, для которого спавнится непись, а если подходящих профайлов несколько, то скорее всего рандомно. Так что, у него вполне мог быть mp5.

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

Там ошибка была в том что в адаптации Arsenal mod`а этому зомби был прописан укороченный мп5 wpn_mp5K - "К" большая

вылет был из-за нее, если поставить маленькую буквук "к", то все было нормально

Поделиться этим сообщением


Ссылка на сообщение
Честно слово, теория занятная. Тогда получается по созданной тобой теории и наблюдению.

Много слишком ошибок в игре.

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

это не теория к сожалению :( прописываешь в character_desc_escape.xml Волку пушку с большой буквой, начинаешь новую игру и получаешь вылет без лога. Можешь проверить сам, например Волку прописать не wpn_ak74u, а wpn_ak74U

 

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

  local a = 1
  loca A = 2
  dbglog("a=%s A=%s", a, A)

 

выдаст: a =1 A=2

Поделиться этим сообщением


Ссылка на сообщение
Уважаемые коллеги итак что пишем в Анамнезе "История болезни" ?

Проводил Круглова до янтаря, и дальше все... постоянные вылеты с пустым логом?

Пытался менять K на k - не помогает, или нужно начинать с начала что бы пофиксить эту ошибку?

 

и Эпикриз: Какие рецепты для лечения вы посоветуете?

 

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

прочитай шапку - там написано как понять что вылет именно из-за неправильного чудика и как конкретного чудика аннигилировать.

Возможно все что я расписал к тебе не подходит - вылет может быть совершенно не из-за этого

Поделиться этим сообщением


Ссылка на сообщение
Такс, отключение повреждения огнем не помогает. Вылет стабилен.

Помогает только быстрое убийство.

Все, что мне приходит в голову, что вылет связан с моментом "нанесения" урона огнем.

В общеми, я проблемное место прошел, но к разгадке причин вылетов без лога мы похоже так и не приблизились.:(

вылет скорее всего из-за того что он не может из костра выйти

по идее должен быть лог с ошибкой в patrol path

костры вроде накрыты рестриктором, запрещающим НПЦ ходить по ним. Если он туда попадет - то выйти оттуда не сможет.

Непонятно как он туда попадает

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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