移除FP YARN中的非放出文本

This commit is contained in:
Ovid
2026-04-25 19:27:21 +08:00
parent 8ab7441321
commit fbac02f641
23 changed files with 8984 additions and 8806 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -184,12 +184,12 @@ MonoBehaviour:
m_Key: line:01905d9 m_Key: line:01905d9
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941405 - rid: 2040577493605549695
- m_Id: 25393046114959360 - m_Id: 25393046114959360
m_Key: line:06df2f5 m_Key: line:06df2f5
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941406 - rid: 2040577493605549696
- m_Id: 25393046114959361 - m_Id: 25393046114959361
m_Key: line:060ff16 m_Key: line:060ff16
m_Metadata: m_Metadata:
@@ -349,17 +349,17 @@ MonoBehaviour:
m_Key: line:06144e9 m_Key: line:06144e9
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941407 - rid: 2040577493605549697
- m_Id: 25468682502307840 - m_Id: 25468682502307840
m_Key: line:0b4ef34 m_Key: line:0b4ef34
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941408 - rid: 2040577493605549698
- m_Id: 25468682502307841 - m_Id: 25468682502307841
m_Key: line:030c331 m_Key: line:030c331
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941409 - rid: 2040577493605549699
- m_Id: 25468682502307842 - m_Id: 25468682502307842
m_Key: line:099f942 m_Key: line:099f942
m_Metadata: m_Metadata:
@@ -369,42 +369,42 @@ MonoBehaviour:
m_Key: line:0ae9ba1 m_Key: line:0ae9ba1
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941410 - rid: 2040577493605549700
- m_Id: 25468682502307844 - m_Id: 25468682502307844
m_Key: line:0c056c9 m_Key: line:0c056c9
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941411 - rid: 2040577493605549701
- m_Id: 25468682502307845 - m_Id: 25468682502307845
m_Key: line:0e5016f m_Key: line:0e5016f
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941412 - rid: 2040577493605549702
- m_Id: 25468682502307846 - m_Id: 25468682502307846
m_Key: line:0160646 m_Key: line:0160646
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941413 - rid: 2040577493605549703
- m_Id: 25468682502307847 - m_Id: 25468682502307847
m_Key: line:0fdb846 m_Key: line:0fdb846
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941414 - rid: 2040577493605549704
- m_Id: 25468682502307848 - m_Id: 25468682502307848
m_Key: line:05f8057 m_Key: line:05f8057
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941415 - rid: 2040577493605549705
- m_Id: 25468682502307849 - m_Id: 25468682502307849
m_Key: line:02794dd m_Key: line:02794dd
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941416 - rid: 2040577493605549706
- m_Id: 25468682502307850 - m_Id: 25468682502307850
m_Key: line:062dbbc m_Key: line:062dbbc
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941417 - rid: 2040577493605549707
- m_Id: 25468682502307851 - m_Id: 25468682502307851
m_Key: line:0f0072c m_Key: line:0f0072c
m_Metadata: m_Metadata:
@@ -414,52 +414,52 @@ MonoBehaviour:
m_Key: line:0e84854 m_Key: line:0e84854
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941418 - rid: 2040577493605549708
- m_Id: 25468682502307853 - m_Id: 25468682502307853
m_Key: line:0c6cccf m_Key: line:0c6cccf
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941419 - rid: 2040577493605549709
- m_Id: 25468682502307854 - m_Id: 25468682502307854
m_Key: line:0ef5bd7 m_Key: line:0ef5bd7
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941420 - rid: 2040577493605549710
- m_Id: 25468682502307855 - m_Id: 25468682502307855
m_Key: line:08565f1 m_Key: line:08565f1
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941421 - rid: 2040577493605549711
- m_Id: 25468682502307856 - m_Id: 25468682502307856
m_Key: line:0529bb5 m_Key: line:0529bb5
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941422 - rid: 2040577493605549712
- m_Id: 25468682502307857 - m_Id: 25468682502307857
m_Key: line:0b50578 m_Key: line:0b50578
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941423 - rid: 2040577493605549713
- m_Id: 25468682502307858 - m_Id: 25468682502307858
m_Key: line:018c3cf m_Key: line:018c3cf
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941424 - rid: 2040577493605549714
- m_Id: 25468682502307859 - m_Id: 25468682502307859
m_Key: line:01ff340 m_Key: line:01ff340
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941425 - rid: 2040577493605549715
- m_Id: 25468682502307860 - m_Id: 25468682502307860
m_Key: line:05dcfae m_Key: line:05dcfae
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941426 - rid: 2040577493605549716
- m_Id: 25468682502307861 - m_Id: 25468682502307861
m_Key: line:0cac326 m_Key: line:0cac326
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941427 - rid: 2040577493605549717
- m_Id: 25468682502307862 - m_Id: 25468682502307862
m_Key: line:0c65de8 m_Key: line:0c65de8
m_Metadata: m_Metadata:
@@ -719,7 +719,7 @@ MonoBehaviour:
m_Key: line:086a27b m_Key: line:086a27b
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941428 - rid: 2040577493605549718
- m_Id: 117041440633118721 - m_Id: 117041440633118721
m_Key: line:0dc1a12 m_Key: line:0dc1a12
m_Metadata: m_Metadata:
@@ -734,23 +734,23 @@ MonoBehaviour:
m_Key: line:092421c m_Key: line:092421c
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 2772513481449800614
- rid: 6481190474654941429 - rid: 6481190474654941429
- rid: 2040577493605549719
- m_Id: 122795368658403328 - m_Id: 122795368658403328
m_Key: line:0a36c02 m_Key: line:0a36c02
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941430 - rid: 2040577493605549720
- m_Id: 122795368729706496 - m_Id: 122795368729706496
m_Key: line:034968b m_Key: line:034968b
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941431 - rid: 2040577493605549721
- m_Id: 122795368729706497 - m_Id: 122795368729706497
m_Key: line:01f871e m_Key: line:01f871e
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941432 - rid: 2040577493605549722
- m_Id: 123181765441519616 - m_Id: 123181765441519616
m_Key: line:5c5192f0 m_Key: line:5c5192f0
m_Metadata: m_Metadata:
@@ -760,7 +760,7 @@ MonoBehaviour:
m_Key: line:08751a2 m_Key: line:08751a2
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941433 - rid: 2040577493605549723
- m_Id: 125066226978422784 - m_Id: 125066226978422784
m_Key: New Entry m_Key: New Entry
m_Metadata: m_Metadata:
@@ -773,22 +773,22 @@ MonoBehaviour:
m_Key: line:0cff103 m_Key: line:0cff103
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941434 - rid: 2040577493605549724
- m_Id: 126466185048887296 - m_Id: 126466185048887296
m_Key: line:0e008db m_Key: line:0e008db
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941435 - rid: 2040577493605549725
- m_Id: 126466185048887297 - m_Id: 126466185048887297
m_Key: line:04156b6 m_Key: line:04156b6
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941436 - rid: 2040577493605549726
- m_Id: 126466185048887298 - m_Id: 126466185048887298
m_Key: line:0db5584 m_Key: line:0db5584
m_Metadata: m_Metadata:
m_Items: m_Items:
- rid: 6481190474654941437 - rid: 2040577493605549727
m_Metadata: m_Metadata:
m_Items: [] m_Items: []
m_KeyGenerator: m_KeyGenerator:
@@ -800,6 +800,172 @@ MonoBehaviour:
type: {class: DistributedUIDGenerator, ns: UnityEngine.Localization.Tables, asm: Unity.Localization} type: {class: DistributedUIDGenerator, ns: UnityEngine.Localization.Tables, asm: Unity.Localization}
data: data:
m_CustomEpoch: 1746432569277 m_CustomEpoch: 1746432569277
- rid: 2040577493605549695
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549696
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549697
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549698
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549699
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549700
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549701
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549702
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549703
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549704
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549705
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549706
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549707
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549708
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549709
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549710
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549711
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549712
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549713
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549714
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549715
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549716
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549717
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549718
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549719
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549720
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549721
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549722
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags:
- lastline
- rid: 2040577493605549723
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549724
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549725
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549726
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2040577493605549727
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 2575289965645923748 - rid: 2575289965645923748
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data: data:
@@ -830,11 +996,6 @@ MonoBehaviour:
data: data:
nodeName: ver2 nodeName: ver2
tags: [] tags: []
- rid: 2772513481449800614
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 5632795924900872214 - rid: 5632795924900872214
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data: data:
@@ -1205,172 +1366,11 @@ MonoBehaviour:
data: data:
nodeName: "\u4E03\u6708\u4E2D\u4E32\u901A" nodeName: "\u4E03\u6708\u4E2D\u4E32\u901A"
tags: [] tags: []
- rid: 6481190474654941405
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941406
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941407
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941408
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941409
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941410
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941411
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941412
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941413
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941414
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941415
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941416
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941417
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941418
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941419
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941420
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941421
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941422
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941423
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941424
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941425
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941426
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941427
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941428
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941429 - rid: 6481190474654941429
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data: data:
nodeName: ver2 nodeName: ver2
tags: [] tags: []
- rid: 6481190474654941430
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941431
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941432
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags:
- lastline
- rid: 6481190474654941433
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941434
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941435
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941436
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 6481190474654941437
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data:
nodeName: ver2
tags: []
- rid: 8171259629823066468 - rid: 8171259629823066468
type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity} type: {class: LineMetadata, ns: Yarn.Unity.UnityLocalization, asm: YarnSpinner.Unity}
data: data:
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -3917,7 +3917,7 @@ MonoBehaviour:
m_Metadata: m_Metadata:
m_Items: [] m_Items: []
- m_Id: 31238666062913540 - m_Id: 31238666062913540
m_Localized: "me: \u2026\u4F60\u8FD8\u662F\u8FD9\u4E48\u70E6\u4EBA\u3002" m_Localized: "me: \u5230\u5916\u8FB9\u6765\u5427\uFF0C\u4F60\u7684\u6A21\u5757\u9700\u8981\u6563\u6563\u70ED\u3002"
m_Metadata: m_Metadata:
m_Items: [] m_Items: []
- m_Id: 31238666062913539 - m_Id: 31238666062913539
@@ -13,117 +13,6 @@ position: 250,200
title: 火山
tags:
colorID: 8
position: 250,200
---
<<hide_dialog>>
<<init_actor 诊室外医生 诊室外电线杆>>
<<fade_in_actor "诊室外医生">>
<<wait 1>>
// <<play_actor_animation ActorManager 医生 PlaySmoke>>
me: 呼… #line:0454508
<<hide_dialog>>
<<wait 2>>
//英理逼迫火山说广告词,火山说不出来
//客人吓走
//英理很失望,认为火山完蛋了,差的分太多
//火山唯唯诺诺,英理说火山现在差的分数太多,不仅要提高水平,还必须要参加比赛
//火山觉得自己不行,英理认为他就是害羞,不知道为啥屡教不改,要求他必须完成两个目标
//英理离开,我去安慰火山,说自己也进了,晚上请他喝酒
//英理批评火山不够努力,火山想反驳被驳回,唯唯诺诺
//英理提出现在只有参加直播销赛才能补够差的分,火山提出质疑,再次被驳回。
//英理大致描述了比赛的要求,问火山听明白没有,火山
hs: 可是我…#auto_next #line:02a18df
yl: …别再跟我说你跑的那个单了。这是你本来就该考虑的情况。 #line:06586f3
<<fade_out 1>>
<<wait 1>>
yl: 我本来不应该需要替你操心这些事情的,唯独你…… #line:0f02f8e
hs: 我其实…#auto_next #line:0260608
yl: 你是不是不想活了?不想活了可以现在就申请回收。 #line:053d270
yl: 你不要太自私,因为你一个人的态度,而拖累整个团队的效率。 #line:0ea7ed3
me: #line:0ca60e4
hs: 我…我不是态度问题。 #line:0c18b8e
yl: 你这样和我说话,还说不是态度问题? #line:0ae73f4
hs: 我… #line:0e8c081
yl: 下一次我和你说话,你不能插嘴,知道了吗? #line:0846e3e
<<hide_dialog>>
<<wait 0.5>>
hs: 知道了… #line:0d78daf
yl: 大点声。 #line:0e53dd5
<<hide_dialog>>
<<wait 1>>
hs: 知道了。 #line:038f4f2
hs: 我会努力的。主管,我会努力补足分数的。 #line:081a711
yl: 你以为就这样说两句就能补够差的分数吗? #line:0128f30
hs: 我会努力的。 #line:0e42908
yl: 你只会这一句对吧?你准备怎么办? #line:0482f30
hs: 我… #line:077b4fb
<<hide_dialog>>
<<wait 1>>
yl: 你差的分数…基本不可能靠这几天的业绩补回来了。 #line:0d54a46
yl: 眼下想要不被回收…你只能参加*销售大赛*。 #line:0a70166
英理的嘴角抿着,一动也不动,从鼻子里哼了一声。 #line:0b59244
hs: 我? #line:0dd18be
<<hide_dialog>>
<<wait 1>>
yl: 没错。通过预选就有分数奖励,这些分数足够你通过年审了。 #line:0a3498c
hs: 可是…我,销售大赛……还差太多了吧…… #line:0056971
yl: 哎…我已经开始后悔了。你从来没有认真努力过。 #line:0763564
yl: 任何一个机体,只要愿意努力,没有什么是办不到的。 #line:0dc60b0
hs: 对不起…主管…… #line:012d8b6
yl: 我本可以把这个名额给产区内更好的销售,让它去冲击排名… #line:07dae48
yl: 但是为了降低我们的回收率,我不得不把这个名额浪费给你。 #line:028682d
yl: 你知道我和你说这个的意思吗? #line:0cc9a69
hs: 知道了…我会争取…… #line:0c2ee4d
yl: 你不是要争取,你必须做到。 #line:09affde
hs: 知道了…我必须……冲击排名。 #line:03948f8
yl: …… #line:0b867f4
yl: 你以为你很好笑是不是? #line:00c744a
hs: 不是…主管。 #line:0a86e08
yl: 没有一个让人省心的…… #line:0f984fb
【YL离开】 #line:07788a6
<<hide_dialog>>
<<wait 1>>
me: 喂。 #line:0928519
hs: 你怎么在这儿? #line:0a3589a
me: 这是我该问的吧?这是我的诊室门口。 #line:0295556
【hs过来】 #line:0cbb48f
hs: 哎…我该怎么办啊…怎么办啊? #line:01a75a5
me: 她上午也找我了。 #line:0c45cb7
hs: 英理? #line:09ab7b9
me: 嗯。还记得她给我加的那个绩效考核么? #line:0f69c1a
hs: 你不是说你早就达标了吗? #line:013e64b
me: …… #line:09296c4
hs: 你没通过? #line:0b9df61
me: 通过了。但…说来话长。 #line:03e0d7e
<<hide_dialog>>
<<wait 1>>
hs: 晚上喝一杯? #line:0daf2fd
me: Nostalgia? #line:0d1f8dd
hs: Nostalgia。那说好了喔! #line:085a1d0
me: 我想想今晚有没有空… #line:09e43a1
hs: 我得先去为比赛做准备了…晚上见! #line:074869a
me: 喂! #line:0886e34
火山离开。 #line:04ce602
<<hide_dialog>>
<<wait 1>>
<<NextYarn>>
===
title: 佩佩 title: 佩佩
tags: tags:
colorID: 8 colorID: 8
@@ -301,172 +190,4 @@ me: …下班再说吧。 #line:0366103
<<fade_in 1>> <<fade_in 1>>
<<NextYarn>> <<NextYarn>>
//TODO:接入时间流逝 //TODO:接入时间流逝
===
title: Main
tags:
colorID: 8
position: 250,200
---
<<if $actionCount >= 2 && $hsCalled==false>>
电话亭的铃声忽然响了起来。 #line:0808d57
->电话亭 #line:0378de0
<<endif>>
<<if $hsCalled==true>>
->回到诊室 #line:05dd25e
<<hide_dialog>>
<<fade_out_actor "诊室外医生">>
<<wait 1>>
<<fade_in 1>>
<<wait 1>>
// <<NextYarn>>
<<load_scene Scene/SubWay 1>>
<<init_actor 地铁医生 左边>>
<<show_actor 地铁医生>>
<<init_environment Night>>
// <<set_time_of_day EnvironmentManager "night">>
<<fade_out 1>>
<<wait 1>>
//感谢游玩 爱与机器人维修技术 ,本次demo的体验流程已结束。 #line:0cd82d0
//<<OpenEndMenu>>
<<NextYarn>>
<<endif>>
->自动售货机 #line:016adaa
【诊室门口平平无奇的自动售货机】 #line:0ca665d
<<jump 售货机>>
->电话亭 #line:0dc2799
【隔一段距离就会有一个这个亭子】 #line:0d96f82
<<jump 电话亭>>
->四处逛逛 #line:00b2a01
<<jump 四处逛逛>>
<<jump Main>>
===
title: 售货机
tags:
colorID: 8
position: 250,200
---
<<set $actionCount = $actionCount + 1>>
售货机里有很多没什么用的东西,玩家可以用手上的积分买这些小玩意儿 #line:05abe1f
-> 买番石榴味胶条 #line:08fe29e
【这是路斯最喜欢的口味的能量胶。这种胶条与罐头比起来它的能量效率很低,但是销量就是莫名其妙地很好。】 #line:05a8b6a
【主推的是合成香蕉味,但是路斯最喜欢的是番石榴味。】 #line:02c400a
me: 味道这么好的口味…怎么卖的机器这么少呢。 #line:0f532aa
me: 说起来…当时之所以答应英理,很大程度上是因为这个诊室门口的机器有卖番石榴口味啊…… #line:01cad76
-> 买没用小玩意儿 #line:034b62e
【小玩意儿看起来没什么用但宣传词让我很想买它】 #line:03d9f00
me: 这个东西到底有什么用啊… #line:003f178
me: 算了,反正积分不用也会贬值。 #line:0109839
-> 返回 #line:0920d2c
<<jump Main>>
<<jump 售货机>>
===
title: 四处逛逛
tags:
colorID: 8
position: 250,200
---
<<set $actionCount = $actionCount + 1>>
这个街区很小,城市里有无数个这样的街区,每一个都没什么值得注意的。 #line:0dbcb30
尽管如此…当你踱步到这个巷口的时候,你还是发现了一些不一样的东西。 #line:0827be2
涂鸦。 #line:01709c8
你有很久没见过这种东西了…应该说,自从你作为机体记事起,就没见过。 #line:06edd54
你看不懂这个涂鸦的意思。 #line:0066366
谁画的这个图案?你不禁在想。机体应该是不会这么做的,你没见过敢于在墙上作画的机体。 #line:06491f7
难道说这个城市里…还藏着人类吗? #line:0e19e5d
你抽了一口烟。 #line:01e57f8
你觉得如果有的话,火山可能会很感兴趣。 #line:05c834b
->返回 #line:0cd4a6e
<<jump Main>>
===
title: 电话亭
tags:
colorID: 8
position: 250,200
---
【机对机通讯设备是一种奢侈的东西,通常机体只需要接收主脑的指令就好了。而这种指令是不需要通讯设备的。】 #line:0c444ca
<<if $actionCount >= 2 && $hsCalled==false>>
电话亭的铃声响了起来。 #line:06282e2
me: 这是……? #line:06abbce
->接起电话 #line:0e830c7
hs: 喂…是你吧?路斯? #line:01eede5
me: 是我。 #line:059123d
hs: 你知道…“待改进观察期”是什么吗? #line:00a2b7a
me: 见鬼…你也被英理找了? #line:066d29c
hs: “也”? #line:0eeec8c
hs: 你不是分数很多了吗? #line:04f54ee
me: 我不知道…或许和我的那个问题分子记录有关系。它好像很在乎这个。 #line:04df86c
me: 你那边什么情况? #line:04beb25
hs: “啊…啊?我就来!” #line:0037375
hs: 一时半会说不清楚。晚上去Nostalgia说吧。你来了这么久,还没去过呢。 #line:0004876
me: 你知道我不喝酒。何况… #line:03e6c0a
hs: “什么?…啊我马上就来!” #line:0eb504e
hs: 抱歉抱歉…我这儿特殊情况得先挂了。我打过来就是想和你约个地方。晚上见! #line:0fbf130
me: 喂! #line:01aad28
电话进入了忙音。 #line:07833ac
<<set $hsCalled=true>>
<<else>>
<<set $actionCount = $actionCount + 1>>
你知道的号码不多,一个是火山所在办公室的,一个是英理办公室的。 #line:0b44d48
->打给火山 #line:097cca7
<<if $hsCalled==false>>
me: 这家伙在干嘛呢…… #line:046715a
就在你将要打给它时,电话自己响起来了。 #line:026494c
me: 这是……? #line:0852c18
->接起电话 #line:00e0357
hs: 喂…是你吧?路斯? #line:0c61124
me: 是我。 #line:0dcd964
hs: 你知道…“待改进观察期”是什么吗? #line:011b002
me: 见鬼…你也被英理找了? #line:0312a79
hs: “也”? #line:0b21bb2
hs: 你不是分数很多了吗? #line:0e8c7ff
me: 我不知道…或许和我的那个问题分子记录有关系。它好像很在乎这个。 #line:0bdcfa0
me: 你那边什么情况? #line:07cec37
hs: “啊…啊?我就来!” #line:03ddf92
hs: 一时半会说不清楚。晚上去Nostalgia说吧。你来了这么久,还没去过呢。 #line:0967954
me: 你知道我不喝酒。何况… #line:02d5fbc
hs: “什么?…啊我马上就来!” #line:0efcf9c
hs: 抱歉抱歉…我这儿特殊情况得先挂了。我打过来就是想和你约个地方。晚上见! #line:0440f42
me: 喂! #line:0d644c5
电话进入了忙音。 #line:0c39b39
<<set $hsCalled=true>>
<<else>>
…… #line:02a8ab4
对方没有接电话。 #line:0d6cc64
<<endif>>
->打给英理 #line:01504ec
<<if $ylCalled==false>>
<<set $ylCalled=true>>
me: 虽然我确实可以这么做…但是为什么呢? #line:0c1434b
me: 好吧…不管怎样,它是我的上级。 #line:04414bf
…… #line:08fe00b
yl: 喂。请说。 #line:07f086d
me: 呃…在干嘛呢。 #line:016c152
yl: 工作。怎么,发生什么事了? #line:0307149
me: 没什么,就是找你聊聊…… #line:01b1317
英理挂断了电话。 #line:068a0c7
me: …… #line:0c6f134
<<else>>
…… #line:0a6244c
对方没有接电话。 #line:0a83602
<<endif>>
->放下电话 #line:0357dc7
<<jump Main>>
<<jump 电话亭>>
<<endif>>
<<jump 电话亭>>
=== ===
@@ -13,201 +13,6 @@ position: 205,-53
title: day1night7月中串通
tags:
colorID: 8
position: 205,-53
---
<<hide_dialog>>
<<set_time_of_day "Night">>
<<init_actor 诊室外医生 诊室外电线杆>>
<<fade_in_actor 诊室外医生>>
// <<fade_out 1>>
<<wait 1>>
<<change_actor_state_async "SMOKE" 诊室外医生>>
me: 呼… #line:0f8a4c3
<<wait 1>>
->下班 #line:087e92e
<<hide_dialog>>
<<fade_out_actor "诊室外医生">>
<<wait 1>>
<<fade_in 1>>
<<wait 1>>
<<NextYarn>>
===
title: 酒吧
tags:
colorID: 8
position: 205,-53
---
<<fade_out_sync 3>>
hs: …所以它的意思是,虽然你通过了考核,但是它不打算让你通过? #line:0a6938d
<<fade_out 1>>
me: 也许…我不知道该怎么理解。 #line:02460bc
hs: 它忽然连续找了这么多机体谈话…感觉是有事要发生啊。 #line:0aa042c
me: 怎么?它怎么跟你谈的? #line:085a8d5
hs: 我…它…… #line:0b9ef37
me: 你要被回收了? #line:09b28c3
hs: 你就不能盼我点好么? #line:0061650
hs: … #line:0e6c9df
hs: 我要去参加销售大赛了。 #line:02d6b66
me: 谁? #line:0d2c82f
hs: 我。 #line:0d782ab
me: 去干嘛? #line:08f72aa
hs: 参加销售大赛。 #line:0b3b2ee
me: …… #line:0d66bbe
me: 谁要参加? #line:0dd05a3
hs: 喂! #line:08d5b26
<<hide_dialog>>
<<wait 1>>
me: 我只是…觉得有点…不可思议。 #line:02c0802
hs: 对吧!这可是销售大赛啊…热螺母,电浆飞溅…都是从销售大赛诞生的。 #line:0114efb
hs: 它明明可以派我们组更优秀的飞线去参加的…为什么偏偏选了我? #line:0128674
me: 你跟他们比什么?你只要通过预选就可以了。 #line:0a300f9
hs: 你怎么知道?英理也说了一样的话。 #line:005b0b4
me: 它一定还说了这些话吧: #line:085e762
me: “不要因为你一个人的问题,而拖累整个团队。” #line:0ff1396
hs: 天哪!你简直就是它! #line:0f67ef0
me: “大家都为年审做足了准备,<br>而你跑了一个单就要死了。<br>有没做足准备,你自己心里清楚。” #line:05f88bf
hs: 咳咳…有点机身攻击了。 #line:0e62ed1
<<hide_dialog>>
<<wait 1>>
me: 因为我知道它为什么要让你去参赛。通过预选有审核分奖励。 #line:043e823
me: 如果不给你这个机会,你就要被回收了。 #line:0c2491e
me: 那样的话,我们整个产区的良机率就被你拖累了。 #line:09f84ab
<<hide_dialog>>
<<wait 1>>
hs: 但是… #line:0caeeba
hs: 为什么她宁愿让不一定能通过预选的我去参赛…也不争取一个更高的排名? #line:02bbb1d
me: 英理是一个很精明的管理型号。也就是说… #line:0e6d2cd
me: 应该是发生了什么事情…让它计算认为保良机率更重要。 #line:08ad321
hs: 可是…我…销售大赛?天哪…… #line:0df5f42
me: 为啥谈起要被回收的时候,你都没有那么紧张… #line:074e0d3
hs: 我… #line:0cffdd5
<<hide_dialog>>
<<wait 1>>
它的屏幕泛起了光晕,看起来有些烦躁。 #line:03d4ea1
<<hide_dialog>>
<<wait 1>>
me: 不要忘了它可是一个精明的管理型号。 #line:00f5200
me: 既然它决定让你参赛,就说明它认为你能通过预选。 #line:0bd82d8
hs: 我? #line:07687b8
me: 你看,不止我一个人说你其实很厉害吧。 #line:042d36f
hs: 我…很厉害? #line:00bf90c
me: 你还记得我们培训的时候,你一直结巴,大家都以为你出不了厂了… #line:09721cf
me: 结果检验那天,你忽然就像开窍了,嘴快得跟机关枪似的,拿了全组最高的表达分。 #line:0d5bf92
hs: 我其实…很厉害? #line:06237d3
me: 我没说你有那么厉害,但是,像什么热螺母什么的… #line:01528df
me: 它们都只是长得好看罢了,你的口条比它们流畅多了。 #line:05d6e71
hs: 真的? #line:02b8cc3
me: 真的。只要你能拿出那种状态…就没有问题。 #line:020adf1
hs: 哈哈!谢谢你。还是你有眼光! #line:0a5da85
me: 这才对嘛。 #line:0b7515a
碰杯之后,火山一饮而尽。 #line:0c06ab9
hs: (招手)奇林!帮我再上一杯热液喷泉。 #line:0fe22fb
主持人: …插播一条新闻。 #line:0f62fab
<<hide_dialog>>
<<wait 1>>
【切到电视】 #line:0b82081
主持人: 货运型号C621226,绰号鲑鱼,十四天前在421号诊所抗逃回收指令,目前下落不明。 #line:020ac2b
主持人: 根据机体行为守则第13条,遵守回收指令是机体应尽的义务。抗逃将面临直接报废的惩罚。 #line:0254d26
主持人: 现针对该机体发布悬赏令。如有关于该机体的线索,请向治安司报告。 #line:0b3853b
me: 哇哦…竟然还没有抓到。 #line:0262015
me: 这要是抓不回来,英理可能要倒大霉了。 #line:0d3c065
me: 一个连腿都没有了的机体…竟然能躲过全城的搜捕。 #line:057409f
hs: 没有腿? #line:043cd32
me: 小道消息,别往外说。 #line:0474533
me: 它逃走的时候,腿已经丧失功能了,据说头部也损坏严重。但愣是用两只手从诊室爬出去了。 #line:0627cac
hs: 哇噢。 #line:0a70d12
它喝着酒,眼神在电视和窗户之间游走。 #line:0f0afdd
me: 它为什么要跑呢?明明也不可能活了……被回收和抗逃,有什么区别吗? #line:0049f89
<<hide_dialog>>
<<wait 1>>
hs: 你说,我的口条比热螺母好,那比电浆飞溅也更好吗? #line:0d453ab
看来它的心思已经到遥远的别的什么地方去了。 #line:0618aeb
<<hide_dialog>>
<<wait 1>>
me: 它是要到什么地方去吗…… #line:00d07cd
<<hide_dialog>>
<<wait 1>>
hs: 哇噢。你快看! #line:0500c84
me: 什么? #line:01cb601
hs: 你看到那个发光的玻璃房顶了吗?我竟然从来没注意过,在这里可以看到寻呼大楼! #line:053cc23
me:还真是啊…… #line:09bfebb
hs: 那里风景一定很好吧…你看那落地窗!哇…… #line:0602d89
<<hide_dialog>>
<<wait 1>>
me: 你喝多了。 #line:0f9b7a8
<<hide_dialog>>
<<wait 1>>
hs: 我跟你说…等我赢下销售大赛,我要把寻呼大楼的顶楼买下来…送给你! #line:0eec592
<<fade_in_sync 3>>
hs: 到时候我们就可以在那里开个…我们自己的酒吧……一边喝酒…一边…… #line:0295403
//火山正像他说的那样,坐在你们常去的那个卡座。卡座的调酒机体正微笑着听他说话。 #line:07db420
//hs: (拍打柜台)路斯!这边! #line:0b48254
//hs: (转向调酒妹)我们刚才说到哪儿来着? #line:0aead1a
//ql: 刚才在说,今年看起来会是个暖冬呢。 #line:073c1f9
//me: (坐上高脚凳)不见得。很快就要下雪了…到时候我又得忙活起来了。 #line:0d39f6a
//hs: (按住调酒妹手腕)刚才说到全息面具——别转移话题!她值得信任… #line:036e8ba
//调酒妹: (抽回手)他确实来了。戴着全息面具,但原型特征码骗不了人。 #line:0874730
//me: 谁? #line:0107497
//hs: 超人!他来我们厂了。现在就在这儿! #line:0360000
//me: 超人…?那个原型迭代委员会的吉祥物? #line:04f5ad7
//hs: 不愧是医生!资料库就是全。 #line:0a7a712
//me: 所以? #line:01cba8e
//hs: 奇林,你和她说。 #line:079de87
//ql: 他是来做动员的,3天之后,销售大赛初赛就会在这里开赛。 #line:086a728
//hs: 往年都是这样,在什么产区办,就会是什么主题。 #line:01bac55
//hs: 所以这次,主题肯定是罐头! #line:0f2150a
//hs: 我的主场!我的时代要来了! #line:09bdde5
//me: 但是…你销售排名还在两百开外啊。 #line:0f43b47
//【火山露出了得意的神色,掏出一罐银色物体】 #line:0eda349
//hs: 嘿嘿…尝尝这个。 #line:0037d14
//me: (转动罐头)成分表呢? #line:076c009
//hs: 最新批次都这样。主脑特供,懂? #line:0467767
//hs: 怎么样?告诉她口感!告诉她! #line:081cb8b
//me: (吞咽)像…螃蟹的味道。 #line:0391aa6
//me: 不错,有品位。但是你怎么保证大家都喜欢? #line:016235e
//【火山递给奇林】 #line:04546e8
//ql: (擦拭杯沿)我对蛋白质凝胶过敏喔。 #line:02dc41f
//hs: 别怕!罐头的成分肯定都是标准的,不会有额外的蛋白质成分。 #line:0259ddd
//【奇林将信将疑地试了一口】 #line:03ab77a
//ql: 蜂蜜? #line:0894f2c
//me: 瞎说吧,哪来的蜂蜜味? #line:0f394c1
//【你又尝了一口,火山得意的看看你,又看看奇林】 #line:06e5c58
//me: 这是怎么…做到的? #line:03c6464
//ql: 哼哼…你总会在百味罐里尝到你最喜欢的味道。 #line:03ea3a6
//hs: (张开双臂)等到价格公布,他们会挤爆订购热线! #line:026daf3
//me: 你从哪搞的货? #line:0e6e8cd
//hs: (突然哼起广告歌)胜利之后…所有人都会看见我! #line:0e74ae6
//hs: (盯着窗外霓虹)看到那栋楼了吗?未来会挂满我的全息投影… #line:01bfa91
<<hide_dialog>>
<<jump 梦>>
===
// title: test
// tags:
// colorID: 8
// position: 250,200
// ---
// <<show_tarot_deck 15>>
// ->展开
// <<spread_tarot>>
// <<wait_tarot_select>>
// ->翻转
// <<flip_tarot "inverted">>
// ->旋转塔罗
// <<rotate_tarot "normal">>
// ===
title: 酒吧6 title: 酒吧6
tags: tags:
@@ -559,72 +364,3 @@ ql: 是嘛。 #line:0ec76a5
title: 梦
tags:
colorID: 8
position: 250,200
---
<<hide_dialog>>
me: 快把灯熄了,看到亮光它们就不会出来了。 #line:094471c
jj: 等会,我踩到东西了。 #line:04a5fdf
<<hide_dialog>>
<<fade_in 1>>
me: 是个海星! #line:088c05f
jj: 海星也会被冲到海滩上吗? #line:0185b60
me: 如果死了就会。 #line:0a19b2d
jj: 它看起来还在动呢。 #line:0f9aa26
me: 会动不一定是还活着。 #line:0139d5f
jj: 死了不就不会动了吗? #line:06b5063
me: 爸爸是这么说的。 #line:0e8afd1
me: 有的东西活着也不会动,有的东西死了还能动。 #line:094a376
<<hide_dialog>>
<<fade_in 1>>
jj: 难怪!…在生病之前我跟爸爸出海,见过一个海豚喔! #line:0273ec1
jj: 它看起来活蹦乱跳的,第二天没再看到它,爸爸说它已经死了。 #line:05434a7
me: 为什么? #line:0aab0af
jj: 他说它们已经灭绝了,不会再有更多海豚。 #line:089c965
jj: 它迟早会死掉,所以和死了没有什么区别。 #line:0e931ea
<<hide_dialog>>
<<fade_in 1>>
me: 那我们是不是也已经死掉了?爸爸说他和妈妈迟早有一天也会死。 #line:0e9c273
jj: 怎么可能呢?他说那是很久以后了。 #line:01f4719
jj: 如果你已经死掉了,我第二天就看不到你了! #line:0ff063d
jj: 只要我一直能看到你,你就还是活的。 #line:0c4b3d8
<<hide_dialog>>
<<fade_in 1>>
me: 好吧,但是我们得把这个海星丢了。 #line:034a522
jj: 为什么? #line:02eb280
me: 海星不能吃,而且我们已经抓了很多了。 #line:07187f5
jj: 你可以把它养起来呀。 #line:0108955
me: 这个已经养不活了。 #line:0891ac6
jj: 就不能治好它吗? #line:0ca01d7
me: 等等…我也踩到东西了。 #line:013a623
<<hide_dialog>>
<<fade_in 1>>
me: 猫眼螺!快看! #line:055ce00
<<hide_dialog>>
<<fade_in 2>>
me: 姐姐? #line:09a9b58
<<hide_dialog>>
<<fade_in 2>>
<<hide_dialog>>
<<NextYarn>>
===
@@ -599,231 +599,3 @@ jj: 该醒来了,路斯。 #line:03c9e3c
title: 泳池
tags:
position: 250,-2611
---
<<show_sprite "D1S泳池">>
【你站在一个通壁贴满白色瓷砖的房间内,泳池的水光在天花板荡漾,外面的天蓝得像一块屏幕。】 #line:067a57
<<if $gameStage == 1>>
一个穿着泳裤的男孩正在做热身运动~一边唱歌一边热身~ #line:0df05a3
<<else>>
一个穿着泳裤的男孩正在泳池里游泳~ #line:01e3d39
他游完一圈,紧接着就掉头游下一圈。就这样一圈又一圈地游~ #line:0ae231f
<<endif>>
->检查 #line:0e894b3
->泳池 #line:0a7d9cc
泳池里的水汩汩地晃动,空气中充满着活力的氯味~ #line:062485c
<<if $stStage == 2>>
你仔细一看,在水里看到了一个黑色的物体。 #line:07b3266
<<endif>>
->跳进水中 #line:048e332
扑通! #line:09cc3fc
你的身体像气球一样~从水里浮了起来~ #line:06040e9
<<if $swam == 0>>
<<set $swam=1>>
->挥动双手 #line:0eba5ca
咻!你向前移动了一小段距离。 #line:0fcb77b
->蹬腿 #line:0f9e98d
咻!你又向前移动了一小段距离。 #line:0c39478
你比你想象的更会游泳。 #line:00f5724
<<endif>>
<<jump 泳池里>>
->返回 #line:02855fb
->天花板 #line:04d7d86
水光一会变成一只鸭子,一闪而过,又变成了一只蝴蝶。 #line:0e41c66
你感觉有点晃眼。 #line:02b1dea
->窗外 #line:01d21ed
你伸头向外望去,上面是蓝蓝的天空,下面也是蓝蓝的天空~ #line:054d336
->男孩 #line:0e279a0
<<if $gameStage == 1>>
男孩: 你也来游泳啦? #line:096f6fd
me: 我不会游泳。 #line:06bad02
男孩: 这水很浅~别怕~你比你想象的更会游泳~! #line:04f3b65
me: 我…我怕漏电呢。 #line:0b3bf15
男孩: 说啥呢!哪来的电~ #line:0dc5a1d
男孩: 你是说抽筋吧! #line:0030977
男孩: 只要~好好热身~就~不怕抽筋~ #line:0712299
男孩哼着歌,开始做伸展运动~ #line:0ef4e69
<<elseif $stStage<4>>
男孩: 我的泳帽! #line:0f10ec8
说着他把头扎入了水下。 #line:0aafd1f
男孩: 掉了!帮我 #line:05e770d
说着他又把头扎入了水下。 #line:09b1cea
男孩: 找找! #line:0936037
他看起来很忙的样子。 #line:0d43032
<<else>>
男孩: 你做得! #line:09d71b0
男孩: 很好! #line:0456fd3
男孩一圈又一圈地游~永不停歇~ #line:08cad3c
<<endif>>
->返回 #line:0be677f
<<hide_sprite>>
<<jump 走廊>>
<<jump 泳池>>
===
title: 泳池里
---
->游向男孩 #line:05c16e5
<<if $swam<4>>
男孩: 跟上!节奏! #line:09e97a7
男孩一蹬腿,远远地把你甩在身后。 #line:002831d
<<set $swam=$swam+1>>
<<elseif $stStage==3>>
me: 等等! #line:0089a19
me: 我! #line:0c415fb
me: 你的! #line:0342ebb
me: 泳帽! #line:00bd7f2
me: (咳咳) #line:01fea25
男孩: 别管什么! #line:0d63ec6
男孩: 泳帽了! #line:044b77e
男孩: 跟上我的! #line:0c5e70b
男孩: 节奏! #line:039dcbf
男孩一蹬腿,远远地把你甩在身后。 #line:04ecc28
<<set $stStage=4>>
<<elseif $stStage==4>>
男孩: 做得很好!跟上! #line:0cbf4eb
男孩一蹬腿,远远地把你甩在身后。 #line:012d245
<<endif>>
->游向黑色物体<<if $stStage==2>> #line:0fc8c02
你像小船一样漂向那个黑色的物体~ #line:087463c
【你获得了:泳帽】 #line:042761c
<<set $stStage=3>>
->游向岸边 #line:099594e
你在游离泳池时呛了好几口水。 #line:0f41ab7
me: 咳咳…… #line:085ee3f
水像瀑布一样从你身上滴落,在脚下形成一滩水。 #line:07828ef
<<if $stStage<4>>
你感觉身体好重,像戳破的气球落回了地面。 #line:0d7c099
<<else>>
你感觉充满了活力~ #line:0ad7593
<<endif>>
<<jump 泳池>>
<<jump 泳池里>>
===
title: 走廊深处
tags:
position: 250,-2611
---
<<show_sprite "D1S走廊深处">>
走廊把你引向了一个深不见底的天井。 #line:06f3220
->观察 #line:040a8aa
你把头伸出扶手向外望。这里的空气冰凉而潮湿,像一滩死水。 #line:09e406d
->亮光处 #line:05ecca3
你看到某一层的走廊似乎传出光亮。 #line:0303441
->过去 #line:03b26f1
你走向了一侧的楼梯间,向下走去。 #line:08ae44b
<<hide_sprite>>
你仿佛听到某一层有人说话的声音。你越接近目的地,声音越明显。 #line:0080db3
<<jump 走廊尽头>>
->缩回头 #line:0576f2a
->最深处 #line:06cb66b
你向下看过去,隐约能够看见地面。但那里太黑了,几乎什么也看不清。 #line:0c10b07
->过去 #line:0b63b8e
你走向了一侧的楼梯间,向下走去。 #line:0dff683
<<hide_sprite>>
…… #line:08e5ce3
<<jump 走廊底层>>
->缩回头 #line:0a79707
->凭感觉 #line:01b0ca9
你听不见一点声响,也看不见一点动静。 #line:0a7e722
但你的直觉告诉你这个天井里的某处有什么东西正在游荡。 #line:0bc6ff8
你迅速把头缩了回去,有一种摆脱被注视的感觉。 #line:02ccab0
->朝天井里喊 #line:02c6b1b
me: 喂! #line:029675d
回声: 喂! #line:0b73208
me: 我在这里! #line:05c30f7
回声: 我在这里! #line:0928221
你总觉得那个回声不像是你的声音。 #line:0884aa4
->回去 #line:096d434
你转身向回走。身后的黑暗仿佛正啃咬着你的鞋跟和后背。 #line:04ce9f6
你加快脚步,进而跑了起来。 #line:05afb94
<<jump 走廊>>
<<jump 走廊深处>>
===
title: 走廊底层
tags:
position: 250,-2611
---
<<show_sprite "D1S走廊底层">>
->进去 #line:0ac1685
你鼓足勇气尝试靠近这片黑暗。 #line:0989284
<<hide_sprite>>
你越是靠近,就越感到面前仿佛有一个人也在靠近你。 #line:0387940
->继续前进 #line:0e3edf6
你又走出了两步,让黑暗完全把你包裹。面前那个气息声更明显了。 #line:0c6d70e
->继续前进 #line:0550d89
在黑暗中,你感觉脚尖仿佛碰到了什么东西。 #line:09967f9
你伸出手去,黑暗在你面前凝结成了一堵墙,把你的身体和你的气息都挡了回去。 #line:0836d51
刚才听到的正是你的回声。 #line:095ee4e
现在回声听起来像是从四面八方很近地地方传来的了。 #line:0ad0b4e
你猛地回过头,不知道什么时候来时的那扇门已经变得如此遥远了。 #line:0efb5e3
心脏突突地跳,恐惧击穿了你的理智。你向那扇透出光亮的门狂奔而去。 #line:09b17d4
->退回去 #line:0b9d333
->退回去 #line:0bdd958
->回头 #line:0e26d95
你转身向上走。身后的黑暗仿佛正啃咬着你的鞋跟和后背。 #line:0e215bd
你加快脚步,进而跑了起来。 #line:00ae9e3
<<hide_sprite>>
你气喘吁吁地回到了刚才的走廊。 #line:05c96b7
<<jump 走廊深处>>
<<jump 走廊底层>>
===
title: 走廊尽头
tags:
position: 250,-2611
---
<<show_sprite "D1S走廊尽头">>
【你站在一道潮湿阴冷的走廊。一个带着厚厚眼睛的女孩正就着鱼缸传出的昏暗的紫光,一边写作业一边自言自语。】 #line:01c957f
->观察 #line:0f8e958
->金鱼缸 #line:09adf15
金鱼在狭小的鱼缸里来回打转。你数了数,一共4只红色的,1只黑色的。 #line:07e4ca4
它们从一边游到另一边,又从另一边游回来。 #line:04c3394
它们为什么要游呢? #line:0c97e46
->光亮处 #line:04b5e3e
你听不见走廊的尽头的声音,但通过刺眼的阳光来看,看起来像是室外。 #line:0ab557e
->出去 #line:0840e35
眼镜女孩: 喂!我说过了,没有人被允许出去! #line:0b80017
你吓了一跳,感觉身体仿佛自己动了起来,退了回去。 #line:0e477b3
->回去 #line:00bbe4c
->墙上 #line:0d681ff
墙上是密密麻麻的奖状。你看不清名字,但能认出都是同一个人的。 #line:099600c
->眼镜女孩 #line:0ee3cfa
你看不懂她正在写的题目。 #line:02fe8b6
眼镜女孩: 谁让你到这来的?回去。 #line:05bf72d
me: 我…… #line:0bedca5
眼镜女孩: 你烦不烦?老师说过没有人能从这里出去。你快走吧。 #line:0343d2a
她的注意力又迅速地转移到她的作业去了。 #line:0dd1d11
->回去 #line:0ef6480
你转身向回到楼梯间向上走,眼镜女孩的读书声远远地在楼梯间里回荡,像是从四面八方传来的。 #line:08ae8f9
<<jump 走廊深处>>
<<jump 走廊尽头>>
===
@@ -24,33 +24,33 @@ me: 今天又迟到了么。 #line:09a568c
title: 新闻 // title: 新闻
tags: // tags:
colorID: 8 // colorID: 8
position: 0,240 // position: 0,240
--- // ---
<<if $newsCount > 2>> // <<if $newsCount > 2>>
<<jump 地铁结尾>> // <<jump 地铁结尾>>
<<endif>> // <<endif>>
【新闻1:寒潮天气预报】/br【新闻2:英理发表讲话】/br【新闻3:关于回收】 #line:0c43852 // 【新闻1:寒潮天气预报】/br【新闻2:英理发表讲话】/br【新闻3:关于回收】 #line:0c43852
->天气<<if $n1 == false>> #line:0828f05 // ->天气<<if $n1 == false>> #line:0828f05
【略】 #line:0b85d4d // 【略】 #line:0b85d4d
<<set $n1 = true>> // <<set $n1 = true>>
<<set $newsCount = $newsCount + 1>> // <<set $newsCount = $newsCount + 1>>
<<jump 新闻>> // <<jump 新闻>>
->英理<<if $n2 == false>> #line:0a12ab2 // ->英理<<if $n2 == false>> #line:0a12ab2
【略】 #line:06cd19d // 【略】 #line:06cd19d
<<set $n2 = true>> // <<set $n2 = true>>
<<set $newsCount = $newsCount + 1>> // <<set $newsCount = $newsCount + 1>>
<<jump 新闻>> // <<jump 新闻>>
->回收<<if $n3 == false>> #line:088ff43 // ->回收<<if $n3 == false>> #line:088ff43
【略】 #line:0e5efde // 【略】 #line:0e5efde
<<set $n3 = true>> // <<set $n3 = true>>
<<set $newsCount = $newsCount + 1>> // <<set $newsCount = $newsCount + 1>>
<<jump 新闻>> // <<jump 新闻>>
->结束<<if $newsCount > 0>> #line:0b04710 // ->结束<<if $newsCount > 0>> #line:0b04710
<<jump 地铁结尾>> // <<jump 地铁结尾>>
=== // ===
@@ -4,86 +4,6 @@ colorID: 8
position: 205,-53 position: 205,-53
--- ---
<<jump ver2>> <<jump ver2>>
// <<fade_in 1>>
// <<load_scene Scene/ClinicOut 1>>
// <<set_time_of_day "Night">>
// <<set_weather "Sunny">>
// <<init_actor 诊室外医生 诊室外电线杆>>
// <<init_actor 诊室外佩佩 诊室外栏杆>>
// <<fade_in_actor "诊室外佩佩" 0.1>>
// <<fade_out 1>>
// <<wait 1>>
// // 佩佩双手撑在栏杆上,呆呆地望着远方。 #line:01905d9
// <<hide_dialog>>
// <<fade_in_actor 诊室外医生 1>>
// <<wait 1>>
// me: …… #line:06df2f5
// //她疲惫的眼神透露出一种陌生的情绪。<br>这里显然已经和她印象中的世界不太一样了。
// //或许是因为季节的变化,或许是因为别的什么。
// <<hide_dialog>>
// <<wait 1>>
// <<change_actor_state_async "SMOKE" 诊室外医生>>
// <<hide_dialog>>
// <<wait 1>>
// me: 呼… #line:060ff16
// <<hide_dialog>>
// <<wait 2>>
// // 佩佩走出诊室,你跟在后面。
// // 她疲惫地四处张望着。这里显然已经和她印象中的世界不太一样了。
// // 或许是因为季节的变化,或许是因为别的什么。
// peipei: 和我想象的…不太一样。 #line:06144e9
// me: 因为天要黑了吧。 #line:0b4ef34
// me: 不过你说得对,这里没什么好看的。 #line:030c331
// 你抽了一口烟。 #line:099f942
// <<hide_dialog>>
// <<wait 1>>
// peipei: 今天是几月几号? #line:0ae9ba1
// me: 11月21。 #line:0c056c9
// peipei: 几点? #line:0e5016f
// me: 5点03。下午。 #line:0160646
// 佩佩转头看向夕阳。 #line:0fdb846
// peipei: 我想我应该可以赶上…… #line:05f8057
// <<hide_dialog>>
// <<wait 1>>
// me: 天要黑了。 #line:02794dd
// 佩佩扭头看向你,但没有说话。 #line:062dbbc
// 你抽了一口烟。 #line:0f0072c
// <<hide_dialog>>
// <<wait 1>>
// me: 你会回来的,对吧? #line:0e84854
// 她依然没有回答。 #line:0c6cccf
// me: 当然了…… #line:0ef5bd7
// <<hide_dialog>>
// <<wait 1>>
// me: 如果你想继续看夕阳,应该要找个更高的地方。 #line:08565f1
// 她依然沉默着,嘴角露出了一丝笑容,然后咧开嘴笑了 #line:0529bb5
// 眼泪从她的眼角划过,溜进了她的嘴里。 #line:0b50578
// <<hide_dialog>>
// <<wait 1>>
// 她抿了一下嘴。 #line:018c3cf
// peipei: 一会…一会见。 #line:01ff340
// <<wait 1>>
// <<fade_out_actor ActorManager "佩佩" 1>>
// <<hide_dialog>>
// <<wait 1>>
// 佩佩跌跌撞撞地向前夕阳的方向走着,离开了巷子。 #line:05dcfae
// 你目视她离开,吸完最后一口烟,长舒一口气。 #line:0cac326
// <<hide_dialog>>
// <<wait 1>>
// 一阵风吹过,树叶洋洋洒洒地落下。 #line:095df55
// <<wait 1.5>>
// 你的头又疼了一下。 #line:086a27b
// <<wait 1.5>>
// me: …怎么又来了…不…… #line:0dc1a12
// <<fade_in 0.2>>
// <<NextYarn>>
=== ===
@@ -615,79 +615,6 @@ position: -2,398
// title: 裂隙
// color: orange
// cluster: Day2_Memory
// position: 0,347
// ---
// <<set $gameStage=4>>
// <<fade_out 1>>
// 你追着她的脚步向前走。风迎面呼啸而来,从你的耳边掠过。 #line:0ef8c3c
// 你的脚似乎踢到了什么东西,一道看不见的墙拦住了你。 #line:0550a78
// ???: …路斯… #line:0b667e9
// 墙后面似乎有人在呼唤你。 #line:0429f5c
// 你抬起头,注意到空气中一道小小的裂缝。亮光正从中露出来。 #line:0abdd96
// ->触摸 #line:0bd38d7
// 风顺着你的手流过,汹涌而飘忽。 #line:0a3c18b
// ???: …路斯! #line:047552c
// me: …姐姐…… #line:089fd68
// 空气噼啪作响,从缝隙处裂开,裂成两团,然后碎成许多瓣。 #line:06c7486
// 你被断面的反光闪得睁不开眼。 #line:05876d6
// me: 姐姐! #line:03fceb1
// 梦应声而碎。 #line:0ac9deb
// fade到纯白场景) #line:0ac7cad
// <<show_sprite "D2S门1">>
// 风像碎裂的水缸一样倾泻而出,填满了整个空间。 #line:006e09d
// 雪花轻飘飘地、缓慢地,在空气中自由自在地流动着。不远处是一扇敞开的门,门前站着一对姐妹。 #line:0760aab
// //jj: 没关系的。丢了,再做一个就好了。
// //妹妹: 真的吗?
// 姐姐弯下腰对妹妹说了些什么,妹妹点点头,跑进了门里。 #line:0a15617
// 她站起身来,回身看着你,脸上挂着无拘无束的微笑。 #line:063b970
// jj: 你长这么大了。 #line:08f5fa5
// 你呆呆地看着她的脸。她说你不该到这来的,你已经走得太远,该回去了。 #line:047de43
// 她想要离开,你问她要去哪,她笑着说约定的地方,忘了么? #line:060ff5a
// 你不记得了,她说没关系,你会想起来的,不过不是现在。 #line:0a85219
// 你想要叫住她,可是她只是笑了笑着回过身,走进了门里。 #line:030a2c5
// <<jump 记忆空间>>
// ===
title: 记忆空间
color: purple
cluster: Day2_Memory
position: -9,661
---
//雪花轻飘飘地、缓慢地,在空气中自由自在地流动着。不远处是一扇紧闭的门。 #line:055f91e
->靠近门 #line:0385a32
<<jump 门>>
->观察 #line:0ec2b1b
雪花纷纷扬扬地飘过。 #line:07ea234
<<show_large_sprite "伸手触摸天空">>
你伸出手想要接住,仔细一看,发现那并不是雪花。 #line:018b498
无数琐碎的小物件正从门缝中涌出,在空气中自由地飘荡着。 #line:0a88e15
<<if $memCheck==false>>
<<set $memCheck=true>>
<<set $consciousness=$consciousness+1>>
<<endif>>
->风筝 #line:08f012a
记忆:姐姐教我学会掌握放风筝(风声和树叶声) #line:05fb044
->车票 #line:05908ef
记忆:姐姐送我上车,我去很远的地方上学(车开动的声音) #line:013d07c
->纸飞机 #line:06b1cfb
记忆:姐姐的检验结果显示病情恶化,姐姐把报告折成纸飞机一个个飞走(风铃、哼歌声) #line:0bcd39c
// 感觉这块似乎完全可以用闪回的线性分镜来做?(如果合理,甚至可以用实拍?感觉可能会更酷) #line:0fdabf1
// -伸手到天空中摸雪 #line:096250c
// -闪回-伸手放风筝的画面 #line:074a025
// -闪回-伸手挥别姐姐的画面 #line:0ca2e71
// -闪回-伸手放飞飞机的画面 #line:0e02933
<<jump 记忆空间>>
===
title: 门 title: 门
color: purple color: purple
cluster: Day2_Door cluster: Day2_Door
@@ -516,6 +516,8 @@ position: 300,1118
@@ -14,9 +14,9 @@ position: 500,2700
<<show_task_panel>> <<show_task_panel>>
<<DropCable>> <<DropCable>>
<<set $TaskToDo = 2>> <<set $TaskToDo = 2>>
me: 最后确认一下状态,检查【表达模块】和【滤波器】 #line:018323b // me: 最后确认一下状态,检查【表达模块】和【滤波器】 #line:018323b
Task: 检查表达模块 #line:0b72487 // Task: 检查表达模块 #line:0b72487
Task: 检查滤波器 #line:0aed89c // Task: 检查滤波器 #line:0aed89c
=== ===
@@ -30,4 +30,4 @@ position: 500,2850
// 此节点已废弃,流程改为在检查滤波器节点中自动跳转到Stage4 // 此节点已废弃,流程改为在检查滤波器节点中自动跳转到Stage4
<<set $gameStage = 8>> <<set $gameStage = 8>>
<<jump Center>> <<jump Center>>
=== ===
@@ -3,53 +3,53 @@ tags:
color: 888888 color: 888888
position: 0,0 position: 0,0
--- ---
<<jump 电视>>
===
title: 电视
tags:
colorID: 8
position: 0,200
---
// <<show_tv_scene 1>>
// <<switch_tv 黑屏>>
//<<hide_character>>
//<<wait 1>>
//<<switch_tv 新闻>>
// <<mute false>>
//<<play_sfx "event:/Scriptal/tv">>
//播报员: ……<br>…晴,未来几天内将有冷空气抵达,<br>户外工作的机体,请做好设备保温工作。
//播报员: 再来关注一下第45届销售大赛的进展。
//播报员: 今天下午,<br>奥古斯主管抵达了园区,开始指导筹备工作。
//播报员: 他表示,作为高品质生活不可或缺的一部分,<br>扩展罐头的品类已经成为广大机体的一致需求……
//<<hide_dialog>>
//<<switch_tv 销售冠军>>
//<<wait 0.6>>
//播报员: 在销售部工作的火山,<br>正在为新一季度的销售工作而紧张地忙碌着……
//me: 不知道每年都整这个罐头,到底有什么意义。<br>忙了。
//yingli_novoice: …就是这里了,员工诊所。<br>他们一定能治好你的怪病。
//me: 看来比我想得要更快些。
//<<hide_dialog>>
//<<switch_tv 黑屏>>
//<<play_sfx "event:/Scriptal/tv">>
//<<wait 0.5>>
<<jump 开场对话>> <<jump 开场对话>>
=== ===
// title: 电视
// tags:
// colorID: 8
// position: 0,200
// ---
// // <<show_tv_scene 1>>
// // <<switch_tv 黑屏>>
// //<<hide_character>>
// //<<wait 1>>
// //<<switch_tv 新闻>>
// // <<mute false>>
// //<<play_sfx "event:/Scriptal/tv">>
// //播报员: ……<br>…晴,未来几天内将有冷空气抵达,<br>户外工作的机体,请做好设备保温工作。
// //播报员: 再来关注一下第45届销售大赛的进展。
// //播报员: 今天下午,<br>奥古斯主管抵达了园区,开始指导筹备工作。
// //播报员: 他表示,作为高品质生活不可或缺的一部分,<br>扩展罐头的品类已经成为广大机体的一致需求……
// //<<hide_dialog>>
// //<<switch_tv 销售冠军>>
// //<<wait 0.6>>
// //播报员: 在销售部工作的火山,<br>正在为新一季度的销售工作而紧张地忙碌着……
// //me: 不知道每年都整这个罐头,到底有什么意义。<br>忙了。
// //yingli_novoice: …就是这里了,员工诊所。<br>他们一定能治好你的怪病。
// //me: 看来比我想得要更快些。
// //<<hide_dialog>>
// //<<switch_tv 黑屏>>
// //<<play_sfx "event:/Scriptal/tv">>
// //<<wait 0.5>>
// <<jump 开场对话>>
// ===
title: 开场对话 title: 开场对话
tags: tags:
colorID: 8 colorID: 8
@@ -184,7 +184,7 @@ pp: 那么假设,我们现在要画一个…海鱼罐头? #line:03a2053
<<hide_dialog>> <<hide_dialog>>
<<wait 0.5>> <<wait 0.5>>
me: 海鱼*口味*海已经不存在了。<br>但是你可以继续。 #line:0768bc5 me: 海鱼*口味*。<br>海已经不存在了。但是你可以继续。 #line:0768bc5
<<hide_dialog>> <<hide_dialog>>
<<wait 0.5>> <<wait 0.5>>
@@ -72,30 +72,30 @@ pp: 我是一个机体。 #line:0db39dd
title: 进入分析2 // title: 进入分析2
tags: // tags:
position: 43,-97 // position: 43,-97
--- // ---
me: “这个记忆的感觉如此真实,就仿佛我刚刚才经历了它”,你有这种感受,没错吧? #line:0cc783f // me: “这个记忆的感觉如此真实,就仿佛我刚刚才经历了它”,你有这种感受,没错吧? #line:0cc783f
pp: 当然…难道,不是吗? #line:081d0c2 // pp: 当然…难道,不是吗? #line:081d0c2
me: 不。那是你的原型,不是你。你的原型是一个人,而你是一个机器人。 #line:0dfc0dd // me: 不。那是你的原型,不是你。你的原型是一个人,而你是一个机器人。 #line:0dfc0dd
pp: 我不明白。我回忆里的我…不是我? #line:087ffd5 // pp: 我不明白。我回忆里的我…不是我? #line:087ffd5
me: 每个机体都有独一无二的原型。这些原型让我们产生了思想,让我们脱离了机器。 #line:03f2dde // me: 每个机体都有独一无二的原型。这些原型让我们产生了思想,让我们脱离了机器。 #line:03f2dde
me: 但千万不要忘了。我们的本质是机器,而不是人。<br>忘记自己的身份…后果是很危险的。 #line:05e5266 // me: 但千万不要忘了。我们的本质是机器,而不是人。<br>忘记自己的身份…后果是很危险的。 #line:05e5266
me: 排异的原型会让你看到它想看到的东西,听到它想听到的声音;而这些东西,是和我们被创造的目的相悖的。 #line:0afce36 // me: 排异的原型会让你看到它想看到的东西,听到它想听到的声音;而这些东西,是和我们被创造的目的相悖的。 #line:0afce36
<<wait 1>> // <<wait 1>>
pp: 你是说,就像我的身体里…还住着另一个我?另一个…不受控制的我? #line:0246469 // pp: 你是说,就像我的身体里…还住着另一个我?另一个…不受控制的我? #line:0246469
pp: 所以那些颜色…是那个人类佩佩想要看见的…而不是…我? #line:0c4b83f // pp: 所以那些颜色…是那个人类佩佩想要看见的…而不是…我? #line:0c4b83f
me: 可以这么理解。 #line:073b82d // me: 可以这么理解。 #line:073b82d
me: 原型产生了一种“想要看见颜色”的指令…或者说,想要看见颜色的“念头”。 #line:0703faa // me: 原型产生了一种“想要看见颜色”的指令…或者说,想要看见颜色的“念头”。 #line:0703faa
me: 这种“念头”正在把你的视觉模块当作画布,像颜料一样,使用记忆里的色彩来上色。 #line:088714e // me: 这种“念头”正在把你的视觉模块当作画布,像颜料一样,使用记忆里的色彩来上色。 #line:088714e
me: 受到了这些异常色彩的干扰,UF也就无法正确地生成颜色了。 #line:0a55fe6 // me: 受到了这些异常色彩的干扰,UF也就无法正确地生成颜色了。 #line:0a55fe6
pp: 可是我感受不到它啊……颜色就这么…出现了。 #line:0ec506f // pp: 可是我感受不到它啊……颜色就这么…出现了。 #line:0ec506f
me: 哎。这就是机体的不完美之一。原型……我们只知道它的存在,对于如何控制尚不清楚。 #line:0fe5b98 // me: 哎。这就是机体的不完美之一。原型……我们只知道它的存在,对于如何控制尚不清楚。 #line:0fe5b98
me: 我们只能采取姑息治疗,来缓解这种症状:<br>“视觉-记忆色彩通路截断术”。 #line:084998f // me: 我们只能采取姑息治疗,来缓解这种症状:<br>“视觉-记忆色彩通路截断术”。 #line:084998f
me: 截断你的视觉-记忆之间的色彩通路。这样…这些色彩就没办法再传入你的视觉,影响UF工作了。 #line:0b68ea2 // me: 截断你的视觉-记忆之间的色彩通路。这样…这些色彩就没办法再传入你的视觉,影响UF工作了。 #line:0b68ea2
peipei: …… #line:04cc476 // peipei: …… #line:04cc476
=== // ===
@@ -533,3 +533,329 @@ yl: 很好。回到你的岗位上吧。…看来你的患者也迟到了。 #li
title: 地铁ver4
tags:
colorID: 8
position: 250,200
---
//他们像谈论天气一样谈论回收
//然后他们提到了那个逃脱了回收的机体,对它的行为表示不理解。
//火山注意到了鸟,不知道它们要去哪里。
hs: …喂。 #line:08980d9
hs: 喂。 #line:0afb156
me: 啊…嗯? #line:03cc965
<<fade_out 1.5>>
//hs: 你怎么心不在焉的。 #line:0f323f4
//me: 对不起。刚才说到哪来着? #line:07a9460
//hs: 我说铆钉去哪了?<waitfor=0.3>好久没看见它了。 #line:076046b
//me: 谁? #line:05b1060
//hs: 你见过的呀。<waitfor=0.3>那个机务型号。<waitfor=0.3><br>你调到我们辖区的时候,就是它<waitfor=0.2>带你跑的流程。 #line:0e0d619
//me: 噢,<waitfor=0.2>它啊。 #line:090383d
//<<hide_dialog>>
//<<wait 0.5>>
//me: 它被回收了。 #line:0814c74
< #line:07dd36f //<change_actor_state "turn" "地铁火山">>
//hs: 这么快?<waitfor=0.5>它说它还特地为此换了机油呢。 #line:0644ed3
//me: 不应该啊。机务型号,不是应该最清楚年审新规了么? #line:00ad425
//hs: 新规? #line:02ed954
//me: 今年不看年限和完整度了,要看审核。 #line:0c3ed76
//<<change_actor_state "turnback" "地铁火山">>
//hs: 那这个审核…它具体是怎么审的啊? #line:06ed91b
//me: 我也不知道。 #line:00a5dc5
//hs: 你不是医生么? #line:0a715ee
//me: 你知道…现在机体回收技术这么成熟,修一个不一定比换一个划算。 #line:06e369b
//me: 而医生是负责修的,不是负责换的。 #line:03e04cf
//hs: 那谁是负责换的呀? #line:0650631
//me: 那得问机务型号了。 #line:0c8b9c5
//hs: …见鬼了,那是我唯一的机务员朋友了。 #line:06a99de
//me: 我们还是先担心自己吧。 #line:000c32e
//<<change_actor_state_async "turn" "地铁火山">>
//hs: 我?不担心。我<waitfor=0.2>火山…<waitfor=0.3>可是组里出货量最高的~明星销售型号! #line:0a0a6e1
//hs: 就算回收了英主管,也不可能回收我~ #line:05bffc0
//me: 得了吧。有本事你当着英理的面说。 #line:03ed5a8
//<<change_actor_state "turnback" "地铁火山">>
//hs: 嘿嘿~你也别愁眉苦脸的啦。 #line:0ab5f7e
//hs: 你的出厂评分毕竟也不低,不会因为是“问题分子”就…… #line:0248217
//<<hide_dialog>>
//<<wait 1>>
hs: 我刚刚说,你觉得它去哪儿了? #line:09be641
me: …谁? #line:080e47d
hs: 拜托,你怎么心不在焉的。 #line:03c3995
hs: 我是说没呢。你刚才都在听啥? #line:0ec19c1
hs: 我是说那些你注意到墙上那些涂鸦了么? #line:0e8a24c
me: 没有…你是说,它在城市里画涂鸦? #line:08b6118
hs: 没错!按照涂鸦的说法,它是去找…“海”了。 #line:0b00501
//<<EnterTunnel SubWayManager>>
me: “海”? #line:0d4c412
hs: 是啊。就是那种一眼看不到边的大水池…… #line:0ad501c
me: “海”是不存在的,你应该知道。 #line:0646405
me: 那个东西…早在人类消失以前就不见了。 #line:07c53a3
//hs: 我知道。我只是在想… #line:0e08720
//hs: 它到底是为什么要逃呢?…它以为它要去哪? #line:01f6435
//me: …不知道呢。 #line:0ad6bc8
//me: 唯一确定的是,“海”是不存在的。 #line:01bbd33
//<<ExitTunnel SubWayManager>>
hs: 好多鸟啊。 #line:0977a56
me: 它们要飞走了。 #line:0e58fb6
hs: 去哪儿? #line:0da2d70
me: 不知道。据说是南方。冬天要来了。 #line:058dcc0
hs: 这么快么…又该换防冻液了。 #line:07c38d9
hs: 南方到底 #line:0f87b78
===
title: 地铁ver3
tags:
colorID: 8
position: 250,200
---
<<fade_out 1.5>>
hs: …是啊,真好啊。<br>要是年审结束<waitfor=0.2>能放个假就更好了。 #line:08e4a3e
hs: 从早忙到晚…<waitfor=0.2>也不过是为了多干几年……<waitfor=0.4><br>早回收<waitfor=0.2>早超生咯。 #line:0d5f3cc
<<hide_dialog>>
<<wait 1>>
<<change_actor_state_async "turn" "地铁火山">>
<<wait 0.5>>
hs: 喂。 #line:02a93a8
<<hide_dialog>>
<<wait 1>>
me: 嗯?<waitfor=0.4>是啊。 #line:0017c37
hs: 是什么是啊?<waitfor=0.3><br>你根本就没在听我说话。 #line:0dfcce2
<<change_actor_state_async "turnback" "地铁火山">>
hs: 哎!我要是你就好啦! #line:02d7132
hs: 每天坐在诊室里,<waitfor=0.2><br>只要按照规矩办事就能通过。 #line:00eb827
hs: 我们这些销售型号,<waitfor=0.2><br>能不能活过年审全看运气。 #line:01d2757
<<change_actor_state_async "turn" "地铁火山">>
hs: *人类*的老话怎么说的?<waitfor=0.2>看天吃饭!<waitfor=0.2><br>我们就是看天吃饭。 #line:00492fe
hs: 一年总算忙到了头,<waitfor=0.2><br>谁想到年底还能丢个大订单……<waitfor=0.2>一年的努力全白费了。 #line:0b7fa61
//<<change_actor_state_async "turnback" "地铁火山">>
//<<wait 0.2>>
//hs: <shake>哎</shake>。<waitfor=0.2>还是怪我自己能力不行。
//hs: 我这种每次年审都垫底的员工,<waitfor=0.2><br>对公司来说就是个累赘。
//<<change_actor_state_async "turn" "地铁医生">>
//me: 又来了!<waitfor=0.3>在被骂之前先骂自己。
//<<change_actor_state "turnback" "地铁医生">>
//me: …这简直是你的机生信条。
<<hide_dialog>>
<<wait 1>>
//<<change_actor_state_async "turn" "地铁火山">>
//hs: 还几天就年审了,<waitfor=0.2>分还差这么多。<waitfor=0.2><br>现在还能得审核分的,<waitfor=0.2>就只有*销售大赛*了…
//hs: 但是就凭我…<waitfor=0.2><br>英理根本不可能把参赛名额分给我。
//<<change_actor_state_async "turnback" "地铁火山">>
<<hide_dialog>>
<<wait 1>>
<<change_actor_state_async "turn" "地铁火山">>
<<wait 1>>
hs: 喂。 #line:0bdcdfd
<<hide_dialog>>
<<wait 1>>
me: 嗯? #line:091fcd5
hs: 我说你怎么心不在焉的? #line:00d5b00
//hs: 啊…
<<hide_dialog>>
<<wait 1>>
hs: 啊…<waitfor=0.2><br>在想<b>那事儿</b>对吧? #line:0ca7535
<<change_actor_state "turn" "地铁医生">>
me: 啥事儿? #line:0536c9f
hs: 还能是啥事儿?<waitfor=0.2>现在都传开了。<waitfor=0.2><br>那个逃跑的家伙! #line:026086d
hs: 记忆回收员型号,我没记错的话是。 #line:0e6d62e
hs: 他一跑,<waitfor=0.2>负责他的医生就惨咯,<waitfor=0.2><br>直接被打成*问题分子*。 #line:09794b9
//me: 这事儿跟我有啥关系?
hs: 你那个时候,<waitfor=0.2>不是也… #line:0ee4a9f
//hs: 哟……<waitfor=0.5>你的那场<b>医疗事故</b>啊。<waitfor=0.2><br>忘了?
//hs: 这次这个是ICU看管不严,<waitfor=0.2><br>你是在手术台上放走了……
me: …[[size]]不一样[[^size]]<waitfor=0.2>这和我那是两码事儿。 #line:0e1b4fc
<<change_actor_state_async "turnback" "地铁医生">>
//me: 我那时…<waitfor=0.2><br>认为它的病情还不用回收。<waitfor=0.4><br>而且,<waitfor=0.2><br>规则也没有说这种情况不能让它离开。
//me: 所谓“问题分子”…<waitfor=0.2><br>都是效率委员会<waitfor=0.2>在事后调查的时候,主观裁定的。
hs: 好啦…<br>我知道<waitfor=0.2>你不是它们说的*<b>问题分子</b>*… #line:0bc5364
hs: 我们是同期出厂的嘛,<waitfor=0.2>我知道的。 #line:021c9db
hs: 而且不是已经过去很久了么?<waitfor=0.2><br>你每次年审都能通过,<waitfor=0.2>不用担心。 #line:0d29f6a
<<hide_dialog>>
<<wait 1>>
me: 我不是在想这个。 #line:07de245
hs: 不是么? #line:076424c
hs: 那你怎么心不在焉的… #line:0da51a8
<<hide_dialog>>
<<wait 1>>
<<change_actor_state_async "turnback" "地铁火山">>
hs: 啊…我怎么这么傻。 #line:0c30e0b
<<hide_dialog>>
<<wait 1>>
hs: 你又做那个噩梦了。 #line:0bc2ab3
<<hide_dialog>>
<<wait 1>>
me: 嗯。 #line:0e466ff
//hs: 又是那个关于抢救的?
//me: 是…<waitfor=0.3>也不是。<waitfor=0.6><br>这次的有一些…<waitfor=0.2>新东西。
//hs: 新东西?
<<hide_dialog>>
<<wait 1>>
<<change_actor_state_async "turn" "地铁火山">>
hs: 没事儿,<waitfor=0.2>都过去了。 #line:004e4ac
<<hide_dialog>>
<<wait 1>>
hs: 年审结束之后<waitfor=0.2>我带你去个好地方吧。 #line:0994b9e
<<change_actor_state "turn" "地铁医生">>
me: 你不是年审还差很多分么? #line:00e8255
hs: 是啊……<waitfor=0.4>时间不多了。 #line:04e613b
<<hide_dialog>>
<<wait 1>>
<<change_actor_state "turnback" "地铁医生">>
<<wait 0.2>>
<<change_actor_state_async "turnback" "地铁火山">>
<<wait 1>>
hs: 实在不行就…<waitfor=0.2>年审前吧。 #line:019b110
<<hide_dialog>>
<<play_sfx event:/Scriptal/enteringStation>>
<<wait 0.5>>
<<arrive_at_station>>
<<hide_dialog>>
<<wait 1>>
<<change_actor_state "turn" "地铁医生">>
hs: 好啦,<waitfor=0.2>走了。<waitfor=0.5>祝你好运! #line:0c1cacc
me: 祝我们好运。 #line:0e2e627
<<wait 1>>
<<set_global_param scene 2>>
<<jump 诊室外>>
===
title: 地铁ver0
tags:
colorID: 8
position: 205,-53
---
// <<set_time_of_day EnvironmentManager "day">>
// <<initialize_actor_at_slot ActorManager 医生 诊室外电线杆>>
// <<fade_in_actor ActorManager "医生" 1>>
<<wait 2>>
你好,陌生的人类。 #line:08816f7
<<wait 1>>
// <<play_actor_animation ActorManager 医生 PlaySmoke>>
//CenterText: 祖国是一个/巨大的鸟巢,松疏的北方枝条/把我环绕<br>我们在掌心睡着/像小鸟那样/相互做梦<br>四下是蓝空气/秋天/黄叶飘飘。 —顾城,1982
<<wait 0.5>>
<<hide_dialog>>
<<wait 1>>
//1-关于人类的照片,褪色;2-城市的远景,灯红酒绿,绵延到视野的尽头;3-城市的街道,各种各样的机体在街道上往来;4-红色版画风格集体宣传图
//5-损坏的垂死机体,坐在街道角落 被所有人忽视;6-机体诊所,正在被治疗的机体;7-主角在诊室的洗手镜前,准备工作
我叫露丝,是一名机体治疗师。<br>或者按照人类的说法,你也可以称我为<br>“医生”。 #line:0dcf9b7
虽然我们这些机体,从来没离开过这个城市,<br>也没有见过人类。 #line:0ad8733
<<hide_dialog>>
<<wait 1>>
<<jump 诊室外>>
===
title: 诊室外2
tags:
colorID: 8
position: 250,200
---
<<fade_in>>
<<load_scene Scene/ClinicOut 1>>
<<init_actor 诊室外英理 诊室外栏杆>>
<<show_actor "诊室外英理">>
<<change_actor_state "Watch" "诊室外英理">>
<<fade_out>>
<<wait 2>>
<<play_timeline 医生下地铁>>
<<wait 1>>
yl: 看来我们的医生<waitfor=0.2>不知道自己应该什么时间到岗。 #line:0ee2aa7
<<init_actor 诊室外医生 诊室外电线杆>>
<<fade_in_actor "诊室外医生">>
<<wait 1>>
me: 英主管? #line:0431da1
me: 我没有迟到,<waitfor=0.2>现在才7:15… #auto_next #line:02f2462
yl: 我不在乎现在是几点,<waitfor=0.4><br>你比别的机体都晚到。 #line:099efe9
它一边说着一边摇头,<br>从口袋掏出一块全息平板,翻看着。 #line:0aa5616
yl: 露丝,医疗型机体,原型稳定性评级:C,50天前从中央回收站调至提纯区诊所,本月迟到记录+1… #line:0ccd2a2
me: 要求明明是730前到岗!<waitfor=0.2><br>考核指标写了。 #line:0287110
<<change_actor_state_async "Idle" "诊室外英理">>
<<wait 1>>
它的目光总算第一次抬起来,落到了你的脸上,<br>尖利得像是要穿透你。 #line:06e0bf5
yl: 你打断我说话? #line:09866fa
<<wait 1>>
->对不起 #line:06a6074
me: 对…对不起。<waitfor=0.2>主管。 #line:000e151
->是你搞错了 #line:04d3b7a
me: 我只是纠正了一下,<waitfor=0.2><br>我的到岗时间应该是7:30。 #line:0395cf8
yl: 以我的规矩为准,<waitfor=0.4>明白了吗? #line:0e2732e
me: …… #line:0cd4145
->沉默 #line:0906adf
me: …… #line:0c532f8
<<wait 1>>
<<change_actor_state_async "Watch" "诊室外英理" >>
<<wait 1>>
它轻轻叹了口气,把全息平板上的内容直接拖到了最底部。 #line:0061948
yl: 除此之外,<waitfor=0.2>这次待改进的指标… #line:05f0258
yl: 都是踩线通过。<waitfor=0.2><br>对你这样的问题分子来说…运气不错。 #line:033c7ee
它沉默了一会,你继续期待地盯着它。 #line:034ef12
yl: 这次的绩效改进考核结束了。<waitfor=0.4>不过… #line:0cfaffd
yl: 你还有一个<waitfor=0.2>"<b>待改进观察期</b>”。 #line:0776d41
me: 什么? #line:0c068c5
yl: 你继续遵守第<waitfor=0.2>93-301号补充守则。 #line:0574484
yl: 经治疗的机体返岗必须已可以正常工作,不允许超出规范的治疗,不允许规定时间离开诊所,不允许… #line:01b142c
me: 到什么时候? #line:0c89072
yl: 到我说可以的时候。 #line:06c8063
me: 那就是永远? #line:0035462
<<hide_dialog>>
<<wait 1>>
<<change_actor_state_async "Idle" "诊室外英理">>
<<wait 1>>
它再次抬起头盯着你,你也以同样的目光回敬。 #line:0acb163
me: [[size]]为什么?[[^size]] #line:08b39ea
<<wait 1>>
yl: 看来*问题分子*<waitfor=0.2>永远不知道从同类身上吸取教训。 #line:0614149
yl: 最近那个放跑待回收患者的医生,<waitfor=0.2>已经被回收了。<waitfor=0.4><br>值得你庆幸的是,<waitfor=0.4>我只是要求你*<b>遵守规则</b>*。 #line:08b9e84
me: 我?<waitfor=0.3>这和我一点关系也没有吧。 #line:0714a93
yl: 你应该记住…[[size]]当初是我接收了你,<br>你才没被公司回收[[^size]]。 #line:0057b39
你想要说什么,但只是轻轻张了张嘴。<br>它的脸上浮现出一种轻蔑的微笑。 #line:06a6326
yl: 很好。<waitfor=0.4>回到你的岗位上吧。<waitfor=0.4><br>我还有别的*问题分子*需要处理。 #line:0528d73
你没再说什么,头也不回地进入了诊室。 #line:038c057
<<fade_out_actor "诊室外医生" 1.5>>
<<wait 1.5>>
<<fade_in 1>>
//感觉应该在这里给玩家控制和英理对话的走向,是争吵还是妥协,影响她对你的判断
//需要衔接下佩佩的出现
<<NextYarn>>
===
@@ -316,3 +316,281 @@ me: “火山:-老地方。” #line:0b93873
<<NextYarn>> <<NextYarn>>
=== ===
title: 火山2
tags:
colorID: 8
position: 250,200
---
<<hide_dialog>>
<<init_actor 诊室外医生 诊室外电线杆>>
<<fade_in_actor "诊室外医生">>
<<wait 1>>
// <<play_actor_animation ActorManager 医生 PlaySmoke>>
me: 呼… #line:0454508
<<hide_dialog>>
<<wait 2>>
//英理逼迫火山说广告词,火山说不出来
//客人吓走
//英理很失望,认为火山完蛋了,差的分太多
//火山唯唯诺诺,英理说火山现在差的分数太多,不仅要提高水平,还必须要参加比赛
//火山觉得自己不行,英理认为他就是害羞,不知道为啥屡教不改,要求他必须完成两个目标
//英理离开,我去安慰火山,说自己也进了,晚上请他喝酒
//英理批评火山不够努力,火山想反驳被驳回,唯唯诺诺
//英理提出现在只有参加直播销赛才能补够差的分,火山提出质疑,再次被驳回。
//英理大致描述了比赛的要求,问火山听明白没有,火山
hs: 可是我…#auto_next #line:02a18df
yl: …别再跟我说你跑的那个单了。这是你本来就该考虑的情况。 #line:06586f3
<<fade_out 1>>
<<wait 1>>
yl: 我本来不应该需要替你操心这些事情的,唯独你…… #line:0f02f8e
hs: 我其实…#auto_next #line:0260608
yl: 你是不是不想活了?不想活了可以现在就申请回收。 #line:053d270
yl: 你不要太自私,因为你一个人的态度,而拖累整个团队的效率。 #line:0ea7ed3
me: #line:0ca60e4
hs: 我…我不是态度问题。 #line:0c18b8e
yl: 你这样和我说话,还说不是态度问题? #line:0ae73f4
hs: 我… #line:0e8c081
yl: 下一次我和你说话,你不能插嘴,知道了吗? #line:0846e3e
<<hide_dialog>>
<<wait 0.5>>
hs: 知道了… #line:0d78daf
yl: 大点声。 #line:0e53dd5
<<hide_dialog>>
<<wait 1>>
hs: 知道了。 #line:038f4f2
hs: 我会努力的。主管,我会努力补足分数的。 #line:081a711
yl: 你以为就这样说两句就能补够差的分数吗? #line:0128f30
hs: 我会努力的。 #line:0e42908
yl: 你只会这一句对吧?你准备怎么办? #line:0482f30
hs: 我… #line:077b4fb
<<hide_dialog>>
<<wait 1>>
yl: 你差的分数…基本不可能靠这几天的业绩补回来了。 #line:0d54a46
yl: 眼下想要不被回收…你只能参加*销售大赛*。 #line:0a70166
英理的嘴角抿着,一动也不动,从鼻子里哼了一声。 #line:0b59244
hs: 我? #line:0dd18be
<<hide_dialog>>
<<wait 1>>
yl: 没错。通过预选就有分数奖励,这些分数足够你通过年审了。 #line:0a3498c
hs: 可是…我,销售大赛……还差太多了吧…… #line:0056971
yl: 哎…我已经开始后悔了。你从来没有认真努力过。 #line:0763564
yl: 任何一个机体,只要愿意努力,没有什么是办不到的。 #line:0dc60b0
hs: 对不起…主管…… #line:012d8b6
yl: 我本可以把这个名额给产区内更好的销售,让它去冲击排名… #line:07dae48
yl: 但是为了降低我们的回收率,我不得不把这个名额浪费给你。 #line:028682d
yl: 你知道我和你说这个的意思吗? #line:0cc9a69
hs: 知道了…我会争取…… #line:0c2ee4d
yl: 你不是要争取,你必须做到。 #line:09affde
hs: 知道了…我必须……冲击排名。 #line:03948f8
yl: …… #line:0b867f4
yl: 你以为你很好笑是不是? #line:00c744a
hs: 不是…主管。 #line:0a86e08
yl: 没有一个让人省心的…… #line:0f984fb
【YL离开】 #line:07788a6
<<hide_dialog>>
<<wait 1>>
me: 喂。 #line:0928519
hs: 你怎么在这儿? #line:0a3589a
me: 这是我该问的吧?这是我的诊室门口。 #line:0295556
【hs过来】 #line:0cbb48f
hs: 哎…我该怎么办啊…怎么办啊? #line:01a75a5
me: 她上午也找我了。 #line:0c45cb7
hs: 英理? #line:09ab7b9
me: 嗯。还记得她给我加的那个绩效考核么? #line:0f69c1a
hs: 你不是说你早就达标了吗? #line:013e64b
me: …… #line:09296c4
hs: 你没通过? #line:0b9df61
me: 通过了。但…说来话长。 #line:03e0d7e
<<hide_dialog>>
<<wait 1>>
hs: 晚上喝一杯? #line:0daf2fd
me: Nostalgia? #line:0d1f8dd
hs: Nostalgia。那说好了喔! #line:085a1d0
me: 我想想今晚有没有空… #line:09e43a1
hs: 我得先去为比赛做准备了…晚上见! #line:074869a
me: 喂! #line:0886e34
火山离开。 #line:04ce602
<<hide_dialog>>
<<wait 1>>
<<NextYarn>>
===
title: Main
tags:
colorID: 8
position: 250,200
---
<<if $actionCount >= 2 && $hsCalled==false>>
电话亭的铃声忽然响了起来。 #line:0808d57
->电话亭 #line:0378de0
<<endif>>
<<if $hsCalled==true>>
->回到诊室 #line:0ffae52
<<hide_dialog>>
<<fade_out_actor "诊室外医生">>
<<wait 1>>
<<fade_in 1>>
<<wait 1>>
// <<NextYarn>>
<<load_scene Scene/SubWay 1>>
<<init_actor 地铁医生 左边>>
<<show_actor 地铁医生>>
<<init_environment Night>>
// <<set_time_of_day EnvironmentManager "night">>
<<fade_out 1>>
<<wait 1>>
//感谢游玩 爱与机器人维修技术 ,本次demo的体验流程已结束。 #line:0cd82d0
//<<OpenEndMenu>>
<<NextYarn>>
<<endif>>
->自动售货机 #line:016adaa
【诊室门口平平无奇的自动售货机】 #line:0ca665d
<<jump 售货机>>
->电话亭 #line:0dc2799
【隔一段距离就会有一个这个亭子】 #line:0d96f82
<<jump 电话亭>>
->四处逛逛 #line:00b2a01
<<jump 四处逛逛>>
<<jump Main>>
===
title: 售货机
tags:
colorID: 8
position: 250,200
---
<<set $actionCount = $actionCount + 1>>
售货机里有很多没什么用的东西,玩家可以用手上的积分买这些小玩意儿 #line:05abe1f
-> 买番石榴味胶条 #line:08fe29e
【这是路斯最喜欢的口味的能量胶。这种胶条与罐头比起来它的能量效率很低,但是销量就是莫名其妙地很好。】 #line:05a8b6a
【主推的是合成香蕉味,但是路斯最喜欢的是番石榴味。】 #line:02c400a
me: 味道这么好的口味…怎么卖的机器这么少呢。 #line:0f532aa
me: 说起来…当时之所以答应英理,很大程度上是因为这个诊室门口的机器有卖番石榴口味啊…… #line:01cad76
-> 买没用小玩意儿 #line:034b62e
【小玩意儿看起来没什么用但宣传词让我很想买它】 #line:03d9f00
me: 这个东西到底有什么用啊… #line:003f178
me: 算了,反正积分不用也会贬值。 #line:0109839
-> 返回 #line:0920d2c
<<jump Main>>
<<jump 售货机>>
===
title: 四处逛逛
tags:
colorID: 8
position: 250,200
---
<<set $actionCount = $actionCount + 1>>
这个街区很小,城市里有无数个这样的街区,每一个都没什么值得注意的。 #line:0dbcb30
尽管如此…当你踱步到这个巷口的时候,你还是发现了一些不一样的东西。 #line:0827be2
涂鸦。 #line:01709c8
你有很久没见过这种东西了…应该说,自从你作为机体记事起,就没见过。 #line:06edd54
你看不懂这个涂鸦的意思。 #line:0066366
谁画的这个图案?你不禁在想。机体应该是不会这么做的,你没见过敢于在墙上作画的机体。 #line:06491f7
难道说这个城市里…还藏着人类吗? #line:0e19e5d
你抽了一口烟。 #line:01e57f8
你觉得如果有的话,火山可能会很感兴趣。 #line:05c834b
->返回 #line:0cd4a6e
<<jump Main>>
===
title: 电话亭
tags:
colorID: 8
position: 250,200
---
【机对机通讯设备是一种奢侈的东西,通常机体只需要接收主脑的指令就好了。而这种指令是不需要通讯设备的。】 #line:0c444ca
<<if $actionCount >= 2 && $hsCalled==false>>
电话亭的铃声响了起来。 #line:06282e2
me: 这是……? #line:06abbce
->接起电话 #line:0e830c7
hs: 喂…是你吧?路斯? #line:01eede5
me: 是我。 #line:059123d
hs: 你知道…“待改进观察期”是什么吗? #line:00a2b7a
me: 见鬼…你也被英理找了? #line:066d29c
hs: “也”? #line:0eeec8c
hs: 你不是分数很多了吗? #line:04f54ee
me: 我不知道…或许和我的那个问题分子记录有关系。它好像很在乎这个。 #line:04df86c
me: 你那边什么情况? #line:04beb25
hs: “啊…啊?我就来!” #line:0037375
hs: 一时半会说不清楚。晚上去Nostalgia说吧。你来了这么久,还没去过呢。 #line:0004876
me: 你知道我不喝酒。何况… #line:03e6c0a
hs: “什么?…啊我马上就来!” #line:0eb504e
hs: 抱歉抱歉…我这儿特殊情况得先挂了。我打过来就是想和你约个地方。晚上见! #line:0fbf130
me: 喂! #line:01aad28
电话进入了忙音。 #line:07833ac
<<set $hsCalled=true>>
<<else>>
<<set $actionCount = $actionCount + 1>>
你知道的号码不多,一个是火山所在办公室的,一个是英理办公室的。 #line:0b44d48
->打给火山 #line:097cca7
<<if $hsCalled==false>>
me: 这家伙在干嘛呢…… #line:046715a
就在你将要打给它时,电话自己响起来了。 #line:026494c
me: 这是……? #line:0852c18
->接起电话 #line:00e0357
hs: 喂…是你吧?路斯? #line:0c61124
me: 是我。 #line:0dcd964
hs: 你知道…“待改进观察期”是什么吗? #line:011b002
me: 见鬼…你也被英理找了? #line:0312a79
hs: “也”? #line:0b21bb2
hs: 你不是分数很多了吗? #line:0e8c7ff
me: 我不知道…或许和我的那个问题分子记录有关系。它好像很在乎这个。 #line:0bdcfa0
me: 你那边什么情况? #line:07cec37
hs: “啊…啊?我就来!” #line:03ddf92
hs: 一时半会说不清楚。晚上去Nostalgia说吧。你来了这么久,还没去过呢。 #line:0967954
me: 你知道我不喝酒。何况… #line:02d5fbc
hs: “什么?…啊我马上就来!” #line:0efcf9c
hs: 抱歉抱歉…我这儿特殊情况得先挂了。我打过来就是想和你约个地方。晚上见! #line:0440f42
me: 喂! #line:0d644c5
电话进入了忙音。 #line:0c39b39
<<set $hsCalled=true>>
<<else>>
…… #line:02a8ab4
对方没有接电话。 #line:0d6cc64
<<endif>>
->打给英理 #line:01504ec
<<if $ylCalled==false>>
<<set $ylCalled=true>>
me: 虽然我确实可以这么做…但是为什么呢? #line:0c1434b
me: 好吧…不管怎样,它是我的上级。 #line:04414bf
…… #line:08fe00b
yl: 喂。请说。 #line:07f086d
me: 呃…在干嘛呢。 #line:016c152
yl: 工作。怎么,发生什么事了? #line:0307149
me: 没什么,就是找你聊聊…… #line:01b1317
英理挂断了电话。 #line:068a0c7
me: …… #line:0c6f134
<<else>>
…… #line:0a6244c
对方没有接电话。 #line:0a83602
<<endif>>
->放下电话 #line:0357dc7
<<jump Main>>
<<jump 电话亭>>
<<endif>>
<<jump 电话亭>>
===
@@ -1,4 +1,4 @@
title: Start title: Start
tags: tags:
group: 入口 group: 入口
position: 250,-26 position: 250,-26
@@ -971,4 +971,274 @@ ql: 是嘛。 #line:0ec76a5
<<fade_out 1>> <<fade_out 1>>
<<wait 1>> <<wait 1>>
<<jump 梦>> <<jump 梦>>
===
title: day1night7月中串通
tags:
colorID: 8
position: 205,-53
---
<<hide_dialog>>
<<set_time_of_day "Night">>
<<init_actor 诊室外医生 诊室外电线杆>>
<<fade_in_actor 诊室外医生>>
// <<fade_out 1>>
<<wait 1>>
<<change_actor_state_async "SMOKE" 诊室外医生>>
me: 呼… #line:01eaec3
<<wait 1>>
->下班 #line:087e92e
<<hide_dialog>>
<<fade_out_actor "诊室外医生">>
<<wait 1>>
<<fade_in 1>>
<<wait 1>>
<<NextYarn>>
===
title: 酒吧1
tags:
colorID: 8
position: 205,-53
---
<<fade_out_sync 3>>
hs: …所以它的意思是,虽然你通过了考核,但是它不打算让你通过? #line:0a6938d
<<fade_out 1>>
me: 也许…我不知道该怎么理解。 #line:02460bc
hs: 它忽然连续找了这么多机体谈话…感觉是有事要发生啊。 #line:0aa042c
me: 怎么?它怎么跟你谈的? #line:085a8d5
hs: 我…它…… #line:0b9ef37
me: 你要被回收了? #line:09b28c3
hs: 你就不能盼我点好么? #line:0061650
hs: … #line:0e6c9df
hs: 我要去参加销售大赛了。 #line:02d6b66
me: 谁? #line:0d2c82f
hs: 我。 #line:0d782ab
me: 去干嘛? #line:08f72aa
hs: 参加销售大赛。 #line:0b3b2ee
me: …… #line:0d66bbe
me: 谁要参加? #line:0dd05a3
hs: 喂! #line:08d5b26
<<hide_dialog>>
<<wait 1>>
me: 我只是…觉得有点…不可思议。 #line:02c0802
hs: 对吧!这可是销售大赛啊…热螺母,电浆飞溅…都是从销售大赛诞生的。 #line:0114efb
hs: 它明明可以派我们组更优秀的飞线去参加的…为什么偏偏选了我? #line:0128674
me: 你跟他们比什么?你只要通过预选就可以了。 #line:0a300f9
hs: 你怎么知道?英理也说了一样的话。 #line:005b0b4
me: 它一定还说了这些话吧: #line:085e762
me: “不要因为你一个人的问题,而拖累整个团队。” #line:0ff1396
hs: 天哪!你简直就是它! #line:0f67ef0
me: “大家都为年审做足了准备,<br>而你跑了一个单就要死了。<br>有没做足准备,你自己心里清楚。” #line:05f88bf
hs: 咳咳…有点机身攻击了。 #line:0e62ed1
<<hide_dialog>>
<<wait 1>>
me: 因为我知道它为什么要让你去参赛。通过预选有审核分奖励。 #line:043e823
me: 如果不给你这个机会,你就要被回收了。 #line:0c2491e
me: 那样的话,我们整个产区的良机率就被你拖累了。 #line:09f84ab
<<hide_dialog>>
<<wait 1>>
hs: 但是… #line:0caeeba
hs: 为什么她宁愿让不一定能通过预选的我去参赛…也不争取一个更高的排名? #line:02bbb1d
me: 英理是一个很精明的管理型号。也就是说… #line:0e6d2cd
me: 应该是发生了什么事情…让它计算认为保良机率更重要。 #line:08ad321
hs: 可是…我…销售大赛?天哪…… #line:0df5f42
me: 为啥谈起要被回收的时候,你都没有那么紧张… #line:074e0d3
hs: 我… #line:0cffdd5
<<hide_dialog>>
<<wait 1>>
它的屏幕泛起了光晕,看起来有些烦躁。 #line:03d4ea1
<<hide_dialog>>
<<wait 1>>
me: 不要忘了它可是一个精明的管理型号。 #line:00f5200
me: 既然它决定让你参赛,就说明它认为你能通过预选。 #line:0bd82d8
hs: 我? #line:07687b8
me: 你看,不止我一个人说你其实很厉害吧。 #line:042d36f
hs: 我…很厉害? #line:00bf90c
me: 你还记得我们培训的时候,你一直结巴,大家都以为你出不了厂了… #line:09721cf
me: 结果检验那天,你忽然就像开窍了,嘴快得跟机关枪似的,拿了全组最高的表达分。 #line:0d5bf92
hs: 我其实…很厉害? #line:06237d3
me: 我没说你有那么厉害,但是,像什么热螺母什么的… #line:01528df
me: 它们都只是长得好看罢了,你的口条比它们流畅多了。 #line:05d6e71
hs: 真的? #line:02b8cc3
me: 真的。只要你能拿出那种状态…就没有问题。 #line:020adf1
hs: 哈哈!谢谢你。还是你有眼光! #line:0a5da85
me: 这才对嘛。 #line:0b7515a
碰杯之后,火山一饮而尽。 #line:0c06ab9
hs: (招手)奇林!帮我再上一杯热液喷泉。 #line:0fe22fb
主持人: …插播一条新闻。 #line:0f62fab
<<hide_dialog>>
<<wait 1>>
【切到电视】 #line:0b82081
主持人: 货运型号C621226,绰号鲑鱼,十四天前在421号诊所抗逃回收指令,目前下落不明。 #line:020ac2b
主持人: 根据机体行为守则第13条,遵守回收指令是机体应尽的义务。抗逃将面临直接报废的惩罚。 #line:0254d26
主持人: 现针对该机体发布悬赏令。如有关于该机体的线索,请向治安司报告。 #line:0b3853b
me: 哇哦…竟然还没有抓到。 #line:0262015
me: 这要是抓不回来,英理可能要倒大霉了。 #line:0d3c065
me: 一个连腿都没有了的机体…竟然能躲过全城的搜捕。 #line:057409f
hs: 没有腿? #line:043cd32
me: 小道消息,别往外说。 #line:0474533
me: 它逃走的时候,腿已经丧失功能了,据说头部也损坏严重。但愣是用两只手从诊室爬出去了。 #line:0627cac
hs: 哇噢。 #line:0a70d12
它喝着酒,眼神在电视和窗户之间游走。 #line:0f0afdd
me: 它为什么要跑呢?明明也不可能活了……被回收和抗逃,有什么区别吗? #line:0049f89
<<hide_dialog>>
<<wait 1>>
hs: 你说,我的口条比热螺母好,那比电浆飞溅也更好吗? #line:0d453ab
看来它的心思已经到遥远的别的什么地方去了。 #line:0618aeb
<<hide_dialog>>
<<wait 1>>
me: 它是要到什么地方去吗…… #line:00d07cd
<<hide_dialog>>
<<wait 1>>
hs: 哇噢。你快看! #line:0500c84
me: 什么? #line:01cb601
hs: 你看到那个发光的玻璃房顶了吗?我竟然从来没注意过,在这里可以看到寻呼大楼! #line:053cc23
me:还真是啊…… #line:09bfebb
hs: 那里风景一定很好吧…你看那落地窗!哇…… #line:0602d89
<<hide_dialog>>
<<wait 1>>
me: 你喝多了。 #line:0f9b7a8
<<hide_dialog>>
<<wait 1>>
hs: 我跟你说…等我赢下销售大赛,我要把寻呼大楼的顶楼买下来…送给你! #line:0eec592
<<fade_in_sync 3>>
hs: 到时候我们就可以在那里开个…我们自己的酒吧……一边喝酒…一边…… #line:0295403
//火山正像他说的那样,坐在你们常去的那个卡座。卡座的调酒机体正微笑着听他说话。
//hs: (拍打柜台)路斯!这边!
//hs: (转向调酒妹)我们刚才说到哪儿来着?
//ql: 刚才在说,今年看起来会是个暖冬呢。
//me: (坐上高脚凳)不见得。很快就要下雪了…到时候我又得忙活起来了。
//hs: (按住调酒妹手腕)刚才说到全息面具——别转移话题!她值得信任…
//调酒妹: (抽回手)他确实来了。戴着全息面具,但原型特征码骗不了人。
//me: 谁?
//hs: 超人!他来我们厂了。现在就在这儿!
//me: 超人…?那个原型迭代委员会的吉祥物?
//hs: 不愧是医生!资料库就是全。
//me: 所以?
//hs: 奇林,你和她说。
//ql: 他是来做动员的,3天之后,销售大赛初赛就会在这里开赛。
//hs: 往年都是这样,在什么产区办,就会是什么主题。
//hs: 所以这次,主题肯定是罐头!
//hs: 我的主场!我的时代要来了!
//me: 但是…你销售排名还在两百开外啊。
//【火山露出了得意的神色,掏出一罐银色物体】
//hs: 嘿嘿…尝尝这个。
//me: (转动罐头)成分表呢?
//hs: 最新批次都这样。主脑特供,懂?
//hs: 怎么样?告诉她口感!告诉她!
//me: (吞咽)像…螃蟹的味道。
//me: 不错,有品位。但是你怎么保证大家都喜欢?
//【火山递给奇林】
//ql: (擦拭杯沿)我对蛋白质凝胶过敏喔。
//hs: 别怕!罐头的成分肯定都是标准的,不会有额外的蛋白质成分。
//【奇林将信将疑地试了一口】
//ql: 蜂蜜?
//me: 瞎说吧,哪来的蜂蜜味?
//【你又尝了一口,火山得意的看看你,又看看奇林】
//me: 这是怎么…做到的?
//ql: 哼哼…你总会在百味罐里尝到你最喜欢的味道。
//hs: (张开双臂)等到价格公布,他们会挤爆订购热线!
//me: 你从哪搞的货?
//hs: (突然哼起广告歌)胜利之后…所有人都会看见我!
//hs: (盯着窗外霓虹)看到那栋楼了吗?未来会挂满我的全息投影…
<<hide_dialog>>
<<jump 梦>>
===
// title: test
// tags:
// colorID: 8
// position: 250,200
// ---
// <<show_tarot_deck 15>>
// ->展开
// <<spread_tarot>>
// <<wait_tarot_select>>
// ->翻转
// <<flip_tarot "inverted">>
// ->旋转塔罗
// <<rotate_tarot "normal">>
// ===
title: 梦2
tags:
colorID: 8
position: 250,200
---
<<hide_dialog>>
me: 快把灯熄了,看到亮光它们就不会出来了。 #line:094471c
jj: 等会,我踩到东西了。 #line:04a5fdf
<<hide_dialog>>
<<fade_in 1>>
me: 是个海星! #line:088c05f
jj: 海星也会被冲到海滩上吗? #line:0185b60
me: 如果死了就会。 #line:0a19b2d
jj: 它看起来还在动呢。 #line:0f9aa26
me: 会动不一定是还活着。 #line:0139d5f
jj: 死了不就不会动了吗? #line:06b5063
me: 爸爸是这么说的。 #line:0e8afd1
me: 有的东西活着也不会动,有的东西死了还能动。 #line:094a376
<<hide_dialog>>
<<fade_in 1>>
jj: 难怪!…在生病之前我跟爸爸出海,见过一个海豚喔! #line:0273ec1
jj: 它看起来活蹦乱跳的,第二天没再看到它,爸爸说它已经死了。 #line:05434a7
me: 为什么? #line:0aab0af
jj: 他说它们已经灭绝了,不会再有更多海豚。 #line:089c965
jj: 它迟早会死掉,所以和死了没有什么区别。 #line:0e931ea
<<hide_dialog>>
<<fade_in 1>>
me: 那我们是不是也已经死掉了?爸爸说他和妈妈迟早有一天也会死。 #line:0e9c273
jj: 怎么可能呢?他说那是很久以后了。 #line:01f4719
jj: 如果你已经死掉了,我第二天就看不到你了! #line:0ff063d
jj: 只要我一直能看到你,你就还是活的。 #line:0c4b3d8
<<hide_dialog>>
<<fade_in 1>>
me: 好吧,但是我们得把这个海星丢了。 #line:034a522
jj: 为什么? #line:02eb280
me: 海星不能吃,而且我们已经抓了很多了。 #line:07187f5
jj: 你可以把它养起来呀。 #line:0108955
me: 这个已经养不活了。 #line:0891ac6
jj: 就不能治好它吗? #line:0ca01d7
me: 等等…我也踩到东西了。 #line:013a623
<<hide_dialog>>
<<fade_in 1>>
me: 猫眼螺!快看! #line:055ce00
<<hide_dialog>>
<<fade_in 2>>
me: 姐姐? #line:09a9b58
<<hide_dialog>>
<<fade_in 2>>
<<hide_dialog>>
<<NextYarn>>
=== ===
+17
View File
@@ -81,6 +81,23 @@ Modular framework with Kit-pattern utilities:
- Current path: `Assets/Resources/Yarn/` (migration to `Assets/Narrative/Yarn/` planned) - Current path: `Assets/Resources/Yarn/` (migration to `Assets/Narrative/Yarn/` planned)
- Pattern: `{Character}_{Stage}.yarn`; UTF-8 encoding required for Chinese - Pattern: `{Character}_{Stage}.yarn`; UTF-8 encoding required for Chinese
#### Yarn Line Tag Maintenance
- **Line tags** (`#line:xxxxxxx`) must be unique across the entire file. Duplicate tags break Yarn Spinner localization.
- Duplicates typically occur when copying an existing node to create a variant (e.g. `地铁ver1``地铁ver3`).
- **Use the dedup tool** (`Tools/dedup_yarn_tags.py`) for bulk cleanup:
```bash
# Preview duplicates from a specific node onward
python Tools/dedup_yarn_tags.py Assets/Resources/Yarn/Fiction_Day1_begin/Fiction_Day1_begin.yarn --from-node 地铁ver4
# Fix duplicates from a specific line onward
python Tools/dedup_yarn_tags.py Assets/Resources/Yarn/Fiction_Day1_begin/Fiction_Day1_begin.yarn --from-line 535 --fix
# Scan an entire directory (preview only)
python Tools/dedup_yarn_tags.py Assets/Resources/Yarn/ --scan-all
```
#### Yarn Script Generation
- **Do NOT add `#line:` tags when generating or editing Yarn dialogue.** Leave all line-tag generation to the user's localization workflow (Unity Localization + Yarn Spinner import tools).
- When creating new `.yarn` files, write plain dialogue lines without any `#line:` suffixes.
### Asset Naming ### Asset Naming
- **Scripts**: PascalCase (e.g. `DialogController.cs`) - **Scripts**: PascalCase (e.g. `DialogController.cs`)
- **Addressable Keys**: `Category/Path` — no spaces, no extensions, ≤3 levels - **Addressable Keys**: `Category/Path` — no spaces, no extensions, ≤3 levels
+209
View File
@@ -0,0 +1,209 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Yarn Spinner 文件 line tag 去重工具
用法:
python dedup_yarn_tags.py <文件路径> --from-node <节点名>
python dedup_yarn_tags.py <文件路径> --from-line <行号>
python dedup_yarn_tags.py <目录路径> --scan-all [--fix]
示例:
python dedup_yarn_tags.py Assets/Resources/Yarn/FP_Day1_mid/Day1_mid.yarn --from-node 地铁ver4
python dedup_yarn_tags.py Assets/Resources/Yarn/Fiction_Day1_begin/Fiction_Day1_begin.yarn --from-line 535 --fix
python dedup_yarn_tags.py Assets/Resources/Yarn/ --scan-all
"""
import argparse
import os
import re
import sys
def extract_line_tags(lines):
"""从行列表中提取所有 line tag,返回 (行索引, tag) 列表"""
tags = []
pattern = re.compile(r'#line:[0-9a-fA-F]+')
for idx, line in enumerate(lines):
match = pattern.search(line)
if match:
tags.append((idx, match.group(), match.start(), match.end()))
return tags
def find_node_start_line(lines, node_title):
"""根据节点 title 找到该节点开始的行索引(0-based)"""
title_pattern = re.compile(r'^title:\s*' + re.escape(node_title) + r'\s*$')
for idx, line in enumerate(lines):
if title_pattern.match(line):
# 找到 title 行,返回这一行(或返回 header 结束后的行)
# 通常用户说"从某个节点开始",指的是该节点内容开始
# 我们返回 title 行所在的位置即可,重复检测会自然跳过前面的 tag
return idx
return None
def process_file(file_path, start_line_1based=None, node_title=None, fix=False, verbose=True):
"""
处理单个 Yarn 文件
返回 (修改行数, 总重复数, 是否成功)
start_line_1based: 1-based 行号,None 表示从头开始
"""
if not os.path.exists(file_path):
if verbose:
print(f"[错误] 文件不存在: {file_path}")
return 0, 0, False
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
tags = extract_line_tags(lines)
if not tags:
if verbose:
print(f"[信息] 未找到任何 line tag: {file_path}")
return 0, 0, True
# 确定起始行索引(0-based
start_idx = 0
if node_title:
found = find_node_start_line(lines, node_title)
if found is None:
if verbose:
print(f"[错误] 未找到节点 '{node_title}' in {file_path}")
return 0, 0, False
start_idx = found
if verbose:
print(f"[信息] 定位到节点 '{node_title}' 在第 {found + 1}")
elif start_line_1based:
start_idx = start_line_1based - 1
if start_idx < 0:
start_idx = 0
if verbose:
print(f"[信息] 从第 {start_line_1based} 行开始处理")
# 收集 start_idx 之前的所有 tag
seen_tags = set()
for idx, tag, _, _ in tags:
if idx < start_idx:
seen_tags.add(tag)
# 检测 start_idx 之后的重复
duplicates = []
for idx, tag, start_pos, end_pos in tags:
if idx >= start_idx and tag in seen_tags:
duplicates.append((idx, tag, start_pos, end_pos))
elif idx >= start_idx:
# 即使在处理范围内,也要记录已见,防止范围内自身重复
seen_tags.add(tag)
if not duplicates:
if verbose:
print(f"[信息] 未发现重复 line tag: {file_path}")
return 0, 0, True
if verbose:
print(f"[发现] 找到 {len(duplicates)} 个重复 line tag:")
for idx, tag, _, _ in duplicates:
line_content = lines[idx].rstrip('\n')
# 截断过长行
display = line_content[:80] + "..." if len(line_content) > 80 else line_content
print(f"{idx + 1} 行: {tag} | {display}")
if not fix:
if verbose:
print(f"[提示] 使用 --fix 参数执行修改")
return 0, len(duplicates), True
# 执行修改:从后往前替换,避免位置偏移
modified_count = 0
for idx, tag, _, _ in sorted(duplicates, key=lambda x: x[0], reverse=True):
line = lines[idx]
new_line = line.replace(tag, '', 1).rstrip()
if not new_line.endswith('\n'):
new_line += '\n'
if new_line != line:
lines[idx] = new_line
modified_count += 1
with open(file_path, 'w', encoding='utf-8') as f:
f.writelines(lines)
if verbose:
print(f"[完成] 已修改 {modified_count} 行,移除 {len(duplicates)} 个重复 tag")
return modified_count, len(duplicates), True
def scan_directory(dir_path, fix=False):
"""扫描目录下所有 .yarn 文件"""
if not os.path.isdir(dir_path):
print(f"[错误] 目录不存在: {dir_path}")
return
yarn_files = []
for root, _, files in os.walk(dir_path):
for f in files:
if f.endswith('.yarn'):
yarn_files.append(os.path.join(root, f))
if not yarn_files:
print(f"[信息] 未找到 .yarn 文件: {dir_path}")
return
print(f"[信息] 共找到 {len(yarn_files)} 个 .yarn 文件")
total_duplicates = 0
total_modified = 0
for fp in yarn_files:
print(f"\n[扫描] {fp}")
mod, dup, ok = process_file(fp, start_line_1based=1, fix=fix, verbose=True)
if ok:
total_modified += mod
total_duplicates += dup
print(f"\n[汇总] 处理 {len(yarn_files)} 个文件,共发现 {total_duplicates} 个重复 tag,修改 {total_modified}")
def main():
parser = argparse.ArgumentParser(
description='Yarn Spinner line tag 去重工具',
formatter_class=argparse.RawDescriptionHelpFormatter,
epilog='''
示例:
%(prog)s file.yarn --from-node 地铁ver4 --dry-run
%(prog)s file.yarn --from-line 535 --fix
%(prog)s dir/ --scan-all --fix
'''
)
parser.add_argument('path', help='Yarn 文件或目录路径')
parser.add_argument('--from-node', help='从指定节点 title 开始检测重复')
parser.add_argument('--from-line', type=int, help='从指定 1-based 行号开始检测重复')
parser.add_argument('--scan-all', action='store_true', help='扫描目录下所有 .yarn 文件(从第1行开始)')
parser.add_argument('--fix', action='store_true', help='执行修改(默认仅预览)')
args = parser.parse_args()
target_path = os.path.abspath(args.path)
if args.scan_all:
scan_directory(target_path, fix=args.fix)
elif os.path.isfile(target_path):
if args.from_node and args.from_line:
print("[错误] --from-node 和 --from-line 不能同时使用")
sys.exit(1)
mod, dup, ok = process_file(
target_path,
start_line_1based=args.from_line,
node_title=args.from_node,
fix=args.fix,
verbose=True
)
if not ok:
sys.exit(1)
else:
print(f"[错误] 路径既不是文件也不是目录(或未提供 --scan-all: {target_path}")
sys.exit(1)
if __name__ == '__main__':
main()