silksong-coop-mod 0.4.102 → 0.4.104

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/INSTALL.txt CHANGED
@@ -3004,7 +3004,112 @@ exe 旁边放一个 dll,让游戏启动时连带加载它。这是所有同类
3004
3004
  · 这条【没有实机测过】。下次在那场战斗里死了回到椅子,看队友身上有没有衣服,再去抢时会不会互相等。
3005
3005
  · 两个人都要装 0.4.102。
3006
3006
 
3007
- ※ 以上一百九十二条【没有实机验证过】。
3007
+ * 【加入的一方少卡一点:mod 不再每一帧都去问 Steam 延迟】(0.4.103)
3008
+ - 以前:屏幕上的延迟数字、队友的人物、房间里每一只同步过来的怪,每一帧都各自去问 Steam 一次
3009
+ "现在延迟多少"。Steam 有时会让这种询问排队等它,怪越多问得越多:
3010
+ · 一个有 11 只怪的房间里,光这一项每帧就要 5~7 毫秒;
3011
+ · 延迟数字自己还把游戏卡住过几次,每次 0.1~0.17 秒。
3012
+ 只有加入的一方会这样,开房的一方不用问。
3013
+ - 现在:后台每 0.5 秒问一次,存下来,游戏里所有地方只读存下来的数。
3014
+ - 注意:
3015
+ · 这条【没有实机测过】。日志里的 [Frames] 行写着 mod 每帧占了多少,可以和以前的对比。
3016
+ · 两个人都要装 0.4.103。
3017
+
3018
+ * 【日志里每分钟记一行网络情况】(0.4.103)
3019
+ - 以前:只有断了 5 秒以上,日志里才写网络怎么样。平时一晚上丢了多少、是哪个方向在丢、
3020
+ 和别的日子比是好是坏,都看不出来。
3021
+ - 现在:两边的日志每分钟各写一行 [Link]:
3022
+ · 这一分钟两个方向各到了几成,最差的一秒到了几成;
3023
+ · 延迟平均多少、最低最高;有几秒一点东西都没收到;中转站换了几次;
3024
+ · 这一边到自己用的那个中转站要多少毫秒。
3025
+ - Steam 只告诉 mod 两头各收到了多少,不告诉路上每一段各丢了多少。
3026
+ 把两边各自到中转站的延迟放在一起看,能看出是哪一段变了。
3027
+ - 注意:
3028
+ · 这条【没有实机测过】。
3029
+ · 两个人都要装 0.4.103。
3030
+
3031
+ * 【队友的动作不再卡在旧动作上】(0.4.103)
3032
+ - 以前:队友每换一个动作(跑、跳、落地、攻击……),mod 只在换的那一刻发一次,走的是丢了不补发的通道。
3033
+ 网不好时丢掉一次,你这边的队友就一直停在上一个动作上:站着还在跑、攻击完定在最后一帧,
3034
+ 直到队友下一次换动作。
3035
+ - 现在:每个包都带上"队友现在在做哪个动作、这是第几次换动作、已经做了多久"。
3036
+ · 编号对不上,就是漏了一次:直接把队友换成现在的动作,从做到的地方接着播。
3037
+ · 比新消息晚到的旧动作不再播,免得把人改回旧动作。
3038
+ · 断线重连之后、队友刚进房间的那一下,也一样会补。
3039
+ - 补不回来的:丢掉的那一次动作附带的特效(比如攻击的刀光)还是看不到,只保证动作本身是对的。
3040
+ · 弹琴例外:影响琴声范围的那件装备有没有带,补动作时会一起补上。
3041
+ - 注意:
3042
+ · 这条【没有实机测过】。日志里每分钟会写一行 [Clips]:补了几次,扔掉了几次晚到的。
3043
+ · 两个人都要装 0.4.103。
3044
+
3045
+ * 【换房间时 mod 少花一点时间】(0.4.103)
3046
+ - 以前:换房间时,mod 要把房间里的物件一个个看一遍,找出要同步的怪,办法是拿物件的名字和名单上的
3047
+ 276 个名字逐个比。每比一次都重新向游戏要一次这个物件的名字,一个物件就要 276 次。
3048
+ · 上次的日志里,加入的一方换一次房间,mod 处理怪的这一步要 0.3~1.7 秒;开房的一方是 0.08~0.23 秒。
3049
+ - 现在:每个物件只要一次名字,记下来再拿去比。
3050
+ - 日志里每次换房间多一行 [Load] Finding the creatures…:这个房间看了多少个物件、建了几只要同步的怪、
3051
+ 每一段各花了多久。改完还剩多少、慢在哪一段,下次的日志里就能看出来。
3052
+ - 注意:
3053
+ · 这条【没有实机测过】。
3054
+ · 只改了 mod 自己的处理,游戏自己加载房间的时间不变。
3055
+
3056
+ * 【会碎的飞虫:另一边也看得到它甩出的刺】(0.4.103)
3057
+ - 以前:有一种飞虫被普通攻击打中后,会先抖一下,再碎开、甩出一圈刺。这圈刺只在跑这个房间的那一方的
3058
+ 游戏里出现;另一方只看到它碎掉,没有刺,看起来就像直接消失了,刺也只扎得到前一方。
3059
+ - 现在:两边都在同一个位置、按同样的角度甩出同样的刺,刺扎到谁、在哪碎掉,两边也一样。
3060
+ - 下面两种是原版本来的样子,不是问题:
3061
+ · 用蓄力攻击、部分丝技、会爆炸的道具这类重击打中它,它会直接碎掉,不甩刺;
3062
+ · 另一种不会甩刺的飞虫,被打死后会消失,两三秒后再飞回来。
3063
+ - 注意:
3064
+ · 这条【没有实机测过】。
3065
+ · 两个人都要装 0.4.103。
3066
+
3067
+ * 【被痰困住的队友:看得到她被裹在痰团里】(0.4.103)
3068
+ - 以前:有的怪会吐痰。被痰困住时,游戏会把角色藏起来,换成痰团里一个被裹住的小人。这个痰团是怪临时吐出来的,
3069
+ mod 在另一边找不到它,所以被困住的人在队友眼里只剩一个名字。
3070
+ - 现在:另一边照着同样的痰团做一个被裹住的小人,放在被困住的人身上,挣扎和挣脱的动作也跟着播。
3071
+ 另一边原本还在飞的那团痰会被收起来,不会多出一团。
3072
+ - 注意:
3073
+ · 这条【没有实机测过】。
3074
+ · 两个人都要装 0.4.103。
3075
+
3076
+ * 【退出游戏时:mod 不再自己关掉 Steam】(0.4.104)
3077
+ - 以前:退出游戏时,mod 会抢在游戏前面,自己把 Steam 关掉;对方断开时最后发来的连接请求,有时既没接也没关,
3078
+ 一直挂着。10 月 17 日房主在主菜单退出时,正好在 mod 关 Steam 的那一刻,Steam 自己的联网部分出错,
3079
+ 弹了崩溃窗口。回主菜单时已经存过档,进度没丢。
3080
+ - 现在:mod 退出时不再关 Steam,等游戏最后按自己的顺序关;没有人接的连接请求会被关掉,不再挂着。
3081
+ 同一个人接连发来的,最多每 3 秒关一次,中间来的最多等 3 秒。
3082
+ - 注意:
3083
+ · 这条【没有实机测过】。
3084
+ · 每个人退出时用的是自己装的版本,两个人都装 0.4.104 才都有这个改动。
3085
+
3086
+ * 【Steam 消息平时由游戏取,游戏停住时 mod 才补上】(0.4.104)
3087
+ - 以前:Steam 发来的消息(比如有人要连你、房间建好了),游戏每一帧取一次,mod 又另外每 17 毫秒取一次,
3088
+ 两边可能同时在取。Steam 规定一条消息处理完、放回去以后才能取下一条,同时取就违反了这条规定,
3089
+ 后果 Steam 没有写明。另外,处理这些消息时会改界面,界面只能在主线程改,可 mod 取到的消息是在它自己的
3090
+ 线程上处理的。
3091
+ - 现在:平时只由游戏在主线程取;游戏超过 1 秒没取时(比如卡住;如果游戏切到后台会停,也一样),
3092
+ mod 才替它取,两边不会同时取。平时这些消息都在主线程处理;只有 mod 代取的那一会儿,还是在 mod 自己的
3093
+ 线程上处理。mod 代取过以后,日志里会有一行「Steam: the game takes Steam's messages again」,
3094
+ 后面写着当时游戏窗口在前台(in front)还是后台(behind)。
3095
+ - 注意:
3096
+ · 这条【没有实机测过】。
3097
+ · 如果日志里有「could not hook where the game takes Steam's messages」,说明这条没生效,mod 会像以前
3098
+ 一样和游戏一起取。
3099
+ · 两个人都装 0.4.104 才都有这个改动。
3100
+
3101
+ * 【联机存档的提示框:换成游戏里文本框的样子,“继续等”不会一按就取消】(0.4.104)
3102
+ - 以前:联机存档的提示用的是游戏报错用的框(一块黑色方块)。等房主的存档、或者开好房等人加入时,
3103
+ 框里只有一个默认选中的“确认”,按一下就不等了(开房时是不开了),所以刚选完存档再按一下确认键就取消了。
3104
+ - 现在:提示框换成游戏里检查带文字的物体时弹出的那种文本框的样子(深色柔边底板,上下各一条花纹,
3105
+ 宽度、花纹大小和位置都照游戏里那个框),按钮用游戏菜单的按钮。等的时候有两个按钮:默认选中的
3106
+ 「继续等」,按了什么都不会发生;「不等了」(开房等人时是「不开了」)要专门移过去选,按返回键也一样。
3107
+ 只是告知一下的提示还是一个「确认」,按返回键也能关。
3108
+ - 注意:
3109
+ · 这条【没有实机测过】,样子要实机看一眼;如果花纹、底板的位置或大小不对,截个图给我。
3110
+ · 这是每个人自己界面上的改动,谁装了 0.4.104 谁就有。
3111
+
3112
+ ※ 以上二百零一条【没有实机验证过】。
3008
3113
 
