@@ -104,13 +104,13 @@ private List<string> FormatNote(ChuNote n, List<Alert> alerts)
104104 } ;
105105 List < string > r = [ name , m . ToString ( ) , o . ToString ( ) , n . Cell . ToString ( ) , n . Width . ToString ( ) ] ;
106106
107- if ( n . Type == ChuNoteType . Tap && n . IsEx ) r . Add ( ExDirections_ToUgc [ n . Ex ! . Value ] ) ; // CHR
107+ if ( n . Type == ChuNoteType . Tap && n . IsEx ) r . Add ( n . Ex . ToString ( ) ! ) ; // CHR
108108 else if ( n . Type == ChuNoteType . Flick ) r . Add ( n . Ex == ExDirection . RS ? "R" : "L" ) ; // FLK
109109 else if ( n . IsAir )
110110 { // AIR
111111 var targetStr = AsC2sPreviousStr ( n . TargetNote ) ;
112112 Utils . Assert ( targetStr != null , "MuConvert内部错误:Air音符的TargetNote出现了不合法的类型!" ) ;
113- r . AddRange ( targetStr ! , AirColor_ToUgc ( n ) ) ;
113+ r . AddRange ( targetStr ! , n . Color . ToString ( ) ) ;
114114 }
115115
116116 results . Add ( r ) ;
@@ -130,16 +130,19 @@ private List<string> FormatNote(ChuNote n, List<Alert> alerts)
130130 } ;
131131
132132 var start = ( n . Time , n . Cell , n . Width , n . Height ) ;
133- foreach ( var seg in n . Segments )
133+ for ( int idx = 0 ; idx < n . Segments . Count ; idx ++ )
134134 {
135+ var seg = n . Segments [ idx ] ;
135136 // 必备的:name bar tick cell width
136137 var ( sB , sT ) = Utils . BarAndTick ( start . Time , RSL ) ;
137- List < string > r = [ name , sB . ToString ( ) , sT . ToString ( ) , start . Cell . ToString ( ) , start . Width . ToString ( ) ] ;
138+ var hereName = n . Type == ChuNoteType . Slide && seg . C ? name [ ..2 ] + "C" : name ;
139+ List < string > r = [ hereName , sB . ToString ( ) , sT . ToString ( ) , start . Cell . ToString ( ) , start . Width . ToString ( ) ] ;
138140
139141 // 前驱targetNote 或 crushInterval
140142 if ( NeedsTargetNote ( n ) )
141143 {
142- var targetStr = AsC2sPreviousStr ( n . TargetNote ) ;
144+ // 对第一段,targetStr是TargetNote;对后面的段,TargetNote应该是前一段的名字。
145+ var targetStr = idx == 0 ? AsC2sPreviousStr ( n . TargetNote ) : AsC2sPreviousStr ( n , n . Segments [ idx - 1 ] ) ;
143146 Utils . Assert ( targetStr != null , "MuConvert内部错误:Air音符的TargetNote出现了不合法的类型!" ) ;
144147 r . Add ( targetStr ! ) ;
145148 }
@@ -166,10 +169,10 @@ private List<string> FormatNote(ChuNote n, List<Alert> alerts)
166169
167170 // 颜色
168171 if ( n . IsAir ) r . Add ( n . Color . ToString ( ) ) ;
169- else if ( n . Type == ChuNoteType . Slide ) r . Add ( "SLD" ) ; // C2S 1.13版本以上 ,Slide在最后,还需要加一个”SLD“后缀
172+ else if ( n . Type == ChuNoteType . Slide ) r . Add ( "SLD" ) ; // C2S 1.10版本以上 ,Slide在最后,还需要加一个”SLD“后缀
170173
171174 // Ex音符的话,要加上Ex方向
172- if ( n . IsEx ) r . Add ( ExDirections_ToUgc [ n . Ex ! . Value ] ) ;
175+ if ( n . IsEx ) r . Add ( n . Ex . ToString ( ) ! ) ;
173176
174177 results . Add ( r ) ;
175178 start = ( endTime , seg . EndCell , seg . EndWidth , seg . EndHeight ) ;
0 commit comments