「関数(イベントの設定)」の編集履歴(バックアップ)一覧に戻る

関数(イベントの設定) - (2019/07/08 (月) 19:58:17) のソース

**&color(green){概要}
scenario構造体の&color(blue){world}で指定された&bold(){event構造体}はターン進行時と戦闘終了時に読み込まれます。
&color(blue){fight}で指定された&bold(){event構造体}は戦闘開始時に読み込まれます。
&color(blue){politics}で指定された&bold(){event構造体}は内政ユニットの雇用時に読み込まれます。
それぞれの中の条件分岐で&bold(){event構造体}を呼び出してイベントを発生させてください。

**&color(green){テキスト内で用いる特殊記号}
msg、talk、dialog関数のテキスト内では以下の特殊記号が使えます。
|@|クリック待ちして改行する(dialogでは不可)|
|#|クリック待ちして改行しない(dialogでは不可)|
|$|改行する|
|&|文字変数ないし数値変数の内部値を表示させる|
変数名を&color(blue){&}で囲う事でその要素を表示できます。文字変数要素はpower/spot/unit/classの識別子のみ認識されます。
&color(green){(例)msg(プレイヤーの勢力は&v_name&です。領地数は&v_num&です。)}

**&color(green){文字変数と数値変数について}
:&color(blue){文字変数}|
1個~複数個の「文字列」を代入する変数です。ここでの文字列は主にpower、spot、unit, class構造体の名前(識別子)を指します。
決められた関数の引数欄でのみ使えます。
文字変数はセーブされませんので一時的なデータとして用います。
:&color(magenta){数値変数}|
「数値」を代入する変数です。
if文の条件式内と決められた関数の引数欄で使えます。
数値変数はセーブされますので各種のゲームフラグとして使えます。

**&color(green){基本関数}
青色の引数には&color(blue){文字変数}が使えます。(先頭に&color(blue){@}を付けると文字変数と見なされます)
紫色の引数には&color(magenta){数値変数}が使えます。(数値変数はそのままにしてください)
灰色は以前の関数名です(それも引き続き使えます)

:event(&color(blue){event構造体名})|
event構造体を呼び出します。
:routine(&color(blue){event構造体名})|
event構造体を呼び出します。
戦場マップや背景画像を指定しないただのサブルーチンを呼び出すのはこちらを使ってください。
routine呼び出しの方が高速です。
:return()|
event構造体から抜けます。
:battleEvent(イベント)|
戦闘中イベントを発生させます。詳細は[[別ページ>戦闘中イベントの発生]]にあります。
:wait(数値)| 
数値フレームだけウェイトします。このゲームは25fpsですので1秒間waitするなら25とします。
:wait()|
スクロールが終わるまでウェイトします。
戦闘前のイベントシーンではユニットが全停止(移動完了)するまでウェイトします。

:&color(gray){talk}|
:msg(文章)|
:msg(&color(blue){ユニット}, 文章)| 
:msg(&color(blue){ユニット}, フェイス画像, 文章)| 
テキストを表示する。
ユニットの人名+ユニットの顔絵+テキストを表示する。
ユニットの人名+指定顔絵+テキストを表示する(表情の変化)faceフォルダのを指定する。
&color(green){msg(ルーニック島の代官, Face1.png, こんにちは)} の様に人名と顔絵の直指定もできます。
&bold(){msg2}とするとテキストウィンドウを画面上部に表示します。
:erase()| 
テキストウィンドウを消去する。 
:font(フォント名, 文字サイズ, 文字タイプ(0~3))|
テキストウィンドウのフォントを変更します。(例)font(AR行楷書体H, 26, 0)
フォントファイルはimageフォルダに入れてcontext構造体の&color(blue){font_file}にフォントファイルを列挙してください。
(例)font_file = argk.ttf
文字サイズの標準は&color(blue){26}です。文字タイプは
|0|ノーマル(デフォルト)|1|太字になる|
|2|斜体になる|3|太字で斜体になる|
:font()|
引数無しで標準フォントに戻します。
:fontc(赤成分(0~255), 緑(0~255), 青(0~255))|
テキストウィンドウの文字色を変えます。
:fontc()|
引数無しで標準文字色に戻します。
:dialog(文章)|
テキストをダイアログウィンドウで表示する 
:dialog(&color(blue){ユニット}, 文章)|
テキストを顔絵付きダイアログで表示する。
:select(数値変数, 文章)|
選択肢を表示させます。
「決定」を押すと数値変数に&color(green){1}が入ります。「取消」だと&color(green){0}が入ります。
:choice(数値変数, 選択肢A, 選択肢B, 選択肢C, ‥)|
引数の数だけ選択肢を表示させます。
選択結果は数値変数に&color(green){選択肢A=0、 選択肢B=1、 選択肢C=2、 選択肢D = 3, ・・}として代入されます。
:choiceTitle(テキスト)|
選択肢ウィンドウのトップバーに文章を表示します。&と&で囲った変数表示もできます。
choiceTitle()引数無しだと文章を消します。

