parent
8c850ad7db
commit
bd9bcae01d
|
@ -16,7 +16,7 @@ android {
|
|||
minSdk 29
|
||||
targetSdk 34
|
||||
versionCode 4
|
||||
versionName "v1.6.3"
|
||||
versionName "v1.6.4"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
|
|
|
@ -763,6 +763,32 @@ namespace GakumasLocal::HookMain {
|
|||
CampusActorController_LateUpdate_Orig(self, mtd);
|
||||
}
|
||||
|
||||
DEFINE_HOOK(bool, PlatformInformation_get_IsAndroid, ()) {
|
||||
if (Config::loginAsIOS) {
|
||||
return false;
|
||||
}
|
||||
// Log::DebugFmt("PlatformInformation_get_IsAndroid: 0x%x", ret);
|
||||
return PlatformInformation_get_IsAndroid_Orig();
|
||||
}
|
||||
|
||||
DEFINE_HOOK(bool, PlatformInformation_get_IsIOS, ()) {
|
||||
if (Config::loginAsIOS) {
|
||||
return true;
|
||||
}
|
||||
// Log::DebugFmt("PlatformInformation_get_IsIOS: 0x%x", ret);
|
||||
return PlatformInformation_get_IsIOS_Orig();
|
||||
}
|
||||
|
||||
DEFINE_HOOK(Il2cppString*, ApiBase_GetPlatformString, (void* self, void* mtd)) {
|
||||
if (Config::loginAsIOS) {
|
||||
return Il2cppString::New("iOS");
|
||||
}
|
||||
// auto ret = ApiBase_GetPlatformString_Orig(self, mtd);
|
||||
// Log::DebugFmt("ApiBase_GetPlatformString: %s", ret->ToString().c_str());
|
||||
return ApiBase_GetPlatformString_Orig(self, mtd);
|
||||
}
|
||||
|
||||
|
||||
void UpdateSwingBreastBonesData(void* initializeData) {
|
||||
if (!Config::enableBreastParam) return;
|
||||
static auto CampusActorAnimationInitializeData_klass = Il2cppUtils::GetClass("campus-submodule.Runtime.dll", "ActorAnimation",
|
||||
|
@ -954,6 +980,22 @@ namespace GakumasLocal::HookMain {
|
|||
ADD_HOOK(CampusActorController_LateUpdate,
|
||||
Il2cppUtils::GetMethodPointer("campus-submodule.Runtime.dll", "Campus.Common",
|
||||
"CampusActorController", "LateUpdate"));
|
||||
|
||||
ADD_HOOK(PlatformInformation_get_IsAndroid, Il2cppUtils::GetMethodPointer("Firebase.Platform.dll", "Firebase.Platform",
|
||||
"PlatformInformation", "get_IsAndroid"));
|
||||
ADD_HOOK(PlatformInformation_get_IsIOS, Il2cppUtils::GetMethodPointer("Firebase.Platform.dll", "Firebase.Platform",
|
||||
"PlatformInformation", "get_IsIOS"));
|
||||
|
||||
auto api_klass = Il2cppUtils::GetClass("Assembly-CSharp.dll", "Campus.Common.Network", "Api");
|
||||
if (api_klass) {
|
||||
// Qua.Network.ApiBase
|
||||
auto api_parent = UnityResolve::Invoke<Il2cppUtils::Il2CppClassHead*>("il2cpp_class_get_parent", api_klass->address);
|
||||
if (api_parent) {
|
||||
// Log::DebugFmt("api_parent at %p, name: %s::%s", api_parent, api_parent->namespaze, api_parent->name);
|
||||
ADD_HOOK(ApiBase_GetPlatformString, Il2cppUtils::il2cpp_class_get_method_from_name(api_parent, "GetPlatformString", 0)->methodPointer);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
static auto CampusActorController_klass = Il2cppUtils::GetClass("campus-submodule.Runtime.dll",
|
||||
"Campus.Common", "CampusActorController");
|
||||
|
|
|
@ -21,6 +21,8 @@ namespace GakumasLocal::Config {
|
|||
std::string liveCustomeHeadId = "";
|
||||
std::string liveCustomeCostumeId = "";
|
||||
|
||||
bool loginAsIOS = false;
|
||||
|
||||
bool useCustomeGraphicSettings = false;
|
||||
float renderScale = 0.77f;
|
||||
int qualitySettingsLevel = 3;
|
||||
|
@ -68,6 +70,7 @@ namespace GakumasLocal::Config {
|
|||
GetConfigItem(enableLiveCustomeDress);
|
||||
GetConfigItem(liveCustomeHeadId);
|
||||
GetConfigItem(liveCustomeCostumeId);
|
||||
GetConfigItem(loginAsIOS);
|
||||
GetConfigItem(useCustomeGraphicSettings);
|
||||
GetConfigItem(renderScale);
|
||||
GetConfigItem(qualitySettingsLevel);
|
||||
|
|
|
@ -19,6 +19,8 @@ namespace GakumasLocal::Config {
|
|||
extern std::string liveCustomeHeadId;
|
||||
extern std::string liveCustomeCostumeId;
|
||||
|
||||
extern bool loginAsIOS;
|
||||
|
||||
extern bool useCustomeGraphicSettings;
|
||||
extern float renderScale;
|
||||
extern int qualitySettingsLevel;
|
||||
|
|
|
@ -17,6 +17,7 @@ import kotlinx.coroutines.runBlocking
|
|||
interface ConfigListener {
|
||||
fun onEnabledChanged(value: Boolean)
|
||||
fun onForceExportResourceChanged(value: Boolean)
|
||||
fun onLoginAsIOSChanged(value: Boolean)
|
||||
fun onTextTestChanged(value: Boolean)
|
||||
fun onReplaceFontChanged(value: Boolean)
|
||||
fun onLazyInitChanged(value: Boolean)
|
||||
|
@ -115,6 +116,11 @@ interface ConfigUpdateListener: ConfigListener, IHasConfigItems {
|
|||
pushKeyEvent(KeyEvent(1145, 30))
|
||||
}
|
||||
|
||||
override fun onLoginAsIOSChanged(value: Boolean) {
|
||||
config.loginAsIOS = value
|
||||
saveConfig()
|
||||
}
|
||||
|
||||
override fun onReplaceFontChanged(value: Boolean) {
|
||||
config.replaceFont = value
|
||||
saveConfig()
|
||||
|
|
|
@ -84,7 +84,7 @@ object FilesChecker {
|
|||
for (i in assets.list(localizationFilesDir)!!) {
|
||||
if (i.toString() == "version.txt") {
|
||||
val stream = assets.open("$localizationFilesDir/$i")
|
||||
return convertToString(stream)
|
||||
return convertToString(stream).trim()
|
||||
}
|
||||
}
|
||||
return "0.0"
|
||||
|
@ -96,7 +96,7 @@ object FilesChecker {
|
|||
|
||||
val versionFile = File(pluginFilesDir, "version.txt")
|
||||
if (!versionFile.exists()) return "0.0"
|
||||
return versionFile.readText()
|
||||
return versionFile.readText().trim()
|
||||
}
|
||||
|
||||
fun convertToString(inputStream: InputStream?): String {
|
||||
|
|
|
@ -19,6 +19,8 @@ data class GakumasConfig (
|
|||
var liveCustomeHeadId: String = "",
|
||||
var liveCustomeCostumeId: String = "",
|
||||
|
||||
var loginAsIOS: Boolean = false,
|
||||
|
||||
var useCustomeGraphicSettings: Boolean = false,
|
||||
var renderScale: Float = 0.77f,
|
||||
var qualitySettingsLevel: Int = 3,
|
||||
|
|
|
@ -86,6 +86,10 @@ fun AdvanceSettingsPage(modifier: Modifier = Modifier,
|
|||
GakuSwitch(modifier, stringResource(R.string.force_export_resource), checked = config.value.forceExportResource) {
|
||||
v -> context?.onForceExportResourceChanged(v)
|
||||
}
|
||||
|
||||
GakuSwitch(modifier, stringResource(R.string.login_as_ios), checked = config.value.loginAsIOS) {
|
||||
v -> context?.onLoginAsIOSChanged(v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@
|
|||
<string name="export_text">テキストをエクスポート</string>
|
||||
<string name="exposed_dropdown_menu_content_description">ドロップダウンメニューを表示</string>
|
||||
<string name="force_export_resource">リソースのアップデートを強制する</string>
|
||||
<string name="login_as_ios">iOSとしてログイン</string>
|
||||
<string name="gakumas_localify">Gakumas Localify</string>
|
||||
<string name="game_patch">ゲームパッチ</string>
|
||||
<string name="graphic_settings">グラフィック設定</string>
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<string name="text_hook_test_mode">文本 hook 测试模式</string>
|
||||
<string name="export_text">导出文本</string>
|
||||
<string name="force_export_resource">启动后强制导出资源</string>
|
||||
<string name="login_as_ios">以 iOS 登陆</string>
|
||||
<string name="max_high">极高</string>
|
||||
<string name="very_high">超高</string>
|
||||
<string name="hign">高</string>
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<string name="text_hook_test_mode">Text Hook Test Mode</string>
|
||||
<string name="export_text">Export Text</string>
|
||||
<string name="force_export_resource">Force Update Resource</string>
|
||||
<string name="login_as_ios">Login as iOS</string>
|
||||
<string name="max_high">Ultra</string>
|
||||
<string name="very_high">Very High</string>
|
||||
<string name="hign">High</string>
|
||||
|
|
Loading…
Reference in New Issue