タイトルそのまんまですが、改造ポケモン制作でスクリプト組むときに
いちいち改造ポケモン研究所に見に行くの若干億劫なのと、
あそこもいつまで持つかわからないということで自分でもある程度よく使うのはまとめとこうと思い至ったものの
長らく放置してたので今思い出したのを忘れないうちにいくつかまとめとこうと思います。
順番とか思いついた順の適当ですので探すのにはめがっさ不便ですがそのへんはご了承くださいですー
●会話スクリプト
0f 00 aa aa aa 08 09 02
アドレスaa aa aaのセリフを表示。
直前に6aを入れると画面がロックされ、6cで画面ロックが解除される。
付近にランダム方向転換するNPCとかいない限りは画面ロックしなくてもいいと思うけど。
看板ならこれでいいが人と話す場合は前に5aを入れないと主人公の方を向いてくれない。
人と話す+周りに動き回るNPCがいる場合は
6a 5a 0f 00 aa aa aa 08 09 04 6c 02
で画面ロックで周りの動きを止めつつこっち向かせて会話になるはず。
会話の後に他のスクリプト挟む時は最後に6cでロック解除するの忘れないように。
会話の後に何かスクリプトが来る時は09 04で閉じる。
特に何も挟まないならちゃんと09 02で終わらせること。
はい/いいえのイベントを組むときは
0f 00 aa aa aa 08 09 05 21 0d 80 01 00 06 01 bb bb bb 08 (いいえの場合のスクリプト)
で、aa aa aaのセリフを表示後はい/いいえの選択肢が表示。
bb bb bbにはいの場合のスクリプトを、bb bb bb 08の直後からいいえの場合のスクリプトを組んでおく。
いいえで何も起こさないで終わるのであれば(前略)~ bb bb bb 08 02でそのまま終わるはず。
6aで画面ロックしてた場合は02の前に6cでロック解除。
はいの場合のスクリプトの終わりにも6cでロック解除しておくこと。
●画面を暗くする、元に戻す
97 01 02 画面を暗くする
97 00 02 画面を元に戻す
●NPCを消す
53 人No 00 02
だいたいいつもセットで使うので2つまとめて。会話スクリプトなどの後から
97 01 00
53 人No 00
97 00 00 02
って感じで繋げて暗くする→NPC消す→元に戻すでイベント消去。
消すNPCにはなんでもいいから人IDを設定しておかないと一歩歩いた瞬間復活するので注意。
・・・ただなんかこれで消してもたまになんかの弾みで復活してる気がするんだけど
もしかして設定する人IDによっては特定条件で如何で復活するバグか仕様があったり・・・?
ちなみに97 xxの次に00挟んでるのはたぶん特に意味ないけど個人的おまじないですので無視してもいいかも。
●トレーナーと戦闘
5c 03 (トレーナーID) 00 00 aa aa aa 08
トレーナーIDのトレーナーと戦闘後aa aa aaの勝利セリフを表示。
視界判定のあるトレーナーと違って何度でも戦えるので戦闘終了後にイベント消去するのが無難。
08の後に会話、イベント消去の順でスクリプトをおいてもいいし、
会話スクリプト後にもう一個このスクリプトを重ねて連戦にするのもアリかも。
フラグについてはまだ勉強中ですが戦闘前にフラグ分岐を絡ませて
戦闘スクリプト後にフラグに値を代入、次に話しかけた時にフラグ値が異なるようにすれば
イベント消さないでいいかも。
●別のスクリプトにワープ
05 aa aa aa 08
スクリプトの途中でアドレスaa aa aaにワープ。
既存イベントの会話スクリプトのあたりをこのワープスクリプトに置き換え、
ワープ先で本来の会話を表示した後に戦闘スクリプトを挿入、
イベント後に会話スクリプトの終わりの部分に再度ワープさせることで
既存のイベントの最中に戦闘を差し込むなんて荒技ができますが
不具合とかあるかもなので慎重に。
おじいさんの捕獲チュートリアルなど05のワープじゃなくて
04 aa aa aa 08の別アドレス参照にした方がいいイベントもたまにあるみたいなので注意。
●強制全滅
25 c8 00 02
全滅まで微妙に間があるもののこのスクリプトを発動すると
最後に立ち寄ったポケモンセンターに強制送還される。
初見殺し故にプレイヤーに与える精神ダメージとストレスは大きいので
多用には注意が必要かも?
●完全回復
25 00 00 02
特に何の描写もなく手持ちが完全回復。
●メモリー書き込み
11 xx aa aa aa aa
メモリーaa aa aa aaにxxの数値を書き込み。
例としては
11 01 3a 42 02 02(手持ち1匹目のHPを1に)
11 00 3b 42 02 02(手持ち1匹目のHPの256を超えた分を0に)
11 80 34 42 02 02(手持ち1匹目を毒に)
02
なんて感じでHPを弄ったり状態異常を付与したりできる。
どのアドレスが何の数値なのかは資料必須。
覚えてる技も弄れるけどPP周りは暗号化が激しいのでただ弄ればいいってものでもなさそう。要解析。
そもそも覚えてる技の変更だったら別にスクリプトがあった気がするのでそっちのがいいかも?
・・・というわけでとりあえず思いついたのだとこの辺でしょうか。
他に何かよく使うのあったら適宜書庫に突っ込んでこうかと思いますー