- пол
- M
- Страна
- Выбирать..
----------Приветствую всех ----------
PS. Если вам нужна помощь, как подключить MemoryPatch с Меню MOD и игровые функции дайте мне знать
Я хотел бы поделиться с вами новым Меню MODчто очень хорошо,
потому что это для игр для Android, которые не только Unity, теперь вы можете Меню MOD
il2cpp и другие родные игры для Android
Теперь вы можете мод меню этой игры!
Вот так это выглядит вживую
Для этого урока вам понадобятся эти инструменты!
- Android Studio 3 * = Ссылка для скачивания!
- APKTool (SBennyAPKT это хорошо) = Ссылка для скачивания!
- Блокнот ++ = Ссылка для скачивания!
* Плавающее хранилище ModMenu = Скачать мод меню проекта! // Оригинальная ссылка автора MrIkso
* знание C ++, Java, Smali
+-Продвинутые моддеры Рекомендуем
Начнем с учебника!
После того, как вы загрузили все необходимые файлы, первое, что вам нужно сделать, это открыть Android-студия и откройте Плавающий Проект Репозитория ModMenu!
Распакуйте проект ModMenu в папку без пробела, просто очистите имя ex. C: Users \ хххххх \ Desktop \ моддинг \ FloatingModMenu-мастер
(«Я говорю это, потому что у меня уже была проблема с компиляцией игры, и это было ИСПРАВЛЕНИЕ» )
Откройте проект в Android-студия
После загрузки вашего проекта вам нужно будет найти файл FloatingModMenuService.java - в этом методе вы добавите параметры для вашего Меню MOD.
Вы можете легко найти этот файл с помощью ярлыка (CTRL + SHIFT + F) а затем поиск
Код:
private void modMenu() {
Теперь вы можете добавить свои чит-опции «Кнопки» в меню MOD, вот несколько примеров!
Когда вы редактируете свои параметры для Меню MODоткройте этот файл / FloatingModMenu / app / src / main / jni / src /main.cpp в этом файле вам нужно будет отредактировать функции, которые будут реализовывать хук. Используемая библиотека KittyMemory. ( Эта библиотека предназначена для исправления кода во время выполнения для Android и iOS ) Далее нужно позвонить из родной библиотеки и связать их с помощью переключателей.
В этом файле вы подключаете MOD-переключатели меню с помощью игровых функций!
После того, как вы добавили все необходимые опции, вы можете построить этот проект и сделать APK!
Убедитесь, что ваша сборка успешно завершена без ошибок!
Следующим шагом будет добавление "Build ModMenu Stuff" в папку с игрой!
Найдите файл файла встроенного MOD меню APK.
Теперь вам нужно будет декомпилировать приложение с помощью SBennyAPKTool или любого другого инструмента.
и тогда вам нужно будет скопировать некоторые вещи в папку с игрой!
это также требует, чтобы вы декомпилировали свою игру после декомпиляции MODMenu APK!
Когда вы будете готовы перенести файлы из созданного Меню MOD Apk, скопируйте эти файлы в папку с игрой
Скопируйте папку «Активы» в папку «Активы игры» (это Меню MOD Картинки)
И вам нужно скопировать libKittyMemory.so в правильную структуру игры .... (блабла)
но будьте осторожны libKittyMemory.so Вручную, потому что это зависит от того, какую структуру использует ваша игра, и какую вы взламываете!
libKittyMemory.so находится в этой папке, скопируйте только ту папку, которую использует ваша игра.
Далее нам нужно добавить разрешение на отображение приложения поверх других и сервиса Mod-Menu.
Откройте AndroidManifest.xml из папка игры
и добавить этот код в первой строке Права доступа!
Код:
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
Код:
<service android:enabled="true" android:exported="false" android:name="com.mrikso.modmenu.FloatingModMenuService"/>
Следующий шаг, пожалуй, самый сложный, потому что вам нужно найти основной вид деятельности вашей игры, и вам нужно ввести свой Меню MOD.
Вам необходимо зарегистрировать Меню MOD вызов и загрузка библиотеки libKittyMemory.
Ищем основное направление нашей игры. Обычно это пишется на (Вот пример «Моя игра»)
Код:
<application android:allowBackup="true" android:icon="@mipmap/app_icon" android:label="@string/app_name" android:name="android.support.multidex.MultiDexApplication" android:supportsRtl="true" android:theme="@style/UnityThemeSelector">
<service android:enabled="true" android:exported="false" android:name="com.mrikso.modmenu.FloatingModMenuService"/>
<activity android:configChanges="density|fontScale|keyboard|keyboardHidden|layoutDirection|locale|mcc|mnc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|touchscreen|uiMode" android:hardwareAccelerated="false" android:label="@string/app_name" android:launchMode="singleTask" android:name="com.unity3d.player.UnityPlayerActivity" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
</activity>
В моем случае моя основная игровая активность находится здесь.
Когда вы знаете, в какой папке smali находится ваша основная деятельность, вы можете скопировать папку Smali из декомпилированного меню MOD Apk в Game Smali / Com / Folder
Найти игру Основная деятельность (в моем случае UnityPlayerActivity ) и откройте его с помощью Notepad ++, и скопируйте класс (этот код) в основной класс нашей игры в # виртуальные методы, вы можете вставить его после Last Methode!
Код:
.method public Start()V
.locals 3
.line 23
const-string v0, "KittyMemory"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 24
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x17
if-lt v0, v1, :cond_0
invoke-static {p0}, Landroid/provider/Settings;->canDrawOverlays(Landroid/content/Context;)Z
move-result v0
if-nez v0, :cond_0
.line 25
new-instance v0, Landroid/content/Intent;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "package:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Landroid/app/Activity;->getPackageName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v1
const-string v2, "android.settings.action.MANAGE_OVERLAY_PERMISSION"
invoke-direct {v0, v2, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;Landroid/net/Uri;)V
.line 26
.local v0, "intent":Landroid/content/Intent;
const/16 v1, 0x7d2
invoke-virtual {p0, v0, v1}, Landroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V
.line 27
.end local v0 # "intent":Landroid/content/Intent;
goto :goto_0
.line 28
:cond_0
new-instance v0, Landroid/content/Intent;
const-class v1, Lcom/mrikso/modmenu/FloatingModMenuService;
invoke-direct {v0, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
invoke-virtual {p0, v0}, Landroid/app/Activity;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
.line 30
:goto_0
return-void
.end method
.method public onActivityResult(IILandroid/content/Intent;)V
.locals 2
.param p1, "requestCode" # I
.param p2, "resultCode" # I
.param p3, "data" # Landroid/content/Intent;
.line 34
const/16 v0, 0x7d2
if-ne p1, v0, :cond_1
.line 35
const/4 v0, -0x1
if-ne p2, v0, :cond_0
.line 36
new-instance v0, Landroid/content/Intent;
const-class v1, Lcom/mrikso/modmenu/FloatingModMenuService;
invoke-direct {v0, p0, v1}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
invoke-virtual {p0, v0}, Landroid/app/Activity;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
goto :goto_0
.line 38
:cond_0
const/4 v0, 0x0
const-string v1, "Draw over other app permission not available. Closing the application"
invoke-static {p0, v1, v0}, Landroid/widget/Toast;->makeText(Landroid/content/Context;Ljava/lang/CharSequence;I)Landroid/widget/Toast;
move-result-object v0
invoke-virtual {v0}, Landroid/widget/Toast;->show()V
.line 39
invoke-virtual {p0}, Landroid/app/Activity;->finish()V
goto :goto_0
.line 42
:cond_1
invoke-super {p0, p1, p2, p3}, Landroid/app/Activity;->onActivityResult(IILandroid/content/Intent;)V
.line 44
:goto_0
return-void
.end method
И самое главное, также в том же файле, основной деятельности smali, чтобы добавить этот код в Метод onCreate
Код:
invoke-virtual {p0}, Lcom/unity3d/player/UnityPlayerActivity;->Start()V
Информация о переименовании функции запуска функции!
Пример: предположим, что ваше основное действие Smali называется HavanitosPlayerTutorial -> Lcom / ohyes / idamodding / activity / HavanitosPlayerTutorial.smali.
Когда вы добавляете (Start Load Function, в определенной Деятельности вам нужно использовать это Имя Деятельности)
Это не верно:
Код:
invoke-virtual {p0}, Lcom/mrikso/modmenu/MainActivity;->Start()V
Код:
invoke-virtual {p0}, Lcom/ohyes/idamodding/activity/HavanitosPlayerTutorial;->Start()V
Спасибо за чтение Учебник, если вам нужна помощь, не стесняйтесь спрашивать любого продвинутого моддера!
Я надеюсь, что вы понимаете мой английский и мой учебник Наслаждайтесь
Я надеюсь, что вы понимаете мой английский и мой учебник Наслаждайтесь
Вложения
-
7.8 KB Просмотров: 289
-
68.5 KB Просмотров: 292
Последнее редактирование: