Dennis_Chikin 3 658 Опубликовано 24 Апреля 2014 Поделиться Опубликовано 24 Апреля 2014 (изменено) "Что у нее внутри, и как это сделать лучше". Для тех, кто уже разбирается в скриптах, конфигах, текстурах и "других страшных словах" ©, и имеет желание и время действительно делать их лучше.См. подробности в первом посте.Тема НЕ является ни столом заказов, ни службой техподдержки, ни справочным бюро. Изменено 28 Апреля 2014 пользователем Dennis_Chikin 2 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Monnoroch 6 Опубликовано 3 Января 2010 Поделиться Опубликовано 3 Января 2010 Shadowman, а,ну так да,попробуй Но почему бы тебе самому на пустой пстор не проверять?Экономней в плане места,мобильней получается. Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Января 2010 Поделиться Опубликовано 4 Января 2010 (изменено) Shadowman, ну ты пойми.вообще говоря - зависший непись - это уникальная ситуация.а хрупкий сталкеровский движок (ну очень хрупкий) не справляется с такой необычной для него вещью. Видимо бессмысленно пытаться заставить движок работать с зависшим НПС.Ну не может он,уж извините. Придется переписывать пакет ==== А ты не проверял - нельзя ли НПСу совсем рандомный нетпакет присвоить?То есть от любого другого НПС (неквестовика) Изменено 4 Января 2010 пользователем Monnoroch Ссылка на комментарий
Shadowman 939 Опубликовано 4 Января 2010 Поделиться Опубликовано 4 Января 2010 (изменено) Monnoroch, все это как-то плоховоспроизводимо (удаление, в смысле). Один раз - получается, второй раз - нет. И непонятно, от чего зависит результат. Пробовал я присваивать от другого НПЦ (причем даже с той же секцией - брата-близнеца, можно сказать). И уже писал про результат - вылет, причем с невменяемым логом. В том-то и дело, что не получится, и по вполне объективным причинам. Если переписывать нетпакет - нужно детально разбирать, что значит каждая переменная и писать что-то правдоподобное (т.е. формировать нетпакет по-новой фактически). Там очень конкретные вещи у каждого непися: координаты, сиды (если из аллспавн присвоен), и куча есть такого, что вообще непонятно что значит. Я приводил результат дампа этой таблички нетпакета ранее (от "здорового" непися), перехваченной при сохранении. Когда попытался катануть его "больному" - вылетел. Тупик, короче. А отлавливать зависших в том же хр_лоджик, кстати, научился - получается (как по кривому пстор, так и по пустому). Я так понимаю, что единственное, что реально - устранять причины зависов, потому как заставить движок сделать то, что я пытаюсь, да еще и с гарантированным результатом - утопия. Но тогда нужна наработка, кто зависает и где (на каком скрипте в апдейте биндера, в смысле), а без отладки и логов - это невозможно. Отладка зависа "на лету" возможна только из апдейта - только там можно увидеть, на какой стадии работы биндера происходит затык. Пока есть только вариант смены некоторых визуалов, как причина зависа. В принципе, отключить ее можно закомментив всего лишь одну строку, но тогда не сможем уже к ней вернуться, т.к. чтобы включить обратно - опять же нужно понимание, почему у некоторых визуалов при их определении происходит завис, или хотя бы знать, у каких визуалов есть эта проблема. Arhara, спасибо, попробую делать ему "харакири". В принципе, практически получилось. По крайней мере, отсеять при загрузке сейва "зависших" - получилось точно. Можно же еще попробовать make_suicide из АМК. Или еще какой-нибудь npc.health = -1. И Мон говорил, он третий способ знает Может, npc:hit(h) (только параметры этого h задать правильно и такими, чтоб смерть 100%). Еще помучаю этот вариант. Трупик - уборщик приберёт, он позже запускается А насчет удаления с помощью аллспавн - тоже вариант, но очень уж напряжно. Каждому прописать поршень удаления, а еще же не все из аллспавна, есть ведь и скриптовые, и фиг знает, сработает ли нормально, если непись зависший (тот же разговор с Боссом - ведь вызывает вылеты, а там неписи не зависшие). Лучше уже перепробовать все скриптовое сначала. Ну и заодно внести правку, чтобы корректно работала табличка исключений в хрс_армор и дополнить исключения парочкой точно вызывающих зависы неписей и, думаю, уберем эту проблему. --------------- Как это правильно сделать? local npc = alife():object(npc_id) -- или тут нужен тот обж, что в pstor_load_all и передан? local h = hit() h.power = 0.5 h.direction = npc:direction() h.draftsman = db.actor h.impulse = 1 h.type = hit.wound и выдается, что direction 'a nil value'. Без него - hit 'a nil value'. Подскажите, как правильно описать минимальные параметры для хита, чтобы сработал и какой объект ему совать? Как я понимаю, дирекшн лучше задать абсолютно, не привязывая к неписю (=0 пробовал, ловлю моментально вылет без лога). А может, проблема в том, что непись зависший... Изменено 5 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Arhara 32 Опубликовано 4 Января 2010 Поделиться Опубликовано 4 Января 2010 Shadowman, При удалении непися скриптом - идёт его мгновенное удаление, что в алайфе частенько вызывает вылет. Вылет, как правило связан с тем, что у удаляемого непися - 100% здоровье. А вот если такому неписю сначала наносить хит, убирающий % 50 этого здоровья, вылета как правило не бывает. Удалять более корректно - через профиль непися в алл спавне - вылета никогда не будет - что в алайфе, что а офф... Но вот как управлять таким удалением внепланово - х.з. Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Shadowman 939 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 (изменено) Вроде получилось суицидом. Проверяю... --------------- Наловил кучу зависших монстров - удаляются на ура. Неписи - почему-то не всегда удаляются, но зато сейвы, сделанные после удаления (и даже неудачной попытки удаления) - грузятся стабильно. Дополнил табличку исключений неписей по смене визуалов еще немного по анализу генераторов (MAV здорово помог: сейв его - прямо кладезь всяких глюков был, но все поправилось). Еще Припять осталось глянуть (пока видел кучу зависших rat_strong и одного контрика). Похоже, всем неписям с новыми уникальными визуалами переодевания противопоказаны. Будут еще сейвы - погоняю, попроверяю. Плохо, что сложно отловить, когда непись обыщет кого-нибудь и потом может зависнуть. Но, похоже, все зависы - на смене визуалов (по кайней мере, других зависов не видел пока). Arhara, и все-таки: выпускать правку отдельно, или будешь ее включать в патч? Я просто надеюсь завтра домучить уже правку. Там и по хрс_армор, и по хрс_утилс вылеты подхвачены (тоже сейв Мава помог, кстати ). Собственно: патч не передумал делать, или только уже с новой локой? --------------- Дима, спасибо, попробую с хитом такая уборка вероятна только в оффлайне Дима, зачистка зависших работает только при загрузке сейвов и переходах на локу, но только по порядку запуска - чуть раньше уборщика. Игрок никогда не увидит, КАК все происходит. В самом худшем случае, ГГ может во время сохранения иметь в поле зрения зависшего непися (в текущем состоянии скриптов такой сейв не загружается), а после его загрузки - непись либо будет трупом, либо исчезает вовсе. Пока убиение и приборка работает через раз, но незагружавшиеся ранее битые сейвы грузятся, и сейвы, сделанные уже после отработки "восстановительных работ" - тоже. Есть лишь вероятность, что неубранный труп зависшего обберут другие неписи и также зависнут, нарвавшись на ту же причину (например, подобрав броник и зависнув на смене визуала). Чтобы этого не было, лучше, конечно, проставить в табличку исключений excluded_npcs в хрс_армор таких неписей (имхо, самое лучшее - для всех неписей с новыми визуалами - на Генераторах, на Припяти и т.д.). Я сейчас пытаюсь отловить по максимуму всех, кто подвисает, но, конечно, не могу гарантировать, что выловлю абсолютно всех. Изменено 5 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Arhara 32 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 С суицидом? Но тогда такая уборка вероятна только в оффлайне - некрасиво, если он будет падать, а потом исчезать... Вот, Мон когда-то присылал по хиту function kill_them_all() for i=1,65536 do local obj=level.object_by_id(i) if <твое условие> then local h = hit() h.power = 3 h.impulse = 3 h.draftsman = obj h.direction = vector():set(0,0,0) h:bone("bip01_spine") h.type = hit.fire_wound obj:hit(h) break end end end Добавлено через 2 мин.: Shadowman, По патчу - дня через 3, не ранее - много дежурств, а надо тестить. Да - тут ещё приборчик скачал - пару бы квестов ещё заменить.... Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Monnoroch 6 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 Shadowman, только этот мой код немного убог,так как юзает 65536 перебор.Так делать,по сути,нельзя.По хорошему такой перебор - воообщето конкретный говнокод,извиняюсь...но если у тебя уже есть обьект - то буй непися тем,что внутри перебора у меня Ссылка на комментарий
Shadowman 939 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 (изменено) Monnoroch, я беру только параметры хита оттуда, остальное - в хр_лоджике А та ф-ция в хр_лоджик и так страбатывает только на объектах, находящихся на текущей локе при прогрузке биндеров. Короче, <твое условие> - у меня при попытке загрузить пстор объекта. Если он кривой, то тогда начинаю его немножко рэзать. Удаление работает через раз. Хз почему. Но сейвы - грузятся исправно. Уже видел парочку сейвов с кучей зависших монстров (причем, в одном случае они удалились, во втором - нет). И откуда они такое берут? Ни разу за год игры в Соль такого у себя не видел. Изменено 5 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Monnoroch 6 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 (изменено) Shadowman, я вообще впервые о зависших монстрах слышу... === Но вообще главное - вейвы грузятся.Это то нам и надо. == Arhara, вово)) какбы БТРы не поназависли... Изменено 5 Января 2010 пользователем Monnoroch Ссылка на комментарий
Shadowman 939 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 (изменено) какбы БТРы не поназависли... Monnoroch, а зря смеешься, между прочим: когда я накосячил с записью на ПДА, и вертолеты и БТРы под раздачу попали: я ведь писал пстор только актору и на нетПДА, а все остальное было "в пролете" (основная часть нетпакета писалась, а псторы - нет) И очень даже возможно, что при глобальных затыках, на которые пользователи внимания не обращают (даже у некоторых вон сохранки с актором зависшим) - могут и БТРы тоже заглючить... Но я их не трогаю. Пока Как я понимаю, серьезные проблемы с повальными подвисаниями (не связанными с реальными ошибками в скриптах и конфигах) - на дохлых компах, или при кривых установках мода, иначе проблемы были бы у всех поголовно. Изменено 5 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Arhara 32 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 Сейчас мотаюсь по локам - проверял новые квесты. заодно Круглого - как отрабатывает новая модель анимки - никто не завис.... да и не зависал... нашёл причину иногдашних вылетов при смерти ГГ. исправить можно только радикально - но не хочется. Попробую поколдовать. Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Monnoroch 6 Опубликовано 5 Января 2010 Поделиться Опубликовано 5 Января 2010 (изменено) Arhara, я во-первых свой же код и ругаю А во-вторых это действительно по-хорошему неприемлемо - так вот мучать комп. Добавлено через 1 мин.: Arhara, Про вылеты при смерти - лучше исправь.Велет он на то и вылет,чтоб его убирать любой ценой. Добавлено через 2 мин.: Arhara, я вот сейчас калькулятор пишу мощный - так вот за каждую наносекунду битва идет насмерть.ибо эта наносекунда,умноженная на миллион-другой прогонов функции дает огого какой интервал. (это к слову о циклах в 65 тыщ) Добавлено через 2 мин.: Я бы вообще сделал глобальную таблицу регистрации всех онлайновых предметов и таблицу регистрации оффлайновых (с меньшим кол-вом инфы,чтоб весила поменьше) типа storage, только шире гораздо и получал бы оттуда всю нужную инфу. Но это мечты-мечты... Добавлено через 8 мин.: ==== З.Ы. Ты покажи щас Меченому его "сон нпс" - он же лопнет от стыда,раз уж говорил,что ему даже за ЧУ стыдно (это опять к слову о циклах) Изменено 5 Января 2010 пользователем Monnoroch Ссылка на комментарий
dimos 10 Опубликовано 6 Января 2010 Поделиться Опубликовано 6 Января 2010 (изменено) Как я понимаю, серьезные проблемы с повальными подвисаниями (не связанными с реальными ошибками в скриптах и конфигах) - на дохлых компах, или при кривых установках мода, иначе проблемы были бы у всех поголовно. Много всего в биндере обрабатывается, вот и подвисает на слабых машинах. По хорошему, чем больше перенести бы оттуда куда-нибудь, где не так часто это все апдейтится, стало бы гораздо быстрее бегать.. А про зависших монстров: это не про заблудившихся зверушек, типа Cannot build GAME path! (object rat_strong? Изменено 6 Января 2010 пользователем dimos Цензура ограничивает творчество © by me Ссылка на комментарий
Shadowman 939 Опубликовано 6 Января 2010 Поделиться Опубликовано 6 Января 2010 (изменено) dimos, при загрузке сейвов с зависшими монстрами - в логе то же, что и при подвисших неписях - поврежден сейв + с моей отладкой имя, где я встречал крыс, снорков, собак, гигантов и контрика. А вот как это заполучить - не знаю. насчет построения пути - врядли, т.к. завис биндера - как раз именно потому и происходит, что управление ему не возвращается при отработке какого-то из скриптов, выполняющегося внутри (в твоем примере с GAME path - движок корректно отработал косяк и пошел дальше). Заточить мод под компы, для которых писался оригинал - боюсь, уже невозможно. Но вот сделать две версии (первые шаги, кстати, уже делались: фикс иконок, аскетичный худ) - наверное, можно. Сделать облегченную версию Соли без ряда наворотов (подыскать что-то некритичное для концепта, но грузящее двигло - те же визуалы, еще что-нибудь подобное). Изменено 6 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
sapsan 336 Опубликовано 6 Января 2010 Поделиться Опубликовано 6 Января 2010 (изменено) Shadowman, Monnoroch, решил тут взглянуть на переодевание неписей. Понял не много, но нашел несколько странностей: 1. куски кода по выбору секции по визуалу сдублированны в xrs_armor.script (со строки 1648) и death_manager.script (со строки 206), но при этом по-разному достаётся переменная vis (похоже, что в xrs_armor.script более совершенный вариант) и есть ещё небольшое отличие по нейтралам; 2. в этих же кусках кода либо перевести всё на elseif, либо на таблицы по сравнению в лоб и сравнению как части (чисто для оптимизации); 3. там же есть вероятность неинициализации переменной sect (мне не известно нормально ли отработает "read_if_exist_str()") - может лучше вместо "local sect" сделать "local sect = nil" ? 4. закомментирован stalker_soldier и stalker_suit, который встречается в одной из проверок в xrs_armor.script в строке 1727, а также soldier_outfit (у него визуал soldier_suit) присутствует в all.spawn (может это и ничего, но выглядит пропущенным); 5. xrs_armor.script в строке 1613 присутствует проверка на имена неписей - ведь в начале есть список игнорируемых неписей, кроме того как-то странно проверка на имена связана с экзоскелетом... или просто скобку забыли закрыть где нужно; 6. xrs_armor.script в строках 1832 и 1834 проход по всему и проверка на здорового сталкера - разве нету в АМК таблицы сталкеров? Вопрос актуален и для уборщика, если он запускается после создания такой таблицы. 7. xrs_armor.script в строке 1852 лишние проверки - вся таблица заполнена (мелочь); 8. xrs_armor.script в строке 34 в таблице upgrade_top_lvl не все локации. Shadowman, Проверка на outfit и exoskelet здесь суть не в самой проверке, а в её связке (and, or) с проверкой имён. Shadowman, если, как ты говоришь, никто толком не понимает как в таблицу правильно добавлять визуалы, то сам алгоритм действительно стоит упростить. По п.1 - сделать дублирующийся код функцией и вызывать её из death_manager.script. Shadowman, ну я выдал всё что увидел Изменено 6 Января 2010 пользователем sapsan Ссылка на комментарий
Shadowman 939 Опубликовано 6 Января 2010 Поделиться Опубликовано 6 Января 2010 (изменено) sapsan, 5. проверка на имена неписей - ты совершенно верно подметил. Их проверяют ранее, в npc_update по таблице, но прикол в том, что в таблице - названия секций и проверка на точное совпадение, а если в нее внести секцию непися, которому не назначен story_id в all.spawn, то его obj:name() выглядит как у стволов (с сидом в конце) и проверка, естественно, обламывается. Это я разрулил уже. Я здесь приводил ф-цию, которой я вычисляю название секции любого непися (взятого что как GameObject, что как серверный). Имена же там в функции check_armor вообще убираем. Проверка на outfit и exoskelet - потому, что ведь суются туда на проверку секции абсолютно всего содержимого инвентаря непися, а проходить проверку для дальнейшей обработки должны только броники. Т.е. секцию непися фильтруем перед перебором инвентаря в npc_update, а его содержимое - уже в check_armor. По остальным пунктам - посмотрю, отпишу в этот пост, что думаю. ------ sapsan, Условие в check_armor должно выглядеть так: if vis and vis ~= "" and ((string.find(section,"outfit") or string.find(section,"exoskeleton")) then... имён там быть не должно вообще и в скобки нужно взять оба "или". А секции имён - переносим в таблицу excluded_npcs, где и задумано. 6. "проход по всему" - явно нужно убирать и переписывать этот код повышения уровней, Мон только что выражал мнение про переборы всех объектов (for a=0,65535 do). Чем дохлее комп, тем больше вероятность получить завис биндера "на ровном месте" (казалось бы, формально ведь все правильно, а вот в плане оптимальности - ж... полная). Не знаю, может правильнее перебирать только объекты в db.storage (это, насколько я понимаю, объекты на текущем уровне). Нафига трокать абсолютно всех сталкеров? 8. можно, конечно, прописать все локи в табличку upgrade_top_lvl, но лучше сначала привести в порядок остальной код Monnoroch, та не, не думаю, что там что-то сильно уж криво. Таблички дополняли в основном, насколько я знаю. Ну и я руку приложил, еще весной или летом Я не против, только где брать оригинал? ------- Как хоть мод называется? AI pack FINAL? Автор написал про мод только в самом хрс_армор - "-- made by xStream 03.2008". Monnoroch, Кстати, имя автора в русской транскрипции - Экстрим, ну или экСтрим, но никак не Стрим Посмотрел, вобщем. Отличие - в одной функции. У экСтрима ее нет: get_npc_current_visual_level. Вместо нее у экСтрима - get_npc_level. Конечно же, отличаются таблицы, и все. Думаю, для грядущего патча - оставить как есть сейчас. Потом, как будет время - разберемся. Изменено 7 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Shadowman 939 Опубликовано 8 Января 2010 Поделиться Опубликовано 8 Января 2010 (изменено) Выложил фикс: http://www.amk-team.ru/forum/index.php?sho...st&p=357853 Что менял: 1. В скрипты aem_bind.script bind_monster.script bind_stalker.script xr_motivator.script Добавил к отладочному сообщению SAVE FILE IS CORRUPT название функции и имя объекта и после него - запуск своей функции удаления зависших из remove_zavis.script. В bind_stalker, по завису актора - только сообщение 2. В protected_items.script - переделал функцию получения имени секции объекта get_obj_name (теперь она действительно работает и с игровым объектом и на выходе выдает именно точное имя секции обжа). 3. В xrs_armor.script - использовал функцию из п.2 для корректной отработки исключений в функции npc_update. Плюс несколько проверок на нил в check_armor (делал не "от фонаря", ловил вылеты из-за пустых таблиц визуалов на генераторах: вылет был хрс_утилс:888, теперь его нет). Дополнил таблицу исключений excluded_npcs по реально найденным мной проблемам с зависами (около десятка секций добавил). См также п.6 4. В xr_logic.script переделал проверку убитого пстора и также вставил запуск ф-ции удаления из remove_zavis.script + мелкая правка. 5. В xr_wounded.script - мелкая правка - была неверная проверка на нил в функции evaluator_wound:evaluate () -6. Забыл перенести имена секций Пантеры и прочих из условия в check_armor в таблицу excluded_npcs (ToDo, так сказать). -7. Не сдалана пока проверка, не удаляем ли мы случайно зависшего квестовика. При текущем положении вещей - по-любому альтернативой является только переигровка. Могу сейчас только сделать саму проверку и либо не удалять (будет вылет), либо удалять (возможно, будет затык с квестами) (ToDo_1). -8. Забыл копирайт проставить в remove_zavis.script (правда, фраза капсом про удаление- не моя, а Kamikazze, ну и без помощи Архары и Мона, а также наработок Колмогора и Меченого я мог бы и не справиться, так что скрипт - народный, как и все в Солянке) Изменено 8 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Monnoroch 6 Опубликовано 8 Января 2010 Поделиться Опубликовано 8 Января 2010 (изменено) Shadowman, То не оптимизация - то полная переоаботка даже самого принципа работы механизма Мы считай вырезали эмбрионы и сделали их с нуля (кроме иконок) И вот я считаю - нафиг никакая классификация не нужна.Мы не бюрократы а вроде как программисты (ну хоть немного). И да,тех подробности если нужны для праздного интереса - сами узнают,а если для дела - тем более поймут все с лету. По поводу же aem_bind.script bind_monster.script bind_stalker.script xr_motivator.script А зачем? Это же все можно выяснить через тот же xr_logic.Ведь все данные,о том,что оно коррупт из него же и берутся,если я ничего не путаю. А иначе - как там идет проверка на завис? Неужто прямо из пстор?? Изменено 8 Января 2010 пользователем Monnoroch Ссылка на комментарий
Shadowman 939 Опубликовано 8 Января 2010 Поделиться Опубликовано 8 Января 2010 (изменено) полная переоаботка даже самого принципа работы механизма Monnoroch, вот видишь, это ты как программер понимаешь, а теперь посмотри со стороны пользователя - много поменялось ? все данные,о том,что оно коррупт из него же и берутся Нет, не из него. Не знаю, почему, но если я ту же самую проверку, что делается, например, в bind_monster.script в функции generic_object_binder ("if reader:r_eof() then"), выполняю из хр_лождик, он почему-то считает объекты зависшими, хотя они таковыми не являются. Так что буквально в последний момент вчера вечером мне пришлось задержать выпуск фикса на пару часов и все переделать. И все мои непонятки (ну почти все) - разрешились. Могут быть монстры с пустым пстором, и при этом не вызывать проблем и не являться зависшими. Но все же есть проблемы с монстрами и удалялка их киляет без проблем. Monnoroch, проверка - "if reader:r_eof() then", я же написал. (Если можешь объяснить, что она значит с твоей точки зрения - буду благодарен). "Конец файла" - ответ неверный Это что-то похожее, но ведь при пстор на миллионы слов - тоже reader:r_eof()=true - чего тогда конец? Почему она при одинаковых исходных данных работает по-разному - могу лишь догадываться, но факт-упрямая вещь! Я, как всегда, сделал так, "чтоб работало" (и работает ведь!), а нюансы - потом выяснять будем. Я умышленно выложил фикс раньше, чем выходит патч Архары - надеюсь, народ поможет найти глюки, если всплывут Изменено 8 Января 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Monnoroch 6 Опубликовано 8 Января 2010 Поделиться Опубликовано 8 Января 2010 Shadowman, мм,а в чем тогда заключается проверка в вышеперечисленных скриптах? Ссылка на комментарий
Рекомендуемые сообщения