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

sapsan

 НС
  • Число публикаций

    411
  • Регистрация

  • Последнее посещение

  • Дней в топе

    3
  • AMKoin

    222 [Подарить AMKoin]

Весь контент пользователя sapsan

  1. Vetrogon, а последний тестовый патч попробовать ? НИ не нужна. И да - откуда что брал и как устанавливал (по полочкам распиши).
  2. sapsan

    Народная 2010 разработка

    Странности с сохранением 64-разрядных данных. Решил было исправить сохранение и, соответсвенно, загрузку времени в level_weathers.script с 32-разрядного на 64-разрядное беззнаковое. В луа_хелп такие функции вроде как есть, но с НИ после попытки сохранится получаю безлоговый вылет. В такой замене функций, как мне кажется, также нуждается скрипт xr_gulag.script malandrinus, я переделал всюду время на 64-разрядный формат (используется game.get_game_time()). Поэтому и нужно хранить 64-разрядное значение. Иначе сохранённое значение будет после переполнения всегда меньше текущего и постоянно будет исполнятся условие необходимости каких-то действий или, если хранится стартовое время, всегда старт + дельта будет меньше текущего времени, что опять же приведёт к постоянному выполнению каких-то действий (наприммер - смена погоды), или эти действия перестанут выполнятся вовсе. Это уже всё зависит от алгоритма...
  3. Тестовый кумулятивный патч от 2010.08.04 01:28 Исправлен вылет Not enough ID, убраны элементы оптимизации, которые приводили к этому вылету и, возможно, другим багам. Исправлен вылет level_weathers.script:153. Исправлены пропавшие метки от детекторов артефактов. Исправлен неработающий скриптовый спавн (например тушканы на Кордоне). Желающие помочь - скачайте патч отсюда или отсюда. Или только один изменённый относительно патча от 24.07 скрипт отсюда или отсюда. О багах и вылетах - в личку. Если всё хорошо - после выхода из игры запакуйте и вышлите мне лог. Просьба установить этот патч всем. Пока нет подтверждённых жалоб - это настораживает
  4. Нужны добровольцы для опасных, но хорошо оплачиваемых заданий. Поступил тревожный сигнал о том, что некие индивиды Зоны покинули Солянку и не хотят туда возвращаться (во всяком случае сразу в начале новой игры). Список индивидов: крысы, тушканы, изломы. В этом подозревается патч kumul_20100723_1440_sapsan. Просьба начать НИ на чистой Солянке и с разными патчами (09.06 18:39, 27.06 04:48, 23.07 14:40, 24.07 14:57) и проследить за жизнью и деятельностью этих индивидов. Уровня Кордон для отчёта будет достаточно Отчёты - в личку. Участников ждут жирные плюсы
  5. Ugrum75, уже 24.07 я вылет по погоде поправил. Посмотри выше моё сообщение
  6. sapsan

    Народная 2010 разработка

    Здесь нашел неофициальный мультиплеерный патч 7.02е (как бы 1.0007). Говорится, что для сингла можно использовать из него gamedata.dbe. После установки ловим вылет по отсутсвию секции, которой нет в Соляночном gamedata/config/weathers/flares.ltx. После простого переноса недостающих секций игра запускается. Но это нельзя считать применённым патчем, так как в Солянке будут и другие файлы, которые "родом" из 1.0004 и которые нужно довести до 1.0007 и оставить соляночные изменения. P.S. Сам я это делать уже не буду (так как по-просту нет времени), но не рассказать о такой находке не мог Желающие - дерзайте, там ведь есть исправления оригинальной игры и, кроме того, теоретически можно попробовать взять dll-ки. BadSven, всё есть в ридми в архиве. Или на странице по ссылке. Как минимум Сам gamedata.dbe весит под 70 МБ. Скрипты не изменены. Распакуйте да посмотрите сами
  7. Тестовый кумулятивный патч от 2010.07.24 14:57 Исправлен вылет Not enough ID, убраны элементы оптимизации, которые приводили к этому вылету и, возможно, другим багам. Исправлен вылет level_weathers.script:153. Исправлены пропавшие метки от детекторов артефактов. Желающие помочь - скачайте патч отсюда или отсюда. О багах и вылетах - в личку. Если всё хорошо - после выхода из игры запакуйте и вышлите мне лог.
  8. По target_dot_26: 1. В Солянке файла ui_custom_msgs_16.xml нет. Есть только ui_custom_msgs.xml; 2. Все адаптации были поправлены и вложены в архив с патчем kumul_20100627_0448_sapsan; 3. Если используется другой худ - поправить его ui_custom_msgs.xml и, если есть, ui_custom_msgs_16.xml заменив
  9. sapsan

    Народная 2010 разработка

    malandrinus, нет, стандартными функциями пользоваться можно.
  10. sapsan

    Народная 2010 разработка

    Ещё из экспериментов с таблицами.
  11. sapsan

    Народная 2010 разработка

    Здесь таблицы раскрыты немного не так. Не совсем так. Вот такой код local t1 = {1,2,3,4,5} t1[2] = nil get_console():execute("load ~~~ testTables table.getn(t1): "..tostring(table.getn(t1))) get_console():execute("load ~~~ testTables #t1: "..tostring(#t1)) amk.dump_table(t1) даёт такой лог ! Cannot find saved game ~~~ testtables table.getn(t1): 5 ! Cannot find saved game ~~~ testtables #t1: 5 ! Cannot find saved game ~~~ .1 => 1 ! Cannot find saved game ~~~ .3 => 3 ! Cannot find saved game ~~~ .4 => 4 ! Cannot find saved game ~~~ .5 => 5 Дамп таблицы в конце лога построен на for k,v in pairs t do, поэтому элемент под номером 2 пропущен. Но самое интересное, что утряски таблицы не произошло и оба способа получения длины не сработали. P.S. Это я лишнего из лога взял...
  12. sapsan

    Народная 2010 разработка

    kamikazze, получается, что удаление элемента из таблицы путём присваивания nil нельзя, если собираешься потом получить её длину (ни table.getn, ни # корректную длину не возвращают). Или вести счетчик руками... А если для проверки условий по количеству ? В общем - небезопасно это в плане корректности данных.
  13. sapsan

    Народная 2010 разработка

    Из экспериментов с таблицами: 1) После вставки с помощью выражения t[#t+1] = 1 получить правильную длину таблицы с помощью table.getn нельзя, но с помощью # можно. 2) Если делать удаление элемента с помощью присваивания nil, то таблица не утрясается и тогда все последующие обращения к ней нужно проводить с проверкой на ~= nil или, если это цикл, с помощью in pairs. Также размер таблицы нельзя получить правильно ни с помощью table.getn, ни с помощью # (разве только вручную вести счетчик). P.S. Вот и все "странности". Так что либо держать все ниточки в своих руках, либо откатываться на стандартные методы... Второе - надёжнее.
  14. sapsan

    Народная 2010 разработка

    Kolmogor, kamikazze, уходить от использования table. нужно или глобально, или только в работе со своими таблицами, к которым никто другой не доступается и в комментариях описать данных "уход", или вообще не уходить с целью даже будущей совместимости. А ведь есть ещё table.sort и table.concat. Добавлено через 19 мин.: Dennis_Chikin, скорее всего там условие проверяется "ленивым" способом. Тоесть если в условии (а или б) значение а == истина, то б уже не проверяется и не расчитывается. Аналогично с условием (а и б) - если значение а == ложь, то б уже не проверяется и не расчитывается. Добавлено через 32 мин.: Dennis_Chikin, тесты, тесты и ещё раз тесты Добавлено через 25 мин.: Ещё по "уходу" - кроме других table-функций есть ведь ещё и оригинальные скрипты от GSC. Поэтому уходить или вместе с ними или только для своих таблиц.
  15. sapsan

    Народная 2010 разработка

    Таки причина в table.getn(). Заменил его на оператор # и всё встало на свои места.
  16. sapsan

    Народная 2010 разработка

    Найдена скриптовая аномалия!
  17. Прошу прислать в личку сохранение с железным вылетом по Not enough IDs
  18. SergeT, попробуй пережить ЧУ на одной из старых локаций (Кордон, Свалка, Агропром, ТД, АС, Янтарь, Припять). После его окончания ГГ должен перестать боятся спать. И с новым кумулятивным патчем такой проблемы уже не возникнет. Добавлено через 1 мин.: |!E$E|_, именно.
  19. sapsan

    AB Addon

    skaygeni74, "последний" меняется в последние дни очень часто. Не ленитесь указать точную дату и время патча. Также скажу по секрету, что вылет этот поправлен в "последнем" патче.
  20. sapsan

    Народная 2010 разработка

    Бывает такой вылет (и не только в Солянке):
  21. sapsan

    Народная 2010 разработка

    [spoiler=Вопрос к знатокам]В _g.script есть функция --// Является ли оbj монстром function is_object_monster(obj) local otype = get_clsid(obj) if(otype == clsid.crow or otype == clsid.zombie or otype == clsid.flesh or otype == clsid.controller or otype == clsid.bloodsucker or otype == clsid.burer or otype == clsid.fracture or otype == clsid.chimera or otype == clsid.boar or otype == clsid.dog_red or otype == clsid.dog_black or otype == clsid.poltergeist or otype == clsid.pseudo_gigant ) then return true end return false end , которая используется лишь один раз в скрипте gulag_military.script в функции ------------------------------------------------------------------------------------------- -- Проверка, имеется ли у гулага враг ------------------------------------------------------------------------------------------- function check_enemy (gulag) for k,v in pairs(gulag.Object) do if v ~= true then if v:best_enemy () ~= nil and v:story_id () ~= 710 and is_object_monster (v:best_enemy ()) == false then return true end end end return false end и больше нигде. В то же время в _g.script есть функция function IsMonster (object, class_id) local id = class_id or get_clsid (object) local monsters = { [clsid.boar_s] = true, [clsid.bloodsucker_s] = true, [clsid.dog_s] = true, [clsid.flesh_s] = true, [clsid.pseudodog_s] = true, [clsid.psy_dog_s] = true, [clsid.burer_s] = true, [clsid.cat_s] = true, [clsid.chimera_s] = true, [clsid.controller_s] = true, [clsid.fracture_s] = true, [clsid.poltergeist_s] = true, [clsid.gigant_s] = true, [clsid.zombie_s] = true, [clsid.tushkano_s] = true, [clsid.snork_s] = true } return monsters[id] or false end , которая используется во всём остальном коде и в которой идёт проверка по совершенно другим классам. Так какие классы корректны ?
  22. sapsan

    Скриптование

    Ещё вопрос по худу - как узнать был ли убран худ пользователём с помощью "-"? Если нет явного способа, то можно ли сделать это неявно - проверкой наличия какого-то стандартного элемента худа (например миникарты)? Проверил с помощью проверки на наличие часов: get_hud():GetCustomStatic("hud_show_time") так они всегда присутствуют... malandrinus, а сам элемент есть такой ? "hud_show_time" - это в Солянке часы выводятся... Код local guiHidedManually = not cs get_console():execute("load ~#I#: guiHidedManually="..tostring(guiHidedManually)) get_console():execute("load ~#I#: cs:wnd():IsEnabled()="..tostring(cs:wnd():IsEnabled())) get_console():execute("load ~#I#: cs:wnd():IsShown()="..tostring(cs:wnd():IsShown())) get_console():execute("load ~#I#: cs:wnd():GetWidth()="..tostring(cs:wnd():GetWidth())) get_console():execute("load ~#I#: cs:wnd():GetHeight()="..tostring(cs:wnd():GetHeight())) get_console():execute("load ~#I#: cs:wnd():GetTextX()="..tostring(cs:wnd():GetTextX())) get_console():execute("load ~#I#: cs:wnd():GetTextY()="..tostring(cs:wnd():GetTextY())) всегда возвращает: ! Cannot find saved game ~#i#: guihidedmanually=false ! Cannot find saved game ~#i#: cs:wnd():isenabled()=true ! Cannot find saved game ~#i#: cs:wnd():isshown()=true ! Cannot find saved game ~#i#: cs:wnd():getwidth()=98 ! Cannot find saved game ~#i#: cs:wnd():getheight()=19 ! Cannot find saved game ~#i#: cs:wnd():gettextx()=22 ! Cannot find saved game ~#i#: cs:wnd():gettexty()=1
  23. Graveworm, по твоему вылету. У меня набор, на котором я загрузил твоё сохранение, совсем другой - Солянка от 19.04 с последним кумулятивным патчем + адаптация к 1.0006 и, соответсвенно, игра с патчем 1.0006. Новость получил нормально. Попробуй, для начала, саму свою теперишнюю геймдату попробуй переустановить аккуратно по-новой - может с ней что-то, так как таких вылетов не встречал. Если не поможет - адаптацию к 1.0006 установить - с ней НИ не нужна.
  24. Graveworm, вылет постоянный ? Потому как чтобы там сглючило - нужно очень постараться или быть "Семецким" (везучим) . Graveworm, давай точные данные по времени вылета, сохранение перед ним и автосейв на том уровне. Может чего и увижу.
  25. sapsan

    Скриптование

    Подскажите, кто знает: 1. как узнать использован ли в данный момент оптический прицел главным героем ? 2. как убрать/вернуть весь индикаторный худ как по клавишам "серый минус"/"серый плюс" ? malandrinus, это для ТЧ. 1. оружие с оптическим прицелом в состоянии прицеливания. 2. level.hide_indicators()/level.show_indicators() эквивалентны -/+, hud_weapon on/off убирает руки с оружием, hud_info on/off не заметил изменений на экране, а остальное не пробовал из-за ненадобности.
×
×
  • Создать...