Все посты %s в %S - AMK Team
Перейти к контенту

Баги и Вылеты 3


n6260

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

[error]Arguments     : LUA error: ...hing\s.t.a.l.k.e.r\gamedata\scripts\xrs_utils.script:888: bad argument #1 to 'find' (string expected, got nil)

 

 

vladi, попробуй перед строкой 888 в xrs_utils.script поставить такую проверку на обе переменные

    if not str or not div then return end
    local cpt = string.find (str, div, 1, true)

по идее проверка на нил должна здесь быть на обе переменные ...

ЗЫ: Скорее всего, с чьим-то визуалом проблема.

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

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


Ссылка на сообщение
как можно отключить его (усложнённый ремонт)? Ну хотя бы Долговязому?

DanekSTALKER,

комментнуть строчку

dolgovazyi            = {"hnd_weap_04",1.6,1.5},

(поставить перед ней два дефиса "--")

в скрипте repair_check.script. О результате - отпишись

 

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

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


Ссылка на сообщение
Удалил через бинд

Shadows, ты сделал синтаксическую ошибку в скрипте бинд_сталкер - в итоге вылет "attempt to index field 'actor' (a nil value)", т.к. биндер актора не проинициализировался из-за твоей ошибки в скрипте. Убери все правки и попробуй грузануть сейв до перехода на АС и перейти на радар. Вариант, когда ствол с кривым вертексом появляется в момент загрузки локи радар - вызовет вылет по тому стволу, в любом другом случае - ствол удалится уборщиком. Имхо, рендом. Ствол во второй раз может и не появиться именно тогда, или появиться раньше (тогда его уборщик тоже приберет).

 

mangust, как я выяснил, МАКС сделал сейв с зависшим актором. Т.е. тот зависший непись - и был сам ГГ. Тут уже ничего не поможет :(

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

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


Ссылка на сообщение
Куда скинуть сейв

ElenaD, кидайте сейв на любой файлообменник и потом ссыль в ЛС или здесь в теме. Можно в Вашем старом сообщении - я увижу.

 

alexutel, во-первых строка "-- local se_obj = alife():object("wpn_ak7459919")" закомментирована - вылет будет явно с логом не по оружию, а типа что "attempt to index global se_obj ('a nil value')" или еще интересней, как вчера Shadows нарывался - "actor is nil".

Во-вторых, если действительно загрузив сейв перед радаром - получаете вылет по оружию - меня интересует сейв (без сторонних аддонов, естественно). Если же вылет на другой локе - тогда удаляйте, вписав в строчку выше свой ствол и раскомментировав ее. И вообще, это лучше делать в актор:нет_спаун, а не в апдейт, иначе тормоза, или хоть комментируйте правку после успешного сохранения. Ну и наконец, ранговый мод откуда?

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

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


Ссылка на сообщение
Удали dark_sniper1_walk

menk, если удалять, то dark_sniper1, потому что dark_sniper1_walk - это назначенный неписю путь (а не объект), который он не в состоянии отработать, скорее всего по причине непреодолимого препятствия на этом пути (агомалии, например).

tolstiy, Пробуй удалять dark_sniper1 - тем методом, что стволы - вот только нужен игровой объект (еще сид в конце названия должен быть). Единственный способ, который я вижу (без ковыряния) - с помощью читспавнера (сначала поиском, потом по результатам поиска - удаление найденного).

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


Ссылка на сообщение
Чем или кем - можно узнать только из ранних сейвов. Шоудмен такие вылеты коллекционирует

tyurdistr, можете прислать тот сейв - гляну. По идее, и починить можно, даже если не грузится. По крайней мере, те несколько, что мне присылали - у меня загружаются :)

Arhara, и узнать виновника - несложно, сделать только те сообщения "save file is corrupt" более информативными - имя виновника добавить.

Вот так:

  1. aem_bind.script:174: abort("SAVE FILE IS CORRUPT aem_mob_binder:save "..self.object:name())
  2. bind_monster.script:462: abort("SAVE FILE IS CORRUPT generic_object_binder:load "..self.object:name())
  3. bind_stalker.script:772: abort("SAVE FILE IS CORRUPT actor_binder:load "..self.object:name().." завис актор - сушите весла!")
  4. xr_motivator.script:492: abort("SAVE FILE IS CORRUPT motivator_binder:load "..self.object:name())

Добавил еще имя функции, откуда сообщение, чтоб уж совсем понятно было.

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

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

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


Ссылка на сообщение
уже несколько игровых дней не убираются труппы группы Черепа и трёх Свободовцев в деревне... Все труппы уже давно пусты.

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

Не говорю, что невозможно сделать такое, но вот надо ли? Ведь эти все проверки, если их сделать, замедлят загрузку локаций и сейвов, да и принципиально ничего не даст удаление 10-20 трупов, для движка это капля в море.

 

amk_anoms.script:427

