>>394
10回探すだと、最後の方はほとんどキャラが出なくなるので、
レアリティと属性を、キャラクターの番号じゃなく、CFLAG:XX 0=N,1=R,2=SR CFLAG:YY 0=Cu,1=Co,2=Pa
など二次配列で管理するようにして、1847行目から、
VARSET LOCAL
FLAG:25 = 501
FOR LOCAL, 1, 300
SIF (EXISTCSV(LOCAL) && !GETCHARA(LOCAL)) || CFLAG:キャラ:21
LOCAL:LOCAL = LOCAL ;出現できるキャラをLOCALに代入
NEXT
LOCAL = VARSIZE(LOCAL) - 1 ;配列の要素チェック
SIF !LOCAL ;全員仲間になっていたらモブ
RETURN
DO
SELECTCASE RAND:100 ;レアリティ決定
CASE IS >= TFLAG:73 * 8 ;(100-(ステージ数x8))%の確率でN
A = 0
CASE IS >= (TFLAG:73 - 8) * 8 ;(ステージ数x8 - (ステージ数-8)x8)%の確率でR
A = 1
CASEELSE ;((ステージ数-8)x8の確率でSR
A = 2
ENDSELECT
B = RAND:3 ;属性決定
FLAG:25 = LOCAL:(RAND:LOCAL+1)
SIF CSVCFLAG(FLAG:25,XX) == A && CSVCFLAG(FLAG:25,YY)) == B
BREAK
LOOP 1