EventScript

【EventScript=各種イベントの条件やら内容やらを記述するファイル 】



1.行数が分からないと作業しづらいため、メモ帳(NOTEPAD)では開かない。必ず行数が確認出来るテキストエディタで開く。
よく分からないという方は、とりあえず98からVistaまで使えるMKEditor辺りを入れて下さい。
秀丸持ってる方はそちらで。


2.半角の「()【カッコ】」や「[]【カギカッコ】」をキャラIDや会話文で使わない。
悲しいことになったり面倒くさいことになったりします(´・ω・`)
どうしてもイベントが正常に動作しない場合はこれを疑ってみるのも一計。
なお、全角であれば特に問題ありません。


3.マスターの所在地はBaseArea[~]で。
HeroFlag[~]だと取得出来ないというか、イベントが正常動作しないようです。
人材の方は所在地を指定するイベント以外ではHeroKuni[~]を使った方が柔軟に使いやすいです。


4.「Conversation」ウィンドウの文字数制限
キャラクターが喋る時に使う「Conversation」ウィンドウは最大3行、1行につき23文字(全て全角の場合)まで表示できる仕様です。
頑張って書いたセリフでも24文字目以降はまともな表示にならず切ないので推敲は欠かさず行っておきましょう。
なお、23文字目も「Clear」コマンド実行後などに見切れたりすることもあるのでそういうのは嫌、という場合は1行につき22文字以内に収めると良いです。
「Conversation」ウィンドウのサイズは384×96ピクセル厳守で、サイズを変更するとエラーが発生しゲームが進行しなくなります。
なので平均的に長い会話が続きそうならツクール風ウィンドウ使用も考えましょう。
一行あたりの表示制限、ウィンドウ一個あたりの改行制限が段違いです。表情パターンで手を抜きたい方にも有効。
尤も長文自体は忌むべきものです。無闇矢鱈に長い文を使うためではなく、頻繁なウィンドウ書き換えや数文字のための改行を減らすなどの方向に生かしましょう。


5.OutPrintとPrintはきっちり使い分ける。
前者は文頭の位置を固定したい場合に有用です。Sizeタグを用いた顔絵付会話ウインドウでは必須となるでしょう。
一方で、これでなかなか地の文(説明乃至は描写文。FT上では登場人物以外が何かしらを述べている文、とでも考えていただければ結構です)を綺麗に出すのは大変です。
こちらをお手軽に済ませるにはPrintが便利です。Sizeタグに続くPrintは自動的に中央揃えとなり、いちいち文頭の座標を調整する必要がありません。
使い分けは個人の好みとも言えますが、個人的には上記のような使い方をしています。実際に簡単なタグを打って試してみるのが吉。


6.イベントが動かない時はFaceOutなどを利用して検査する。
if文を入れ子にしている時など、どの条件に問題があるのか分からなくなってしまうことがあります。
そういう時はFaceOutなどを利用することで、どの段階までは正常に動作しているのか調べることが出来ます。

例)
if (A)
{
   【1】
   if (B)
   {
      【2】
      if (C)
      {
         【3】
      }
   }
}

【1】の部分に入れたFaceOutが動かなかった場合、Aの条件文に問題があります。以降も同様に【2】で動かなければBに、【3】で動かなければCに問題があるということになります。
試験に使うのはFaceOut以外でも構いません。極論MIDIを鳴らしてもいけると思います。
CheckやFT-ESSで検出出来ないエラーが潜んでいることもありますので、異常がある時はすべてを疑ってみるのも良いと思います。


7.ページ違反エラーが頻発する時は、最近追加したLeagueやLeyを確認してみる。
League[200][10]やLey[777]といった巨大な引数を指定すると、なにかの拍子にページ違反が出て強制終了する可能性があります。
この場合は引数を小さくするしかありません。無茶な値を利用するときはくれぐれもご注意下さい。

(引数(ひきすう)とは「LeagueやLeyの後ろにある『[]』の中身のこと」と考えて下さい)


8.小ネタ
8-1.「WindowOn」コマンドについて
「WindowOn」は入力した数値の1000分の1秒間直前のウィンドウを表示した状態で待機するコマンドです。
例えばデフォルトで使用されているWindowOn 4000であれば「4秒間直近のウィンドウを出した状態で待機しますよ」という命令になっています。
上下のウィンドウをほぼ同時に出したい場合はWindowOn 100など小さい数値を入力するとよいでしょう。
なお、このコマンドを省いても上下のウィンドウを同時に表示する事はできます。好きな方を選択しましょう。
ちなみにWindowOn 0と設定した場合、「マウスクリック等がされるまで待機し続けますよ」という命令になります。




凡例

DeleteFillの無意味な使用例

  • ビデオ風(似非半透明)画像のリアルタイム作成。指定領域を弄ってやれば局所的処理も可能。
結構中途半端な仕上がりですが、半透明画像が使えない中で無理矢理作(ry
画像の半透明差分を持つ必要がなくなるため、配布サイズの低減は図れると思います。
※下記のままだと処理過程は表示されない(表示しながらだと遅い。演出としてはアリかもしれないけれど)
Size 950,500
下敷きになるウインドウのサイズ指定。モニタサイズを超えない程度にしておきましょう。
Picture serifu_04f,29,19
画像名と表示する際の左上の座標指定です。普通は1,1でおk。
WindowCenter
WindowOn 0
ここでは試験ということで、まず何も手を加えていない背景画像を表示するようにしています。
Set a,0
Set c,1
Start
DeleteFill a,0,c,500
左上が0,0、右下が1,500の長方形を描画しろ、という命令。
ただしx座標(aとcで表されている部分)は変数とする。
Plus a,2
Plus c,2
それぞれ2ずつ足していく。
|┃|┃|┃|┃|(|:背景画像/┃:DeleteFillで描いたライン)←こういうものを作るためです。
if (a<951)
{
GoTo
}
x座標が951未満なら処理を(描画→変数に2を加算→描画~)繰り返す。
WindowCenter
WindowOn 0

コピペ後の整形(行間、説明部分等の削除)はご自分で。
なお、あんまりでっかい画像を指定すると多少表示にもたついたり、直後のYes/No選択などが隠れてしまう場合があります。
まあEnter押せばとりあえず平気ですが、一見するとフリーズしてるようにも思えるのでお気をつけあれ。


  • オリシナの場合、すごく長くなっていることがある
    一応このファイルをテキストエディタで見るとイベント内容は全て見ることができてしまう -- 名無しさん (2021-12-01 21:59:23)
名前:
コメント:

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2023年05月06日 18:30