したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

汎用関数・ライブラリ総合スレ

93あなたの名前を入力してください:2018/10/20(土) 08:59:19 ID:d.dTL3BQ
疑似lambda
http://era.moe.hm/cgi/era/upload.php?id=0004040

lambdaっぽい処理をeraでやるための関数群

SIF TALENT:恋慕
  A += 3
SIF TALENT:淫乱
  A += 6

とか、

REPEAT CHARANUM
  IF TALENT:COUNT:服従
    (処理)
  ENDIF
REND

みたいなパターンを簡易化することを目的としています。

【主要関数】
・CALC_CHARA_SINGLE_DATA(valueName,charaIndex,valueKeys)
 与えられたキャラに対し、CFLAGやTALENTに重みをつけて合計を計算する。
 例:CALC_CHARA_SINGLE_DATA("TALENT",MASTER,"針さばき*2,サド")
   ->MASTERが針さばきを持っているなら2、サドを持っているなら1として、合計を返す。(両方持っているなら3を返す)

・CALC_CHARA_RANGED_DATA(valueName,charaIndex,valueKey,rangeList)
 与えられたキャラのABLやCFLAGについて、値の範囲ごとに重み付けをして結果を返す。
 例:CALC_CHARA_RANGED_DATA("ABL",MASTER,"技巧","3,1|7,3|*,5")
   ->MASTERの技巧が3以下なら1、4〜7ならば3、8以上なら5を返す。

・GET_RANDOM_CHARAS(rule,selectResult)
 ruleを満たすキャラをselectResultの要素数分だけランダムに返す。戻り値はselectResultに格納
 例:GET_RANDOM_CHARAS("TALENT:index:恋慕 && TALENT:index:処女",targetList)
   ->処女かつ恋慕であるキャラをtargetListの要素数分だけランダムに返す。

・GET_RANDOM_CHARAS_CORE(rule,selectResult)
 GET_RANDOM_CHARASの式中関数版。戻り値の返し方以外同じ

・GET_RULED_SINGLE_CHARA(rule)
 GET_RANDOM_CHARASで返すキャラ数を1名に限定した代わりに、関数そのものの戻り値としてキャラ番号を返すようにしたもの
 例:GET_RULED_SINGLE_CHARA("ABL:index:従順 >= 5")
   ->従順が5以上であるキャラからランダムで一人選んで返す

・GET_RULED_CHARAS(rule,selectResult)
 ruleを満たすキャラを先頭からselectResultの要素数分だけ返す。
 例:GET_RULED_CHARAS("TALENT:index:恋慕 && TALENT:index:処女",targetList)
   ->処女かつ恋慕であるキャラを先頭からtargetListの要素数分だけ返す。

・COUNT_RULED_CHARAS(rule)
 ruleを満たすキャラ数を返す。それ以外はGET_RANDOM_CHARASに同じ
 例:COUNT_RULED_CHARAS("CFLAG:index:200")
   ->CFLAGの200番が0以外なキャラ数を返す。(eraRL&@exの場合、強姦フラグが立っているキャラ数となります)

【ruleの定義】
・ruleは最終的に数値を返すのであれば、どんな条件式でも設定可能です。
 すなわち、グローバルな変数、定数、TALENT、ABL、CFLAG、EXP、式中関数などが全て使用できます。
・ただし、ローカル変数は使用できません。必要に応じ、リテラル化して条件式を組み立ててください。
・ここに上げている関数では、indexはキャラ番号として解釈されます。内部処理関数では異なる場合があります。
 詳細はEVALUATE関数の定義を参照してください。


普段は↓で色々と弄っています。実装例も下記バリアントになります。
eraRL@&ex 開発スレ
http://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1514679031/

また、eraInSchool_orgでも上記関数を使用しています。

【学園系】era_inSchool開発スレ【淫乱3人目】
http://jbbs.shitaraba.net/bbs/read.cgi/otaku/16783/1494631846/


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板