
; サンプルキャラクター『カンフーマン』のコンスタンツとステートのファイルです。
;===========================================================================
; コンスタンツ（定数）
;===========================================================================
;---------------------------------------------------------------------------
; ここがキャラの心臓部とも言うべき場所。
; １キャラ単位のライフや大きさなど、標準のステータスを予め決めておく部分。
; このコーナー自体省略出来ません。
;---------------------------------------------------------------------------
; 基本データ
;---------------------------------------------------------------------------
[Data]
life              = 1000   ;ライフ（体力ゲージ）最大値
power             = 5000   ;パワーゲージ最大値（オプション・デフォルトは3000=Lv.3）
attack            = 100    ;攻撃力（デフォルトは１００％）
defence           = 100    ;防御力（デフォルトは１００％）
fall.defence_up   = 50     ;横に倒れている時に一時的に加える防御力（％）
liedown.time      = 60     ;横に倒れている時間（フレーム）
airjuggle         = 15     ;ジャグルポイント限界値（「小ネタ.txt」参照）
sparkno           = 2      ;デフォルトのヒットスパーク（fightfxから）
guard.sparkno     = 40     ;デフォルトのガードスパーク（fightfxから）
KO.echo           = 0      ;ＫＯ時の音声（11,0）にエコーを掛けるか否か（0=掛けない,1=掛ける）
volume            = 0      ;キャラの標準の音量（最小-255・最大255）
IntPersistIndex   = 0      ;次のラウンドへ持ち越せる「Var」のアドレスの範囲を決める（※１）
FloatPersistIndex = 0      ;次のラウンドへ持ち越せる「FVar」のアドレスの範囲を決める（※１）

;---------------------------------------------------------------------------
; ※１：変数のラウンド持ち越し方法
;
; 　変数を次のラウンドへ持ち越したい場合は、↑の
; 　「IntPersistIndex」と「FloatPersistIndex」を使う。
; 　そのやり方はM.U.G.E.Nの説明書にすら載ってないので、ここで例を元に解説。
;
; 　?IntPersistIndex = 23　（Var(23)〜Var(59)までを全て次のラウンドへ持ち越せる）
; 　?FloatPersistIndex = 18（FVar(18)〜FVar(39)までを全て次のラウンドへ持ち越せる）
;
; 　つまり「Var(**)（Fvar(**)）以降全ての変数を持ち越す」という命令になる。
; 　それ以前のアドレスの変数は全て持ち越さなくなる。
;
; 　全ての変数を持ち越さない場合は、
; 　IntPersistIndexは60以上、FloatPersistIndexは40以上にしておこう。
;
; 　×これはダメ×
; 　　?IntPersistIndex = 10,15,20,25　（15,20,25の部分は意味無し）
; 　　?FloatPersistIndex = 4,16 　　　（16の部分は意味無し）
; 　　これらは最初の数字以外全て無効。
; 
;---------------------------------------------------------------------------
; 改訂前の和訳ＫＦＭではPersistIndexの解釈が無茶苦茶間違ってました。
; 大変失礼致しました。(人・ω・｀)ごめんなさい
; 今回はちゃんと調べて正確な情報を載せてるんで安心してください（苦笑
;---------------------------------------------------------------------------
; サイズ
;---------------------------------------------------------------------------
[Size]
xscale           = 1       ;キャラの横の大きさ（絶対値・float）
yscale           = 1       ;キャラの縦の大きさ（絶対値・float）
ground.back      = 15      ;地上にいる時の「後方の物理的な幅」
ground.front     = 16      ;地上にいる時の「前方の物理的な幅」
air.back         = 12      ;空中にいる時の「後方の物理的な幅」
air.front        = 12      ;空中にいる時の「前方の物理的な幅」
height           = 60      ;キャラの物理的な高さ（高いほど相手は飛び越しにくくなる）
attack.dist      = 160     ;相手がガード態勢に入る最低の距離
proj.attack.dist = 90      ;自分の「Projectile」に対して相手がガード態勢に入る最低の距離
proj.doscale     = 0       ;xscaleとyscaleを「Projectile」にも影響させるか否か（0=させない・1=させる）
head.pos         =  0,-65  ;キャラの標準の頭の座標（Bind系で適用される）
mid.pos          =  3,-43  ;キャラの標準の体中心の座標（Bind系で適用される）
shadowoffset     = 0       ;影のＹ軸方向の位置座標
draw.offset      = 0,0     ;キャラの表示座標（Ｘ軸,Ｙ軸）

