「コマンドの解説」の編集履歴(バックアップ)一覧はこちら

コマンドの解説」(2014/02/21 (金) 20:33:34) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#div(color=#000000){{{ *コマンドの解説 ---- スクリプトで用いるコマンドやマクロのリファレンス。 必要に応じて例文を記述しているが、擬似的なものであり正しいとは限らない。 #contents_line(fromhere=true,level=2,sep= / ) //実用上はあまり重要ではないのでコメントアウト。 //一部のコマンドは特定の条件でのみ機能する。 //|BGCOLOR(LightBlue):コマンドの種類|BGCOLOR(LightBlue):説明|BGCOLOR(LightBlue):例| //|BGCOLOR(AliceBlue):Interaction Command|Personaでのみ使われるコマンド。|Greeting, NewChat, Say, etc.| //|BGCOLOR(AliceBlue):RPG Mode Command|チーム1に1人のPC(@)がいる場合のコマンド。|CashPrize, PCRep, SkRoll, etc.| *ID番号 ---- スクリプトでは対象のGearの識別にいろいろなID番号を使う。 特にUIDとCIDは混同しやすいので注意すること。これらを使用するコマンドは異なる(TDとUTDなど)。 |BGCOLOR(LightBlue):IDの種類|BGCOLOR(LightBlue):略称|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Unique ID|UID|マップに入るたびに自動で個々のモデルに割り当てられるID。| |BGCOLOR(AliceBlue):Character ID|CID|Personaに割り当てられるID。| |BGCOLOR(AliceBlue):Faction ID|FID|Factionに割り当てられるID。| |BGCOLOR(AliceBlue):Narrative ID|NID|SetKeyItemコマンドなどでアイテムに割り当てられるID。| モデル = NPC, Item, Propなどの物理Gearを指す。 *ユーザー定義のマクロ ---- aslmacro.txtなどのテキストファイルに追加することで、独自のマクロを使用することが可能になる。 例) NPCの性別を返すマクロ NPCGENDER <GrabNPC ? GNAtt 3 0> *トリガー ---- ある条件を満たすと<>内に記述した処理を実行する。 同じトリガーを複数同時に使っても最初の1つだけが有効。 Gearによって使えるものが決まっている。 以下のような形で記述する。 トリガー名 <実行する処理> **&sizex(-1){Start} Start <...> 別のマップに入ったとき、そのマップが開始された直後に実行される。 ***&sizex(-1){&aname(cleanup,option=nolink){Cleanup}} Cleanup <...> &link_anchor(endstory){EndStory}マクロが実行されたときに1回だけ実行される(クリーンアップ)。 親となるStoryが終了した際に該当のPlotを消去する処理を記述する場合などに使う。 ***&sizex(-1){Get} Get[NID] <...> アイテム[NID]を入手したときに実行される。 [NID]には直接数値を記述するほか、&link_anchor(compose){Compose}マクロで変数を割り当てることも可能。 これは他のIDや番号を伴うトリガーについても同じ。 ***&sizex(-1){Key} Key[NID] <...> アイテム[NID]が作動したときに実行される。 該当のアイテムを作動させるには&link_anchor(trigger){Trigger}マクロを実行する必要がある。 ***&sizex(-1){Clue} Clue[Skill Number] <...> スキル[Skill Number]を使用したときに実行される。 **&sizex(-1){TD} TD[UID] <...> ターゲット[UID]が破壊されたときに実行される。 UIDを参照できるコマンドは限られており、メック戦でちょっと使われる程度。 ***&sizex(-1){UTD} UTD[CID] <...> ターゲットのNPC[CID]が破壊されたときに実行される。 ***&sizex(-1){NU} NU[Team Number] <...> チーム[Team Number]の生存しているメンバーの数が変更されたときに実行される。 NUは"Number of Units Changed"の略。 主にマップから脱出する処理を記述するのに使われる。 ちなみにマップを出る際や&link_anchor(retreat){Retreat}マクロを実行した際にも実行される。 なぜか一定の時刻でも実行される(1時間ごと)。部位破壊などで複数回実行されることがある? % チーム1(プレイヤーのチーム)が全滅したときに直前のマップに戻る処理。 % T1は生存しているチーム1のメンバーの数。 NU1 <if= T1 0 Return> ***&sizex(-1){5Min / HalfHour / Hour / Quarter} 5Min <...> ゲームの時計で一定の時刻になるたびに実行される。 HalfHour <Print 1> Msg1 <30分が経過しました。> ***&sizex(-1){FacWin} FacWin[FID] <...> 派閥[FID]が勝利したときに実行される。 **&sizex(-1){FacLose} FacLose[FID] <...> 派閥[FID]が敗北したときに実行される。 Kist村の解放イベントの判定などで用いられる。 ***&sizex(-1){Greeting} Greeting <...> Personaで使用されるトリガー。対象のNPCと会話したときに実行される。 Greeting <NewChat Say 1> Msg1 <こんにちは。> ***&sizex(-1){&aname(result,option=nolink){Result}} Result[Prompt Number] <...> Personaで使用されるトリガー。 &link_anchor(addchat){AddChat}マクロで表示される選択肢を選んだときに実行される。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2> Result2 <EndChat Say 3> Msg1 <こんにちは。> Msg2 <いいお天気ですね。> Msg3 <いえ、何でもありません。> Prompt1 <やあ。> Prompt2 <何か用?> ***&sizex(-1){Update} Update <...> モデルで使用されるトリガー。マップが開始されたときに対象のモデルで実行される。 &link_anchor(updateprops){UpdateProps}マクロで能動的に実行させることも可能。 ***&sizex(-1){Use} Use <...> モデルで使用されるトリガー。対象のモデルを使用したときに実行される。 **&sizex(-1){内部ジャンプ} [ラベル名] <...> &link_anchor(if){if文}のElseまたは&link_anchor(goto){Goto}マクロでそのラベルにジャンプし、ジャンプ先の処理を実行する。 ラベル名は.[名前]やGo[名前]の形が多いが、好きなものでかまわない。 トリガーのほかにも敵のタイプやファイル名を指定するのにラベルが用いられる。 Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero> GoV1NotZero <Print 1> Msg1 <初期化を完了しました。> ***&sizex(-1){Init_Start} Init_Start <...> I18N版で追加されたコマンド。プロットがロードされたときに実行される。 Init_Start <Print 1> Start <Print 2> Msg1 <Init_Startはプロットのロード時に実行されます。> Msg2 <Startは新たなマップが開始された直後に実行されます。> ***&sizex(-1){Restore_Start} Restore_Start <...> I18N版で追加されたコマンド。ゲームを再開したときに実行される。 ゲームを再開したときのダイアログメッセージなどに使う。 Restore_Start <Print 1> Msg1 <とあるマップにいる。> *計算に関するマクロ ---- 計算にはポーランド記法が用いられる(A + B → + A B) 。 **&sizex(-1){V=} V= [A] [B] 変数V[A]に数値[B]を代入する。 グローバル変数やプロット変数などの場合は G= 1 3 P= 3 5 などのように記述できる。 ***&sizex(-1){V+} V+ [A] [B] 変数V[A]に数値[B]を加算する。 グローバル変数やプロット変数などの場合は G+ 1 3 P+ 3 5 などのように記述できる。 ***&sizex(-1){&nowiki(){*}} * [A] [B] [A]に[B]を乗算した結果を返す。[A]と[B]は変数または数値。 % 変数V3に変数V2(= 10) * 10の結果を代入する処理。 Start <if= V1 0 V= 1 1 V= 2 10 V= 3 * V2 10 Print 1> Msg1 <変数V2に10を掛けると \VAL V3 になります。> ***&sizex(-1){D} D[Die Size] 面数が[Die Size]のダイス。たとえばd6なら1-6のランダムな値を返す。 Start <if= V1 0 else GoCheckHit6 V= 1 d6> GoCheckHit6 <if= V1 6 else GoRetry Print 1> GoRetry <V= 1 d6> Msg1 <変数V1が6になりました。> *&aname(if,option=nolink){if文に関するマクロ} ---- **&sizex(-1){if=} if= [A] [B] (else [Label]) [処理] [A]が[B]に等しければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 Start <if= V1 0 else GoV1NotZero V= 1 1> GoV1NotZero <V+ 1 1> ***&sizex(-1){ifG} ifG [A] [B] (else [Label]) [処理] [A]が[B]より大きければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){if#} if# [A] [B] (else [Label]) [処理] [A]が[B]に等しくなければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifStoryless} ifStoryless (else [Label]) [処理] ソースのGearにリンクされたStoryが無ければ処理を実行する(対象のGearにStoryが何もロードされていなければ、という意味か?)。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifFaction} ifFaction [FID] (else [Label]) [処理] 派閥[FID]がアクティブであれば処理を実行する(対象のFactionが存在していれば、という意味か?)。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 **&sizex(-1){ifPersona} ifPersona [CID] (else [Label]) [処理] NPC[CID]が存在していれば処理を実行する。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifYesNo} ifYesNo [Desc Msg] [Yes Msg] [No Msg] (else [Label]) [処理] 特殊なif文。警告画面を出し、Yes / Noの二択メッセージを表示する。それぞれのメッセージの内容はMsgタグで記述する。 Yesを選択した場合、処理が実行される。 Noを選択した場合、elseがあればラベル名[Label]へジャンプする。 STC Computer-1 Use <ifYesNo 1 2 3 else GoNotUse Print 101> GoNotUse <Print 102> Msg1 <コンピュータがある。> Msg2 <使ってみる。> Msg3 <触らないでおく。> Msg101 <キーボードを叩いてみたが、何も起こらなかった。> Msg102 <その場を離れた。> *Story / Plotに関するマクロ ---- **&sizex(-1){GlobalStoryPattern} GlobalStoryPattern [Scene Label] [Story Label] ラベル名[Scene Label]に記述したタイプを持つマップに、ラベル名[Story Label]で記述したファイル名に合致するStoryファイルを一括でロードする。 Adventureにおいて、一度だけ発生するランダムプロットおよびLancemateプロットのロードに用いられている。 % ADV_FederatedTerritories.txtの該当箇所を少し改変。 start <if= V1 0 V= 1 1 GlobalStoryPattern .city .UrbanStory> .city <URB_STORY> .UrbanStory <TS_GSP_*_STORY.txt> Storyを自作したいけどAdventureを弄るのは嫌だと言う場合、このコマンドを利用するのも一つの手。 Storyファイルの名前を"TS_GSP_(好きな名前)_STORY.txt"としておけば、新規キャンペーンを開始したときにロードされる。 ***&sizex(-1){StartStory} StartStory [Story Label] (else [Label]) Storyファイルをロードする。 ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。 Faction 101 Start <if= V1 0 StartStory .Test_Story V= 1 1> .Test_Story <TEST_STORY.txt> ***&sizex(-1){StoryLine} StoryLine [Plot Label] (else [Label]) Plotファイルをロードする。 ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。 ***&sizex(-1){&aname(endstory,option=nolink){EndStory}} EndStory Storyを消去して子のPlotに&link_anchor(cleanup){クリーンアップ}の要求を渡す。 ***&sizex(-1){AdvancePlot} AdvancePlot [n] プロットの処理をサブプロットのPlot [n]に切り替える。 &bold(){0 を指定した場合はそのプロットが消去される。} サブプロットに移行した場合、プロットの変数V(= P)に格納された数値はリセットされる。 Plot 0 Start <if= V1 0 V= 1 1 AdvancePlot 1> sub Plot 1 Start <if= V1 0 V= 1 1 AdvancePlot 2> Plot 2 Start <if= V1 0 V= 1 1 AdvancePlot 0> end **&sizex(-1){&aname(goto,option=nolink){Goto}} Goto [Label] ラベル名[Label]の処理へジャンプする。 Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero> GoV1NotZero <Print 1> Msg1 <初期化を完了しました。> ***&sizex(-1){&aname(compose,option=nolink){Compose}} Compose [Trigger] [Parameter] [Command Line Identifier] GetやKeyなどのIDを伴うトリガーに別名[Command Line Identifier]をつけて新しいトリガーを作成する。 IDに変数を用いたい場合に使う。 % NPC E2が破壊されたときに実行するトリガー".E2Killed"を作成する処理。 Start <... Compose UTD E2 .E2Killed ...> .E2Killed <...> *Factionに関するマクロ ---- **&sizex(-1){FacXP=} FacXP= [FID] [Value] 派閥[FID]の経験値に[Value]を代入する。 ***&sizex(-1){FacXP+} FacXP+ [FID] [Value] 派閥[FID]の経験値に[Value]を加算する。 ***&sizex(-1){PCFac} PCFac プレイヤーキャラクターが所属する派閥のFIDを返す。 ***&sizex(-1){PCFacXP=} PCFacXP= [Value] プレイヤーキャラクターが所属する派閥の経験値に[Value]を代入する。 ***&sizex(-1){FXPNeeded} FXPNeeded [n] 派閥のレベル[n]に必要な経験値を返す。 ここでいう派閥のレベルとは階級(ランク)のこと。レベル 0 ならば新兵。 **&sizex(-1){FacXPNeeded} FacXPNeeded プレイヤーキャラクターが所属する派閥のレベルアップに必要な経験値を返す。 FXPNeeded PCFacLevelに等しい。 ちなみに派閥レベルが[X]の場合、次のレベルアップに必要とする経験値は 5 + [X] * 5 になる。 ***&sizex(-1){PCFacLevel} PCFacLevel プレイヤーキャラクターが所属する派閥のレベルを返す。 ***&sizex(-1){PCFacLevel+} PCFacLevel+ [Value] プレイヤーキャラクターが所属する派閥のレベルに[Value]を加算する。 ***&sizex(-1){FacVar} FacVar [FID] [n] 派閥[FID]の変数V[n]を参照する。 *Teamに関するマクロ ---- チームのIDはデフォルトで以下のように設定されている。 |BGCOLOR(LightBlue):チームID|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):-3|Lancemate(仲間)| |BGCOLOR(AliceBlue):0|中立| |BGCOLOR(AliceBlue):1|プレイヤーキャラクター| |BGCOLOR(AliceBlue):2|敵対| **&sizex(-1){SetAlly} SetAlly [Team Number1] [Team Number2]... チームの友好関係をセットする。 Team 1 SetAlly 2 Team 2 SetAlly 1 ***&sizex(-1){SetEnemy} SetEnemy [Team Number1] [Team Number2]... チームの敵対関係をセットする。 Team 1 SetEnemy 2 3 Team 2 SetAlly 3 SetEnemy 1 Team 3 SetAlly 2 SetEnemy 1 ***&sizex(-1){?M} ?M[Team Number] チーム[Team Number]のランダムなメックのUIDを返す。 ***&sizex(-1){?P} ?P[Team Number] チーム[Team Number]のランダムなパイロットのUIDを返す。 ***&sizex(-1){Tord} Tord [Team Number] [Order <Parameters>] チーム[Team Number]に命令を与える。命令の種類は下記を参照。 |BGCOLOR(LightBlue):命令|BGCOLOR(LightBlue):|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):ASS [Target ID]|Assasinate|指定したターゲットを攻撃する。| |BGCOLOR(AliceBlue):GO [X] [Y]|Goto Spot|指定した座標へ移動する。| |BGCOLOR(AliceBlue):SD|Seek & Destroy|敵を探して攻撃?| |BGCOLOR(AliceBlue):PASS|Passive|建物から出ない?| |BGCOLOR(AliceBlue):FOL [Target ID]|Follow|指定したターゲットについていく。| *Sceneに関するマクロ ---- **&sizex(-1){Exit} Exit [Scene ID] 現在のマップを脱出し、マップ[Scene ID]に入る。 % 使用するとHogye村へ移動する上り階段の処理。 StairsUp Use <Exit 2> ***&sizex(-1){Return} Return 直前のマップに戻る。 ***&sizex(-1){&aname(retreat,option=nolink){Retreat}} Retreat [Team Number] チーム[Team Number]をマップから取り除く。このときNUトリガーがセットされる。 ***&sizex(-1){Runaway} Runaway [CID] キャラクター[CID]を検索してマップから取り除く。このときNUトリガーがセットされる。 ***&sizex(-1){SeekGate} SeekGate [Scene ID] マップに入ったときにマップ[Scene ID]への入り口を検索してプレイヤーキャラクターをセットする。 &nowiki(){-1}を指定すると直前のマップへの入り口(出口の階段など)になる。 **&sizex(-1){SeekTerrain} SeekTerrain [Terrain Type] マップに入ったときに特定の地形を探してプレイヤーキャラクターをセットする? ***&sizex(-1){DrawTerr} DrawTerr [X] [Y] [Terrain ID] 座標[X][Y]のマップタイルをタイル[Terrain ID]に更新する。 Ladon体内のマップで入り口をふさぐのに用いられている。 ASCIIモードの「マップを作成する」で作成したマップでない場合、更新するとその座標は一度未調査の状態に戻る。 ***&sizex(-1){PassVar} PassVar [n] [Value] Plotから(Dynamic)Sceneを呼び出すとき、そのSceneの変数V[n](L[n])に値[Value]を渡す。 *Dynamic Sceneに関するマクロ ---- Dynamic Sceneとは自動生成される一時的なマップ。主に戦闘などで使われる。 **&sizex(-1){NewD} NewD [Scale] スケール[Scale]のDynamic Sceneを自動生成する。 脱出条件を記述する箇所がないので、撤退時に別のマップに戻る処理をプロットに書いておかないとフリーズする。 Persona 2 Greeting <NewChat Say 1 Addchat 1 AddChat 2> Result1 <EndChat Say 2 Goto GoStartCombat> GoStartCombat <NewD 0> Result2 <EndChat Say 3> Msg1 <テスト用マップへ行きますか?> Msg2 <それでは案内します。> Msg3 <さようなら。> Prompt1 <行ってみる。> Prompt2 <いや、結構。> ***&sizex(-1){LoadD} LoadD [Label] ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。 ... GoStartCombat <LoadD .testmap> .testmap <TEST_SCENE.txt> ... ***&sizex(-1){Dynamic} Dynamic [Scale] [PV] [NU1 Label] [NU2 Label] スケール[Scale]のDynamic Sceneを自動生成する。 合計PV = [PV]の敵メックが初期配置される。 PVの値に用いられるのは通常&link_anchor(threat){Threat}マクロである。 ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。 メック用の戦闘マップを生成するのに使われるため、SF0には対応していない? ... GoStartCombat <Dynamic 2 V1 .nu1 .nu2> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... ***&sizex(-1){Staged} Staged [Label] [PV] ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。 合計PV = [PV]の敵メックが初期配置される。 PVの値に用いられるのは通常&link_anchor(threat){Threat}マクロである。 スケールや脱出条件はDynamic Scene用ファイルの方に記述する。 ... GoStartCombat <Staged .testmap V1 .nu1 .nu2> .testmap <TEST_SCENE.txt> ... ***&sizex(-1){MDynamic} MDynamic [Scale] [PV] [MDesc Label] [NU1 Label] [NU2 Label] Dynamicマクロのモンスター版。 合計Size = [PV]の敵モンスターが初期配置される。 PVの値に用いられるのは通常&link_anchor(wmthreat){WMThreat}マクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。 ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。 ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。 ... GoStartCombat <MDynamic 2 V1 .monstertype .nu1 .nu2> .monstertype <animal cave> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... **&sizex(-1){MStaged} MStaged [Label] [PV] [MDesc Label] Stagedのモンスター版。 合計Size = [PV]の敵モンスターが初期配置される。 PVの値に用いられるのは通常&link_anchor(wmthreat){WMThreat}マクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。 ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。 スケールや脱出条件はDynamic Scene用ファイルの方に記述する。 ... GoStartCombat <MStaged .testmap V1 .monstertype> .testmap <TEST_SCENE.txt> .monstertype <animal cave> ... ***&sizex(-1){SetMapType} SetMapType [RandamMap ID] Dynamic Sceneの基本地形となるランダムマップを指定する。 [RandamMap ID]に記述するIDは一部マクロになっている。 たとえば、"-6"と"CityMap"のどちらを書いても町マップになる。 ... GoStartCombat <NewD 0 SetMapType CityMap> ... ***&sizex(-1){Encounter} Encounter [Enemy%] [Ally%] [Desc Label] Dynamic SceneにグローバルNPC(某王女さまとか)を加えるコマンド。 [Enemy%]と[Ally%]はそれぞれ敵対 / 友好NPCが参加する確率。 ラべル名[Desc Label]で指定したラベルに敵のNPCのタイプを記述する。 ... GoStartCombat <Dynamic 2 V1 .nu1 .nu2 Encounter 50 50 .desc> .desc <Villainous> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... *モデルに関するマクロ ---- **&sizex(-1){&aname(updateprops,option=nolink){UpdateProps}} UpdateProps モデルに記述されたUpdateトリガーを実行させる。 ***&sizex(-1){SetKeyItem} SetKeyItem [NID] 固有アイテムにNIDを割り当てる。 プロットで生成したアイテムのNIDについては変数E[n]で代用できるため不要。 ***&sizex(-1){ItemVar=} ItemVar= [NID] [n] [Value] インベントリ内のモデル[NID]の変数V[n]に値[Value]を渡す。 Plot 0 Element2 <Prefab> ... Start <if= V1 0 V= 1 1 Goto GoInitE2> GoInitE2 <ItemVar= E2 1 1000> sub ... end inv STC Computer-1 Use <Print 1> Msg1 <このコンピュータの変数V1に \VAL V1 が代入されています。> end *お金や経験値などに関するマクロ ---- **&sizex(-1){XPV} XPV [Value] プレイヤーキャラクターの経験値に[Value]を加算する。ダイアログに表示が出る。 ***&sizex(-1){CashPrize} CashPrize [Value] プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出る。 ***&sizex(-1){Cash+} Cash+ [Value] プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出ない。 店での購入の処理に使われる([Value] < 0)。 ***&sizex(-1){MechaPrize} MechaPrize [Mecha Label] ラベル名[Mecha Label]で指定されたDesignファイルのメックをプレイヤーキャラクターに与える。 ***&sizex(-1){Reputation} Reputation [Reputation Number] [Value] プレイヤーキャラクターの性格の数値に[Value]を加算する。 どの性格かは[Reputation Number]で指定する。 **&sizex(-1){&aname(pcrep,option=nolink){PCRep}} PCRep [Reputation Number] プレイヤーキャラクターの性格の数値を返す。 どの性格かは[Reputation Number]で指定する。 数値は 100 から -100 の間で変動する。 ***&sizex(-1){&aname(threat,option=nolink){Threat}} Threat [Reputation] [%] 敵メックの脅威値(PV)を返す。 [Reputation]には通常PCRepマクロを用いる。[%]で補正を掛ける。 ***&sizex(-1){&aname(wmthreat,option=nolink){WMThreat}} WMThreat [Reputation] 敵モンスターの脅威値を返す。実際には [Reputation] * 0.5 の値を返している。 [Reputation]には通常PCRepマクロを用いる。 ***&sizex(-1){Reward} Reward [Threat Value] [%] 報酬額の値を返す。 [Threat Value]には通常&link_anchor(threat){Threat}マクロを用いる。[%]で補正を掛ける。 *ステータスやスキルに関するマクロ ---- **&sizex(-1){NPCLevel} NPCLevel [CID] [X] [X]に応じてNPC[CID]の持つ全スキルの値を固定値に修正する。 [X]は通常&link_anchor(pcrep){PCRep}マクロが用いられる。 ***&sizex(-1){NPCAbsoluteLevel} NPCAbsoluteLevel [CID] [X] [X]に応じてNPC[CID]の持つ全スキルの値に対し割合で補正する。 [X]は通常&link_anchor(pcrep){PCRep}マクロが用いられる。 以下は比較表。 |BGCOLOR(LightBlue):X|BGCOLOR(LightBlue):0|BGCOLOR(LightBlue):20|BGCOLOR(LightBlue):40|BGCOLOR(LightBlue):60|BGCOLOR(LightBlue):80|BGCOLOR(LightBlue):100| |BGCOLOR(AliceBlue):NPCLevelによる補正|3|5|8|11|14|17| |BGCOLOR(AliceBlue):NPCAbsoluteLevelによる補正&br()(スキルレベルが10の場合)|3|5|7|9|11|13| ***&sizex(-1){Mental} Mental MTを 5 消費する。 *会話に関するマクロ ---- **&sizex(-1){Say} Say [Msg Number] Msgタグに記述したメッセージを会話画面に表示する。 ***&sizex(-1){NewChat} NewChat 会話画面をクリアする。 最初のメッセージの表示、選択肢を選んだ後のメッセージの更新に使う。 Persona 2 Greeting <NewChat Say 1> Msg1 <こんにちは。> ***&sizex(-1){EndChat} EndChat NewChatと基本的に同じだが、こちらは「雑談」と「離れる」がでない。 最後の文章や一方的な会話をさせたいに使う。 Persona 2 Greeting <EndChat Say 1> Msg1 <ほっといてくれ。> ***&sizex(-1){&aname(addchat,option=nolink){AddChat}} AddChat [Msg Number] &link_anchor(prompt){Prompt}タグに記述した選択肢を会話画面に表示する。 選んだ後の処理は&link_anchor(result){Result}トリガーに記述する。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2> Result2 <EndChat Say 3> Msg1 <こんにちは。> Msg2 <いいお天気ですね。> Msg3 <いえ、何でもありません。> Prompt1 <やあ。> Prompt2 <何か用?> ***&sizex(-1){ForceChat} ForceChat [CID] NPC[CID]と強制的に会話する。 **&sizex(-1){School} School [Skill Identifier] スキルを習得する会話を表示する。 ラベル名[Skill Identifier]で指定したラベルに、スキル番号のリストを記述する。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2 School .skill Say 3> Result2 <EndChat Say 4> .school <1 2 3 4 5> Msg1 <何か訓練しますか?> Msg2 <どれを訓練しますか?> Msg3 <また訓練したくなったら声を掛けてください。> Msg4 <それは残念です。> Prompt1 <はい。> Prompt2 <いいえ。> ***&sizex(-1){Shop} Shop [Wares Identifier] 買い物の会話を表示する。 ラベル名[Wares Identifier]で指定したラベルに、売りたいGearの番号のリストを記述する。 Gearの番号以外にも以下のコマンドを追記できる。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Mecha|メックを販売できる。| |BGCOLOR(AliceBlue):Mextra|Gearの番号に対応したメック用品を販売できる。| |BGCOLOR(AliceBlue):Delivery|メックの運送が可能になる。| Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2 Shop .wares Say 3> Result2 <EndChat Say 3> .wares <4 5 10 11 MECHA MEXTRA> Msg1 <いらっしゃい。何か御用?> Msg2 <どれを買いますか?> Msg3 <またどうぞ。> Prompt1 <買い物をしたい。> Prompt2 <何でもない。> ***&sizex(-1){メッセージ用のタグ} |BGCOLOR(LightBlue):タグ|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Rumor <Message>|そのGearにまつわる噂で使うメッセージを記述する。| |BGCOLOR(AliceBlue):Msg[Msg Number] <Message>|PrintやSayコマンドなどで使うメッセージを記述する。| |BGCOLOR(AliceBlue):&aname(prompt,option=nolink){Prompt[Msg Number] <Message>}|AddChatコマンドで使うメッセージを記述する。| ***&sizex(-1){メッセージ用の置換コマンド} コマンドの前後は半角スペースが必要。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):\ELEMENT [ID]|E[n]に対応した文字列を表示する。| |BGCOLOR(AliceBlue):\NARRATIVE [ID]|N[n]に対応した文字列を表示する。| |BGCOLOR(AliceBlue):\PC|プレイヤーキャラクターの名前を表示する。| |BGCOLOR(AliceBlue):\PERSONA [CID]|NPC[CID]の名前を表示する。| |BGCOLOR(AliceBlue):\RANK|プレイヤーキャラクターの派閥レベルの名前(階級)を表示する。| |BGCOLOR(AliceBlue):\SCENE [Scene ID]|Sceneの名前を表示する。| |BGCOLOR(AliceBlue):\VAL [Variable]|変数の値を表示する。| 以下はl0ugh版/日本語SDL版/I18N版で追加された置換コマンド。前後の半角スペースは不要。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):%JF|一人称を表示する。| |BGCOLOR(AliceBlue):%JS|二人称を表示する。| |BGCOLOR(AliceBlue):%JG|語尾を表示する。| なお、%J*系と %N, %A, %T のトークンに限り半角スペースを空けずに連続して書く事が可能。 例:%JF%JG%JF、%JF%JF。 また、GH2-UTF8版ではさらに多くの置換コマンドが追加されている。 詳細については [[GearHead-2 人称/語尾トークン詳細]] を参照。 *その他のマクロ ---- **&sizex(-1){SkRoll} SkRoll [Skill Number] スキル[Skill Number]のスキルロールを行った結果を返す。 ***&sizex(-1){&aname(trigger,option=nolink){Trigger}} Trigger [Trigger] [Parameter] GetやKeyなどのIDを伴うトリガーを実行させる。 Plot 0 ... Start <if= V1 0 V= 1 1 Compose Key E2 .ActivateE2> .ActivateE2 <Print 1> Msg1 <アイテムE2が作動しました。> sub Persona 3 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <Say 2 Trigger Key E2> Result2 <Say 3> Msg1 <アイテムE2を起動しますか?> Msg2 <アイテムE2の起動を開始。> Msg3 <そうですか…。> Prompt1 <起動する。> Prompt2 <やめとく。> end ***&sizex(-1){SetNPC} SetNPC [CID] Email [Message Number] NPC[CID]にEメールを送信させる。 ---- }}}
#div(color=#000000){{{ *コマンドの解説 ---- スクリプトで用いるコマンドやマクロのリファレンス。 必要に応じて例文を記述しているが、擬似的なものであり正しいとは限らない。 #contents_line(fromhere=true,level=2,sep= / ) //実用上はあまり重要ではないのでコメントアウト。 //一部のコマンドは特定の条件でのみ機能する。 //|BGCOLOR(LightBlue):コマンドの種類|BGCOLOR(LightBlue):説明|BGCOLOR(LightBlue):例| //|BGCOLOR(AliceBlue):Interaction Command|Personaでのみ使われるコマンド。|Greeting, NewChat, Say, etc.| //|BGCOLOR(AliceBlue):RPG Mode Command|チーム1に1人のPC(@)がいる場合のコマンド。|CashPrize, PCRep, SkRoll, etc.| *ID番号 ---- スクリプトでは対象のGearの識別にいろいろなID番号を使う。 特にUIDとCIDは混同しやすいので注意すること。これらを使用するコマンドは異なる(TDとUTDなど)。 |BGCOLOR(LightBlue):IDの種類|BGCOLOR(LightBlue):略称|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Unique ID|UID|マップに入るたびに自動で個々のモデルに割り当てられるID。| |BGCOLOR(AliceBlue):Character ID|CID|Personaに割り当てられるID。| |BGCOLOR(AliceBlue):Faction ID|FID|Factionに割り当てられるID。| |BGCOLOR(AliceBlue):Narrative ID|NID|SetKeyItemコマンドなどでアイテムに割り当てられるID。| モデル = NPC, Item, Propなどの物理Gearを指す。 *ユーザー定義のマクロ ---- aslmacro.txtなどのテキストファイルに追加することで、独自のマクロを使用することが可能になる。 例) NPCの性別を返すマクロ NPCGENDER <GrabNPC ? GNAtt 3 0> *トリガー ---- ある条件を満たすと<>内に記述した処理を実行する。 同じトリガーを複数同時に使っても最初の1つだけが有効。 Gearによって使えるものが決まっている。 以下のような形で記述する。 トリガー名 <実行する処理> **&sizex(-1){Start} Start <...> 別のマップに入ったとき、そのマップが開始された直後に実行される。 ***&sizex(-1){&aname(cleanup,option=nolink){Cleanup}} Cleanup <...> &link_anchor(endstory){EndStory}マクロが実行されたときに1回だけ実行される(クリーンアップ)。 親となるStoryが終了した際に該当のPlotを消去する処理を記述する場合などに使う。 ***&sizex(-1){Get} Get[NID] <...> アイテム[NID]を入手したときに実行される。 [NID]には直接数値を記述するほか、&link_anchor(compose){Compose}マクロで変数を割り当てることも可能。 これは他のIDや番号を伴うトリガーについても同じ。 ***&sizex(-1){Key} Key[NID] <...> アイテム[NID]が作動したときに実行される。 該当のアイテムを作動させるには&link_anchor(trigger){Trigger}マクロを実行する必要がある。 ***&sizex(-1){Clue} Clue[Skill Number] <...> スキル[Skill Number]を使用したときに実行される。 **&sizex(-1){TD} TD[UID] <...> ターゲット[UID]が破壊されたときに実行される。 UIDを参照できるコマンドは限られており、メック戦でちょっと使われる程度。 ***&sizex(-1){UTD} UTD[CID] <...> ターゲットのNPC[CID]が破壊されたときに実行される。 ***&sizex(-1){NU} NU[Team Number] <...> チーム[Team Number]の生存しているメンバーの数が変更されたときに実行される。 NUは"Number of Units Changed"の略。 主にマップから脱出する処理を記述するのに使われる。 ちなみにマップを出る際や&link_anchor(retreat){Retreat}マクロを実行した際にも実行される。 なぜか一定の時刻でも実行される(1時間ごと)。部位破壊などで複数回実行されることがある? % チーム1(プレイヤーのチーム)が全滅したときに直前のマップに戻る処理。 % T1は生存しているチーム1のメンバーの数。 NU1 <if= T1 0 Return> ***&sizex(-1){5Min / HalfHour / Hour / Quarter} 5Min <...> ゲームの時計で一定の時刻になるたびに実行される。 HalfHour <Print 1> Msg1 <30分が経過しました。> ***&sizex(-1){FacWin} FacWin[FID] <...> 派閥[FID]が勝利したときに実行される。 **&sizex(-1){FacLose} FacLose[FID] <...> 派閥[FID]が敗北したときに実行される。 Kist村の解放イベントの判定などで用いられる。 ***&sizex(-1){Greeting} Greeting <...> Personaで使用されるトリガー。対象のNPCと会話したときに実行される。 Greeting <NewChat Say 1> Msg1 <こんにちは。> ***&sizex(-1){&aname(result,option=nolink){Result}} Result[Prompt Number] <...> Personaで使用されるトリガー。 &link_anchor(addchat){AddChat}マクロで表示される選択肢を選んだときに実行される。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2> Result2 <EndChat Say 3> Msg1 <こんにちは。> Msg2 <いいお天気ですね。> Msg3 <いえ、何でもありません。> Prompt1 <やあ。> Prompt2 <何か用?> ***&sizex(-1){Update} Update <...> モデルで使用されるトリガー。マップが開始されたときに対象のモデルで実行される。 &link_anchor(updateprops){UpdateProps}マクロで能動的に実行させることも可能。 ***&sizex(-1){Use} Use <...> モデルで使用されるトリガー。対象のモデルを使用したときに実行される。 **&sizex(-1){内部ジャンプ} [ラベル名] <...> &link_anchor(if){if文}のElseまたは&link_anchor(goto){Goto}マクロでそのラベルにジャンプし、ジャンプ先の処理を実行する。 ラベル名は.[名前]やGo[名前]の形が多いが、好きなものでかまわない。 トリガーのほかにも敵のタイプやファイル名を指定するのにラベルが用いられる。 Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero> GoV1NotZero <Print 1> Msg1 <初期化を完了しました。> ***&sizex(-1){Init_Start} Init_Start <...> I18N版で追加されたコマンド。プロットがロードされたときに実行される。 Init_Start <Print 1> Start <Print 2> Msg1 <Init_Startはプロットのロード時に実行されます。> Msg2 <Startは新たなマップが開始された直後に実行されます。> ***&sizex(-1){Restore_Start} Restore_Start <...> I18N版で追加されたコマンド。ゲームを再開したときに実行される。 ゲームを再開したときのダイアログメッセージなどに使う。 Restore_Start <Print 1> Msg1 <とあるマップにいる。> *計算に関するマクロ ---- 計算にはポーランド記法が用いられる(A + B → + A B) 。 **&sizex(-1){V=} V= [A] [B] 変数V[A]に数値[B]を代入する。 グローバル変数やプロット変数などの場合は G= 1 3 P= 3 5 などのように記述できる。 ***&sizex(-1){V+} V+ [A] [B] 変数V[A]に数値[B]を加算する。 グローバル変数やプロット変数などの場合は G+ 1 3 P+ 3 5 などのように記述できる。 ***&sizex(-1){&nowiki(){*}} * [A] [B] [A]に[B]を乗算した結果を返す。[A]と[B]は変数または数値。 % 変数V3に変数V2(= 10) * 10の結果を代入する処理。 Start <if= V1 0 V= 1 1 V= 2 10 V= 3 * V2 10 Print 1> Msg1 <変数V2に10を掛けると \VAL V3 になります。> ***&sizex(-1){D} D[Die Size] 面数が[Die Size]のダイス。たとえばd6なら1-6のランダムな値を返す。 Start <if= V1 0 else GoCheckHit6 V= 1 d6> GoCheckHit6 <if= V1 6 else GoRetry Print 1> GoRetry <V= 1 d6> Msg1 <変数V1が6になりました。> *&aname(if,option=nolink){if文に関するマクロ} ---- **&sizex(-1){if=} if= [A] [B] (else [Label]) [処理] [A]が[B]に等しければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 Start <if= V1 0 else GoV1NotZero V= 1 1> GoV1NotZero <V+ 1 1> ***&sizex(-1){ifG} ifG [A] [B] (else [Label]) [処理] [A]が[B]より大きければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){if#} if# [A] [B] (else [Label]) [処理] [A]が[B]に等しくなければ処理を行う。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifStoryless} ifStoryless (else [Label]) [処理] ソースのGearにリンクされたStoryが無ければ処理を実行する(対象のGearにStoryが何もロードされていなければ、という意味か?)。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifFaction} ifFaction [FID] (else [Label]) [処理] 派閥[FID]がアクティブであれば処理を実行する(対象のFactionが存在していれば、という意味か?)。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 **&sizex(-1){ifPersona} ifPersona [CID] (else [Label]) [処理] NPC[CID]が存在していれば処理を実行する。 elseがある場合、条件を満たさなければラベル名[Label]へジャンプする。 ***&sizex(-1){ifYesNo} ifYesNo [Desc Msg] [Yes Msg] [No Msg] (else [Label]) [処理] 特殊なif文。警告画面を出し、Yes / Noの二択メッセージを表示する。それぞれのメッセージの内容はMsgタグで記述する。 Yesを選択した場合、処理が実行される。 Noを選択した場合、elseがあればラベル名[Label]へジャンプする。 STC Computer-1 Use <ifYesNo 1 2 3 else GoNotUse Print 101> GoNotUse <Print 102> Msg1 <コンピュータがある。> Msg2 <使ってみる。> Msg3 <触らないでおく。> Msg101 <キーボードを叩いてみたが、何も起こらなかった。> Msg102 <その場を離れた。> *Story / Plotに関するマクロ ---- **&sizex(-1){GlobalStoryPattern} GlobalStoryPattern [Scene Label] [Story Label] ラベル名[Scene Label]に記述したタイプを持つマップに、ラベル名[Story Label]で記述したファイル名に合致するStoryファイルを一括でロードする。 Adventureにおいて、一度だけ発生するランダムプロットおよびLancemateプロットのロードに用いられている。 % ADV_FederatedTerritories.txtの該当箇所を少し改変。 start <if= V1 0 V= 1 1 GlobalStoryPattern .city .UrbanStory> .city <URB_STORY> .UrbanStory <TS_GSP_*_STORY.txt> Storyを自作したいけどAdventureを弄るのは嫌だと言う場合、このコマンドを利用するのも一つの手。 Storyファイルの名前を"TS_GSP_(好きな名前)_STORY.txt"としておけば、新規キャンペーンを開始したときにロードされる。 ***&sizex(-1){StartStory} StartStory [Story Label] (else [Label]) Storyファイルをロードする。 ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。 Faction 101 Start <if= V1 0 StartStory .Test_Story V= 1 1> .Test_Story <TEST_STORY.txt> ***&sizex(-1){StoryLine} StoryLine [Plot Label] (else [Label]) Plotファイルをロードする。 ロードできなかった場合、elseがあればラベル名[Label]へジャンプする。 ***&sizex(-1){&aname(endstory,option=nolink){EndStory}} EndStory Storyを消去して子のPlotに&link_anchor(cleanup){クリーンアップ}の要求を渡す。 ***&sizex(-1){AdvancePlot} AdvancePlot [n] プロットの処理をサブプロットのPlot [n]に切り替える。 &bold(){0 を指定した場合はそのプロットが消去される。} サブプロットに移行した場合、プロットの変数V(= P)に格納された数値はリセットされる。 Plot 0 Start <if= V1 0 V= 1 1 AdvancePlot 1> sub Plot 1 Start <if= V1 0 V= 1 1 AdvancePlot 2> Plot 2 Start <if= V1 0 V= 1 1 AdvancePlot 0> end **&sizex(-1){&aname(goto,option=nolink){Goto}} Goto [Label] ラベル名[Label]の処理へジャンプする。 Start <if= V1 0 else GoV1NotZero V= 1 1 Goto GoV1NotZero> GoV1NotZero <Print 1> Msg1 <初期化を完了しました。> ***&sizex(-1){&aname(compose,option=nolink){Compose}} Compose [Trigger] [Parameter] [Command Line Identifier] GetやKeyなどのIDを伴うトリガーに別名[Command Line Identifier]をつけて新しいトリガーを作成する。 IDに変数を用いたい場合に使う。 % NPC E2が破壊されたときに実行するトリガー".E2Killed"を作成する処理。 Start <... Compose UTD E2 .E2Killed ...> .E2Killed <...> *Factionに関するマクロ ---- **&sizex(-1){FacXP=} FacXP= [FID] [Value] 派閥[FID]の経験値に[Value]を代入する。 ***&sizex(-1){FacXP+} FacXP+ [FID] [Value] 派閥[FID]の経験値に[Value]を加算する。 ***&sizex(-1){PCFac} PCFac プレイヤーキャラクターが所属する派閥のFIDを返す。 ***&sizex(-1){PCFacXP=} PCFacXP= [Value] プレイヤーキャラクターが所属する派閥の経験値に[Value]を代入する。 ***&sizex(-1){FXPNeeded} FXPNeeded [n] 派閥のレベル[n]に必要な経験値を返す。 ここでいう派閥のレベルとは階級(ランク)のこと。レベル 0 ならば新兵。 **&sizex(-1){FacXPNeeded} FacXPNeeded プレイヤーキャラクターが所属する派閥のレベルアップに必要な経験値を返す。 FXPNeeded PCFacLevelに等しい。 ちなみに派閥レベルが[X]の場合、次のレベルアップに必要とする経験値は 5 + [X] * 5 になる。 ***&sizex(-1){PCFacLevel} PCFacLevel プレイヤーキャラクターが所属する派閥のレベルを返す。 ***&sizex(-1){PCFacLevel+} PCFacLevel+ [Value] プレイヤーキャラクターが所属する派閥のレベルに[Value]を加算する。 ***&sizex(-1){FacVar} FacVar [FID] [n] 派閥[FID]の変数V[n]を参照する。 *Teamに関するマクロ ---- チームのIDはデフォルトで以下のように設定されている。 |BGCOLOR(LightBlue):チームID|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):-3|Lancemate(仲間)| |BGCOLOR(AliceBlue):0|中立| |BGCOLOR(AliceBlue):1|プレイヤーキャラクター| |BGCOLOR(AliceBlue):2|敵対| **&sizex(-1){SetAlly} SetAlly [Team Number1] [Team Number2]... チームの友好関係をセットする。 Team 1 SetAlly 2 Team 2 SetAlly 1 ***&sizex(-1){SetEnemy} SetEnemy [Team Number1] [Team Number2]... チームの敵対関係をセットする。 Team 1 SetEnemy 2 3 Team 2 SetAlly 3 SetEnemy 1 Team 3 SetAlly 2 SetEnemy 1 ***&sizex(-1){?M} ?M[Team Number] チーム[Team Number]のランダムなメックのUIDを返す。 ***&sizex(-1){?P} ?P[Team Number] チーム[Team Number]のランダムなパイロットのUIDを返す。 ***&sizex(-1){Tord} Tord [Team Number] [Order <Parameters>] チーム[Team Number]に命令を与える。命令の種類は下記を参照。 |BGCOLOR(LightBlue):命令|BGCOLOR(LightBlue):|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):ASS [Target ID]|Assasinate|指定したターゲットを攻撃する。| |BGCOLOR(AliceBlue):GO [X] [Y]|Goto Spot|指定した座標へ移動する。| |BGCOLOR(AliceBlue):SD|Seek & Destroy|敵を探して攻撃?| |BGCOLOR(AliceBlue):PASS|Passive|建物から出ない?| |BGCOLOR(AliceBlue):FOL [Target ID]|Follow|指定したターゲットについていく。| *Sceneに関するマクロ ---- **&sizex(-1){Exit} Exit [Scene ID] 現在のマップを脱出し、マップ[Scene ID]に入る。 % 使用するとHogye村へ移動する上り階段の処理。 StairsUp Use <Exit 2> ***&sizex(-1){Return} Return 直前のマップに戻る。 ***&sizex(-1){&aname(retreat,option=nolink){Retreat}} Retreat [Team Number] チーム[Team Number]をマップから取り除く。このときNUトリガーがセットされる。 ***&sizex(-1){Runaway} Runaway [CID] キャラクター[CID]を検索してマップから取り除く。このときNUトリガーがセットされる。 ***&sizex(-1){SeekGate} SeekGate [Scene ID] マップに入ったときにマップ[Scene ID]への入り口を検索してプレイヤーキャラクターをセットする。 &nowiki(){-1}を指定すると直前のマップへの入り口(出口の階段など)になる。 **&sizex(-1){SeekTerrain} SeekTerrain [Terrain Type] マップに入ったときに特定の地形を探してプレイヤーキャラクターをセットする? ***&sizex(-1){DrawTerr} DrawTerr [X] [Y] [Terrain ID] 座標[X][Y]のマップタイルをタイル[Terrain ID]に更新する。 Ladon体内のマップで入り口をふさぐのに用いられている。 ASCIIモードの「マップを作成する」で作成したマップでない場合、更新するとその座標は一度未調査の状態に戻る。 ***&sizex(-1){PassVar} PassVar [n] [Value] Plotから(Dynamic)Sceneを呼び出すとき、そのSceneの変数V[n](L[n])に値[Value]を渡す。 *Dynamic Sceneに関するマクロ ---- Dynamic Sceneとは自動生成される一時的なマップ。主に戦闘などで使われる。 **&sizex(-1){NewD} NewD [Scale] スケール[Scale]のDynamic Sceneを自動生成する。 脱出条件を記述する箇所がないので、撤退時に別のマップに戻る処理をプロットに書いておかないとフリーズする。 Persona 2 Greeting <NewChat Say 1 Addchat 1 AddChat 2> Result1 <EndChat Say 2 Goto GoStartCombat> GoStartCombat <NewD 0> Result2 <EndChat Say 3> Msg1 <テスト用マップへ行きますか?> Msg2 <それでは案内します。> Msg3 <さようなら。> Prompt1 <行ってみる。> Prompt2 <いや、結構。> ***&sizex(-1){LoadD} LoadD [Label] ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。 ... GoStartCombat <LoadD .testmap> .testmap <TEST_SCENE.txt> ... ***&sizex(-1){Dynamic} Dynamic [Scale] [PV] [NU1 Label] [NU2 Label] スケール[Scale]のDynamic Sceneを自動生成する。 合計PV = [PV]の敵メックが初期配置される。 PVの値に用いられるのは通常&link_anchor(threat){Threat}マクロである。 ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。 メック用の戦闘マップを生成するのに使われるため、SF0には対応していない? ... GoStartCombat <Dynamic 2 V1 .nu1 .nu2> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... ***&sizex(-1){Staged} Staged [Label] [PV] ラべル名[Label]で指定したDynamic Scene用ファイルをロードしてDynamic Sceneを生成する。 合計PV = [PV]の敵メックが初期配置される。 PVの値に用いられるのは通常&link_anchor(threat){Threat}マクロである。 スケールや脱出条件はDynamic Scene用ファイルの方に記述する。 ... GoStartCombat <Staged .testmap V1 .nu1 .nu2> .testmap <TEST_SCENE.txt> ... ***&sizex(-1){MDynamic} MDynamic [Scale] [PV] [MDesc Label] [NU1 Label] [NU2 Label] Dynamicマクロのモンスター版。 合計Size = [PV]の敵モンスターが初期配置される。 PVの値に用いられるのは通常&link_anchor(wmthreat){WMThreat}マクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。 ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。 ラべル名[NU Label]で指定したラベルにプレイヤーおよび敵のチームが全滅したときの脱出条件などを記述する。 ... GoStartCombat <MDynamic 2 V1 .monstertype .nu1 .nu2> .monstertype <animal cave> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... **&sizex(-1){MStaged} MStaged [Label] [PV] [MDesc Label] Stagedのモンスター版。 合計Size = [PV]の敵モンスターが初期配置される。 PVの値に用いられるのは通常&link_anchor(wmthreat){WMThreat}マクロであり、Threatマクロなどで大きな値を代入するとエラーが起きる。 ラべル名[MDesc Label]で指定したラベルにモンスターのタイプを記述する。 スケールや脱出条件はDynamic Scene用ファイルの方に記述する。 ... GoStartCombat <MStaged .testmap V1 .monstertype> .testmap <TEST_SCENE.txt> .monstertype <animal cave> ... ***&sizex(-1){SetMapType} SetMapType [RandamMap ID] Dynamic Sceneの基本地形となるランダムマップを指定する。 [RandamMap ID]に記述するIDは一部マクロになっている。 たとえば、"-6"と"CityMap"のどちらを書いても町マップになる。 ... GoStartCombat <NewD 0 SetMapType CityMap> ... ***&sizex(-1){Encounter} Encounter [Enemy%] [Ally%] [Desc Label] Dynamic SceneにグローバルNPC(某王女さまとか)を加えるコマンド。 [Enemy%]と[Ally%]はそれぞれ敵対 / 友好NPCが参加する確率。 ラべル名[Desc Label]で指定したラベルに敵のNPCのタイプを記述する。 ... GoStartCombat <Dynamic 2 V1 .nu1 .nu2 Encounter 50 50 .desc> .desc <Villainous> .nu1 <if= T1 0 Return> .nu2 <if= T2 0 Return> ... *モデルに関するマクロ ---- **&sizex(-1){&aname(updateprops,option=nolink){UpdateProps}} UpdateProps モデルに記述されたUpdateトリガーを実行させる。 ***&sizex(-1){SetKeyItem} SetKeyItem [NID] 固有アイテムにNIDを割り当てる。 プロットで生成したアイテムのNIDについては変数E[n]で代用できるため不要。 ***&sizex(-1){ItemVar=} ItemVar= [NID] [n] [Value] インベントリ内のモデル[NID]の変数V[n]に値[Value]を渡す。 Plot 0 Element2 <Prefab> ... Start <if= V1 0 V= 1 1 Goto GoInitE2> GoInitE2 <ItemVar= E2 1 1000> sub ... end inv STC Computer-1 Use <Print 1> Msg1 <このコンピュータの変数V1に \VAL V1 が代入されています。> end *お金や経験値などに関するマクロ ---- **&sizex(-1){XPV} XPV [Value] プレイヤーキャラクターの経験値に[Value]を加算する。ダイアログに表示が出る。 ***&sizex(-1){CashPrize} CashPrize [Value] プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出る。 ***&sizex(-1){Cash+} Cash+ [Value] プレイヤーキャラクターのお金に[Value]を加算する。ダイアログに表示が出ない。 店での購入の処理に使われる([Value] < 0)。 ***&sizex(-1){MechaPrize} MechaPrize [Mecha Label] ラベル名[Mecha Label]で指定されたDesignファイルのメックをプレイヤーキャラクターに与える。 ***&sizex(-1){Reputation} Reputation [Reputation Number] [Value] プレイヤーキャラクターの性格の数値に[Value]を加算する。 どの性格かは[Reputation Number]で指定する。 **&sizex(-1){&aname(pcrep,option=nolink){PCRep}} PCRep [Reputation Number] プレイヤーキャラクターの性格の数値を返す。 どの性格かは[Reputation Number]で指定する。 数値は 100 から -100 の間で変動する。 ***&sizex(-1){&aname(threat,option=nolink){Threat}} Threat [Reputation] [%] 敵メックの脅威値(PV)を返す。 [Reputation]には通常PCRepマクロを用いる。[%]で補正を掛ける。 ***&sizex(-1){&aname(wmthreat,option=nolink){WMThreat}} WMThreat [Reputation] 敵モンスターの脅威値を返す。実際には [Reputation] * 0.5 の値を返している。 [Reputation]には通常PCRepマクロを用いる。 ***&sizex(-1){Reward} Reward [Threat Value] [%] 報酬額の値を返す。 [Threat Value]には通常&link_anchor(threat){Threat}マクロを用いる。[%]で補正を掛ける。 *ステータスやスキルに関するマクロ ---- **&sizex(-1){NPCLevel} NPCLevel [CID] [X] [X]に応じてNPC[CID]の持つ全スキルの値を固定値に修正する。 [X]は通常&link_anchor(pcrep){PCRep}マクロが用いられる。 ***&sizex(-1){NPCAbsoluteLevel} NPCAbsoluteLevel [CID] [X] [X]に応じてNPC[CID]の持つ全スキルの値に対し割合で補正する。 [X]は通常&link_anchor(pcrep){PCRep}マクロが用いられる。 以下は比較表。 |BGCOLOR(LightBlue):X|BGCOLOR(LightBlue):0|BGCOLOR(LightBlue):20|BGCOLOR(LightBlue):40|BGCOLOR(LightBlue):60|BGCOLOR(LightBlue):80|BGCOLOR(LightBlue):100| |BGCOLOR(AliceBlue):NPCLevelによる補正|3|5|8|11|14|17| |BGCOLOR(AliceBlue):NPCAbsoluteLevelによる補正&br()(スキルレベルが10の場合)|3|5|7|9|11|13| ***&sizex(-1){Mental} Mental MTを 5 消費する。 *会話に関するマクロ ---- **&sizex(-1){Say} Say [Msg Number] Msgタグに記述したメッセージを会話画面に表示する。 ***&sizex(-1){NewChat} NewChat 会話画面をクリアする。 最初のメッセージの表示、選択肢を選んだ後のメッセージの更新に使う。 Persona 2 Greeting <NewChat Say 1> Msg1 <こんにちは。> ***&sizex(-1){EndChat} EndChat NewChatと基本的に同じだが、こちらは「雑談」と「離れる」がでない。 最後の文章や一方的な会話をさせたいに使う。 Persona 2 Greeting <EndChat Say 1> Msg1 <ほっといてくれ。> ***&sizex(-1){&aname(addchat,option=nolink){AddChat}} AddChat [Msg Number] &link_anchor(prompt){Prompt}タグに記述した選択肢を会話画面に表示する。 選んだ後の処理は&link_anchor(result){Result}トリガーに記述する。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2> Result2 <EndChat Say 3> Msg1 <こんにちは。> Msg2 <いいお天気ですね。> Msg3 <いえ、何でもありません。> Prompt1 <やあ。> Prompt2 <何か用?> ***&sizex(-1){ForceChat} ForceChat [CID] NPC[CID]と強制的に会話する。 **&sizex(-1){School} School [Skill Identifier] スキルを習得する会話を表示する。 ラベル名[Skill Identifier]で指定したラベルに、スキル番号のリストを記述する。 Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2 School .skill Say 3> Result2 <EndChat Say 4> .school <1 2 3 4 5> Msg1 <何か訓練しますか?> Msg2 <どれを訓練しますか?> Msg3 <また訓練したくなったら声を掛けてください。> Msg4 <それは残念です。> Prompt1 <はい。> Prompt2 <いいえ。> ***&sizex(-1){Shop} Shop [Wares Identifier] 買い物の会話を表示する。 ラベル名[Wares Identifier]で指定したラベルに、売りたいGearの番号のリストを記述する。 Gearの番号以外にも以下のコマンドを追記できる。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Mecha|メックを販売できる。| |BGCOLOR(AliceBlue):Mextra|Gearの番号に対応したメック用品を販売できる。| |BGCOLOR(AliceBlue):Delivery|メックの運送が可能になる。| Persona 2 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <EndChat Say 2 Shop .wares Say 3> Result2 <EndChat Say 3> .wares <4 5 10 11 MECHA MEXTRA> Msg1 <いらっしゃい。何か御用?> Msg2 <どれを買いますか?> Msg3 <またどうぞ。> Prompt1 <買い物をしたい。> Prompt2 <何でもない。> ***&sizex(-1){メッセージ用のタグ} |BGCOLOR(LightBlue):タグ|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):Rumor <Message>|そのGearにまつわる噂で使うメッセージを記述する。| |BGCOLOR(AliceBlue):Msg[Msg Number] <Message>|PrintやSayコマンドなどで使うメッセージを記述する。| |BGCOLOR(AliceBlue):&aname(prompt,option=nolink){Prompt[Msg Number] <Message>}|AddChatコマンドで使うメッセージを記述する。| ***&sizex(-1){メッセージ用の置換コマンド} コマンドの前後は半角スペースが必要。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):\ELEMENT [ID]|E[n]に対応した文字列を表示する。| |BGCOLOR(AliceBlue):\NARRATIVE [ID]|N[n]に対応した文字列を表示する。| |BGCOLOR(AliceBlue):\PC|プレイヤーキャラクターの名前を表示する。| |BGCOLOR(AliceBlue):\PERSONA [CID]|NPC[CID]の名前を表示する。| |BGCOLOR(AliceBlue):\RANK|プレイヤーキャラクターの派閥レベルの名前(階級)を表示する。| |BGCOLOR(AliceBlue):\SCENE [Scene ID]|Sceneの名前を表示する。| |BGCOLOR(AliceBlue):\VAL [Variable]|変数の値を表示する。| 以下はl0ugh版/日本語SDL版/I18N版で追加された置換コマンド。前後の半角スペースは不要。 |BGCOLOR(LightBlue):コマンド|BGCOLOR(LightBlue):説明| |BGCOLOR(AliceBlue):%JF|一人称を表示する。| |BGCOLOR(AliceBlue):%JS|二人称を表示する。| |BGCOLOR(AliceBlue):%JG|語尾を表示する。| なお、%J*系と %N, %A, %T のトークンに限り半角スペースを空けずに連続して書く事が可能。 例:%JF%JG%JF、%JF%JF。 また、GH2-UTF8版ではさらに多くの置換コマンドが追加されている。 詳細については [[GearHead-2 人称/語尾トークン詳細]] を参照。 *その他のマクロ ---- **&sizex(-1){SkRoll} SkRoll [Skill Number] スキル[Skill Number]のスキルロールを行った結果を返す。 ***&sizex(-1){&aname(trigger,option=nolink){Trigger}} Trigger [Trigger] [Parameter] GetやKeyなどのIDを伴うトリガーを実行させる。 Plot 0 ... Start <if= V1 0 V= 1 1 Compose Key E2 .ActivateE2> .ActivateE2 <Print 1> Msg1 <アイテムE2が作動しました。> sub Persona 3 Greeting <NewChat Say 1 AddChat 1 AddChat 2> Result1 <Say 2 Trigger Key E2> Result2 <Say 3> Msg1 <アイテムE2を起動しますか?> Msg2 <アイテムE2の起動を開始。> Msg3 <そうですか…。> Prompt1 <起動する。> Prompt2 <やめとく。> end ***&sizex(-1){SetNPC} SetNPC [CID] Eメールの送信者として NPC[CID] を設定する。 ***&sizex(-1){Email} Email [Message Number] Eメールの送信を行う。事前に SetNPC コマンドで誰がEメール送信を行うのかを指定されたし。 ---- }}}

表示オプション

横に並べて表示:
変化行の前後のみ表示: