Полезная информация Избавляемся от лагов и фризов в лэйте

Тема в разделе "Вопросы и ответы", создана пользователем Jules, 9 апр 2017.

  1. Jules

    Jules Блоха

    Сообщения:
    2
    Симпатии:
    7
    Оценки:
    +14 / 0
    Прежде всего, доброго времени суток, господа, и отдельно низкий поклон Скаю.

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

    Тебе понадобится Sublime Text и полторы минуты свободного времени. Если ты не сделал бэкап сейва - это только твои проблемы. Проверь, чтобы были включены регулярные выражения при поиске: нажми ctrl+F и найди эту кнопу (внизу, слева от строки поиска).

    [​IMG]

    1) Во-первых, чистка всем известной incidentQueue. Нажимаешь ctrl+H, вставляешь в строку поиска выражение:
    <queuedIncidents>[\s\S]*</queuedIncidents>([\s]*)​
    В строку замены:
    <queuedIncidents />\1​
    Нажимаешь Replace.

    2) Чистим историю убиенных. Ctrl+H, в строку поиска:
    (<pawnsDead>)[\s\S]*</li>([\s]*</pawnsDead>)​
    В строку замены:
    \1\2​
    Replace.

    3) Чистим карту от объектов "Filth". Существует несколько их типов, можно избавиться ото всех сразу. Ctrl+F, в строку поиска:
    <thing Class="Filth">[\s\S]*?</thing>​
    Нажимаешь "Find all" и Delete на клавиатуре.

    Если интересуют отдельные типы, то в строку поиска вставляешь один из ниже приведённых вариантов:
    <thing Class="Filth">([\s]*)<def>FilthDirt</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>BuildingRubble</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>FilthAnimalFilth</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>FilthBloodInsect</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>FilthBlood</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>FilthSlime</def>([\s\S]*?)</thing>
    <thing Class="Filth">([\s]*)<def>RockRubble</def>([\s\S]*?)</thing>​

    4) У некоторых игроков воспроизводятся ошибки ExplosionManager-а с null references (чекай лог). Когда до меня дошло наконец его почистить, сейв ужался аж на 5 мб. Ctrl+H, в строку поиска:
    (<li Class="ExplosionManager">[\s]*)<[\s\S]*?>([\s]*</li>)​
    В строку замены:
    \1<explosions />\2​

    У меня не осталось того сейва, точный вид забитого мэнеджера я, увы, не помню. Если регулярка вдруг не работает, просто поправь запись руками так, чтобы она приняла вид:
    <li Class="ExplosionManager">
    <explosions />​
    </li>
     
    Последнее редактирование: 9 апр 2017
  2. Jules

    Jules Блоха

    Сообщения:
    2
    Симпатии:
    7
    Оценки:
    +14 / 0
    Повторюсь, это самые очевидные вещи, что пришли мне на ум. Будет время, ещё поковыряюсь.
    И если кто знает от каких объектов можно ещё избавиться - пишите.
     
  3. Wlnamp

    Wlnamp Машгон

    Сообщения:
    35
    Симпатии:
    1
    Оценки:
    +7 / 7
    Можно все выше описанное как нибудь запилить в ато запускатор и абновлятор? - чтобы при каждом запуске игры через лаунчер он автоматом чистил все то, что тормозит.
     
  4. Varcklen

    Varcklen Блоха

    Сообщения:
    1
    Симпатии:
    0
    Оценки:
    +0 / 0
    Статус:
    123
    Я что-то не так делаю или это не работает. Каждый раз выдаёт ошибку и не запускает обработанный сэйв. Пытался со всеми пунктами, только с первым, вторым, вторым и первым. Не работает.
     
  5. Sebastyan

    Sebastyan

    Сообщения:
    269
    Симпатии:
    30
    Оценки:
    +149 / 15
    Статус:
    Grammatik macht fr
    Что то лишнее удаляете, видимо. По идее, ломать нечего тут. Убирается кровь, грязь, мусор и т.д.
     
  6. Qwert

    Qwert Муха-мутант

    Сообщения:
    18
    Симпатии:
    0
    Оценки:
    +2 / 1
    у меня кроме того что сейв не прогружается, еще и при использовании пункта 3 выдает ошибку
    [​IMG]
     
  7. doctrof

    doctrof Блоха

    Сообщения:
    3
    Симпатии:
    0
    Оценки:
    +0 / 1
    Может забываете ставить пробелы в <queuedIncidents /> перед косой линией в чистке инцидентов?
     
  8. Qwert

    Qwert Муха-мутант

    Сообщения:
    18
    Симпатии:
    0
    Оценки:
    +2 / 1
    у меня только 3-й пункт и находит
     
  9. Nikonn

    Nikonn Муха-мутант

    Сообщения:
    24
    Симпатии:
    1
    Оценки:
    +6 / 4
    Можно поподробнее описать как открывать этот Sublime Text и куда вводить команды? тут не все программисты
     
  10. Sebastyan

    Sebastyan

    Сообщения:
    269
    Симпатии:
    30
    Оценки:
    +149 / 15
    Статус:
    Grammatik macht fr
    Дык, там даже картинку вставили куда это вводить. Перечитайте. Сублайм нужно скачать.
     
  11. Nikonn

    Nikonn Муха-мутант

    Сообщения:
    24
    Симпатии:
    1
    Оценки:
    +6 / 4
    Программа есть, нужно сейв в ней открыть и уже в нем строки вставлять? не пойму
     
  12. Sebastyan

    Sebastyan

    Сообщения:
    269
    Симпатии:
    30
    Оценки:
    +149 / 15
    Статус:
    Grammatik macht fr
    Агась. Либо через "Файл"->открыть файл. В самой программе. Либо перетащить сам сейв в программу. Зажимате ЛКМ и перетаскиваете на интерфейс программы. Либо "Открыть с помощью"-> Сублайм текст.
    Там есть такая функция : "Поиск по файлу". Вбиваете фразу, которая показана выше. Так же с найденными результатами можно манипулировать : заменить найденные строки на другие , либо удалить найденные.
     
  13. Arhangel

    Arhangel Москит-мутант

    Сообщения:
    9
    Симпатии:
    0
    Оценки:
    +0 / 0
    У меня тоже, выводит ошибку и не запускает сэйв. Но, я попытался сделать 1 пункт не в программе а вручную, через блокнот, и всё нормально работает.
     
  14. Dzeniba

    Dzeniba

    Сообщения:
    820
    Симпатии:
    119
    Оценки:
    +361 / 12
    Sublime и Notepad (он же Блокнот) являются самостоятельными программами для работы с текстовыми файлами. Notepad встроен в Windows. Обе программы почти одинаково нормально работают с текстом. Но некоторым Sublime больше нравится за оформление, к тому же она очень помогает при работе с файлами html, которые тоже текстовые.
     
  15. Arhangel

    Arhangel Москит-мутант

    Сообщения:
    9
    Симпатии:
    0
    Оценки:
    +0 / 0
    Вот эту ошибку выдает
    Exception from asynchronous event: System.FormatException: Input string was not in the correct format
    at System.Int32.Parse (System.String s) [0x00000] in <filename unknown>:0
    at Fluffy_Tabs.PawnPrioritiesTracker+<>c.<IntsFromString>b__16_0 (Char c) [0x00000] in <filename unknown>:0
    at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[System.Char,System.Int32].MoveNext () [0x00000] in <filename unknown>:0
    at System.Collections.Generic.List`1[System.Int32].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0
    at System.Collections.Generic.List`1[System.Int32]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0
    at System.Linq.Enumerable.ToList[Int32] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
    at Fluffy_Tabs.PawnPrioritiesTracker.IntsFromString (System.String line) [0x00000] in <filename unknown>:0
    at System.Linq.Enumerable+<CreateSelectIterator>c__Iterator10`2[System.String,System.Collections.Generic.List`1[System.Int32]].MoveNext () [0x00000] in <filename unknown>:0
    at System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Int32]].AddEnumerable (IEnumerable`1 enumerable) [0x00000] in <filename unknown>:0
    at System.Collections.Generic.List`1[System.Collections.Generic.List`1[System.Int32]]..ctor (IEnumerable`1 collection) [0x00000] in <filename unknown>:0
    at System.Linq.Enumerable.ToList[List`1] (IEnumerable`1 source) [0x00000] in <filename unknown>:0
    at Fluffy_Tabs.PawnPrioritiesTracker.LoadPrioritiesFromString () [0x00000] in <filename unknown>:0
    at Fluffy_Tabs.PawnPrioritiesTracker.ExposeData () [0x00000] in <filename unknown>:0
    at Verse.PostLoadInitter.DoAllPostLoadInits () [0x00000] in <filename unknown>:0
    at Verse.Game.LoadGame () [0x00000] in <filename unknown>:0
    at Verse.SavedGameLoader.LoadGameFromSaveFile (System.String fileName) [0x00000] in <filename unknown>:0
    at Verse.Root_Play.<Start>m__736 () [0x00000] in <filename unknown>:0
    at Verse.LongEventHandler.RunEventFromAnotherThread (System.Action action) [0x00000] in <filename unknown>:0
    Verse.Log:Error(String)
    Verse.LongEventHandler:RunEventFromAnotherThread(Action)
    Verse.LongEventHandler:<UpdateCurrentAsynchronousEvent>m__733()


    Could not execute post-long-event action. Exception: System.NullReferenceException: Object reference not set to an instance of an object
    at Verse.VerbTracker.get_PrimaryVerb () [0x00000] in <filename unknown>:0
    at Verse.CompEquippable.get_PrimaryVerb () [0x00000] in <filename unknown>:0
    at Combat_Realism.CompFireModes.get_verb () [0x00000] in <filename unknown>:0
    at Combat_Realism.CompFireModes.InitAvailableFireModes () [0x00000] in <filename unknown>:0
    at Verse.LongEventHandler.ExecuteToExecuteWhenFinished () [0x00000] in <filename unknown>:0
    Verse.Log:Error(String)
    Verse.LongEventHandler:ExecuteToExecuteWhenFinished()
    Verse.LongEventHandler:UpdateCurrentAsynchronousEvent()
    Verse.LongEventHandler:LongEventsUpdate(Boolean&)
    Verse.Root:Update()
    Verse.Root_Play:Update()
     
  16. Qwert

    Qwert Муха-мутант

    Сообщения:
    18
    Симпатии:
    0
    Оценки:
    +2 / 1
    сохранил прогой сейв ничего не изменяя и сейв не загрузился. видимо проблема не в удалении строк. разница сейвов после сохранения прогой(внизу оригинал):
    внизу оригинал
    [​IMG]
    справа оригинал
    [​IMG]

    notepad++ все норм чистит
     
    Последнее редактирование: 9 май 2017
  17. PirateBY

    PirateBY Машгон

    Сообщения:
    43
    Симпатии:
    18
    Оценки:
    +73 / 0
    Состряпал простенькую программку для чистка сейва по этой статье в один клик:
    -добавил еще чистку истории(на производительность врядли повлияет)
    -чистка pawnsAlive других фракций(немного добавляет производительности, но лидеров фракций не стоит трогать!)

    http:// upload.ee/files/6996949/SaveGC.exe.html
    [​IMG]


    Обновление v0.2:
    -некоторые фиксы
    -возможность очистки памяти всем персонажам
    -возможность очистки логов взаимоотношений персонажей
    -удаление определенных объектов с карты скопом
    Скачать
    VirusTotal

    [​IMG]


    Обновление v0.3(финал):
    -удаление персонажей и построек

    Скачать
    VirusTotal

    [​IMG]
     
    Последнее редактирование: 13 май 2017