bob, очень экзотический какой-то вылет. Потому поиск ничего и не дает. И версию Солянки указывать надо.

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

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


Ссылка на сообщение

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

Переход не во время выброса? Я бы посоветовал переждать выброс или поспать, потом попробовать перейти.

naHukep, мда. Здорово. 4D не пробовали? :crazy:

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


Ссылка на сообщение
bind_stalker.script:780: attempt to concatenate field '?' (a nil value)

ed98rus, вылет - воспроизводится? Хорошо бы увидеть, нет ли в логе ранее строчки с такой фразой "save file is corrupt".

Если нет - то, боюсь, завис актора. Если так - то приплыли, ищите ранний рабочий сейв.

 

ed98rus, значит, с актором проблема, почти 100%

Чтобы узнать точно, проставьте двумя строками ниже 780 в bind_stalker.script

вместо

abort("SAVE FILE IS CORRUPT")

такое

abort("SAVE FILE IS CORRUPT actor_binder:load "..self.object:name().." завис актор - сушите весла!")

и перенесите эту проверку в начало функции, чтобы было так (вставить то, что красным выделено):

 

function actor_binder:load(reader)

printf("actor_binder:load(): self.object:name()='%s'", self.object:name())

object_binder.load(self, reader)

printf("actor_binder:object_binder.load(): self.object:name()='%s'", self.object:name())

if reader:r_eof() then

abort("SAVE FILE IS CORRUPT actor_binder:load "..self.object:name().." завис актор - сушите весла!")

end

--' Загружаем уровень сложности

local game_difficulty = reader:r_u8()

 

local load_treasure_manager = false

if game_difficulty >= 128 then

game_difficulty = game_difficulty - 128

load_treasure_manager = true

end

 

 

get_console():execute("g_game_difficulty "..game_difficulty_by_num[game_difficulty])

 

и грузите этот сейв. Если увидите "весла" в логе - приплыли.

(Вылет в последней строке приведенного кода, а проверка - ниже, не сработает так, как в оригинальном скрипте).

 

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

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


Ссылка на сообщение
vitek1376, ставим and not string.find(npc:name(),"mil_stalker_respawn_3") в скрипте xrs_armor, в функции check_armor (аналогично пантере). Зависает схема смены визуалов. Так не очень корректно, но респавнера в том коде иначе не добавишь.

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


Ссылка на сообщение
vitek1376, ничего не надо делать. Неужели непонятно написано? Отладочное сообщение, и только.

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


Ссылка на сообщение
amk_mod.script:4414: attempt to index local 'respawner' (a function value)

лобсанг, интересно. Сейвик дать можете (если вылет воспроизводим)?

Имхо, рендомный вылет - врядли после перезапуска с сейва его можно поймать снова.

Проверка на существование respawner перед вызовом функции есть - не должно вылетать.

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

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

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


Ссылка на сообщение

Shadows, поставь в уборщике кол-во гигантов в 0 в таблице tabl_monsters_live_restrict вот так:

[clsid.gigant_s] = 0,

может, и удалятся.

 

Выкладываю правку скриптов для последней Соли. Несколько мелких фиксов плюс возможность нормально загрузить сейвы, сделанные после зависов неписей и монстров. По крайней мере, все мертвые сейвы с зависами неписей у меня успешно загрузились после правки.

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

Рекомендую перед установкой фикса сделать на всякий случай резервную копию файлов

aem_bind.script

bind_monster.script

bind_stalker.script

protected_items.script

remove_zavis.script

xr_logic.script

xr_motivator.script

xrs_armor.script

 

Фикс делался и тестировался на последнем патче от 20.12 (можно ставить на кумулятивный от 24.12).

Теоретически, из правленных скриптов зависимы от версии Соли только bind_stalker.script и xr_logic.script. Остальные - не менялись практически со времен более ранних дополнений. Т.е., другими словами, если не ставить эти два скрипта - можно попробовать на более ранних Солянках (обязательно сделав бекап заменяемых скриптов). Если кто рискнет попробовать - отпишитесь, получилось ли.

 

Фикс скриптов для НС от 13.12. Ссылка

Описание внесенных правок

-----------------------

Друзья!

Очень рекомендую не таскать отсюда ссылки на файлы, а давать ссылку на этот пост.

Перезаливал 10.01 фикс с дополненной таблицей исключений (добавлены неписи на АС, Шустрый).

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

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


Ссылка на сообщение

лобсанг, как минимум два ваших вылета (№№ 3,4) поправлены вчерашним фиксом. №2 - рендом, лечится перезапуском сейва.

V92, я поверял на версии от 20.12, но в принципе, там такая правка, которая будет работать на любой декабрьской Соли.

 

Добавлено через 16 мин.:

Леший28, проверь синтаксис в restriction_stock

 

Добавлено через 2 мин.:

Ray, название скрипта в контексте "attempt to index global" - это означает, что не компилится скрипт вообще, т.е. в нем сделана синтаксическая ошибка :)

