コマンドバトルRPG×エロステータス調教シミュレーションゲーム「eraMegaten」攻略・開発Wiki ※本作は二次創作フリーゲームです

関数とは

与えられた値をもとに、あらかじめ用意された命令を実行し、結果を返してくれるものを関数と言います。

プログラミング上、同一の処理を何度も行う際、
関数を使うことで、「同じ処理を手軽に繰り返せる」という利点があります。
  • 関数化のメリット
    • 記述をシンプルに出来る
    • 同じことを何回も書かなくていい
    • 1回作ってしまえば中身を知らない人にも共有できる

関数の構造

関数の基本的な構造は3つの要素で出来ています
 @関数名
 
 ※命令文
 
 RETURN 
  • 関数名
    • 関数の名前です。他の関数と重複しない、処理内容を端的に表したものを付けましょう
  • 命令文
    • 処理したい内容を記述します
  • RETURN
    • 「この関数はここで終わりです」の合図です*2
    • 処理を終わらせたいタイミングで呼ぶので、場合によっては命令文の中に入る場合や、複数存在する場合があります

関数の使い方

呼び出したい場所で、「CALL」命令を使って呼びます
CALL 関数名

関数の実例

例題:「調教対象の性別を判別し、画面に描画する」処理を行う

最初に関数を用意します
 @性別描画処理
 	IF TALENT:オトコ == 0 && TALENT:男の娘 == 0
 		PRINTL 女性
 	ELSE
 		PRINTL 男性
 	ENDIF
	RETURN

次に、使いたい場所にCALL命令で呼び出します
 PRINTL あなたは叫んだ。「性別を描画したい!」

 ;関数を呼ぶ
 CALL 性別描画処理
 
 PRINTL あなたは上を見た。「性別が描画されている!」

実際に処理されると、以下のように処理されます(調教相手が女性の場合)
 あなたは叫んだ。「性別を描画したい!」
 女性 
 あなたは上を見た。「性別が描画されている!」

式中関数

特殊な関数として、式の中で使える「式中間数」があります
呼ぶときは、式の中で「関数名()」で記述します

たとえば以下の関数を定義・判定した場合……
 ;何が何でも1を返す関数です、入れた場所で「1」になります
 @絶対に1を返す関数だぞ
 #FUNCTIONS
 RETURNF 1
 IF 絶対に1を返す関数だぞ() == 1
 	PRINTL うわー1が返ってきたー
 ENDIF

これは関数を呼んでいる場所に「1」が返ってくるので、実際は
「IF 1 = 1」
として処理されます

式中間数の使用例

例題:乳サイズを見る関数"デカパイ判定"を作りメッセージを分岐させる

式中間数として定義する場合、
関数名の真下に「#FUNCTION((文字列を返す場合は#FUNCTIONS))」と入れ、
RETURNの代わりに「RETURNF」を使います。
 @デカパイ判定
 #FUNCTION
 
 ;小さい
 IF TALENT:絶壁 || TALENT:貧乳
 	RETURNF 0
 ;大きい
 ELSEIF TALENT:巨乳 || TALENT:超乳
 	RETURNF 2
 ;並
 ELSE
 	RETURNF 1
 ENDIF

式中間数は「記述した場所」で実行され、その場に「FUNCTIONF」で返した値が代入されます
(下の「デカパイ判定()」がそのまま帰ってきた数字に代わるイメージです)
  PRINTFORML 「なにジロジロ見てるのよ」

 ;絶壁か貧乳の場合
 IF デカパイ判定() == 0
     PRINTFORMW 「貧相な乳で悪かったわね」
 ;巨乳か爆乳の場合
 ELSEIF デカパイ判定() == 2
     PRINTFORMW 「そんなにでかい胸が珍しいの?」
 ;それ以外の場合(並乳)
 ELSE
     PRINTFORMW 「とっとと出でってくれる?」
 ENDIF

汎用的な関数の格納場所

「ERB¥組み込み関数」「ERB\汎用組み込み関数」もしくは「ERB\私家版追加関数」フォルダ配下に格納されています。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

ゲームプレイ

開発

リンク

本日のピックアップ(仮)

確認事項 リストに突っ込んだキャラを、ランダムに表示する機能を搭載してみました
・ページがあって
・eraten用の画像がwiki上にあるキャラ
なら追加できますので、リクエストがあればページを整えたうえでお知らせくだしあ

現在機能テスト中
だいぶ入ってるキャラ少ないです

今日のおすすめキャラ

キャラ画像

どなたでも編集できます

メンバー募集!