:bg(ファイル名)|
:bg(ファイル名, on)|
背景画像を変更します。imageフォルダの画像ファイルを指定します。
第二引数をonにすると強制的に画面全体に広がって表示されます。
:fadeout()|
:fadeout(フレーム数)|
画面を黒色フェードアウトします。デフォルトフレーム数は20です。
:fadein()|
:fadein(フレーム数)|
画面をフェードインします。
&color(green){(例)背景をフェードアウトインして切り替える}
>fadeout()
>bg(newbackground)
>fadein()
:shake()|
:shake(数値)|
画面をシェイクする。引数省略時は50フレーム(2秒間)となる。
:darkness(A, R, G, B)|
画面に任意色のスキンをかけます。引数は全部指定しなくても構いません。省略値は0になります。
A=透明度、R=赤、G=緑、B=青、で範囲は(0~255)です。
:darkness ()|
引数空欄でスキンを外します。
:shadow(手前方向[0~7], 手前色相, 奥色相, 手前α値[0~255], 奥α値[0~255], 濃度[1~100])|
陰影スキンをかけます。
:shadow()|
陰影スキンを外します。
:hideBlind()|
視界制限モードなら視界制限を元に戻します。
:showBlind()|
視界制限モードなら視界制限を外します。

:title(テキスト, y座標)|
タイトル文字(Game Overなど)を画面のy座標に表示します。
負の値(0~-100)にすると画面縦幅の比率となる。-40 だと「画面の縦幅×0.40」がy座標となる。
&color(green){(例)ゲームオーバーを表示しタイトル画面へ戻る}
>title(Game Over, -40)
>terminate()
:title2(テキスト, y座標)|
複数行のタイトル文字を表示させる時に使います。最後はnext()してください。
>title2(第一章, -40)
>title2(冒険の始まり, -50)
>next()
:terminate()|
タイトル画面に戻ります。
:save()|
自動セーブします。
:setGameClear()|
:setGameClear(on)|
context構造体で&color(green){default_ending = off}(エンディングの自動判定をしない)とした時に用います。
ゲームクリアフラグをオンにします。独自のエンディング判定をする時に使ってください。
ゲームクリアフラグがオンなのかは&color(green){isGameClear()}関数で判定できます。
引数をonとすると標準クリアメッセージ(~は大陸を統一しました。~は歴史に名を残しました)とファンファーレを流します。
:exit()|
:exit(テキスト)|
:exit(0)|
「ゲームをクリアしました。右クリックすると機能ウィンドウが出ます」と表示されて「閲覧モード」になります。
テキストを記すと上記の文章と置き換えます。
&color(blue){0}だと何も表示しません。
「ゲームクリアフラグオン」→「エンディング」→「閲覧モード」とするのが普通です。

:image(ファイル名, &color(magenta){x(0~100)}, &color(magenta){y(0~100)})| 
:image(ファイル名, &color(magenta){x(0~100)}, &color(magenta){y(0~100)}, &color(magenta){zオーダー})| 
:image(ファイル名, &color(magenta){x(0~100)}, &color(magenta){y(0~100)}, &color(magenta){zオーダー}, &color(magenta){フェード時間})| 
画像を表示します。座標は画面サイズの百分率です。
(例)&color(green){image(xxx.png,50,50)とすると画面中央に表示される。image(xxx.png,50,25)だと少し上}
画面からはみ出す事はありません。100,100とすると丁度画面右下に表示されます。
:image(ファイル名)| 
:image(ファイル名, &color(magenta){フェード時間})|
画像を消去します。
:face|
:picture|
faceでfaceフォルダの、picutreでpictureフォルダの、imageでimageフォルダのを表示します。

:showImage(ファイル名, &color(magenta){x座標}, &color(magenta){y座標})| 
:showImage(ファイル名, &color(magenta){x座標}, &color(magenta){y座標}, &color(magenta){zオーダー})| 
:showImage(ファイル名, &color(magenta){x座標}, &color(magenta){y座標}, &color(magenta){zオーダー}, &color(magenta){フェード時間})| 
imageフォルダの画像を画面座標(x, y)の位置に表示させます(x,yが左上になる)
zオーダーを負の値にするとウィンドウの下に、正の値にすると上に表示されます。
フィード時間のデフォルト値は20です。
:hideImage(ファイル名)| 
:hideImage(ファイル名, &color(magenta){フェード時間})| 
画像を消去します。
:showFace()| 
:showPict()| 
showFaceでfaceフォルダの、showPictでpictureフォルダの、showImageでimageフォルダのを表示します。

