silksong-coop-mod 0.4.42 → 0.4.43
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 +128 -1
- package/README.md +2 -2
- package/SSMP/SSMP.dll +0 -0
- package/package.json +1 -1
package/INSTALL.txt
CHANGED
|
@@ -521,7 +521,129 @@ exe 旁边放一个 dll,让游戏启动时连带加载它。这是所有同类
|
|
|
521
521
|
等的时候按跳跃键就不等了,人站起来,想拿随时可以再去拿。
|
|
522
522
|
队友已经拿回衣服了,就不用等,直接抢。
|
|
523
523
|
|
|
524
|
-
|
|
524
|
+
* 【棘刺怪:刺卡在半空、打着打着打不到了:修了】
|
|
525
|
+
- 刺卡在半空、只有一根朝下(只出现在房间客机那边):
|
|
526
|
+
棘刺怪长出来的几根刺,在游戏里名字都一样。房间主机那边每长出一根,就把它转到自己的方向;
|
|
527
|
+
房间客机照着做的时候是按名字找刺的,每次找到的都是第一根,
|
|
528
|
+
结果第一根被转了好几遍,其余几根一直朝下,叠在同一个位置。
|
|
529
|
+
刺和刺之间是会互相撞的,射出去的一瞬间就撞在一起停住了,看起来就是半空里卡着一根朝下的刺。
|
|
530
|
+
(上一版说「方向也对」,其实没对。)
|
|
531
|
+
现在房间客机转的就是自己刚照着长出来的那一根,几根刺的方向、射出去的样子都和房间主机那边一样。
|
|
532
|
+
- 打着打着打不到了(最后一下是房间客机打的时候):
|
|
533
|
+
棘刺怪的血打光以后,会先把身体关掉(从这时起就打不到了),再从「挨了一下」之后进入的状态里自爆。
|
|
534
|
+
房间客机打出的最后一下,传到房间主机那边只是「血没了」,怪并不知道自己挨了打;
|
|
535
|
+
它那时要是还在闲逛、没发现人,就会一直浮在那里:不炸,也打不到,两边看到的都一样。
|
|
536
|
+
现在房间客机打出最后一下时,房间主机那边的怪会先收到「挨了一下」,和被房间主机打死时一样,照常自爆。
|
|
537
|
+
这一点对所有怪都一样:被房间客机打死的怪,房间主机那边在它死之前也会先收到「挨了一下」。
|
|
538
|
+
- 墙上插着的、能打碎的那种刺,以前被模组当成了棘刺怪本身,房间客机打它没反应。现在两边都能打碎。
|
|
539
|
+
|
|
540
|
+
* 【房间客机那边的怪:离得很远很糊、身体不动、场景没反应、有时打不到:修了】
|
|
541
|
+
这几个问题是在一场 boss 战里一起发现的,但都是模组整体的毛病,很多怪都受影响,这次一起修了。
|
|
542
|
+
- 离得很远、很模糊(但能打到):
|
|
543
|
+
怪往背景里退、或者从背景里冲出来,只是在「前后」这个方向上动。
|
|
544
|
+
模组以前只同步上下左右,前后用的是房间客机自己那份,而那份常常停在半路:
|
|
545
|
+
比如 boss 从背景里升起来的时候,客机那边的 boss 就一直停在远处的背景里打完整场。
|
|
546
|
+
现在前后也跟着房间主机走。会飞进背景、从背景里出来的怪有很多种,这次都一起修了。
|
|
547
|
+
- 身体不动(看不到横扫、砸地这些动作):
|
|
548
|
+
有几种怪(其中有几个 boss)的身体动作是用另一套动画系统播的,模组以前完全不同步这一套,
|
|
549
|
+
房间客机那边只看得到它摆着一个姿势不动。现在同步了。
|
|
550
|
+
- 场景没反应(地板不碎、天上不掉石头):
|
|
551
|
+
boss 打碎地板、让石头从天上掉下来,都是它去指挥房间里的东西。
|
|
552
|
+
房间客机那边的怪找不到这些东西,所以什么都不会发生。
|
|
553
|
+
现在告诉客机「是哪个场景里的哪一个东西」,客机那边也会碎、会掉,伤害也一样会打到人。
|
|
554
|
+
- 怪对整个房间「喊一声」,房间里的机关跟着动:
|
|
555
|
+
很多怪会向整个房间广播一个消息,比如镜头换个取景、boss 被打晕时碎掉的地板马上长回来、
|
|
556
|
+
空中的石头炸掉、灯亮起来、音乐和人群跟着变。以前只有房间主机那边的房间听得到,客机那边这些都不会发生。
|
|
557
|
+
现在客机那边的房间也会跟着动。和角色本人有关的那几种(被打中、被抓住、弹反、跳蚤小游戏的得分之类)不传,
|
|
558
|
+
因为那是房间主机自己的角色身上发生的事,传过去会变成客机的角色也「被打中」「被抓住」。
|
|
559
|
+
- 有时打不到:
|
|
560
|
+
很多怪藏起来、钻地、无敌的时候,会换到一个「打不到」的碰撞层,出来再换回来。
|
|
561
|
+
模组以前不同步这个,房间客机那边的怪一直停在它一开始的层上:出来了也打不到,藏着反而打得到。
|
|
562
|
+
现在同步了,后进房间的人也会拿到当前的状态。之前一些「这只怪怎么都打不到」,可能也是这个原因。
|
|
563
|
+
这一版改了同步的数据格式,两个人都要装同一个版本(版本不一样会进不了房间,模组会提示)。
|
|
564
|
+
|
|
565
|
+
* 【房间客机那边的怪:看不到变色和闪光、听不到叫声、镜头不跟着震:修了】
|
|
566
|
+
这些以前只在房间主机那边发生,房间客机那边的怪是「哑的」:
|
|
567
|
+
- 声音:怪的叫声、喊声,还有很多从一组声音里随机挑一个来放的音效(攻击、落地、蓄力之类),
|
|
568
|
+
以及声音的淡入淡出、循环、停止。
|
|
569
|
+
- 变色和闪光:怪蓄力时变亮、变红,淡出、淡入,身上一闪一闪,怪身上的光变化。
|
|
570
|
+
- 镜头:怪砸地、咆哮、大招时的镜头震动和白闪,包括一直震到被叫停的那种。
|
|
571
|
+
现在这些房间客机那边也都有了,和房间主机同时发生。网络卡了、补发旧数据时,早该停的震动和变色也不会卡着不停。
|
|
572
|
+
例外:怪抓住、刺中、打伤房间主机的角色时(连同紧接着的那一整套动作)的震动、白闪,以及在那个角色身上放的声音,
|
|
573
|
+
只留在房间主机那边——那是打在房间主机角色身上的效果,客机的角色并没有被抓住。咆哮的震动和声音两边都有。
|
|
574
|
+
另外,整个画面变黑、变模糊那种「全屏过场」不传:那是房间主机那边自己的过场,
|
|
575
|
+
传过来会把客机的画面也盖住。
|
|
576
|
+
|
|
577
|
+
* 【场景里被打会有反应的东西(会炸的石头、灵丝轴、墙、宝箱、铃、拉杆、藤蔓之类):两边一定一起变】
|
|
578
|
+
以前只有一部分东西(可破坏物、拉杆、草、装钱的袋子等)是「打的人把这一下发给对方,对方原样重放」,
|
|
579
|
+
其余的全靠「你屏幕上队友那一刀的复制品」刚好砍到才算。复制品画在你的游戏认为队友所在的位置,
|
|
580
|
+
和队友实际的位置差一点点,擦边的一刀就会落空;有的东西还只在「这台游戏自己的角色」站在旁边时才认这一下,
|
|
581
|
+
所以会出现「队友那边炸了,你这边没炸」。这不是丢包。
|
|
582
|
+
现在场景里所有被打会有反应的东西都改成:打的人把这一下发过去,对方原样重放。
|
|
583
|
+
刀、扔出去的工具、技能放在场景里的攻击都算。
|
|
584
|
+
「当时站没站在旁边、站在墙的哪一边」这类判断,大多数也按打的人那边算;
|
|
585
|
+
少数东西直接看「这台游戏自己的角色」站在哪,这种在你这边重放时还是看你的角色,偶尔可能对不上。
|
|
586
|
+
很多东西(单向墙、宝箱、铃、拉杆、藤蔓等)不是靠「挨打」、而是靠「刀碰到」来反应的,这些也一样:
|
|
587
|
+
打的人那边刀碰到、东西真的有了反应,才发过去让对方重放;东西没认这一下(比如站得太远、打错了边),就不发。
|
|
588
|
+
队友那一刀的复制品只负责画出动作,不再碰任何场景物件。
|
|
589
|
+
- 给东西的规则不变:直接给的丝和钱只给打的人(以前队友打灵丝轴,你也会白拿丝,这次一起修了);
|
|
590
|
+
掉在地上的东西两边各掉一份,各捡各的。
|
|
591
|
+
- 把人弹起来的泡泡和蘑菇荚、回血的脓包和飞虫、打墙时的弹刀、砍尖刺冒的火花,只和打的人自己有关,
|
|
592
|
+
不同步,各玩各的。
|
|
593
|
+
- 重放永远不会作用到你自己的角色:不会把你弹起、推开、弄伤,也不会给你东西。
|
|
594
|
+
- 怪物不在这次改动里:同步的怪本来就是把打的结果发过去。
|
|
595
|
+
|
|
596
|
+
* 【新增:两边状态自动对比,只写日志,不改游戏】
|
|
597
|
+
两个人在同一个房间时,两边的游戏每隔几秒互相核对一次这个房间的状态:
|
|
598
|
+
场景物件(墙、石头、拉杆、宝箱、灵丝轴、草……)现在是什么样、存档里记下的世界变化、
|
|
599
|
+
怪物在不在、剩多少血、共享的剧情标记。
|
|
600
|
+
某样东西两边不一样,而且两边都已经保持了好几秒(说明不是消息还在路上),
|
|
601
|
+
日志里就会写一段 [State check]:两边各是什么、各保持了多久、谁是房间主机、两个人站在哪,
|
|
602
|
+
以及最近两分钟里这个东西上两边来回过哪些攻击、重放了没有、有没有反应。
|
|
603
|
+
以后遇到「你那边变了我这边没变」,不用再靠你们回忆和描述,日志里直接有。
|
|
604
|
+
- 有些东西本来就会不一样(只认自己角色站位的区域、正在说话的角色、随机乱动的小东西),
|
|
605
|
+
这些不单独报,只在离开房间时汇总列一下。
|
|
606
|
+
- 队友的攻击在你这边没法重放时(找不到那个东西、那个东西在你这边是关着的等),
|
|
607
|
+
日志里也会写 [Hits] 说明原因。以前这种情况是悄悄跳过的。
|
|
608
|
+
- 流量很小:平时每 4 秒一条几百字节的摘要,只有对不上的时候才多发一点。
|
|
609
|
+
|
|
610
|
+
* 【队友的「残影」:修了】
|
|
611
|
+
你刚离开一个房间、队友又恰好在这时进了那个房间,服务器还以为你在那里,
|
|
612
|
+
会告诉你「队友进来了」——可你已经到了下一个房间。
|
|
613
|
+
结果下一个房间里会多出一个一动不动的队友,而且所有「等两个人都到」的地方都当队友在场,
|
|
614
|
+
会一直等一个其实不在的人,直到你再换一次房间。
|
|
615
|
+
两个人的日志里确实出现过(701 次换房间里有 3 次)。
|
|
616
|
+
现在「谁进了房间」的消息带上了房间名,和你所在的房间对不上就直接丢掉。
|
|
617
|
+
这一条改了同步的数据格式,两个人都要装这一版。
|
|
618
|
+
|
|
619
|
+
* 【boss 开打前,两个人可能互相干等:修了】
|
|
620
|
+
有的 boss 要等两个人都走完开场才开打。boss 只在房间主机的游戏里真正运行,
|
|
621
|
+
它开场说的话会发给另一个人,另一个人按自己的节奏看,boss 不会停下来等。
|
|
622
|
+
房间走到开打那一刻时,还没看完这些台词的一方先不算「看完了」,这是对的;
|
|
623
|
+
但以前看完之后,没有任何地方再补上这一句,两边就一直互相等,直到有人离开房间。
|
|
624
|
+
(这和「两个人都进了 boss 范围」是两回事,那个是另一条消息,没有问题。)
|
|
625
|
+
现在台词一看完就会告诉对方。等人的时候每 30 秒提示一次,和其他等人的地方一样。
|
|
626
|
+
|
|
627
|
+
* 【两个人都要选「是」的地方(接愿望、开始赛跑):队友收回之后,你这边还记着队友的「是」:修了】
|
|
628
|
+
队友先选了「是」在等你,后来又收回了(选了「否」、对话结束、等超时、或者离开了房间),
|
|
629
|
+
你这边以前不知道,还当队友在等。你这时再选「是」,就会直接成立,
|
|
630
|
+
但队友那边已经不算了,变成只有你一个人接了愿望、或者只有你开跑。
|
|
631
|
+
现在队友一收回,你这边马上知道,聊天框会说「X 的「是」已经不算数了」。
|
|
632
|
+
|
|
633
|
+
* 【赛跑:两个人都开跑以后,两边会不停地互相发「我准备好了」:修了】
|
|
634
|
+
不影响玩,只是白占网络、刷日志。现在回一次就停。
|
|
635
|
+
|
|
636
|
+
* 【拿回衣服:你蹲着等的时候离开了房间,队友那边还当你在等:修了】
|
|
637
|
+
以前队友这时去拿,会以为两个人都伸手了,结果只有队友那边抢了。
|
|
638
|
+
现在你一离开,队友那边就知道你不等了。
|
|
639
|
+
|
|
640
|
+
* 【跳蚤小游戏:都赢过之后,结尾可能一直等不到队友:修了】
|
|
641
|
+
结尾要两个人都赢过所有项目才会继续,每一边只在「全赢了」变化时告诉对方一次。
|
|
642
|
+
有两种情况会漏掉:一方断线重连之后,对方不会再说第二遍;
|
|
643
|
+
或者进游戏时一边加载得比另一边慢,先准备好的一边说了,另一边还没准备好,就把它扔了。
|
|
644
|
+
漏掉以后结尾就一直等着。现在两种情况都会补上。
|
|
645
|
+
|
|
646
|
+
※ 以上四十四条【没有实机验证过】。
|
|
525
647
|
|
|
526
648
|
* 聊天框默认按 Y 打开,打 /help 可以看到所有指令。
|
|
527
649
|
|
|
@@ -551,6 +673,11 @@ exe 旁边放一个 dll,让游戏启动时连带加载它。这是所有同类
|
|
|
551
673
|
Starting a check —— 会列出三个存档 key,一眼能看出哪个对不上
|
|
552
674
|
Turned down a hello —— 说明有一条握手消息被丢掉了,以及丢的原因
|
|
553
675
|
|
|
676
|
+
两个人一起玩的时候:
|
|
677
|
+
[State check] —— 两边自动对比出来的不一样的地方
|
|
678
|
+
[Hits] —— 队友的攻击为什么没能在你这边重放
|
|
679
|
+
遇到两边不一样的情况,最好把两个人的日志都发回来。
|
|
680
|
+
|
|
554
681
|
|
|
555
682
|
六、这东西是谁写的
|
|
556
683
|
------------------
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# silksong-coop-mod 0.4.
|
|
1
|
+
# silksong-coop-mod 0.4.43
|
|
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
|
|
@@ -14,4 +14,4 @@ The BepInEx loader is included, so the install needs no network access at all.
|
|
|
14
14
|
|
|
15
15
|
The multiplayer mod is the work of [Extremelyd1](https://github.com/Extremelyd1/SSMP). This is a modified copy
|
|
16
16
|
that adds a shared two-player save; please do not take questions about it to the original author. Distributed
|
|
17
|
-
under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `
|
|
17
|
+
under the GNU LGPL 2.1 - see `LICENSE`. Built from https://github.com/Candy-649/SSMP at `ef5a69d`.
|
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.
|
|
3
|
+
"version": "0.4.43",
|
|
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)",
|