eratohoまとめ

改造一例:eratohoJ1.06.3に日常コマンドを追加してみよう

このページは改造の一例としてeratohoJのVer1.06.4に日常コマンド「頭を撫でる」を追加する方法を紹介する。


eratohoJ1.06.4にコマンドを追加する。

eratohoJ1.06.4にコマンドを追加するための方法を解説する。他のバリアントでは多少手順が異なる場合もあるが一例として参考にすることはできるだろう。



注意点

この方法を使った場合、元々のバリアントを自分で改造することになるため、J用の他のパッチをそのままでは導入できなくなる可能性があることを承知しておくこと。また、これで不具合などが生じても元々のバリアントに起因するものかは不明確になる。よってその不具合のことをバリアント作者に問い合わせたりしてはならない。
作業前には必ず元のをバックアップしておくこと。失敗したときに戻せるからだ。また、CSVとERBファイルは必ずテキストエディタで編集すること。特にCSVに関しては表計算ソフトに関連付けられている場合があるが、それで編集したCSVはeraではまともに動作しない。
改造の際は開発用ツールまとめで紹介されているサクラエディタの利用をお勧めする。各種支援ツールも充実しているので、ERBファイルはこれに関連付けておいた方がいいだろう。
また、あらかじめERB構文講座などに目を通しておくとスムーズに理解できるはずだ。




コマンドの構想をまとめる

まず「頭を撫でる」についての構想をまとめる。これはウフフ状態における調教コマンドではないものとし、基本的には既存のスキンシップに似たタイプのコマンドとする。もちろんデート中でも実行可能とするが、今回は助手プレイにおいては実行できないようにしようと思う。理由はなんとなく、頭を撫でる役目は主人が負うべきだろうと思ったからに過ぎない。これがおかしいと思ったら各自改造するなりしてほしい。



CSVを改造する。

eratohoJのCSVフォルダの中に各調教コマンドについて記してあるファイルが2つ存在する。Train.csvと_Rename.csvである。
これらに「頭を撫でる」の記述を追加しよう。

Train.csvを改造する。

まずはTrain.csvの181行目以降に;300番以降 純愛モード用という記述があることが分かるだろうか?これ以降にいわゆるウフフでない状態で実行できる調教コマンドが並んでいるわけである。そこの193行目の次に以下の文を書き加えることにする。
309,頭を撫でる
これで「頭を撫でる」の登録ができた。ちなみに先頭につけた番号は以降も使うので記憶のこと。この番号は調教コマンドごとに専用の番号となっているので既存の調教のそれとは重なってはならないことに注意すべし。

_Rename.csvを改造する。

次に_Rename.csvを変更する。こちらの459行目の次に以下の文を書き加えることにする。
TRAIN:309 , 調教:頭を撫でる
以上のことでCSVフォルダ内で必要な書き換えが終わった。だが、この状態でJを起動すると確かに、日常モードに「頭を撫でる」というコマンドが登場はするが、選択するとエラーを出してしまうだろう。それはまだ調教したときにどうなるか?というのを記すべきファイルを用意してないからである。



ERBを改造する。

というわけで、「頭を撫でる」を使えるようにすべくERBフォルダ中の必要ファイルを改造する。必要なのは3つ。COMF309.ERBとCOMABLE.ERBとEVENT_M.ERBである。そのうちCOMF309.ERBは存在しないはずであるが、これこそ「頭を撫でる」の本体ファイルである。つまりこれがないと実行できないのだ。

COMF309.ERBを作成する。

コマンド実行のためには先頭にラベルとして
@COM309
が必要になる。309は調教コマンドごとの専用番号であり、「頭を撫でる」の場合の番号である。
このファイルはラベル以降に実行判定を行う。そして実行判定に失敗したら実行せずに調教コマンド入力画面に戻ることになる。一方、実行判定に成功した場合には調教メッセージを出すとともに、気力消費とソース獲得のための計算を行う。また好感度変更を行い処理を終えるという流れになる。
詳しくは実際に作成したパッチの中のCOMF309.ERBを参照してもらいたい。

