《舰队收藏 肝帝模拟 改》已知问题与FAQ

新用户请先阅读《使用说明》,不要先看这个。

请善用搜索功能(按Ctrl+F),但可能会因为用词不同而搜索不到。


已知问题(仅最新版本)

简述

这里的已知问题可能是bug,也可能不属于bug。但都是最新版本中无法用通常手段解决的问题。

最新版本中修复了的问题不会在这里写出来,所以遇到问题,请先检查更新。

这些问题可能是最新版本新引入的,也可能是过去版本就存在了的。内容会随用户报告,随时更新。

正文

  • 报错“The type initializer for ‘OpenCvSharp.NativeMethods’ threw an exception”

    1.3.3.0版本升级了OpenCvSharp,但这个版本的OpenCvSharp看来是有问题的,用不支持AVX指令的CPU的用户会遇到这个错误。遇到了可以先用Github上的1.3.2.1版本(该版本需替换附带的模板图片解决入渠报错的问题)。我下个版本会把OpenCvSharp退回到旧版本。

  • 出击到资源点(如1-6)不会自动点击返回

    可能是改了UI吧,替换一下模板应该就可以。之后处理。

  • 装备换错 或者 报错“××的××装备槽为空,不可以为××装备槽更换装备,更换装备失败”

    换装备功能依赖ExtraData.json里的外部数据。如果数据有误或者舰船、装备较新在数据里没有则可能换错。极端情况下如果基地航空队编成数据没有刷新也有可能换错,可以尝试进入“海域选择”页面后再试。我偶尔会在本体下载页面发布更新的ExtraData.json文件,请下载后放到/data文件夹下替换同名文件,之后我会想办法把这个功能做成可以自动更新。如果新的ExtraData.json还不能解决问题,请用关于页面的运行Python脚本功能运行”配套资料”里的排查用python脚本。然后在Github Issue里报告给我错误信息,如果其他人报告了相同的错误,请不要新建Issue,而是在原有issue下方评论“+1”。

  • 启用插件WinAPI模式后,出击偶尔会卡住(比如卡在罗盘娘那),超时重试也失效

    原因不明,调试发现所有流程执行正常,本体发出点击指令后,游戏本身却并没被点击。我怀疑是真正的鼠标指针造成了干扰,需要收集更多情报,来判断是什么影响了执行。

  • “雷达伏击点”无法判断大破

    判断大破依赖poi的算血能力,需要后续再确认当前版本api(而非“未卜先知”插件)是否适配了雷达伏击点。


FAQ(常见问题解答)

简述

此处的问题是不属于软件Bug的问题。

正文

使用前

  • 会不会被Ban / 什么使用频率合适

    首先,有一丁点怕被Ban的人一概不许用本程序。手动都有Ban的更何况自动,我不想再背黑锅。最安全的就是立刻弃坑,绝对不会被Ban。其次,做好经常大量氪金的准备,练级多了肯定是要买戒指的,二号机养多了肯定要买船位的……在此基础上,目前每天挂约20小时远征,24小时内出击数百次以内,再多会猫。禁止用脚本冲战果,这会破坏游戏公平,非常危险。

  • 会不会开发74EO/KCV/…的插件

    本体稳定以后会开发。现在没精力,api也总改,时机不合适。以后还会开发一个通用插件,原理类似旧版脚本《KCPS》,自己设定句柄,另外还要拦截游戏数据。Chrome浏览器可能不适合开发此类插件,很可能不会开发对应的插件。

  • 可以在Mac上运行吗?会不会有Mac版

    仅Windows系统可用。我没有Mac,也不会Mac开发,也不打算学。程序本身设计的时候是考虑了跨平台的。顶多以后闲得没事了开发Linux(Ubuntu)版。

  • 游戏分辨率要设置多少

    本程序使用模糊匹配,原则上不限制分辨率。但过低的分辨率无法识别。分辨率虽然可变,但画面长宽比必须为准确的5:3。测试时使用了1200×720(100%)和800×480(67%)两种分辨率。如果无法识别,请调节分辨率后再试。有些用户那里67%部分功能会卡住,得100%,所以建议刚开始尝试时先试100%。

  • 可否开启浏览器的“硬件加速”功能

    配合poi插件,在poi浏览器上可以开启。(其他浏览器插件待开发以后再分别补充)

  • 能否使用魔改

    游戏内自带的UI主题可随意使用,但UI魔改不会支持,其他的魔改可能不会影响本程序运行。使用了UI魔改会不能识别画面,需自行制作并替换模板图片。