;---------------------------------------------------------------------------
; 移動速度
;---------------------------------------------------------------------------
[Velocity]
walk.fwd     = 2.4         ;前進速度（Ｘ軸・[Statedef 20]に適用される）
walk.back    = -2.2        ;後退速度（Ｘ軸・[Statedef 20]に適用される）
run.fwd      = 5,0       ;前方に走る速度（Ｘ軸,Ｙ軸・[Statedef 100]に適用される）
run.back     = -5,-3   ;後方に走る速度（Ｘ軸,Ｙ軸・[Statedef 105]に適用される）
jump.neu     = 0,-8      ;垂直ジャンプの速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
jump.back    = -2.55       ;後方ジャンプの速度（Ｘ軸・[Statedef 40]に適用される）
jump.fwd     = 2.5         ;前方ジャンプの速度（Ｘ軸・[Statedef 40]に適用される）
runjump.back = -2.55,-8.1  ;後方に走ってからのジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
runjump.fwd  = 4,-8.1      ;前方に走ってからのジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 40]に適用される）
airjump.neu  = 0,-8.1      ;空中垂直ジャンプ速度（Ｘ軸,Ｙ軸・[Statedef 45]に適用される）
airjump.back = -2.55       ;空中後方ジャンプ速度（Ｘ軸・[Statedef 45]に適用される）
airjump.fwd  = 2.5         ;空中前方ジャンプ速度（Ｘ軸・[Statedef 45]に適用される）

;---------------------------------------------------------------------------
; 運動関係
;---------------------------------------------------------------------------
[Movement]
airjump.num     = 0        ;空中ジャンプが出来る回数
airjump.height  = 35       ;空中ジャンプが出来る最低の高度（Ｙ軸）
yaccel          = .33      ;Ｙ軸加速度（重力）
stand.friction  = .85      ;立っている時の摩擦係数（ステートのPhysicsが「S」の時）
crouch.friction = .82      ;しゃがんでいる時の摩擦係数（ステートのPhysicsが「C」の時）

;===========================================================================
; ステート
;===========================================================================
;---------------------------------------------------------------------------
; ここからはキャラのそれぞれの行動（ステート）を設定する。
; 番号（ステートナンバー）に気を付ければ良いだけで、
; 行動の決め方もステートの数も作りたいキャラによって自由。
;
; 本来ステートは別のファイルとして扱っているものだけど、
; このようにコンスタンツファイルと一緒にまとめる事も可能。
;
; ステートの基本的な設定はおまけフォルダの「テンプレート.txt」を参照。
;===========================================================================
; 基本行動
;===========================================================================
;タイムオーバー（負けた時）
[Statedef 170]
type = S
ctrl = 0
anim = 170
velset = 0,0

[State 170, 無敵]
type = NotHitBy
trigger1 = 1 ;トリガーを何も書かず「1」にする事により、『無条件で常に実行させる命令』になる。
value = SCA
time = 1

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------
;勝利ポーズ分岐（common1.cnsには無いけど、これもコモンステート）
[Statedef 180]
type = S

[State 180, ステート変更]
type = ChangeState
trigger1 = Time = 0
value = 181

;---------------------------------------------------------------------------
;勝利ポーズ（礼をする）
[Statedef 181]
type = S
ctrl = 0
anim = 181
velset = 0,0

[State 181, 無敵]
type = NotHitBy
trigger1 = 1
value = SCA
time = 1

;---------------------------------------------------------------------------
;---------------------------------------------------------------------------