3009
3114
 
3010
3115
  六、出问题的话
@@ -3025,7 +3130,10 @@ exe 旁边放一个 dll,让游戏启动时连带加载它。这是所有同类
3025
3130
  [State check] —— 两边自动对比出来的不一样的地方
3026
3131
  [Hits] —— 队友的攻击为什么没能在你这边重放
3027
3132
  [Frames] —— 卡顿:哪一刻卡了多久,mod 自己占了多少、是哪部分
3028
- [Link] —— 网络:收不到对方消息的那段时间里,每一秒 Steam 和 mod 各收发了多少
3133
+ [Load] —— 换房间:黑屏多久、时间花在哪一段,mod 自己占了多少
3134
+ [Link] —— 网络:平时每分钟一行,两个方向各到了几成;收不到对方消息的那段时间里,
3135
+ 每一秒 Steam 和 mod 各收发了多少
3136
+ [Clips] —— 队友有几次换动作的消息没到、被补上了
3029
3137
  [Steam] —— Steam 自己关于网络的提示
3030
3138
  遇到两边不一样的情况,最好把两个人的日志都发回来。
3031
3139
 
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # silksong-coop-mod 0.4.102
1
+ # silksong-coop-mod 0.4.104
2
2
 
3
3
  The files a player needs to install a two-player co-op build of **SSMP**, packaged so they can be fetched from
4
4
  a mirror that is reachable inside mainland China. This is not a Node library: nothing here is imported or run
@@ -15,4 +15,4 @@ The BepInEx loader is included, so the install needs no network access at all.
15
15
 
16
16
  The multiplayer mod is the work of [Extremelyd1](https://github.com/Extremelyd1/SSMP). This is a modified copy
17
17
  that adds a shared two-player save; please do not take questions about it to the original author. Distributed
18
- under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `97dffa5`.
18
+ under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `10bd976`.
package/SSMP/SSMP.dll CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "silksong-coop-mod",
3
- "version": "0.4.102",
3
+ "version": "0.4.104",
4
4
  "description": "Offline installer payload for a two-player co-op build of the SSMP Silksong multiplayer mod. Not a Node library.",
5
5
  "license": "LGPL-2.1-or-later",
6
6
  "author": "Candy-649 (https://github.com/Candy-649)",