COMABLE.ERBを改造する。

このファイルは調教コマンドにおいて実行判定の時に門前払いするための条件が記してある。つまりここで絶対にできない場合をあらかじめ排除してあるというわけで、ここを問題なく通過して始めて各調教コマンドにおける実行判定を行うという流れになっている。
さて「頭を撫でる」の場合には、ここではウフフ中(すなわちエッチの最中)には実行できないという条件と、助手プレイ中には実行できないという条件があるものとする。これを反映させるために、COMABLE.ERBの4139行目以降に以下の文を付け加えるものとする。なお、以降TABインデントを「^ 」で表しているが、実際に入力するときには「^」はTABキーを押してほしい。そうするとすこし空白が空くがそれがTABインデントである。
@COM_ABLE309
;頭を撫でる実行判定
;ウフフ中は無理
SIF TFLAG:44 == 1
^   RETURN 0
;助手が撫でるのは考慮しないので
SIF ASSIPLAY
^   RETURN 0
RETURN 1
となる。ちなみに@COM_ABLE309とは309という調教コマンド実行判定のための関数であり、実はここでなくてもCOMF309.ERBの中に記述してもいい。
またTFLAG:44というフラグは1の場合にはウフフ中であることを表すものであり、ASSIPLAYは1の時には助手が調教しているわけである。つまり上ではASSIPLAYだけを条件にしているがその場合それが0でないなら条件に当てはまるものとなる。RETURN 0だと0を返すがRETURN 1だと1を返す。つまり、この判定を通したときに1が返ってきたならば実行可能であり、0が返ってきたならば実行不可能であるということになるというわけである。

EVENT_M.ERBを改造する。

このファイルは調教時のメッセージを出すためのファイルである。
ここの1387行の次に以下の文を付け加えることにする。(一部省略してある)
;頭を撫でる
ELSEIF SELECTCOM == 309
^   PRINTFORMW %CALLNAME:PLAYER%は…
^   IF TFLAG:18 == 1
^   ^   PRINTFORML %CALLNAME:TARGET%はとても…
^   ELSEIF TFLAG:18 == -1
^   ^   PRINTFORML ……しかし、%CALLNAME:……
^   ENDIF
以上の部分である。詳しくはパッチのEVENT_M.ERBの当該箇所を見てもらいたいが、SELECTCOMとは調教コマンドの番号である。そして、TFLAG:18のフラグはCOMF309.ERB内で乱数による判定を行い、-1は失敗,1は大成功,0は普通の成功という分岐をしているのである。そしてそれによりここで調教メッセージを変えているに過ぎない。



改造完了?

以上で「頭を撫でる」の実装はできたはずである。が、ここで終えてはいけない。実際に動作するかどうかしっかり確認をすべきである。
確認するにはeratohoJで実際に「頭を撫でる」ができるかどうかをチェックすればいい。
どうだろうか?ちゃんと実行できるだろうか?それともエラーを吐いて止まってしまったとか、どうにもよく分からない状況になってしまったとかそんなことはなかっただろうか?
もしおかしなことが起こった場合にはもう一度最初からチェックしてみることが必要であろう。どっかで間違えていたからこそおかしな挙動をすると思われるからである。



サンプル

以上で説明は終了であるがどうしてもここではスペースに限りがあるのでこれ以上詳しく解説することは難しい。そこで、この「頭を撫でる」を追加するパッチを実際に作り、ロダに上げたのでそれを見ながら参考にできる部分があれば参考にしてもらいたいし、もちろんさらなる改造を進めたりしてもいいだろう。
こうして、一人でも多くの人がeraの世界において開発の一端を担うことができるようになれば幸いである。








タグ:

+ タグ編集
  • タグ:

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

最終更新:2009年08月11日 15:07