关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)


3楼猫 发布时间:2024-12-02 21:40:21 作者:Cpcio Language

前排提示:个人感觉有点麻烦不知道还有没有简便法子

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第0张

这种情况适用于直接修改启动路径或者覆盖都不好使,仍然想入正玩盗的情况(样例极少,我是只见过九九九樱空汉化组出现过这种问题)

基本思路:写个程序,打开汉化文件,检测本体关闭后结束程序就成,需要打包成exe

步骤:

创建一个python文件进行编辑(以下在vs code中举例)

1.安装psutil和pyinstaller库

在终端中输入以下内容

pip install pyinstaller

pip install psutil

若出现SSL问题,也可输入以下内容:

(1)pip install psutil --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org

(2)pip install pyinstaller --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host=files.pythonhosted.org

终端样例:(在这个位置输入)

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第1张

2.编写代码(链接大概率会没,直接粘贴代码到这了)

import os

import subprocess

import sys

import time

import psutil


def get_process_pid_by_name(program_path):

    for proc in psutil.process_iter(['pid', 'name', 'exe']):

        try:

            if proc.info['exe'] and program_path.lower() == proc.info['exe'].lower():

                return proc.info['pid']

        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):

            continue

    return None


def run_program():

    program_path_1 = r"汉化exe启动路径"

    program_path_2 = r"原nine_kokoiro启动路径"


    if not os.path.exists(program_path_1):

        return


    proc_1 = subprocess.Popen([program_path_1], stdout=subprocess.PIPE, stderr=subprocess.PIPE)


    pid_2 = None

    start_time = time.time()


    while time.time() - start_time < 30:

        pid_2 = get_process_pid_by_name(program_path_2)

        if pid_2:

            break

        time.sleep(1)

    else:

        return


    while pid_2 and psutil.pid_exists(pid_2):

        time.sleep(1)  


    sys.exit(0)


if __name__ == "__main__":

    run_program()


里面只有两项需要更改(更改路径)

获取路径办法(汉化游戏不得在正版路径下)

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第2张

以上内容全部结束后应当是这样的:

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

尝试运行,你会发现可以正常打开,且程序应当在关闭本体后终止。若不能则检查之前步骤

3.打包:

首先终端中会给出你的目标目录(比如此处C:\Users\lenovo-1>)

打开文件夹位置,将写好的文件(.py)另存到该文件夹中

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

终端输入

python -c "import psutil; print(psutil.__file__)"

获取psutil库的位置

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

得到后再输入

pyinstaller --onefile --add-data "psutil路径" 你编写程序的文件名.py

这时候应当开始打包了(会输出到目标目录\dist中)

成功样例

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张
关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张
关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

双击运行后你会发现可以正常启动游戏(附带一个终端窗口,这个终端窗口不建议用命令去除,会出现警告信息,不美观x)

4.最后将这玩意拖进common\nine_kokoiro里,把原来的文件删了(不删也行,但是原启动项至少得覆盖掉),将新造的exe修改成nine_kokoiro.exe就ok

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

这时候就可以从steam启动游戏记录时长啦

关于部分游戏入正玩盗记录时长的一种解决方案(如九九九)-第3张

ps:1.这个法子应该适用于任何游戏入正玩盗其他方法都失效的情况下

2.有尝试过不加psutil库用tasklist,但是一直有bug,放弃


© 2022 3楼猫 下载APP 站点地图 广告合作:asmrly666@gmail.com