スポンサーサイト

--. . --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ParaFlaソース ver1.13.0 (追記)

2007. . 19
更新しました。
フレーム判定を初期倍速で変えてみたり。
この辺は賛否両論あると思うので、お好きなほうをDLしてください、と言うことで。

つまり、変更箇所のお知らせ。
ver fd1.12.5 を使っている方も初め数行だけでいいので見てください。
多分重要なので。

※ ちょっと弄ったら実は初期倍速を
  0.5倍速、0.75倍速にできることがわかったとか(


ver fd1.12.5 だとデフォルトで 0.5倍速以上の初期倍速がすでに可能。
ただし、フレーム判定が少々厳しいかもしれません。
ver fd1.13.0のやり方なら、甘くすることも可能です。
> ver fd1.12.5 → ver fd 1.13.0

矢印の被り回避がうまくいっていないことがあったので、
そのバグの修正を先に。(実は重要だったらしい)

[メイン] フレーム10:譜面台(AS)

onClipEvent(keyDown){
があるすぐ下に、こんなASがあると思います。
  if(Key.isDown(_root.keyCtrl[j])){
これを
  if(Key.isDown(_root.keyCtrl[j]) && _root["key_"+_root.h1[j]]==0){
に直してください。

後念のため、フレーム8のアクション|スクリプトに
_root.tuning=null;
_root.loadCmp=false;
の2文を追加してください。

これでバグに関しては終了。あとはカスタムです。

[メイン] フレーム9:スタート初期化

どうやって判定を変えているかについては readme に書かれているので、
実際に関数へ実装する方法を。

まず、以下をコピペして、スタート初期化の出来るだけ前に貼り付け。

if(_root.set_spi > 7){
  _root.jdg_limit=[1,2,4];
  _root.fjdg_limit=[2,4];
}else{
  var jdg=[[],[4,6,7],[3,5,6],[3,4,6],[2,4,5],[2,3,5],[1,3,4],[1,2,4]];
  _root.jdg_limit=jdg[Math.floor(_root.set_spi)];
  var fjdg=[[],[5,8],[4,7],[4,7],[3,6],[3,5],[2,5],[2,4]];
  _root.fjdg_limit=fjdg[Math.floor(_root.set_spi)];
}



説明しておくと、
 _root.jdg_limit[0] はイイのフレーム範囲
 _root.jdg_limit[1] はマターリのフレーム範囲
 _root.jdg_limit[2] はショボーンのフレーム範囲

 _root.fjdg_limit[0] はフリーズ成功のフレーム範囲
 _root.fjdg_limit[1] はフリーズ失敗&枠外イクナイのフレーム範囲

になっています。
いじる場所、わかるでしょうか・・・?
それでは行きます。
※ 追記 赤字のところを入力すると、初期倍速0.5倍、0.75倍が可能に。
   ただし、First Numberにはご注意を。



「function」 mov_arrow
/* これより下は判定処理~ */と書いてあるすぐ下のこのAS
 if(this.count>=-6){
これに直します。
 if(this.count>=-_root.jdg_limit[2]){
ついでに、すぐ下にある判定放棄~の部分で、
 }else if(this.count<-6 && this.setflg==false){

 }else if(this.setflg==false){
にしてください。

「function」 fmov_arrow
/* これより下は判定処理~ */と書いてあるすぐ下のこのAS
 if(this.count>=-7){
これに直します。
 if(this.count>=-_root.fjdg_limit[1]){

最後に、
「function」 judge_arrow ・・・
該当箇所少し多いので以下コピペでいいです。変更箇所は赤で表記。

function judge_arrow(j){
  curArr = _root.hAr[j]+"_s"+_root.arrcnt[j];
  chk = Math.abs(_root[curArr].count);

  fcurArr = "f"+_root.hAr[j]+"_s"+_root.farrcnt[j];
  fchk = Math.abs(_root[fcurArr].count);

  // 矢印
  if(chk<=_root.jdg_limit[2] && _root[curArr].setflg==false){
    _root[curArr].suc=true;

    // イイ、マターリ、ショボーン
    if (chk<=_root.jdg_limit[0]) _root.ii_j();
    else if (chk<=_root.jdg_limit[1])_root.mat_j();
    else  _root.syo_j();

    _root[curArr].setflg=true;
    _root[curArr].gotoAndPlay("hit");
    _root.arrcnt[j]++;

  // フリーズアロー
  }else if(fchk<=_root.fjdg_limit[1] && _root[fcurArr].setflg==false){

    // フリーズアロー開始フラグ(押し始めの判定)
    if (fchk<=_root.fjdg_limit[0]){
      _root[fcurArr]._y=_root[_root.hAr[j]+"_step"]._y;
      _root[fcurArr]._alpha=100;
      _root[fcurArr].gotoAndPlay("hit");
    }else{
      _root.ikn_j();
      _root[fcurArr].gotoAndPlay("miss");
    }
    _root[fcurArr].setflg=true;
    _root.farrcnt[j]+=2;
  }
}


以上。お疲れさまでした。



> おまけ

判定増やしをする場合は、これまで通りで構いませんし、
_root.jdg_limit / _root.fjdg_limit を使って表すこともできます。

例えば _root.jdg_limit = [3,5,6,1]; としておけば
 // 新判定、イイ、マターリ、ショボーン
    if (chk<=_root.jdg_limit[3]) _root.new_j(); // 新しい判定
    else if (chk<=_root.jdg_limit[0]) _root.ii_j();
    else if (chk<=_root.jdg_limit[1])_root.mat_j();
    else  _root.syo_j();

このように4判定が可能です。
なぜ新判定を配列の最後に置くかというと、
枠外判定の設定でいちいち配列番号を変えなくてはいけないからです。

新判定を追加したら、
「スタート初期化」の最初の方にあるASを

if(_root.set_spi > 7){
  _root.jdg_limit=[1,2,4,0];
  _root.fjdg_limit=[2,4];
}else{
  var jdg=[[],[],[3,5,6,1],[3,4,6,1],[2,4,5,1],[2,3,5,1],[1,3,4,0],[1,2,4,0]];
  _root.jdg_limit=jdg[Math.floor(_root.set_spi)];
  var fjdg=[[],[],[4,7],[4,7],[3,6],[3,5],[2,5],[2,4]];
  _root.fjdg_limit=fjdg[Math.floor(_root.set_spi)];
}


こんな感じに変えてやらないといけないのがちょっと難点ですが。
どうこだわるかはそれぞれですけどね。
スポンサーサイト

comment

post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

trackback

trackbackURL:http://alprime.blog91.fc2.com/tb.php/53-6620e086
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。