スポンサーサイト

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

ParaFlaソースについて - 3

2007. . 15
ここ最近ソースの更新が頻繁で本当にごめんなさい。
今の「ver fd1.12.5」でしばらく落ち着く予定です。
大きな変更のときのバグチェックが甘い・・・。以後気をつけます。

で、途中でDLしてすでに改造してしまい、取り返しがつかなくなった方へ。
とりあえず、直した箇所の詳細を書いておきます。
念のため、ソースのバックアップは取っておいてくださいね。
対象: ver1.12 ~ ver1.12.4

・ ver fd1.12.4
・ ver fd1.12.3
・ ver fd1.12.1 / ver fd1.12.2

※ ver fd1.12.3, ver fd1.12.4については大きなバグはなく安定しています。
  機能追加、軽量化が主です。
  無理に改造しなくても動作に問題はありません。

※ フリーズアローが枠外で消えないバグがある
  ver fd1.09 ~ ver fd1.12preについては、
  ver fd1.12.1 / ver fd1.12.2 → ver fd1.12.5
  の「◆フリーズアロー」の部分と同じです。
  (他の部分は弄る必要はありません)

※ 修正箇所
  ver fd1.09 - ver1.12.2 の対応を追加

( 修正パッチのようなものを以下に )
> ver fd1.12.4 → ver fd1.12.5

このバージョンでは主にリトライ機能の実装が主です。
余計な変数の削除も行っています。

最初に初期化です。
[ メイン ] フレーム3:最初の初期化、 フレーム9:スタート初期化

ここにそれぞれ、
  _root.reset=0;  // リスタート、リトライかどうか
この一文を加えます。

[ メイン ] フレーム6:スプライト(AS)
onClipEvent(load){ ・・・以下を次で置き換えます。(コピペ)

/* ここから */
onClipEvent (load) {
    if (_root.reset>=1){ // ゲームオーバーではなくリスタート、リトライ
       _root.gameovr=0;
       if(_root.reset==2){
       // リトライならプレイ画面へ、リスタートならそのままタイトルへ
          _root.gotoAndPlay("play");
       }
    }else if (_root.gameovr==1){
       this.gotoAndPlay(4);
    }
}
/* ここまで */

[メイン] フレーム7:何もしない(1フレーム)

ここをプロパティの設定で「<スクリプト>」に変更します。
その上で、
if(_root.reset==2){
    play();
}

の3文をコピペして入れてください。

[メイン] フレーム8: precal
 スプライトを編集 → AS (譜面計算)

// 不要な変数を削除 より下を消して、以下をコピペ。
/* ここから */
    for(j=0;j<7;j++){
       delete _root[arrName[j]+"_data"];
       delete _root[farrName[j]+"_data"];
    }
    delete _root.speed_data;
    delete _root.speed_change;
    delete _root.stop_data;
    for(k=2;k<=_root.difficulty;k++){
      for(j=0;j<7;j++){
        delete _root[arrName[j]+k+"_data"];
        delete _root[farrName[j]+k+"_data"];
      }
      delete _root["speed"+k+"_data"];
      delete _root["speed"+k+"_change"];
      delete _root["stop"+k+"_data"];
    }
    delete _root.timeline;
    delete _root.ftimeline;

    loadOK =true;    // 確認フラグ
    return loadOK;
}

/* ここまで */

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

ずっと下のほうにある、
    if(Key.isDown(46)){
       _root.life=0;
       _root.gameovr=1;
       _root.gotoAndPlay("title");
    }
の一帯を消して、次のASに置き換えます。(コピペ)
/* ここから */
// 実際のリスタート、リプレイの動作
    if(Key.isDown(46)){ // Delete
       _root.life=0;
       _root.gameovr=1;
       _root.reset=1; // この行を消すと「ギブアップ」
       _root.gotoAndPlay("title");
    }else if(Key.isDown(8)){ // BackSpace
       _root.life=0;
       _root.gameovr=1;
       _root.reset=2;
       _root.set_spi=_root.olds;
       _root.gotoAndPlay("title");
    }