:showChara(イメージ, x座標, y座標)| 
:showChara(イメージ, x座標, y座標, 横幅, 縦幅)| 
image.datにあるイメージを表示させます。
重複表示はしないので異なる座標で再表示した場合は移動となります。
同じイメージを複数表示する時は&color(blue){Char1@one}のように「@任意の接尾辞」を記してください。
:hideChara(イメージ)| 
イメージを消去します。
:reverseChara(イメージ)| 
イメージを反転します。
:doskill(スキル名, &color(magenta){x座標}, &color(magenta){y座標}, 発射方向角度(0~360), スクリーン座標(on/off))|
スキルを発射します。
スクリーン座標がonだとx、yは(0~100)の画面サイズ百分率になります。
offだとワールド座標の直指定数値になります。

:spotmark(&color(blue){領地/勢力})|
:spotmark(&color(blue){領地/勢力}, 色番号)|
領地、又は勢力の全領地をマーキングします。色番号の省略時は3になります。
&color(green){-2=閃光、-1=爆発、0=赤、1=青、2=黄、3=紫、4=茶、5=緑、6=水色}
:spotmark()|
全領地のマーキングを消去します。
:showSpot(&color(blue){領地})|
領地を表示します。 
:linkSpot(&color(blue){領地}, &color(blue){領地})|
:linkSpot(&color(blue){領地}, &color(blue){領地}, イメージ)|
:linkSpot(&color(blue){領地}, &color(blue){領地}, イメージ, α値)|
領地を連結します。 
image.dat内のイメージで装飾できます(デフォルトはroute)α値は透明度(0~255)です。
:linkEscape(&color(blue){領地}, &color(blue){領地})|
:linkEscape(&color(blue){領地}, &color(blue){領地}, イメージ)|
:linkEscape(&color(blue){領地}, &color(blue){領地}, イメージ, α値)|
領地を退却線で連結します。
image.dat内のイメージで装飾できます(デフォルトはesc_route)α値は透明度(0~255)です。 
:hideSpot(&color(blue){領地})|
領地を非表示にします。
非表示の領地は孤立した状態でゲーム内に存在しています。
:hideLink(&color(blue){領地}, &color(blue){領地})| 
連結線を非表示にします。

:scroll(&color(blue){ユニット/領地})|
:scroll(x, y)|
今の画面位置を記憶して指定した領地、ユニットが中心になるようにスクロールします。 
ワールドマップでユニット名を指定した場合はそのユニットがいる領地にスクロールします。 
:backScroll()| 
scroll()で記憶した画面位置に戻るようスクロールします。 
:scroll2(&color(blue){ユニット/領地})| 
画面位置を記憶しないscroll()です。 
:scrollSpeed(数値)|
スクロールスピードを変えます。数値ドット/毎フレームにします。
:locate(&color(blue){ユニット/領地})|
:locate(x座標, y座標)|
画面をユニットか領地を中心にした位置へ即座に移動します。又は(x, y)を中心にした位置へ即座に移動します。
:zoom(数値)|
負の値でズームイン、正の値でズームアウトします。+50ないし+100が標準ズームアウト値です。
:focus(&color(blue){ユニット})|
指定ユニットを追尾スクロールさせます。
:focus()|
引数無しにすると追尾スクロールをキャンセルします。

:playSE(ファイル)|
効果音を鳴らします。soundフォルダのwavファイル(拡張子無し)を指定します。
:playBGM()|
引数無しです。世界地図シーンならplayWorld()を、戦闘シーンならplayBattle()を実行します。
イベントシーンの最後にこの関数を使ってBGMを戻してください。
:playBGM(ファイル)|
BGMを演奏します。bgmフォルダのmidファイル(拡張子無し)を指定します。
mp3ファイルの時は拡張子込みで指定します。
:stopBGM()|
BGMを停止します。
:volume(数値)|
BGMの音量。範囲は(1~100)です。
0 以下にするとデシベル指定となり範囲は(-10000~0)ですが非推奨です(前Verとの互換)
:playWorld()|
context構造体で設定した&color(green){world_bgm}データを演奏します。
:playBattle()|
context構造体で設定した&color(green){battle_bgm}データを演奏します。
:loopBGM(ファイル, ファイル, ‥)|
列挙されたBGMファイルをランダムな順番で演奏します。
:setWorldMusic()|
ワールドBGMフラグをオンにします。
ワールドBGMフラグはcontext構造体のworld_bgmの演奏時にオンとなり、それ以外の演奏でオフとなります。
:resetWorldMusic()|
ワールドBGMフラグをオフにします。

:reloadMenu(on)|
勢力メニューウィンドウを再表示します。内政ウィンドウで数値を変化させた時にお使いください。
:showPolitics(on/off)|
onで内政ウィンドウを表示します。offで隠します。
:showParty(on/off)|
onでパーティウィンドウ(人材プレイ時の内政)を表示します。offで隠します。
:showDungeon(ダンジョン構造体の名前)|
ダンジョンウィンドウを呼び出せます。内政コマンドからダンジョンシーンに入れます。
:resetZone()|
ゾーン制を取り消します。

.