else\r
{\r
this.actGraph.dbグラフ値目標_渡 = CDTXMania.stage選曲.r確定されたスコア.譜面情報.最大スキル[ 0 ]; // #24074 2011.01.23 add ikanick\r
+\r
+ // #35411 2015.08.21 chnmr0 add\r
+ // ゴースト利用可のなとき、0で初期化\r
+ if (CDTXMania.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE)\r
+ {\r
+ if (CDTXMania.listTargetGhsotLag[(int)E楽器パート.DRUMS] != null)\r
+ {\r
+ this.actGraph.dbグラフ値目標_渡 = 0;\r
+ }\r
+ }\r
}\r
// MODIFY_END #25398\r
dtLastQueueOperation = DateTime.MinValue;\r
E判定 eJudgeResult = tチップのヒット処理( nHitTime, pChip, E楽器パート.DRUMS, bCorrectLane );\r
// #24074 2011.01.23 add ikanick\r
this.actGraph.dbグラフ値現在_渡 = CScoreIni.t演奏型スキルを計算して返す( CDTXMania.DTX.n可視チップ数.Drums, this.nヒット数_Auto含まない.Drums.Perfect, this.nヒット数_Auto含まない.Drums.Great, this.nヒット数_Auto含まない.Drums.Good, this.nヒット数_Auto含まない.Drums.Poor, this.nヒット数_Auto含まない.Drums.Miss, E楽器パート.DRUMS, bIsAutoPlay );\r
+ // #35411 2015.09.07 add chnmr0\r
+ if( CDTXMania.listTargetGhsotLag.Drums != null &&\r
+ CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE &&\r
+ CDTXMania.DTX.n可視チップ数.Drums > 0 )\r
+ {\r
+ // Online Stats の計算式\r
+ this.actGraph.dbグラフ値現在_渡 = 100 *\r
+ (this.nヒット数_Auto含まない.Drums.Perfect * 17 +\r
+ this.nヒット数_Auto含まない.Drums.Great * 7 +\r
+ this.actCombo.n現在のコンボ数.Drums最高値 * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Drums);\r
+ }\r
return eJudgeResult;\r
}\r
\r
}\r
\r
int indexSevenLanes = this.nチャンネル0Atoレーン07[ pChip.nチャンネル番号 - 0x11 ];\r
- if ( ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit ) && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+ // #35411 chnmr0 modified\r
+ bool autoPlayCondition = ( configIni.bAutoPlay[ indexSevenLanes ] && !pChip.bHit );\r
+ bool UsePerfectGhost = true;\r
+ long ghostLag = 0;\r
+\r
+ if( CDTXMania.ConfigIni.eAutoGhost.Drums != EAutoGhostData.PERFECT &&\r
+ CDTXMania.listAutoGhostLag.Drums != null &&\r
+ CDTXMania.ConfigIni.bドラムが全部オートプレイである &&\r
+ 0 <= pChip.n楽器パートでの出現順 && pChip.n楽器パートでの出現順 < CDTXMania.listAutoGhostLag.Drums.Count)\r
+\r
+ {\r
+ // ゴーストデータが有効 : ラグに合わせて判定\r
+ ghostLag = CDTXMania.listAutoGhostLag.Drums[pChip.n楽器パートでの出現順] - this.nInputAdjustTimeMs.Drums;\r
+ autoPlayCondition &= !pChip.bHit && (ghostLag + pChip.n発声時刻ms <= CSound管理.rc演奏用タイマ.n現在時刻ms);\r
+ UsePerfectGhost = false;\r
+ }\r
+ if( UsePerfectGhost )\r
+ {\r
+ // 従来の AUTO : バー下で判定\r
+ autoPlayCondition &= ( pChip.nバーからの距離dot.Drums < 0 );\r
+ }\r
+\r
+ if ( autoPlayCondition )\r
{\r
pChip.bHit = true;\r
this.actLaneFlushD.Start( (Eレーン) indexSevenLanes, ( (float) CInput管理.n通常音量 ) / 127f );\r
// #31602 2013.6.24 yyagi 判定ラインの表示位置をずらしたら、チップのヒットエフェクトの表示もずらすために、nJudgeLine..を追加\r
this.actChipFireD.Start( (Eレーン)indexSevenLanes, flag, flag2, flag2, 演奏判定ライン座標.nJudgeLinePosY_delta.Drums );\r
this.actPad.Hit( this.nチャンネル0Atoパッド08[ pChip.nチャンネル番号 - 0x11 ] );\r
- this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
- this.tチップのヒット処理( pChip.n発声時刻ms, pChip );\r
+ this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, E楽器パート.DRUMS, dTX.nモニタを考慮した音量( E楽器パート.DRUMS ) );\r
+ this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip);\r
cInvisibleChip.StartSemiInvisible( E楽器パート.DRUMS );\r
}\r
+ // #35411 modify end\r
+ \r
+ // #35411 2015.08.21 chnmr0 add\r
+ // 目標値グラフにゴーストの達成率を渡す\r
+ if (CDTXMania.ConfigIni.eTargetGhost.Drums != ETargetGhostData.NONE &&\r
+ CDTXMania.listTargetGhsotLag.Drums != null)\r
+ {\r
+ double val = 0;\r
+ if (CDTXMania.ConfigIni.eTargetGhost.Drums == ETargetGhostData.ONLINE)\r
+ {\r
+ if (CDTXMania.DTX.n可視チップ数.Drums > 0)\r
+ {\r
+ // Online Stats の計算式\r
+ val = 100 *\r
+ (this.nヒット数_TargetGhost.Drums.Perfect * 17 +\r
+ this.nヒット数_TargetGhost.Drums.Great * 7 +\r
+ this.n最大コンボ数_TargetGhost.Drums * 3) / (20.0 * CDTXMania.DTX.n可視チップ数.Drums);\r
+ }\r
+ }\r
+ else\r
+ {\r
+ val = CScoreIni.t演奏型スキルを計算して返す(\r
+ CDTXMania.DTX.n可視チップ数.Drums,\r
+ this.nヒット数_TargetGhost.Drums.Perfect,\r
+ this.nヒット数_TargetGhost.Drums.Great,\r
+ this.nヒット数_TargetGhost.Drums.Good,\r
+ this.nヒット数_TargetGhost.Drums.Poor,\r
+ this.nヒット数_TargetGhost.Drums.Miss,\r
+ E楽器パート.DRUMS, new STAUTOPLAY());\r
+ }\r
+ if (val < 0) val = 0;\r
+ if (val > 100) val = 100;\r
+ this.actGraph.dbグラフ値目標_渡 = val;\r
+ }\r
//break;\r
return;\r
} // end of "if configIni.bDrums有効"\r