/* ここまで */




> ver fd1.12.3 → ver fd1.12.5

上のver fd1.12.4 → ver fd1.12.5への変更の他、
次のことを行えばOKです。

「矢印・オニギリ / 譜面台」フォルダ → ◆フリーズアロー
→ スプライトを編集
→ フレーム3 「スクリプト」(■roop の下にある奴です)

AS中に「 endFill(); 」というものがありますので、
これより下を全て消して次をコピペします。
/* ここから */
}
if(this.miss==false){
    // 途中でキーを離したときはイクナイに
    if (_root["kyr_"+_root.h1[this.rocate]]==2){
       this.miss=true;
       _root.ikn_j();
       gotoAndPlay("miss");

    // 押し切ったらキターに
    }else if(this.y1==0){
       _root.kita_j();
       this.removeMovieClip();
    }
}

/* ここまで */

以上です。
ver fd1.12 ~ ver fd1.12.2は致命的なバグが存在するので
直すのに手間かかります。。。orz

ですが、放置するのもアレなので説明します。



> verfd 1.12.1 / ver fd1.12.2 → ver fd1.12.5

上記に加え、以下の操作を行う必要があります。

(読み込みがうまく行かないことがあるバグの修正)

[メイン] フレーム7:precal
この前にまず、「フレームを挿入」します。

ここをプロパティの設定で「<スクリプト>」に変更します。
その上で、
if(_root.reset==2){
    play();
}

の3文をコピペして入れてください。
( ver1.12.4 → の「何もしない」の部分は飛ばしてOKです )

これで、まず「precal」がフレーム8に移ったと思います。
次に、ここのASを全面的に書き直します。
onClipEvent(load){ ・・・ 以下を全て消して、次をコピペ。

onClipEvent(load){
    delete _root.loadCmp;
    delete _root.mkArrow;
    delete _root.mkFArrow;
    _root.loadCmp=false;
    _root.loadVariables("dos.txt"); // 譜面の読み込み
}
-
onClipEvent(enterFrame){
    if(_root.tuning==null || _root.tuning==undefined){
    }else if(_root.loadCmp!=true){
       _root.loadCmp=this.load_tune();
    }else{
       _root.play();
    }
}


中にある「譜面計算」の方も直す必要がありますが、
これはver fd1.12.4の最初の方と同じです。

次に、
[メイン] フレーム9:スタート初期化
[※スタート] フレーム1(スクリプト:AS)


の2箇所について、それぞれ
  _root.tuning=null;
を挿入します。

[矢印・オニギリ / 譜面台] フォルダ → ◆フリーズアロー
「 ■miss 」の下にある [fal2]内のAS。

onClipEvent(enterFrame){
  ・・・(略)・・・
}
上のようにenterFrame部分を消して、次で置き換えます(コピペ)。
(枠外フリーズアローが消えないバグを修正)

onClipEvent(enterFrame){
    if ((_parent._y>=-30-_parent.y1
      &&_root.revn[_parent.rocate]==0)
    ||(_parent._y<=380+_parent.y1
      &&_root.revn[_parent.rocate]==1)){

       if(_root.stop==false){
          if(_root.revn[_parent.rocate]==0){
             parent._y-= _parent.spd;
             this._y = _parent.y1;
          }else{
             _parent._y+= _parent.spd;
             this._y = -_parent.y1;
          }
       }
    }else{
       // フリーズアローが枠外で消える条件
       _parent.removeMovieClip();
       delete this.onEnterFrame;
    }
}


以上です。
ver fd1.12 の場合には、譜面計算の部分のみが違いますので
ver fd1.12.5 をDLして、
 [メイン] フレーム8:precal から「スプライトを編集」と進み、
フレーム1にあるASを丸ごと上書きすればOKです。
(もちろん、上記の操作を行う必要があります)



どこを直せばいいのかサッパリな方は
とりあえず事情を掲示板まで。
スポンサーサイト

comment

post comment

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

trackback

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