运行

  • 双击程序后没有反应

    《使用说明》里写了,要装最新的.net core。遇到这个问题的都是不看说明就用的。

  • 启动时弹窗:“配置系统未能初始化” / 运行时弹窗报错:“配置系统未能初始化(……” / “……的构造函数执行符合指定的绑定约束的调用是引发了异常”

    读取窗口位置和大小设置时出错,怀疑是保存时保存的数据不完整,具体导致问题的原因不明,个别用户那里偶发。解决方法是删除{系统盘}:\Users\{你的用户名}\AppData\Local\KancollePlayerSimulatorKa这个文件夹。

  • 错误提示:与浏览器插件通信失败:由于目标计算机积极拒绝……
    下方友情提示都告诉你要装浏览器插件了。说到这份上还不明白就回去看《使用说明》去,第一部分没几行字都不愿意看吗。

  • 错误提示:没有查找到游戏API“/kcsapi/api_start2/getData”的数据

    插件的说明里写过了,安装、更新、重新启用插件后要刷新游戏。这个API是启动游戏时才会发送的常量数据,经常用到。数据已经做了缓存,所以这个错误只有在第一次使用时没有缓存数据才会报。出这个报错的人,很可能是刚看过安装说明却没重视。

  • 错误提示:“获取数据失败:×××××××”

    插件报错了。如果写的是“浏览器插件内部错误”的话,属于插件内部运行时发现错误。对于poi插件,打开poi的“开发者工具”,选择“Console”选项卡,可以看到报了啥错。

  • 错误提示:“Pointer xxxx failed (status code InternalServerError)”

    插件报错,无法完成鼠标操作。常见的原因是poi插件选中了“使用基于Windows操作系统API的鼠标模拟机制”功能,然后poi正好在近期更新过而插件没来得及更新,此时这个功能会失效,导致报错。关掉这个选项接着用就行了,或者换回之前版本的poi。如果你没更新过poi,更新完插件报错了,说明你该更新poi了。poi插件的这个功能在每次poi换electron版本时都要重新编译,我会在认定poi最新正式版稳定后让插件切换到仅支持最新版。

  • 新版太复杂了,用不明白,要是像旧版那么简单就好了

    新版功能比旧版强,强在更灵活,要灵活就必然更复杂。但实际上,弄懂了“关联出击”的框架,之后就信手拈来了,根本没难度。实在头疼,我不是发了范例配置吗,下载下来,用一用再照葫芦画瓢还不会吗。要我说,那些说新版用不明白的人都是懒。看着眼花的功能是挺多的,但那些用不上的功能,前期根本没必要去碰,给自己找麻烦干啥。

  • 软件提示我改端口,如何改端口

    问出这个问题的人一概不建议改端口,就用默认的5277。要选一个没被占用的端口。很多这类人改了已经占用的端口,比如岛风Go的8099,后果就是直接没法用了。改的时候要同时改程序里的和浏览器插件里的端口。至于怎么知道端口被没被占用……改完了不好使的就是被占用了的。好几万个端口可以选,怎么就那么容易改到被占用的?

  • CPU占用率过高/运行速度慢

    启用“设置”中的“限制多核加速并行度”,并设置合适的值。数值越小(但要≥1)线程数越少,可以占用的CPU资源越少。因为计算量一定,CPU越差、越老执行越迟钝。另外每次启动软件时间越久运行速度越快。软件会根据本次启动以来的使用模式,优化页面查找逻辑。本程序全程使用模糊图像匹配,必然需要大量计算资源。尤其是出击过程,接下来会显示的画面不确定需要不停地查询比对(查询间隔可设置)。不限制并行度时,会使用全部CPU资源,所以可能把CPU全占掉。现在这套方案游戏缩放后仍可正常运行,不会再采用旧版(KCPS)那种限制极多的方案,即使它要求的计算量很少。

  • 内存占用过高(GB级别)

    “设置”中限制多核加速并行度到合适的值可以降低峰值内存占用。.net的内存由GC自动控制,如果你的电脑内存很大,GC可能不会那么勤快地去清理内存,结果就导致内存占用看起来很大。内存装在电脑上就是拿来用的,不用太在意。

  • 运行过程中卡住,不继续操作游戏

    打开“设置”中的“等待超时或发现出猫时尝试重新执行”选项。模拟鼠标事件偶尔可能会因为外部影响而失败,所以才会有这个功能。

  • 开始运行时总是报错”无法定位当前页面,导航失败” / 如何让程序在执行过程中等待用户操作完毕

    大部分执行单元的“高级设置”中有“开始动作前先等待返回母港”这一选项,选中即可。但要注意此时如果选中了等待超时尝试重新执行&允许刷新游戏页面,那可能会在你出击过程中刷新游戏,建议手动时关掉这俩选项之一。

  • log在哪看

    “关于”中的“打开控制台输出窗口”可以看到本次运行程序的log。过往的log保存在log文件里,默认路径是data/logs。log.xml是log4net的配置文件,修改它可以改变log的设置。

  • 启动过程特别慢,要很久才显示画面

    配置初始化需要时间,比如执行附加脚本的初始化。请关闭平时不用的配置。

  • 母港的“补给”按钮总是激活的状态

    不影响使用。你要是看着难受,就把“隐藏设置”中的MoveAwayPointerAtHomePort设置项打开,详见《使用说明》。

  • 为什么不加一个固定分辨率选项,选了之后就不用动态判断了,否则自动适配不同的分辨率CPU占用太高了。

    问这个问题的都是想得太简单的。本程序使用图片匹配,分辨率不同只是多了个缩放步骤罢了,缩放是GPU干的不花时间。所以不管固定还是不固定,计算量都是一样的。至于旧版为什么执行得那么省CPU还很快,关键原因不是因为它要求固定分辨率,而是因为它匹配画面的时候只匹配指定位置的一个像素,那当然更快啊。而且不光是分辨率会影响画面,其他设置也会影响,你以为固定了就可以换成旧版的那种算法了吗。为了易用性,就得是新版的这种方法。

  • 如何多开

    本软件可以多开,但需要用多份程序,每一份程序独立放到一个文件夹里。注册时需要多个注册码。端口分别设定。另外浏览器需要支持多开。至于poi怎么多开,我不清楚。局域网上的多个终端可能是一种解决方法。

注册

  • 会不会出买断模式

    不会。在线验证需要服务器。注册服务是我月租的,我不可能为了“买断”这种承诺“永远”月月付月租。至于不卖更长时间的注册码,是因为我担心会有不可抗力影响脚本将来的维护,卖的码时间太长的话,遇到这种情况处理起来非常棘手。90天是权衡利弊后的时长。每次买嫌麻烦倒是可以一次多买几个备着。

  • 更新后变成了“试用”

    更新时没有保留配置文件。详见《使用说明》“注册”这一部分。

  • 注册后正常运行一段时间后发现注册状态变成了“试用”

    软件运行过程中会隔一段时间检查一次注册状态,如果多次无法完成检查则会变回试用状态。

  • 注册失败,提示“您已在另一机器上注册,请解绑”、“注册码绑定错误”

    注册码可以换电脑登录。但需要关闭其他电脑上的实例。点击关闭按钮关闭软件时,软件会在后台解绑,非正常关闭软件却不会解绑。可等待3小时后自动解绑,或者在原电脑上重新打开并正常关闭软件解绑。更换个别硬件也可能会被识别为另一台电脑,遇到此问题时操作相同。如果你没换电脑登录却遇到此类错误,请检查后台是否有残留的KCPS进程,有的话强制结束后再试。

  • 注册失败,提示“该注册码已在本机注册,请勿重复注册”

    一个注册码同时只允许在一台电脑上登录一个实例。旧的实例没有关闭会出现这个错误。

基础远征

  • 只能收发一个舰队的远征

    需要添加多个“基础远征”执行单元,每个执行单元对应一个舰队。

  • 报错“舰队非空闲,不可以发出远征”

    两种可能:①你忘了改执行单元的舰队设置,导致几个执行单元都准备发出同一个舰队的远征。②你系统时间不准确,导致高级设置中默认的提前随机最多60秒收远征对你来说提早太多了。

单次出击

  • 无法出击活动海域

    请参阅《使用说明》中“期间限定海域”部分。

  • 没有找到设置“支援舰队”/“基地航空队”/“路线分歧”的选项

    选了需要设置这些的海域才会显示这些设置项。

  • 陆航发不出去(选不中被陆航面板遮住的点)

    对于使用poi插件的用户,poi插件中改为使用“基于Windows操作系统API的鼠标模拟机制”。但即使选中这个选项,也有概率因为物理的鼠标的影响导致选不中。另一种解决方法是把鼠标放到游戏画面左侧不要动,陆航面板就能每次自动切换到右侧了。

  • “条件类型”的“地图点”的“条件值”如何填写

    应填写数字。值在出击过程中见poi浏览器右下角,也可以在poi的“航海日志”插件里查看。注意,数值并非一一对应字母顺序(如A点对应1、B点对应2)。一个字母的点从不同路线进入,数字编号也会不同。

  • “战斗场数”如何计算

    当前战斗场数,初始为1,每次选择“进击”后加1。不需要选择进击撤退的步骤都不会导致当前战斗场数变化,如敌方空袭基地航空队。实际战斗之前的操作,如选择路线等,在“条件类型”为“战斗场数”时,设置时也依照此规则。

  • 出击过程中因等待超时报错停止(或刷新游戏页面)

    网络不畅,或者途中某个战斗点的战斗动画过长且期间画面变化不大,会造成等待超时。请稍微增加“设置”-“执行”-“等待超时”中的时间长度后再试。

关联远征

  • 满足了“自动停止条件”,远征还是被发出去了

    “⑤循环”排在“④发出远征”之后。按照“每循环按顺序执行各个步骤”的规则,“自动停止条件”的判定发生在发出远征之后。每循环的结尾是发出远征之后,不是接收远征之后。所以执行逻辑没问题,是你理解错了。

关联出击

  • “根据出击结果”里的条件达成却没有自动停止

    记录战斗结果的阶段发生在每场战斗结束显示评级的时候。如果这时用户手动点击游戏,会干扰程序运行,跳过了记录战斗结果的阶段,所以该功能会失效。

执行单元

  • 优先级的数字越大优先级越高还是越小越高?

    数字越大优先级越高。

  • 优先级如何调整?

    一般使用没必要调整,默认的优先级就行。但也确实有需要调整的个别情况,当真的遇到预期以外的行为时再根据后面的描述改就行。首先这里明确一下,各执行单元设置中的优先级设置的是其子任务的优先级,等待返回母港和返回提督室这两个子任务优先级默认最低且不可修改。当任务队列中同时有多个待执行的任务时,程序会选取优先级最高的任务执行。当有多个同优先级的任务时,程序会随机(实际上不是随机的)选取任务执行。因为程序执行的参数包装在提交了的任务中(写明了“以上设置的修改对执行中的任务也有效”的除外),任务在等待执行的过程中,可能会因为前面执行了其他任务导致该任务包含的参数不再有意义。所以在同时提交多个任务的场景下(如同时触发多个不同功能的执行单元),有可能因为执行顺序导致最终的效果与预期不符合,这时就要按照预期修改优先级避免冲突。

  • “启用”、“触发”、“禁用”有什么区别?

    “触发”一个执行单元时,如果这个执行单元没有被启用则会先启用再触发(也就是说触发附带了启用)。而“启用”只启用,不触发。启用与禁用的区别是该执行单元能否接收到内部广播的事件,进而做出反应。禁用不仅能够阻止执行单元接收消息,若执行单元正在执行或等待执行某个任务,则禁用的同时还会立即取消这些任务。触发则是直接运行执行单元的默认逻辑,但仅执行单元没有在工作(即内部状态机为默认状态)时才可以触发。

  • 为什么设置了“触发条件”却没有触发?

    检查①检查代码(包括“使用模板”自动生成的代码)有没有错误②执行单元是否“启用”③执行单元是否“启用附加触发条件”④触发时执行单元是否正在工作(“带默认触发条件”的执行单元运行时会屏蔽“附加触发条件”)。