eramaker era basicの構造(暫定版)
このファイルの説明を見るだけではイメージが沸きづらいと思います。まずサンプルゲームをプレイし、その後でサンプルゲームのERBファイルをながめながら見ていくとわかりやすいです。

基本情報

eramakerの起動時

・eramakerでは、ゲームを起動するとタイトル画面が表示され、「最初から始める」と「ロードして始める」の選択肢が出てきます。ここで「最初から始める」を選ぶと、ERBファイルの中からEVENTFIRSTという関数が呼ばれます。
・EVENTFIRSTが終わってしまうと、そこでゲームは止まってしまいます。BEGINでSHOPやTRAINなどを呼ぶ必要があります。
・サンプルゲームではSYSTEM.ERBの冒頭を見てください。

SHOP

SHOPに入る
・SHOPに入ったときに、@EVENTSHOPという関数が(あれば)呼ばれます。これはイベント関数です。
・その後で、@SHOW_SHOPという関数が呼び出されます。ここで日付や調教中キャラなどの基本情報、PRINT_SHOPITEMによる売り物の表示、セーブやロードといった特別な行動の表示を行ってください。
SHOPでのコマンド選択
・0から99が選ばれた場合、アイテム購入という意味になります。それ以外の数字が選ばれた場合は、@USERSHOPという関数が呼び出されます。選ばれた数字はRESULTに格納されているので、しかるべき処理を行ってください。
・いずれも、サンプルゲームのSHOP.ERBを見るとわかりやすいでしょう。
購入
・何かアイテムを買ったときに、@EVENTBUYという関数が(あれば)呼ばれます。これはイベント関数です。
(買ったアイテムはショップの品揃えから消える、などの処理はここでやるとよいでしょう)

TRAIN

TRAINに入る
・TRAINに入ったときに、@EVENTTRAINという関数が(あれば)呼ばれます。これはイベント関数です。
・その後で、@SHOW_STATUSという関数が呼び出されます。ここで日付や調教中キャラなどの基本情報、PRINT_PALAMによる調教中パラメータの表示などを行ってください。
・続いて、実行できるコマンドが自動的に表示されます。すべてのコマンドについて@COM_ABLExxという関数が呼び出され、RETURN 1であれば実行可能という意味になります。また、対応する@COM_ABLExxが存在しない場合も実行可能という意味になります。サンプルゲームのCOMABLE.ERBを見るとわかりやすいでしょう。
・さらに、@SHOW_USERCOMという関数が呼ばれます。調教終了などの特別なコマンドの表示はここで行ってください。
・いずれも、サンプルゲームのSYSTEM.ERBおよびINFO.ERBを見るとわかりやすいでしょう。

TRAINでのコマンド選択
・プレイヤーがコマンドを選ぶと、まず@EVENTCOMという関数が(あれば)呼ばれます。これはイベント関数です。
・さらに、選んだコマンドに対応した関数が呼ばれます。たとえば「正常位」が選択され、TRAIN.CSVで「正常位」のコマンド番号が20と指定されていたなら、@COM20という関数が呼ばれます。
・「フェラチオ」のようなコマンドの場合、キャラの能力次第で実行できないこともあります。その場合、@COMxxの途中でRETURN 0を呼び出します。すると、コマンドを実行せずにコマンド選択に戻ります。
・コマンドを実行できた場合、@COMxxからRETURN 1を呼びます。すると、@SOURCE_CHECKという関数が呼ばれます。ここで調教の結果が調教中パラメータに反映されます。
・いずれも、サンプルゲームのCOMxx.ERBおよびSOURCE.ERBを見るとわかりやすいでしょう。

TRAINでのコマンド選択終了
・最後に、@EVENTCOMENDという関数が(あれば)呼ばれます。これはイベント関数です。
・コマンドを実行されたキャラのセリフなどはここでやるとよいでしょう。サンプルゲームera lightのCKOJOxx.ERBを見るとわかりやすいと思います。

ユーザーコマンド
・なお、選んだコマンドに対応する@COMxxがない場合は、@USERCOMが呼ばれます。RESULTに選ばれた数が入っているので、対応する処理を行ってください。
・サンプルゲームのSYSTEM.ERBを見るとわかりやすいでしょう。

AFTERTRAIN

