# POEDOC **Repository Path**: chentp0601/poedoc ## Basic Information - **Project Name**: POEDOC - **Description**: POE Document - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-30 - **Last Updated**: 2024-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 前言 这是马服流放之路的优化文档,如果你的机器卡顿有可能不是机器拉,而是游戏设置不行,游戏优化不行,希望本文能帮助到需要的朋友. # CPU 优化 ## 关闭声音 关闭声音可以有效的降低CPU负载,原理我盲猜一波:音效吃IO,IO高了卡CPU等待时间. 修改方法是:编辑tencent_Config.ini配置文件, 主要修改:channel_count=low,sound_effects_volume2=false 过滤声音最好还是开启不然掉了镜子错过了. ``` C:\Users\Administrator\Documents\My Games\Path of Exile\tencent_Config.ini [SOUND] master_volume2=100 ambient_sound_volume2=false dialogue_sound_volume2=false sound_effects_volume2=false music_volume2=false chat_alert_sound_volume=false reverb_enabled2=false item_filter_sound_volume2=100 mute_in_background=false channel_count=low disable_char_events=true ``` ## 使用内存缓存 imdisk下载地址: https://sourceforge.net/projects/imdisk-toolkit/files/ 使用imdisk 将内存映射到硬盘,提高IO效率,从而减少CPU的IO等待时间. 具体操作步骤: 1) 使用imdisk从内存划分4G(具体大小看内存有多少)映射到Z盘 2) 在Z盘新建文件夹Z:/poecache/ 给POE做缓存,这个大家应该有手都会. 3) 配置POE使用内存的缓存文件夹, 在tencent_Config.ini中 加入cache_directory=Z:/poecache/: ``` C:\Users\Administrator\Documents\My Games\Path of Exile\tencent_Config.ini [GENERAL] cache_directory=Z:/poecache/ ``` ![1724979632057](images/README/1724979632057.png) ## 多核处理器优化 Process Lasso 下载地址: https://bitsum.com/ 如果你的CPU资源富裕,可以在游戏中选择开启多线程. 但是流放的多线程优化一言难尽,所以手动使用Process Lasso为流放之路指定亲和CPU核心. 使用方法先全选所有核,进游戏看帧数卡不卡,卡的话,轮流禁用核心,直到不卡为止. ![1725071206877](images/README/1725071206877.png) ## 腾讯后台进程禁用 不知道腾讯后台在干哈,CPU核IO占用都不高,感觉腾讯的锅其实并不大,不过关掉肯定有提升的. 方法1:通过组策略禁止指定程序运行 运行gpedit.msc,选择用户配置-管理模板-所有设置,不运行指定的windows程序 然后填上如下几个应用,原文好像是在NGA地址也忘了哈哈哈: ``` GameLoader.exe TP3Helper.exe TPSvc.exe TQMCenter_64.exe TQMCenter.exe CrossProxy.exe CrossInstallerExternal64.exe ``` ![1725073143733](images/README/1725073143733.png) ![1725073262670](images/README/1725073262670.png) ![1725073896078](images/README/1725073896078.png) 方法2:管理员权限执行后台脚本循环检测进程,然后杀死腾讯的扫盘后台啥的 这是一次性运行的.bat脚本,还有某UP的ps1脚本,大家可以自己改改 ``` @ECHO OFF taskkill /f /im GameLoader.exe* >NUL 2>NUL taskkill /f /im qbclient.exe* >NUL 2>NUL taskkill /f /im TenioDL.exe* >NUL 2>NUL taskkill /f /im TQMCenter.exe* >NUL 2>NUL taskkill /f /im TQMCenter_64.exe* >NUL 2>NUL taskkill /f /im GameLoader.exe* >NUL 2>NUL taskkill /f /im CrossProxy.exe* >NUL 2>NUL taskkill /f /im wegame.exe* >NUL 2>NUL taskkill /f /im rail.exe* >NUL 2>NUL taskkill /f /im tcls_core.exe* >NUL 2>NUL ``` ``` # # Author: tjxgame@outlook.com # Date: 2023-10-01 18:36:07 # LastEditors: tjxgame # LastEditTime: 2024-06-15 13:42:08 # FilePath: \undefinedd:\Games\Tools\PoeScript\PoeScript.ps1 # Description: 有帮助的话,给作者扫码赞助点吧。B站年度大会员每个月有免费的5B币,也可以给作者充个电。 # # Copyright (c) 2023 by tjxwork, All Rights Reserved. # # ----- ----- 预留设置变量 ----- ----- # 手动指定 Poe 主进程的路径,例如 "D:\Games\WeGameApps\流放之路\PathOfExile_x64.exe" $poeProcessPath = "D:\WeGameApps\流放之路\PathOfExile_x64.exe" # 等待时间,防止过早设置为禁止权限导致无法启动 $waitingTime = 30 # ----- ----- 预留设置变量 ----- ----- # 如果系统提示禁止运行脚本,右键开始菜单Logo,或者组合键 Win+X ,点击 "Windows PowerShell 管理员" 打开窗口,粘贴 Set-ExecutionPolicy RemoteSigned 回车运行即可。 # 窗口风格定义 if ( $Host.PrivateData.GetType().Name -eq "ConsoleColorProxy" ) { $Host.UI.RawUI.WindowTitle = "PoeScript 国服流放之路优化脚本 v1.3 By tjxgame" $Host.UI.RawUI.BackgroundColor = "Black" $Host.UI.RawUI.ForegroundColor = "DarkCyan" $Host.UI.RawUI.WindowSize = New-Object System.Management.Automation.Host.Size 100, 26 $Host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size 100, 100 } # 检查是否以管理员权限运行 if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) { # 不是管理员便创建提权进程 Start-Process -FilePath PowerShell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File $($MyInvocation.MyCommand.Path)" -Verb RunAs Exit } # 检查 Poe 主进程路径,如果没有手动指定 Poe 主进程的路径,就从注册表获取 if ( -not $poeProcessPath) { if ( Get-ItemPropertyValue -Path "Registry::HKEY_CURRENT_USER\SOFTWARE\Tencent\流放之路" -Name "setup_x64" -ErrorAction SilentlyContinue) { $poeProcessPath = Get-ItemPropertyValue -Path "Registry::HKEY_CURRENT_USER\SOFTWARE\Tencent\流放之路" -Name "setup_x64" -ErrorAction SilentlyContinue } else { $poeProcessPath = Get-ItemPropertyValue -Path "Registry::HKEY_CURRENT_USER\SOFTWARE\Tencent\流放之路" -Name "setup" -ErrorAction SilentlyContinue } } $poeProcess = Get-Item -Path $poeProcessPath -ErrorAction SilentlyContinue # 确认 Poe 主进程路径 的可用性 if (-not $poeProcess) { Clear-Host Write-Host "没有获取可用的 PathOfExile_x64.exe 或者 PathOfExile.exe 路径。" Write-Host "请右键本脚本,点[编辑]。编辑脚本代码顶部的预留变量 `$poeProcessPath = `"`" " Write-Host "例如:`$poeProcessPath = `"D:\Games\WeGameApps\流放之路\PathOfExile_x64.exe`" " Start-Sleep 15 exit } # 检查 任务计划 中 PoeScriptAuto 是否存在, 存在就删除 if (Get-ScheduledTask -TaskName "PoeScriptAuto" -ErrorAction SilentlyContinue) { Write-Host "`n发现任务计划中有 PoeScriptAuto 的启动项,可按下方提示删除`n" Unregister-ScheduledTask -TaskName "PoeScriptAuto" -ErrorAction SilentlyContinue } # ----- ----- 以下为功能部分 ----- ----- Clear-Host # 循环等待处理 while ($true) { # 获取 Poe 主进程文件 的权限状态 $poeProcessAcl = Get-Acl -Path $poeProcess $poeProcessAclAllow = -not [bool]($poeProcessAcl.Access | Where-Object { $_.IsInherited -eq $False -and $_.IdentityReference -eq "Everyone" -and $_.AccessControlType -eq "Deny" }) # 获取 Poe 主进程文件 的运行状态 $poeProcessRunning = [bool](Get-Process -Name $poeProcess.BaseName -ErrorAction SilentlyContinue) # 启动提示 if ( $firstStart -ne $false ) { Write-Host "觉得好用的话,请考虑赞助支持一下吃不上饭的作者吧!`n" Write-Host "如果打开游戏时提示拒绝访问,请再次运行脚本,并保持脚本在后台运行,或者直接使用 PoeScriptAuto 版本" Write-Host "请仔细阅读 使用前必看.txt ,里面有大部分问题的解决方法。以及翻阅视频评论区或在评论区下留言。`n" Write-Host "迫于吃不上饭,作者接受付费远程处理、包括但不限于:脚本问题、游戏优化问题、电脑配置咨询等问题。" Write-Host "如无付费远程咨询打算,请勿添加好友。QQ:303470445,添加时请说明来意。`n`n" Write-Host "$(Get-Date -Format "HH:mm:ss") 脚本已经启动,等待 $($poeProcess.BaseName) 进程中……`n" $firstStart = $false } # Poe 主进程文件 在线 ,并且权限是“允许”,在等待时间后将进程文件权限改为禁止 if ( $poeProcessRunning -and $poeProcessAclAllow ) { # 状态切换的日志提示 if ($denyStatus -ne $true) { Write-Host "`n$(Get-Date -Format "HH:mm:ss") 找到在运行的 $($poeProcess.BaseName) 进程,$waitingTime 秒后将文件权限设置为禁止`n" } Start-Sleep $waitingTime Write-Host "$(Get-Date -Format "HH:mm:ss")" icacls $poeProcess /deny Everyone:F $denyStatus = $true } # Poe 主进程文件 不在线 ,并且权限是“禁止”,在指定秒数后将进程文件权限改为允许 if ( (-not $poeProcessRunning) -and ( -not $poeProcessAclAllow) ) { # 状态切换的日志提示 if ($denyStatus -ne $false) { Write-Host "`n$(Get-Date -Format "HH:mm:ss") 没有在运行的 $($poeProcess.BaseName) 进程,且文件权限为禁止,将还原为可执行权限`n" } Write-Host "$(Get-Date -Format "HH:mm:ss")" icacls $poeProcess /grant Everyone:F $denyStatus = $false } # Poe 进程在线情况下,发现后自动杀死 CrossProxy.exe 、CrossInstallerExternal.exe 、CrossInstallerExternal64.exe if ( $poeProcessRunning -and (Get-Process -Name "CrossProxy" -ErrorAction SilentlyContinue) ) { Stop-Process -Name "CrossProxy" Write-Host "`n$(Get-Date -Format "HH:mm:ss") 找到在运行的 CrossProxy.exe 进程,已尝试杀死" } if ( $poeProcessRunning -and (Get-Process -Name "CrossInstallerExternal" -ErrorAction SilentlyContinue) ) { Stop-Process -Name "CrossInstallerExternal" Write-Host "`n$(Get-Date -Format "HH:mm:ss") 找到在运行的 CrossInstallerExternal.exe 进程,已尝试杀死" } if ( $poeProcessRunning -and (Get-Process -Name "CrossInstallerExternal64" -ErrorAction SilentlyContinue) ) { Stop-Process -Name "CrossInstallerExternal64" Write-Host "`n$(Get-Date -Format "HH:mm:ss") 找到在运行的 CrossInstallerExternal64.exe 进程,已尝试杀死" } # # 修复左键无法点击的问题 # if ( $poeProcessRunning -and (Get-Process -Name "qbclient" -ErrorAction SilentlyContinue) ) { # Stop-Process -Name "qbclient" # Write-Host "`n$(Get-Date -Format "HH:mm:ss") 找到在运行的 腾讯浏览服务组件(qbclient.exe) 进程,已尝试杀死" # } # 循环为1秒的刷新率 Start-Sleep 1 } ``` # GPU 优化 ## 帧率设置 垂直同步关闭,三倍缓冲开启,启用前景帧率锁定为N (这个N要小于等于显示器的帧率,多的帧会被丢弃是性能浪费) ![1725071534997](images/README/1725071534997.png)![1725071568771](images/README/1725071568771.png) ## 屏蔽特效 poelight 下载地址:https://github.com/dotsx/PoeLight 使用poelight移除一些特效,前排警告:可能封号,谨慎使用! ![1725073650368](images/README/1725073650368.png)