• R/O
  • SSH
  • HTTPS

dtxmaniaxg-verk: Commit


Commit MetaInfo

Revision558 (tree)
Time2016-07-10 21:33:29
Authorkairera0467

Log Message

#36410 ギター・ベースパートで「tチップのヒット処理()」が2回実行される不具合の修正。
#xxxxx ギタースコア計算時のコードを僅かに変更。

Change Summary

Incremental Difference

--- trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs (revision 557)
+++ trunk/DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs (revision 558)
@@ -1488,34 +1488,29 @@
14881488 else if (((pChip.e楽器パート == E楽器パート.GUITAR) || pChip.e楽器パート == E楽器パート.BASS) && (eJudgeResult != E判定.Miss) && (eJudgeResult != E判定.Bad))
14891489 {
14901490 #region[ ギター&ベース ]
1491+ //2016.07.10 kairera0467 つくりなおし
14911492 int nCombos = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート];
1493+ int nComboMax = ( pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass );
14921494 float nScoreDelta = 0;
1493- float nComboMax = ( pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass );
1494- if (eJudgeResult == E判定.Perfect || eJudgeResult == E判定.Auto)//ここでパフェ基準を作成。
1495- {
1496- if (nCombos < nComboMax)
1497- {
1498- nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f));
1499- }
1500- // 100万/{1275+50×(総ノーツ数-50)}
1501- else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax)
1502- {
1503- nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[ ( int )pChip.e楽器パート ];
1504- //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f)));
1505- }
1506- //1000000-PERFECT基準値×50×(その曲のMAXCOMBO-25.5)
15071495
1508- }
1509- else if (eJudgeResult == E判定.Great)
1496+ if (nCombos < nComboMax)
15101497 {
1511- nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f;
1498+ nScoreDelta = 1000000.0f / ( 1275.0f + 50.0f * ( nComboMax - 50.0f ) );
15121499 }
1513- else if (eJudgeResult == E判定.Good)
1500+ // 100万/{1275+50×(総ノーツ数-50)}
1501+ else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax)
15141502 {
1515- nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f;
1503+ nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[ ( int )pChip.e楽器パート ];
1504+ //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f)));
15161505 }
1506+ //1000000-PERFECT基準値×50×(その曲のMAXCOMBO-25.5)
15171507
1508+ if( eJudgeResult == E判定.Great )
1509+ nScoreDelta = nScoreDelta * 0.5f;
1510+ else if( eJudgeResult == E判定.Good )
1511+ nScoreDelta = nScoreDelta * 0.2f;
15181512
1513+
15191514 if (nCombos < 50)
15201515 {
15211516 nScoreDelta = nScoreDelta * nCombos;
@@ -1588,34 +1583,29 @@
15881583 else if (((pChip.e楽器パート == E楽器パート.GUITAR) || pChip.e楽器パート == E楽器パート.BASS) && (eJudgeResult != E判定.Miss) && (eJudgeResult != E判定.Bad))
15891584 {
15901585 #region[ ギター&ベース ]
1586+ //2016.07.10 kairera0467 つくりなおし
15911587 int nCombos = this.actCombo.n現在のコンボ数[(int)pChip.e楽器パート];
1588+ int nComboMax = ( pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass );
15921589 float nScoreDelta = 0;
1593- float nComboMax = ( pChip.e楽器パート == E楽器パート.GUITAR ? CDTXMania.DTX.n可視チップ数.Guitar : CDTXMania.DTX.n可視チップ数.Bass );
1594- if (eJudgeResult == E判定.Perfect || eJudgeResult == E判定.Auto)//ここでパフェ基準を作成。
1595- {
1596- if (nCombos < nComboMax)
1597- {
1598- nScoreDelta = 1000000.0f / ( 1275.0f + 50.0f * ( nComboMax - 50.0f ));
1599- }
1600- // 100万/{1275+50×(総ノーツ数-50)}
1601- else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax)
1602- {
1603- nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[ ( int )pChip.e楽器パート ];
1604- //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f)));
1605- }
1606- //1000000-PERFECT基準値×50×(その曲のMAXCOMBO-25.5)
16071590
1608- }
1609- else if (eJudgeResult == E判定.Great)
1591+ if (nCombos < nComboMax)
16101592 {
1611- nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.5f;
1593+ nScoreDelta = 1000000.0f / ( 1275.0f + 50.0f * ( nComboMax - 50.0f ) );
16121594 }
1613- else if (eJudgeResult == E判定.Good)
1595+ // 100万/{1275+50×(総ノーツ数-50)}
1596+ else if (this.nヒット数・Auto含む[(int)pChip.e楽器パート].Perfect >= nComboMax)
16141597 {
1615- nScoreDelta = 1000000.0f / (1275.0f + 50.0f * (nComboMax - 50.0f)) * 0.2f;
1598+ nScoreDelta = 1000000.0f - (float)this.actScore.n現在の本当のスコア[ ( int )pChip.e楽器パート ];
1599+ //nScoreDelta = 1000000.0f - (1000000.0f / (1275.0f + 50.0f / (nComboMax - 50.0f))) * ((1275.0f + 50.0f * (nComboMax - 49.0f)));
16161600 }
1601+ //1000000-PERFECT基準値×50×(その曲のMAXCOMBO-25.5)
16171602
1603+ if( eJudgeResult == E判定.Great )
1604+ nScoreDelta = nScoreDelta * 0.5f;
1605+ else if( eJudgeResult == E判定.Good )
1606+ nScoreDelta = nScoreDelta * 0.2f;
16181607
1608+
16191609 if (nCombos < 50)
16201610 {
16211611 nScoreDelta = nScoreDelta * nCombos;
@@ -3666,41 +3656,6 @@
36663656 }
36673657 #endregion
36683658 #region [ autopick ]
3669- {
3670- bool bMiss = true;
3671- if ( bChipHasR == autoR && bChipHasG == autoG && bChipHasB == autoB ) // autoレーンとチップレーン一致時はOK
3672- { // この条件を加えないと、同時に非autoレーンを押下している時にNGとなってしまう。
3673- bMiss = false;
3674- }
3675- else if ( ( autoR || ( bChipHasR == pushingR ) ) && ( autoG || ( bChipHasG == pushingG ) ) && ( autoB || ( bChipHasB == pushingB ) ) )
3676- // ( bChipHasR == ( pushingR | autoR ) ) && ( bChipHasG == ( pushingG | autoG ) ) && ( bChipHasB == ( pushingB | autoB ) ) )
3677- {
3678- bMiss = false;
3679- }
3680- else if ( ( ( bChipIsO == true ) && ( !pushingR | autoR ) && ( !pushingG | autoG ) && ( !pushingB | autoB ) ) ) // OPEN時
3681- {
3682- bMiss = false;
3683- }
3684- pChip.bHit = true;
3685- this.tサウンド再生( pChip, CSound管理.rc演奏用タイマ.n前回リセットした時のシステム時刻 + pChip.n発声時刻ms + ghostLag, inst, dTX.nモニタを考慮した音量( inst ), false, bMiss );
3686- this.r次にくるギターChip = null;
3687- if ( !bMiss )
3688- {
3689- this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip);
3690- }
3691- else
3692- {
3693- pChip.nLag = 0; // tチップのヒット処理()の引数最後がfalseの時はpChip.nLagを計算しないため、ここでAutoPickかつMissのLag=0を代入
3694- this.tチップのヒット処理(pChip.n発声時刻ms + ghostLag, pChip, false);
3695- }
3696- int chWailingChip = ( inst == E楽器パート.GUITAR ) ? 0x28 : 0xA8;
3697- CDTX.CChip item = this.r指定時刻に一番近い未ヒットChip(pChip.n発声時刻ms + ghostLag, chWailingChip, this.nInputAdjustTimeMs[instIndex], 140);
3698- if ( item != null && !bMiss )
3699- {
3700- this.queWailing[ instIndex ].Enqueue( item );
3701- }
3702- }
3703- #endregion
37043659 if ( autoPick )
37053660 {
37063661 bool bMiss = true;
@@ -3736,6 +3691,7 @@
37363691 this.queWailing[ instIndex ].Enqueue( item );
37373692 }
37383693 }
3694+ #endregion
37393695 // #35411 modify end
37403696 }
37413697
Show on old repository browser