;---------------------------------------------------------------------------
; ※２：AssertSpecial
;
; 　他のコントローラでは設定出来ない『特殊な効果』を指定する命令。
; 　設定したトリガーが有効になってる間だけ一時的に適用される。
;
; 　適用出来るパラメータはこのコントローラを一つ設置する場合、最大３つまで。
; 　書式としては「flag」「flag2」「flag3」を順に加えていく形。
; 　flag2とflag3はオプション。ではその特殊効果を全て紹介。
;
; 　Intro          = イントロ（試合開始前の登場演出アクション）の状態になる。イントロステート専用。
; 　Invisible      = 自分の姿を消す。しかし残像（AfterImage）は消せない。
; 　RoundNotOver   = 現在のラウンドを過ぎない。勝利ポーズ専用。
; 　NoBarDisplay   = ライフバーを非表示にする。
; 　NoBG           = ステージの奥の画像を非表示にし、「真っ黒の背景」にする。
; 　NoFG           = ステージの手前の画像を非表示にする。
; 　NoStandGuard   = 立ちガードが出来なくなる。
; 　NoCrouchGuard  = しゃがみガードが出来なくなる。
; 　NoAirGuard     = 空中ガードが出来なくなる。
; 　NoAutoTurn     = 自動で振り向かない。
; 　NoJuggleCheck  = ジャグルをチェックしない。（ジャグルポイントが減らなくなる）
; 　NoKOSnd        = ＫＯ時の音声（11,0）を鳴らさないようにする。画面中に存在する全員に有効なので注意。
; 　NoKOSlow       = ＫＯ時のスローモーションを無効にする。（ＫＯ直前に有効にしないといけない）
; 　NoShadow       = 自分の影を消す。
; 　GlobalNoShadow = 画面中に存在する全てのプレイヤー（ヘルパーとProjectileも含む）の影を消す。
; 　NoMusic        = 演奏しているＢＧＭを止める。（プラグインによってはＢＧＭがバグるので要注意）
; 　NoWalk         = 歩かない。（前か後ろのキーを入力中コントロールが可能の時に勝手に[Statedef 20]にならない）
; 　TimerFreeze    = タイムカウント（制限時間）を停止する。
; 　UnGuardable    = 自分の全ての攻撃が『ガード不可』になる。
;
;---------------------------------------------------------------------------
;挑発
[Statedef 195]
type = S
movetype = A
physics = S
ctrl = 0
anim = 195
velset = 0,0
sprpriority = 2

[State 195, コントロール]
type = CtrlSet
trigger1 = Time = 64 ;このステートが４０フレームになったら
value = 1            ;キーコントロールが可能になる。

[State 195, ステート変更]
type = ChangeState
trigger1 = AnimTime = 0
value = 0
ctrl = 1
;--------------------------------------------------------------------------------------
;ゆっくり出現
[State 195, ヘルパーを出す];放り投げるまでの板（※１０）
type = Helper
trigger1 = 1   ;ゆっくりの出現条件。0にすると出なくなります。
trigger1 = Time = 1
;Persistent = 0
name = "yukkuri"
stateno = 10000
pos = 120,-500
postype = p1
;keyctrl = 0
ownpal = 0
size.xscale = 1
size.yscale = 1
ID = 195

[statedef 10000];ゆっくり
Type	= A
Movetype= A
Physics = N
Anim = 10000
Ctrl = 0
Sprpriority = 5

[state 10000,影消し]
type = assertspecial
trigger1 = 1
flag = noshadow

[state 10000,速度設定]
type = velset
trigger1 = time = 1
x = 0
y = 1

[state 10000,攻撃設定]
type = hitdef
trigger1 = time = 0
attr = A,NP
hitflag = MAF
guardflag = MA
animtype = light
damage = 10,1
ground.slidetime = 10
ground.hittime = 10
guard.hittime = 10
guard.ctrltime = 10
getpower = 100,50

[State 10000, ヘルパーを消す]
type = DestroySelf
trigger1 = root,stateno = [5000,5150]
trigger2 = pos y >= 100

[state 10000,消す]
type = hitoverride
trigger1 = 1
attr = SCA,AA,AP
stateno = 20000
time = -1
forceair = 1

[statedef 20000];消す２
Type	= A
Movetype= I
Physics = N
Anim = 10000
Ctrl = 0
Sprpriority = 5

[state 20000,消す２実行]
type = destroyself
trigger1 = 1


