※ ver fd 3.10.0 から変数関係がかなり変わっています!
ver fd 3.9.6以前を使っている方はご注意ください。
◆11key, 11Lkey の11k-Cross の問題
11k-Crossは書き方は同じでもキーによりスクロール方向が異なるため、
Difficultyボタンを押した際に一回設定をリセットする必要がある。
[最初の初期化 / selectDifficulty]
===============================================================================
if(elvFlg ^ preKey){
・・・
}else if(rev=="11k-Cross"){
if(keyLabel != "11L"){
revnd = [-1,-1,-1,1,1,1,1,-1,-1,-1,-1];
}else{
revnd = [1,1,1,1,-1,-1,-1,-1,-1,-1,-1];
}
}else if(keyLabel!="7" && keyLabel!="7i"){
・・・
}
===============================================================================
※ なお、間の記述は関数化されていれば以下の一行で済む。
setScroll(rev,keyLabel,stepArea);
◆5key のCross のおにぎり位置の問題
おにぎりの設定部分だけ、スクロール方向を直接設定する設定になっていた。
このため、ReverseをONにした場合におにぎりのスクロール方向だけ変化する可能性がある。
[※タイトル ⇒ 「設定」PlayボタンAS (またはreadyToPlay)]
===============================================================================
(途中省略)
} else if(_root.keyLabel == "5"){
・・・
case "Cross":
_root.revnd[3]=1; break;
・・・
===============================================================================
ver fd 4.0.0 から見た目にもいろいろ変わっているので、要点のみ。
(追記があればその部分について掘り下げるかもしれません)
[譜面台]
「フェードアウトを使うときは下のコメントを消す」コメントの下3行をコメントアウト。
※ただし、フェードアウトを使用する場合は外しておく
==============================================================================
/*
if(realTime==fadeTime){
gotoAndPlay("fadeout");
}
*/
==============================================================================
[precal]
次の一文を削除(不要)。
==============================================================================
_root.frame_num = _root.startFrame;
==============================================================================
[arrowCalculate.as]
修正箇所は多いが、場所は決まっているので要点のみ記述。
※ 手修正する場合はasファイルのバックアップ推奨
[SetStart.as]
「キーを押したときの設定 / 削除関数」以下の部分をカット(削除)する。
==============================================================================
/*---- キーを押したときの設定 / 削除関数 ----*/
keyPush = new Object();
Key.addListener(keyPush);
keyPush.onKeyDown=function(){
System.IME.setEnabled(false);
if(_root.setSpd!=0){
var keyID = Key.getCode();
switch(keyID){
case _root.keyCtrl[0]:
if(!_root.key_LE) _root.judgeArrow(0); break;
case _root.keyCtrl[1]: // 9keyではこのキーは代替として扱う
if(!_root.key_LD) _root.judgeArrow(1); break;
case _root.keyCtrl[2]:
if(!_root.key_DO) _root.judgeArrow(2); break;
case _root.keyCtrl[3]:
if(!_root.key_SH) _root.judgeArrow(3); break;
case _root.keyCtrl[4]:
if(!_root.key_UP) _root.judgeArrow(4); break;
case _root.keyCtrl[5]: // 9keyではこのキーは代替として扱う
if(!_root.key_RD) _root.judgeArrow(5); break;
case _root.keyCtrl[6]:
if(!_root.key_RI) _root.judgeArrow(6); break;
case _root.keyCtrl[7]:
if(!_root.key_L2) _root.judgeArrow(7); break;
case _root.keyCtrl[8]:
if(!_root.key_D2) _root.judgeArrow(8); break;
case _root.keyCtrl[9]:
if(!_root.key_U2) _root.judgeArrow(9); break;
case _root.keyCtrl[10]:
if(!_root.key_R2) _root.judgeArrow(10); break;
case _root.keyCtrl[11]: // 11keyの代替キー
if(!_root.key_EX) _root.judgeArrow(11); break;
case 46: // タイトルバック(Delete)
_root.delAll();
_root.setSpd =_root.olds;
_root.clear();
if(Key.isDown(16)){
_root.gameOverFlg = true;
_root.gotoAndPlay("goResult");
}else{
_root.gotoAndPlay("title");
}
break;
case 8: // 曲中リトライ(BackSpace)
if(!_root.key_RE){
_root.delAll();
_root.clear();
_root.setSpd =_root.olds;
_root.gotoAndPlay("play");
}
break;
}
}
};
==============================================================================
[createSplite.as]
上記でカットしたものをペーストする。(一番下へ)
[最初の初期化]
以下の2変数を追加。
==============================================================================
/
/ > フェードアウト時間
/ ・ fadeOutFrame : フェードアウトにかかるフレーム数
/ ・ VOL_GRAD : どのくらいの速度でフェードアウトさせるか(デフォルト:1倍)
/---------------------------------------------------------------------------
fadeOutFrame = 420;
VOL_GRAD = 1;
==============================================================================
[フェードイン]
フェードアウト間隔を変更できるよう、変数名に変換。
==============================================================================
/
/ フェードアウト開始時間(420フレーム手前)
var minFadeOut = Math.floor((musicAct._totalframes + _root._totalframes-fadeOutFrame-85)/ 3600);
var secFadeOut = Math.floor(((musicAct._totalframes + _root._totalframes-fadeOutFrame-85)/ 60)% 60);
if(secFadeOut < 10) sec = "0"+sec;
fadeTime = minFadeOut+":"+secFadeOut;
==============================================================================
[フェードアウト]
描画の線を消す "clear();"を追加。
==============================================================================
stop();
var volSound= new Sound();
var volVal = volLevel;
var endCnt = 0;
/---------------------------------------------------------------------------
/ < フェードアウト(曲の途中終了) >
/
/ ・ 使用しない場合はこれ以降をコメントアウトする
/ ・ 音量が最小になったらEnterFrame処理は自動的に削除している
/---------------------------------------------------------------------------
this.onEnterFrame=function(){
volSound.setVolume(volVal);
if(volVal<=0){
volVal=0;
/* 曲が終了するか、フェードアウト開始から120フレーム後にリザルト画面へ */
if(realTime==fullTime || endCnt>=120){
delete this.onEnterFrame;
this.delAll();
this.clear();
volSound.setVolume(volLevel);
/* BarDrain ≫ Normal のときに FAILED になる条件をやや簡素化 */
var jmpFrame = (barDrain=="Normal" && life < setLife.maxLife*CLEAR_NORMAL/100)
? "failed" : "clear";
gotoAndPlay(jmpFrame);
}
endCnt++;
/* フェードアウト速度の導入, やや簡素化 */
}else if(volVal<=volLevel/5){
volVal-=volLevel/800*VOL_GRAD;
}else{
volVal-=volLevel/200*VOL_GRAD;
}
if(frameNum % 60 == 0){
var min = Math.floor(frameNum / 3600);
var sec = (frameNum / 60)% 60;
if(sec < 10) sec = "0"+sec;
realTime = min +":"+sec;
}
frameNum++;
};
==============================================================================
[goResult]ラベルの一つ上のフレーム(failed)
ゲームオーバーフラグを追加。
これによりfailedに飛ばす際にgameOverFlg=true;の記述が他で要らなくなる。
==============================================================================
gameOverFlg=true;
gotoAndPlay("goResult");
==============================================================================
[arrowCalculate.as / arrowCalculateNon.as]
> 速度変化・ストップ補正(途中再生の場合はあらかじめ位置調整)
のコメントの下6行目を修正。
==============================================================================
誤 if(speedDac[j]<_root.frameNum){
正 if(speedDac[j]<frameStart){
==============================================================================
フェードアウトの仕様変更。
全譜面フェードアウトのときは[譜面台]における fadeTime の指定が不要になりました。
(フェードアウトを使用しない場合は対策不要です)
[フェードイン]
以下のようにフェードアウト時間を逆算するように変更。( / はコメントです )
==============================================================================
/
/ フェードアウト開始時間(420フレーム手前)
var minFadeOut = Math.floor((musicAct._totalframes + _root._totalframes-505)/ 3600);
var secFadeOut = Math.floor(((musicAct._totalframes + _root._totalframes-505)/ 60)% 60);
if(secFadeOut < 10) sec = "0"+sec;
fadeTime = minFadeOut+":"+secFadeOut;
==============================================================================
[フェードアウト]
以下の赤字部分が変更箇所。
BarDrain ≫ Normal の ゲームオーバー条件(ライフ80%未満)と
フェードアウトのタイミングを修正。
==============================================================================
stop();
var volSound= new Sound();
var volVal = volLevel;
var endCnt = 0;
/---------------------------------------------------------------------------
/ < フェードアウト(曲の途中終了) >
/
/ ・ 使用しない場合はこれ以降をコメントアウトする
/ ・ 音量が最小になったらEnterFrame処理は自動的に削除している
/---------------------------------------------------------------------------
this.onEnterFrame=function(){
volSound.setVolume(volVal);
if(volVal<=0){
volVal=0;
/* 曲が終了するか、フェードアウト開始から120フレーム後にリザルト画面へ */
if(realTime==fullTime || endCnt>=120){
delete this.onEnterFrame;
this.delAll();
this.clear();
volSound.setVolume(volLevel);
/* BarDrain ≫ Normal のときに FAILED になる条件を追加 */
if(barDrain=="Normal" && life < setLife.maxLife*CLEAR_NORMAL/100){
gameOverFlg=true;
gotoAndPlay("failed");
}else{
gotoAndPlay("clear");
}
}
endCnt++;
/* Volumeが違っても同じ時間でフェードアウトするように変更 */
}else if(volVal<=volLevel/5){
volVal-=0.125*volLevel/100;
}else{
volVal-=0.5*volLevel/100;
}
if(frameNum % 60 == 0){
var min = Math.floor(frameNum / 3600);
var sec = (frameNum / 60)% 60;
if(sec < 10) sec = "0"+sec;
realTime = min +":"+sec;
}
frameNum++;
};
==============================================================================
[最初の初期化]
オプション初期化と書かれたところを探して、その下付近。
赤字を追加する。
==============================================================================
/ ライフ設定
if(BAR_DEFAULT!="Normal"){
barDrain = "Original";
startLife = setLife.startLife; / 初期ライフ
d1 = setLife.ii; / イイ
d3 = setLife.shobn; / ショボーン
d4 = setLife.uwan; / ウワァン
d5 = setLife.kita; / キター
d6 = setLife.iknai; / イクナイ
d8 = 0; / プギャー
barView = barDrain + "<font size=\"14\"> [Rec "+d1+" /Dmg "+d3+"~]</font>";
barView2 = barDrain + "\n [Rec "+d1+" /Dmg "+d3+"~]";
}else{
barDrain = "Normal";
startLife = setLife.startLife;
d1 = RECV_NORMAL;
d3 = setLife.shobn*0.75;
d4 = setLife.uwan*0.75;
d5 = RECV_NORMAL;
d6 = setLife.iknai*0.75;
d8 = 0;
barView = barDrain + "<font size=\"14\"> [Rec "+d1+" /Dmg "+d3+"~ /NoFail ]</font>";
barView2 = barDrain + "\n [Rec "+d1+" /Dmg "+d3+"~ /NoFail ]";
}
==============================================================================
[最初の初期化]
プレイ時の最高/最低倍速の算出と書かれたコメントを探して、その下付近。
赤字を追加。(読み込んだ変数の数値化を行っている)
==============================================================================
for(j=0;j<difficulty;j++){
maxMulti[j]= 1;
minMulti[j]= 1;
difNum =(j==0 ? "" : 1+j);
stepStr =(keyLabelArr[j]==5 ? "_data":"_change");
tmpSpdArr =_root["speed"+ difNum + stepStr].split(",");
tmpBstArr =_root["boost"+ difNum +"_data"].split(",");
if(!isNaN(parseFloat(tmpSpdArr[0]))){
for(k=0;k<tmpSpdArr.length;k+=2){
tmpSpdArr[k+1] = parseFloat(tmpSpdArr[k+1]);
if(maxMulti[j] < tmpSpdArr[k+1]){
maxMulti[j] = tmpSpdArr[k+1];
}else if(minMulti[j] > tmpSpdArr[k+1] && tmpSpdArr[k+1]!=0){
minMulti[j] = tmpSpdArr[k+1];
}
}
}
if(!isNaN(parseFloat(tmpBstArr[0]))){
for(k=0;k<tmpBstArr.length;k+=2){
tmpBstArr[k+1] = parseFloat(tmpBstArr[k+1]);
if(maxMulti[j] < tmpBstArr[k+1]){
maxMulti[j] = tmpBstArr[k+1];
}else if(minMulti[j] > tmpBstArr[k+1] && tmpBstArr[k+1]!=0){
minMulti[j] = tmpBstArr[k+1];
}
}
}
}
==============================================================================
[※タイトル]スプライト→ [設定]ラベル→ 0305, 深度4のボタン(PLAYボタン)
ずっと下のほうに、「代替キーの設定」と書かれたコメントがある。
==============================================================================
/ 代替キーの設定
_root.replaceArr = new Array();
_root.replaceArr = [0,1,2,3,4,5,6,7,8,9,10,9];
_root.replaceInv = [0,1,2,3,4,5,6,7,8,11,10];
if(_root.keyLabel==9){
_root.replaceArr[1] = 4;
_root.replaceArr[5] = 9;
_root.replaceInv[4] = 1;
_root.replaceInv[9] = 5;
}else if(_root.keyLabel==5){
_root.replaceArr[1] = 3;
_root.replaceInv[3] = 1;
}
==============================================================================
[setStart.as]
"keyPush.onKeyDown=function(){" の直後と先頭に次の一文を入れる。
==============================================================================
System.IME.setEnabled(false);
==============================================================================
コメントはありません。 コメント/ソース履歴詳細?