меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) лечение вылета 4333: в строчке после function respawned(obj,respawner) вставить... if (respawner==nil) or (obj==nil) then return end должно помочь... Объясню... Вылет показывает что переменная respawner не существует или равна nil ,отсюда и вылет... Что самое интересное ,это случается при респавне НПСов... Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) Shadowman, как вариант можно найти все вызовы этой функции и вставить вывод в лог передающих параметров и имя функции из которой последовал вызов пример:amk.mylog("call respawned,amk.call_respawner(res,obj):obj= "..obj.."respawner ="..res) -это пример ,так из головы.. .....и так далее... у меня нету возможности сейчас смотреть...нету у меня ТЧ..вчера винда полетела..диск только завтра возьму... Хм... тогда вот так... я не разбирался... if respawner=="" then return end Shadowman,удачи... Просто если найти функции где "теряется" параметр ,то можно избавится от ошибки.. Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) Shadowman, посмотрел сейчас амк_мод.скрипт ,туда передаётся стринг..... в амк.скрипт есть функция function on_REspawn(obj,respawner) if obj and respawner then--проверка на "существование" ... отсюда вызывается именно "наша" функция... что самое странное ,что тут проверяется существование и того и другого ,интересно почему не передаётся параметр..... ну и судя по этому коду,попробуй добавь в respawned if not(respawner or obj) then return end Ладно ,идём дальше.... amk.on_REspawn встречается в se_respawn.script видимо там собака зарыта... Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) sapsan,не обязательно функцию или переменную ,но и таблицу(массив)...вполне возможно если какого-то "параметра" таблицы не существует ,а происходит обращение к этому параметру ,происходит вылет. А так спасибо ,"открыл глаза" на известные (но забытые) мне вещи ... Тогда возможно,что в каком-то из конфигов из папки scripts/amk/ допущена ошибка.... Допустим нету,какого либо ключа... Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) кстати ,можно узнать конфиг ,к которому обращается функция... в функции on_Respawn после if obj and respawner then вставить if isStalker(obj) then local sini = respawner:spawn_ini() if sini:line_exist ("respawn", "creature_binded_logic") == true then local cfg_name = utils.cfg_get_string(sini, "respawn", "creature_binded_logic", false, false, false, "") amk.mylog("config name="..cfg_name) end end Возможно успеет вывести имя конфига... Sitar, А конфигурация компа какая? Если не топавая ,советую уменьшить настройки графики.... Вылет говорит ,что памяти мало ему... Или закройте все программы(если открыты) и убейте ненужные процессы(если такие есть) Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение
меченый(стрелок) 5 Опубликовано 8 Июля 2009 (изменено) Shadowman, Очень странно,что ругается на такое ...Это оригинальная Функция... ..Попробуй так как ты предложил.. а если вставить так: if respawner.spawn_ini()~="" then--по моему это стринг local sini = respawner:spawn_ini() if sini:line_exist ("respawn", "creature_binded_logic") == true then local cfg_name = utils.cfg_get_string(sini, "respawn", "creature_binded_logic", false, false, false, "") local t = amk.read_stalker_params(obj) t.custom = "[logic]\ncfg = scripts\\amk\\"..cfg_name..".ltx" amk.write_stalker_params(t, obj) end else return end хотя,дохлый номер как мне кажется... Изменено 8 Июля 2009 пользователем меченый(стрелок) Поделиться этим сообщением Ссылка на сообщение