Например, если сделать синтаксическую ошибку в xrs_armor - вылетов не будет, так как он запускается в апдейте биндера по условию "if xrs_armor then", но поскольку он 'a nil value' из-за ошибки - просто не запустится (фактически результат аналогичен закомментированию строчки запуска).

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

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


Ссылка на сообщение

лобсанг, возможно, что и не рендом. Я, к сожалению, не знаю, что с этим делать :(

_Призрак_, я смотрел уже :)

СаНеК666, взяв себе такой ник - вы сами напросились.

 

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

ЗЫ: "в рог" получаю не все новички - это так, на заметку ;)

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

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


Ссылка на сообщение

СаНеК666, на декабрьскую версию Соли ставил фикс? Просто если на более раннюю - то в ней нет этого скрипта netpacket_pda_create.script. Я проверял выложенный мной набор - и на загрузке сейвов, и на НГ - все рабочее. xr_logic из фикса будет работать только с декабрьской Солью.

 

2 ALL: кто ставил фикс - отпишитесь, есть ли проблемы.

НС 13.20.2009 + Патч от 20.12 + Hardcore адон. Я поставил фикс, целый день в игре (7ч), глюков не наблюдаю

За три часа игрового времени посетил пяток локаций, выполнил несколько квестов-проблем не было.

У меня патча от 20-го нет, только самый первый, который в заставке идет под №3.

Поставил-продолжил(АТП-отвертки и молотки) все гуд, спасибо.

 

Пока что отзывы говорят об одном: либо ошибок я не наделал вовсе, либо сделал такие, которые проявятся совсем некстати в конце игры :crazy:

(шутка)

 

 

 

sapsan, приветствую!

У него видимо синтаксическая ошибка в апдейте актора, а если там косяк - компилятор просто прекращает его дальнейшее выполнение и идет дальше как ни в чем ни былвало, ну и естественно вылетает потом по актору, т.к. его биндер не закончил инициализацию. (Особенность движка, я сам был в шоке, когда понял, что в апдейтах биндера нет дебага синтаксических ошибок).

 

СаНеК666, тогда проблема. Надо было фиксы ставить. Рекомендую начать НГ после установки всех фиксов из темы ссылок

 

----------

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

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


Ссылка на сообщение

Странно как-то: в файле, что выложил tokima, все в порядке...

tokima, а я недавно советовал отладку вставить - не пробовал? Поставь и проверь. Будет понятно, зависает актор или нет.

 

в сложность вписалось неверное значение из-за предыдущей ошибки в скрипте

sapsan, такое может быть также при поврежденном нетпакете у актора (game_difficulty = reader:r_u8()). С отладкой будет видно, прав я или нет.

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

Тогда нужно использовать идею Колмогора с метками и пытаться отловить, на какой именно стадии обрывается работа апдейта. Вобщем, ждем ответа тов. tokima.

 

barmen86, помогает переход на статику в настройках видео (на некоторых новых локах наблюдается такое).

 

ему не понравился откат патча с Silver версии

Waveox, откат с 1.0005(6)? Скорей всего - да.

 

barmen86, тогда жди Архару. Сожалею, я тут некомпетентен :(

 

eXstasy09, игровой дабор - где?

Вылет нехороший и вычислить, что за виновник пока не представляется возможным. Ищите в старых темах по ключевым словам "Story registry".

 

sarcus, понятно, спасибо. Можно тереть оба поста ;)

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

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


Ссылка на сообщение
Arguments : gar_dolg_blokpost_default4_zombi

лобсанг, Проблема в том, что нет секции зомбированного у сталкера gar_dolg_blokpost_default4. Контролеров лучше не спавни там, где куча неписей, либо добавь секцию gar_dolg_blokpost_default4_zombi по аналогии с остальными зомбированными.

 

asid, очень рекомендую поставить фикс, который я выкладывал вчера вечером :)

 

Дзот, то, что приведено под спойлером - это не лог вылета, это значит лишь, что при вылете лога ошибки не было вовсе.

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

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


Ссылка на сообщение

Arhara, я тут это... похозяйничал без тебя немного :blush:

Склепал фикс небольшой.

Ты не серчай особо, выложил специально раньше твоего патча, чтоб народ погонял - вдруг выплывет чего?

Пока вроде все хорошо. 100 закачек - жалоб нет :)

Пост со ссылкой здесь

Тех. описание здесь

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

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


Ссылка на сообщение

tokima, пожалуйста. И спасибо, что отписался.

 

ed98rus, из буфера обмена после вылета ничего не кажет? Давай сейв - гляну. И хорошо бы сейв рабочий - перед этим вылетом, если есть недалеко.

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

-----------

А раз Соль не чистая - то что тогда жаловаться? Или хотя бы честно писать при багрепорте, что правил. И не надо плодить посты - редактируй предыдущий. Тут все глазастые :)

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

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


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

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