11 KiB
Подробное объяснение настроек HOOK
Значение параметров настроек HOOK
1. Кодовая страница
?> Эта настройка имеет значение только тогда, когда текст, извлеченный из игры, является строкой с неопределенной кодировкой внутри движка HOOK и многобайтовой строкой. Когда движок HOOK уже указал кодовую страницу, или текст является широкой символьной строкой или строкой UTF32, эта настройка не имеет никакого значения.
Эта настройка обычно не требует изменения. Она необходима только для некоторых старых движков (например, Yuris), официальные китайские версии которых могут иметь GBK/BIG5/UTF8. Если вы не можете найти правильный текст, отправьте issue напрямую мне; изменение этой настройки обычно бесполезно.
3. Фильтрация повторяющихся предложений
Простой фильтр текста, реализованный внутри движка HOOK. Этот фильтр может немного повысить производительность в случаях безумного повторения текста, но обычно не рекомендуется использовать его, так как правила слишком просты и иногда могут разрушить истинные повторяющиеся шаблоны.
4. Задержка обновления
?> Относительно, это самый практичный вариант.
Если вы сталкиваетесь с одним из следующих ситуаций:
1. Текст извлекается по одному или двум символам за раз;
2. Текст извлекается построчно, заменяя предыдущую строку, и в итоге отображается только последняя строка;
3. Текст правильный, но извлекается очень медленно;
Тогда вам нужно настроить этот параметр.
Для 1 и 2 ситуаций, потому что текст игры отображается слишком медленно, а задержка обновления слишком низкая, что приводит к немедленному обновлению каждый раз, когда извлекается один или два символа или строка текста. В этом случае вам нужно увеличить задержку обновления или увеличить скорость отображения текста в игре.
Для 3, вы можете уменьшить задержку обновления, одновременно обращая внимание на то, чтобы не возникали ситуации 1 и 2.
5. Максимальная длина буфера
Иногда текст будет повторяться без остановки. В этом случае, если задержка обновления высокая и не может быть уменьшена, это приведет к постоянному получению текста до тех пор, пока текст не заполнит буфер или не перестанет обновляться, чтобы удовлетворить задержку обновления (обычно игра теряет фокус, чтобы остановить обновление, поэтому обычно ждут, пока буфер не заполнится).
Чтобы решить эту проблему, можно соответствующим образом уменьшить длину буфера, но обратите внимание, чтобы длина буфера не была слишком низкой, чтобы быть меньше фактической длины текста.
6. Максимальная длина кэшированного текста
Полученный исторический текст будет кэшироваться, и когда вы просматриваете содержимое какого-либо текста в окне выбора текста, будет запрашиваться исторический кэшированный текст. Если есть слишком много элементов текста или текст повторяется, это приведет к слишком большому кэшированному тексту, что сделает просмотр текста более медленным (иногда даже без просмотра). На самом деле большая часть кэшированного текста здесь бесполезна; полезный исторический текст можно просмотреть в исторических переводах, и это значение можно свободно уменьшить (по умолчанию 1000000, но на самом деле достаточно 1000).
7. Фильтрация строк, содержащих глифы
Фильтрация глифов в обработке текста будет фильтровать только глифы, а эта фильтрация, при получении текста, если обнаруживается, что строка текста содержит какие-либо глифы, будет полностью отброшена. Когда игра обновляет большое количество предложений, содержащих глифы, можно соответствующим образом использовать этот параметр, чтобы отфильтровать недействительные предложения и повысить производительность.
8. Использование YAPI для инъекции
Этот параметр иногда может немного повысить комфорт, но может быть проблемы с совместимостью, поэтому не рекомендуется использовать.
Подробное объяснение
При инъекции Dll в игру, обычно процесс инъекции Dll и процесс, в который инъектируется Dll, должны иметь одинаковую разрядность.Чтобы решить эту проблему, Luna обычно использует shareddllproxy32 и shareddllproxy64 для инъекции Dll в игры с разной разрядностью.
Однако, когда этот прокси-процесс работает, он может быть заблокирован антивирусной программой на некоторое время, что приведет к задержке или сбою работы и необходимости запускать снова. В этом случае можно использовать YAPI для прямой инъекции Dll с помощью основного процесса Luna.
В YAPI, если процесс игры и процесс Luna имеют одинаковую разрядность, инъекция будет проходить нормально; если разрядность разная, будет использоваться специальный shellcode для реализации инъекции. Это также одна из причин, почему LunaHost32.dll легче обнаруживается антивирусной программой.
Использование YAPI для инъекции относительно более плавное. Однако на планшетах с Arm может быть несовместимость.
Когда Luna работает с низкими правами, а игра с правами администратора, этот параметр будет недействителен, он вернется к исходному режиму и запросит права для инъекции.
Настройки по умолчанию и специальные настройки для игр
Настройки, сделанные в интерфейсе настроек -> HOOK, являются настройками по умолчанию. Когда для игры не указаны специальные настройки HOOK, будут использоваться настройки по умолчанию.
Чтобы сделать специальные настройки HOOK для игры, необходимо открыть интерфейс Управление играми, открыть интерфейс Настройки игры, переключиться на вкладку HOOK во вкладке настроек игры, отключить Следовать по умолчанию, чтобы сделать специальные настройки HOOK для игры.
1. Специальный код
Когда вставлен специальный код и выбран текст специального кода, этот специальный код будет записан, и при следующем запуске он будет автоматически вставлен. Эта настройка записывает все ранее записанные специальные коды и позволяет добавлять или удалять специальные коды.
2. Задержка инъекции
Иногда место в игре, которое нужно зацепить, в dll требует, чтобы игра немного поработала, прежде чем загрузится dll. Нам также нужно подождать, пока загрузится dll, прежде чем проводить инъекцию.