・AFTERTRAINに入ったときに、@EVENTENDという関数が(あれば)呼ばれます。これはイベント関数です。
・調教が終わったときのキャラのセリフ(捨て台詞?)はここで処理するとよいでしょう。さらに、調教によって得た珠の計算などもここでやるべきです。サンプルゲームのAFTERTRA.ERBを見るとわかりやすいでしょう。

ABLUP

ABLUPの表示
・まず、@SHOW_JUELという関数が呼ばれます。持っている珠を表示してください。
・続いて、@SHOW_ABLUP_SELECTという関数が呼ばれます。能力の一覧、終了コマンドなどを表示してください。
・サンプルゲームのABL.ERBを見るとわかりやすいでしょう。

ABLUPのコマンド選択
・プレイヤーがコマンドを選ぶと、選んだコマンドに対応した関数が呼ばれます。たとえば[3]の「C感覚」が選択されたなら、@ABLUP3という関数が呼ばれます。
・選んだコマンドに対応する@ABLUPxxがない場合は、@USERABLUPが呼ばれます。RESULTに選ばれた数が入っているので、対応する処理を行ってください。
・サンプルゲームのABLUPxx.ERBおよびABL.ERBを見るとわかりやすいでしょう。

TURNEND

・@EVENTTURNENDという関数が(あれば)呼ばれます。これはイベント関数です。
・時間の進行、体力の回復の処理などをするとよいでしょう。
・@EVENTTURNENDがないと止まってしまうので注意してください。
・サンプルゲームのSYSTEM.ERBを見るとわかりやすいでしょう。

イベント関数

イベント関数とは
・イベント関数は、ゲーム中のあるタイミングで必ず呼ばれる関数です。コマンドを実行し終わったとき、調教を開始するときなどに呼ばれます。
・イベント関数はキャラのセリフを表示するとき便利です。@COMxxなどの関数に直接セリフを表示する命令を書き込むと後々わかりづらくなってしまいますが、イベント関数を使えば分離して管理することができます。
・イベント関数はその性質上、同じ名前のものが複数存在してもかまいません。

;正常位を実行し終わったときのセリフ
@EVENTCOMEND
;20が正常位とする。20でなければ無視
SIF SELECTCOM != 20
   RETURN 0
;FLAG:1000が0でなければ無視
SIF FLAG:1000
   RETURN 0
PRINTW 「や・・・生はいやあっ!」
;FLAGを設定する。一度表示されるとその後表示されない
FLAG:1000 = 1
RETURN 1

;背後位を実行し終わったときのセリフ
@EVENTCOMEND
;21が背後位とする。21でなければ無視
SIF SELECTCOM != 21
   RETURN 0
;FLAG:1001が0でなければ無視
SIF FLAG:1001
   RETURN 0
PRINTW 「こんな格好で・・・」
;FLAGを設定する。一度表示されるとその後表示されない
FLAG:1001 = 1
RETURN 1
・イベント関数には「性質」を付与することができます。
・#SINGLEの性質を付与すると、RETURN 1で終了した場合は同名の関数があってもそれ以上実行しません。キャラが一度にいくつものセリフを言うと不自然な場合などに有効です。
・#PRIの性質を付与すると、他の同名の関数よりも先に実行されます。死亡チェックなど、どうしても先にやらないと不自然になってしまう処理に有効です。
・#LATERの性質を付与すると、他の同名の関数よりも後に実行されます。「一日が終わった」という表示など、どうしても最後にやらないと不自然になってしまう処理に有効です。

@EVENTTURNEND
#SINGLE
SIF FLAG:1000
   RETURN 0
FLAG:1000 = 1
PRINTW 「もういやだ・・・」
RETURN 1

@EVENTTURNEND
#SINGLE
SIF FLAG:1001
   RETURN 0
FLAG:1001 = 1
PRINTW 「家に帰して・・・」
RETURN 1

@EVENTTURNEND
#SINGLE
SIF FLAG:1002
   RETURN 0
FLAG:1002 = 1
PRINTW 「外に出たい・・・」
RETURN 1

@EVENTTURNEND
#LATER
PRINTW 一日が終わった・・・
RETURN 1


(上の3つのセリフは一度に1つずつしか表示されない。「一日が終わった・・・」は#LATERがついているので、FLAG:1000とFLAG:1001とFLAG:1002が1になるまでは一度も表示されない)

更新履歴

  • 06/05/05 暫定版公開。