*ソース(更新履歴詳細) [#of5f00fe] #contents **ParaFla!ソース / Cross Walker [#v60d865c] &color(#cc0000){※ ver fd 3.10.0 から変数関係がかなり変わっています!};~ &color(#cc0000){ ver fd 3.9.6以前を使っている方はご注意ください。};~ ***2010/08/21 ( ver fd 3.12.14, 色変化逆算 ) [#ge1517c7] -対象ソース:ver fd 3.12.13以前 -解決される内容: --色変化タイミングの不具合解消。~ [arrowCalculate.as]~ このAS内にある~ bcolorDac ⇒ _root.bcolorDac に置き換え。~ ***2010/08/07 ( ver fd 4.0.6, フェードアウトの問題 ) [#q8b802d7] -対象ソース:ver fd 3.12.7 〜 4.0.5.2 -解決される内容: --ある特定の時間のフェードアウトができないバグが解消される。~ [ フェードイン ]~ ===============================================================================~ /* フェードアウト開始時間(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) &color(#cc0000){secFadeOut}; = "0"+&color(#cc0000){secFadeOut};;~ fadeTime = &color(#cc0000){minFadeOut};+":"+&color(#cc0000){secFadeOut};;~ ===============================================================================~ ***2010/07/24 ( ver fd 4.0.3, キー別関係の問題 ) [#q8b802d7] -対象ソース:ver fd 4.0.2 以前 -解決される内容: --11key, 11L key間で11k-Crossの設定の不具合がなくなる。~ --5key Crossのおにぎり位置の問題が解消される。~ ◆11key, 11Lkey の11k-Cross の問題~ 11k-Crossは書き方は同じでもキーによりスクロール方向が異なるため、~ Difficultyボタンを押した際に一回設定をリセットする必要がある。~ ~ [最初の初期化 / selectDifficulty]~ ===============================================================================~ if(elvFlg ^ preKey){~ ・・・~ &color(#cc0000){}else if(rev=="11k-Cross"){};~ &color(#cc0000){ if(keyLabel != "11L"){};~ &color(#cc0000){ revnd = [-1,-1,-1,1,1,1,1,-1,-1,-1,-1];};~ &color(#cc0000){ }else{};~ &color(#cc0000){ revnd = [1,1,1,1,-1,-1,-1,-1,-1,-1,-1];};~ &color(#cc0000){ }};~ }else if(keyLabel!="7" && keyLabel!="7i"){~ ・・・~ }~ ===============================================================================~ ※ なお、間の記述は関数化されていれば以下の一行で済む。~ setScroll(rev,keyLabel,stepArea);~ ~ ◆5key のCross のおにぎり位置の問題~ おにぎりの設定部分だけ、スクロール方向を直接設定する設定になっていた。~ このため、ReverseをONにした場合におにぎりのスクロール方向だけ変化する可能性がある。~ ~ [※タイトル ⇒ 「設定」PlayボタンAS (またはreadyToPlay)] ===============================================================================~ (途中省略)~ } else if(_root.keyLabel == "5"){~ ・・・~ case "Cross":~ &color(#cc0000){_root.revnd[3]=1;}; break;~ ・・・~ ===============================================================================~ ~ ***2010/07/24 ( ver fd 4.0.4, 主な変更点まとめ ) [#ddae2bcd] ver fd 4.0.0 から見た目にもいろいろ変わっているので、要点のみ。~ (追記があればその部分について掘り下げるかもしれません)~ -判定周りの変化~ --ライフの回復量/ダメージ量~ これまでライフ設定で使われていた"setLife"を廃止。~ 各BarDrainの設定ごとに数値を指定する方法に変わりました。~ ~ 例 ) MAX_LIFE(最大ライフ)、START_LIFE(初期ライフ)、LIFE_NORMAL(回復:ダメージ割合)~ ~ また、Normal/Escape/Escape+ については~ 回復・ダメージは割合でのみ表記し、詳細は矢印数依存で自動計算する仕様に変更。~ ~ [startUpArrow.as]~ ===============================================================================~ if (barDrain == "Normal" || barDrain == "Escape" || barDrain == "Escape+") {~ if (allArrow == 0 && fallArrow == 0) {~ recvVal = 0;~ dmgVal = 0;~ }else {~ recvVal = calcLifeSource(recvValTmp, (allArrow + fallArrow));~ dmgVal = calcLifeSource(dmgValTmp, (allArrow + fallArrow));~ }~ }~ ===============================================================================~ ※ recvValTmp、dmgValTmp はそれぞれ回復・ダメージの割合。計算式は 関数calcLifeSource を参照。~ ~ --判定の呼び出し方法変更~ これまでは iiJ(); matJ(); などで呼び出しをしていましたが、~ 回復 / マターリ / ダメージで書き方が変更になります。~ ---回復 lifeRecovery(recvVal,"ii","");~ ---マターリ matariJ(main[curArr].cnt);~ ---ダメージ lifeDamage(dmgVal,"syo","");~ ~ lifeRecovery, lifeDamage の1番目の引数は回復量、2番目の引数は判定名、~ 3番目の引数はフリーズの場合のみ"f"となります。~ マターリは早押しのみコンボが継続するように変わったため、~ カウンタを引数に入れています。~ ~ -オプション類~ ver fd 4.0.3以降より、オプション類を関数化しています。~ ◎オプション設定 の1フレーム目にまとめて記述しています。~ ボタンの逆回しボタン対応のため、±を判定するpmFlgが引数に入っているものがあります。~ ~ なお、オプションの詳細部分はここではなく最初の初期化に記述。~ 詳細部分が最初の初期化に移動した以外については、基本的に同じです。~ ~ ***2010/06/23 ( ver fd 3.12.12, フェードアウトの解除 ) [#n35763a0] -対象ソース:ver fd 3.12.11, ver fd 3.13.0 beta1 -解決される内容: --強制的にフェードアウトされる現象がなくなる。~ [譜面台]~ 「フェードアウトを使うときは下のコメントを消す」コメントの下3行をコメントアウト。~ ※ただし、フェードアウトを使用する場合は外しておく~ ==============================================================================~ /*~ if(realTime==fadeTime){~ gotoAndPlay("fadeout");~ }~ */~ ==============================================================================~ ***2010/05/17 ( ver fd 3.12.11, 譜面計算部分修正 [任意] ) [#v82640ec] -対象ソース:ver fd 3.10.0 以降 (実質 ver fd 3.5.0 以降も対象だが変数名に注意) -解決される内容: --特になし。ソースが若干見やすくなり、余計な処理が一部無くなる程度。~ [precal]~ 次の一文を削除(不要)。~ ==============================================================================~ _root.frame_num = _root.startFrame;~ ==============================================================================~ ~ [arrowCalculate.as]~ 修正箇所は多いが、場所は決まっているので要点のみ記述。~ &color(#cc0000){※ 手修正する場合はasファイルのバックアップ推奨};~ -[loadNotes] Correction計算を譜面の読込時に行うように変更。~ これにより、以後の箇所で_root.correctionの記述が不要になった。~ -[loadNotes] 譜面の読込時に必要なデータを数値化。~ これにより、以後の箇所で文字列を数値変換する処理のほとんどが不要になる。~ (全く要らなくなったわけではないので注意)。~ ***2010/05/17 ( ver fd 3.12.11, 読み込み画面のBackSpace連打防止 ) [#q8535eea] -対象ソース: ver fd 3.10.0 以降 (実質 ver fd 3.5.0 以降も対象だが変数名に注意) -解決される内容: --読み込み画面でBackSpaceを連打すると操作不能になる。~ [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]~ 上記でカットしたものをペーストする。(一番下へ)~ ~ ***2010/05/09 ( ver fd 3.12.10, フェードアウト周りの修正 ) [#w2253b2e] -対象ソース: ver fd 3.10.0 以降 (実質 ver fd 3.5.0 以降も対象だが変数名に注意) -解決される内容: --StepArea ≫「Flat」でフェードアウトすると線が消えない。~ --フェードアウト速度とフェードアウト間隔を最初の初期化で指定可能に。~ [最初の初期化]~ 以下の2変数を追加。~ ==============================================================================~ /~ / > フェードアウト時間~ / ・ fadeOutFrame : フェードアウトにかかるフレーム数~ / ・ VOL_GRAD : どのくらいの速度でフェードアウトさせるか(デフォルト:1倍)~ /---------------------------------------------------------------------------~ &color(#cc0000){ fadeOutFrame = 420;};~ &color(#cc0000){ VOL_GRAD = 1;};~ ==============================================================================~ ~ [フェードイン]~ フェードアウト間隔を変更できるよう、変数名に変換。 ==============================================================================~ /~ / フェードアウト開始時間(420フレーム手前)~ var minFadeOut = Math.floor((musicAct._totalframes + _root._totalframes&color(#cc0000){-fadeOutFrame-85};)/ 3600);~ var secFadeOut = Math.floor(((musicAct._totalframes + _root._totalframes&color(#cc0000){-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();~ &color(#cc0000){ this.clear();};~ volSound.setVolume(volLevel);~ ~ &color(#cc0000){ /* BarDrain ≫ Normal のときに FAILED になる条件をやや簡素化 */};~ &color(#cc0000){ var jmpFrame = (barDrain=="Normal" && life < setLife.maxLife*CLEAR_NORMAL/100)};~ &color(#cc0000){ ? "failed" : "clear";};~ &color(#cc0000){ gotoAndPlay(jmpFrame);};~ }~ endCnt++;~ ~ &color(#cc0000){ /* フェードアウト速度の導入, やや簡素化 */};~ }else if(volVal<=volLevel/5){~ volVal-=volLevel/&color(#cc0000){800*VOL_GRAD};;~ }else{~ volVal-=volLevel/&color(#cc0000){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;の記述が他で要らなくなる。~ ==============================================================================~ &color(#cc0000){gameOverFlg=true;};~ gotoAndPlay("goResult");~ ==============================================================================~ ~ ***2010/04/25 ( ver fd 3.12.9, フェードイン+速変処理の修正 ) [#zf6fb239] -対象ソース: ver fd 3.10.0 以降 (実質 ver fd 3.0.0 以降も対象だが変数名に注意) -解決される内容: --フェードイン時、速変間隔が激しいと速変されないことがある。~ [arrowCalculate.as / arrowCalculateNon.as]~ > 速度変化・ストップ補正(途中再生の場合はあらかじめ位置調整) のコメントの下6行目を修正。 ==============================================================================~ 誤 if(speedDac[j]<_root.frameNum){~ &color(#cc0000){正 if(speedDac[j]<frameStart){}; ==============================================================================~ ***2010/04/21 ( ver fd 3.12.8, フェードアウト仕様変更 ) [#gae1472c] -対象ソース: ver fd 3.10.0 以降~ -解決される内容:~ --BarDrain ≫ Normal 時にライフがノルマを達成していなくてもクリアになる(フェードアウト時)。( ver fd 3.12.6〜7 )~ --フェードアウトを使用する際の fadeTime の設定。 ( 新規 )~ --フェードアウト後、音量が元に戻らない。 ( ver fd 3.12.6 )~ --フェードアウトしても結果画面に行かない。( ver fd 3.11.1 )~ フェードアウトの仕様変更。~ 全譜面フェードアウトのときは[譜面台]における fadeTime の指定が不要になりました。~ (フェードアウトを使用しない場合は対策不要です)~ ~ [フェードイン]~ 以下のようにフェードアウト時間を逆算するように変更。( / はコメントです )~ ==============================================================================~ &color(#cc0000){/};~ &color(#cc0000){/ フェードアウト開始時間(420フレーム手前)};~ &color(#cc0000){var minFadeOut = Math.floor((musicAct._totalframes + _root._totalframes-505)/ 3600);};~ &color(#cc0000){var secFadeOut = Math.floor(((musicAct._totalframes + _root._totalframes-505)/ 60)% 60);};~ &color(#cc0000){if(secFadeOut < 10) sec = "0"+sec;};~ &color(#cc0000){fadeTime = minFadeOut+":"+secFadeOut;};~ ==============================================================================~ [フェードアウト]~ 以下の赤字部分が変更箇所。~ BarDrain ≫ Normal の ゲームオーバー条件(ライフ80%未満)と~ フェードアウトのタイミングを修正。~ ==============================================================================~ stop();~ var volSound= new Sound();~ var volVal = volLevel;~ &color(#cc0000){var endCnt = 0;};~ ~ /---------------------------------------------------------------------------~ / < フェードアウト(曲の途中終了) >~ /~ / ・ 使用しない場合はこれ以降をコメントアウトする~ / ・ 音量が最小になったらEnterFrame処理は自動的に削除している~ /---------------------------------------------------------------------------~ this.onEnterFrame=function(){~ volSound.setVolume(volVal);~ if(volVal<=0){~ volVal=0;~ &color(#cc0000){ /* 曲が終了するか、フェードアウト開始から120フレーム後にリザルト画面へ */};~ &color(#cc0000){ if(realTime==fullTime || endCnt>=120){};~ delete this.onEnterFrame;~ this.delAll();~ &color(#cc0000){ this.clear();};~ volSound.setVolume(volLevel);~ ~ &color(#cc0000){ /* BarDrain ≫ Normal のときに FAILED になる条件を追加 */};~ &color(#cc0000){ if(barDrain=="Normal" && life < setLife.maxLife*CLEAR_NORMAL/100){};~ &color(#cc0000){ gameOverFlg=true;};~ &color(#cc0000){ gotoAndPlay("failed");};~ &color(#cc0000){ }else{};~ gotoAndPlay("clear");~ }~ }~ &color(#cc0000){ endCnt++;};~ ~ &color(#cc0000){ /* Volumeが違っても同じ時間でフェードアウトするように変更 */};~ }else if(volVal<=&color(#cc0000){volLevel/5};){~ volVal-=&color(#cc0000){0.125*volLevel/100;};~ }else{~ volVal-=&color(#cc0000){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++;~ };~ ==============================================================================~ ~ ***2010/03/09 ( ver fd 3.12.4, オプション画面の回復/ダメージ表記 ) [#n3c406da] -対象ソース: ver fd 3.12.3 -解決される内容:~ --BAR_DEFAULTをNormalにすると、オプションの回復/ダメージ表記が無くなる。~ [最初の初期化]~ オプション初期化と書かれたところを探して、その下付近。 赤字を追加する。~ ==============================================================================~ / ライフ設定~ 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;~ &color(#cc0000){ barView = barDrain + "<font size=\"14\"> [Rec "+d1+" /Dmg "+d3+"~ /NoFail ]</font>";};~ &color(#cc0000){ barView2 = barDrain + "\n [Rec "+d1+" /Dmg "+d3+"~ /NoFail ]";};~ }~ ==============================================================================~ ***2010/02/21 ( ver fd 3.11.3, 特定の変速を行った場合のオプション画面上の表記修正 ) [#y6c0834e] -対象ソース: ver fd 3.10.0 以降 (ver fd 3.0.0以降も対象だが変数名に注意)~ -解決される内容: --特定の途中変速/個別加速を掛けた場合に、オプション画面の最低/最高倍速がおかしくなる。~ [最初の初期化]~ プレイ時の最高/最低倍速の算出と書かれたコメントを探して、その下付近。~ 赤字を追加。(読み込んだ変数の数値化を行っている) ==============================================================================~ 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){~ &color(#cc0000){ 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){~ &color(#cc0000){ 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];~ }~ }~ }~ }~ ==============================================================================~ ***2009/11/11 ( ver fd 3.11.1, 代替キーの設定修正 ) [#uf8c9cf2] -対象ソース: ver fd 3.10.0 以降 (ver fd 3.7.0以降も対象だが変数名に注意)~ -解決される内容:~ --代替キーにおいて、フリーズアローが使用できない。~ [※タイトル]スプライト→ [設定]ラベル→ 0305, 深度4のボタン(PLAYボタン)~ ずっと下のほうに、「代替キーの設定」と書かれたコメントがある。~ ==============================================================================~ / 代替キーの設定~ _root.replaceArr = new Array();~ &color(#cc0000){_root.replaceArr = [0,1,2,3,4,5,6,7,8,9,10,9];};~ &color(#cc0000){_root.replaceInv = [0,1,2,3,4,5,6,7,8,11,10];};~ if(_root.keyLabel==9){~ &color(#cc0000){ _root.replaceArr[1] = 4;};~ &color(#cc0000){ _root.replaceArr[5] = 9;};~ &color(#cc0000){ _root.replaceInv[4] = 1;};~ &color(#cc0000){ _root.replaceInv[9] = 5;};~ }else if(_root.keyLabel==5){~ &color(#cc0000){ _root.replaceArr[1] = 3;};~ &color(#cc0000){ _root.replaceInv[3] = 1;};~ }~ ==============================================================================~ -参考~ --_root.replaceArr (オレンジ⇒青)~ キーがどの矢印に対応しているのかを表したもの。~ 例 ) 11番目のキー ⇒ 9番目(上矢印)に対応~ --_root.replaceInv (青⇒オレンジ)~ _root.replaceArr の逆変換。~ この矢印に対応するキーがどれかを表すもの。~ ~ #ref(replaceArr.png,around) #clear ~ ***2009/08/28 ( ver fd 3.9.2, プレイ中にIMEモードを切る ) [#g4ccbbb1] -対象ソース:ver fd 3.9.1以前 (キーアクションにリスナを使っているソース全て)~ -解決される内容: --全角モードでプレイするとキーが反応しない(仕様だが、修正により回避が可能。swf8のみ)~ [setStart.as]~ "keyPush.onKeyDown=function(){" の直後と先頭に次の一文を入れる。~ ==============================================================================~ &color(#cc0000){System.IME.setEnabled(false);};~ ==============================================================================~ ~ ~ ~ #pcomment(below,reply)