junk_cmap_cmapnote

MMA拡張書式の覚書 ※スポイラー注意※

こちらは完全に自分用の整理ノート的ページです。数年越しに這い上がって内部少し整理しました。
元々cmapについて調べるために作成したページではありますが、後半書き足した口調断片はペット・PCにそのまま流用できるものがほとんどです。
変数部分の模倣や修正、改変は大歓迎なので好きにしてください。メッセージ本文の用例は恥ずかしいので外部持ち出しNGでお願いします。
参照、引用元:Elonaテキスト改造まとめ Wiki、本家Wiki、valiant wiki解析情報、およびMMAのtxt、各種まとめtxt、Elona_omake付属txt、他。

外部リンク

黎明の迷宮の作者様による動画【elona】カスタムワールドの作り方【omake_MMA】→https://www.nicovideo.jp/watch/sm25432271
bluntsoundz 様による【Elonaカスタムまとめ】→http://www1.axfc.net/u/3251284?key=elona
MMAのカスタムメッセージ→https://wikiwiki.jp/omakemma/カスタムメッセージ
omake_MMAの拡張書式について→https://wikiwiki.jp/elonatxt/omake_MMAの拡張書式について
拡張書式の比較対照表→https://wikiwiki.jp/elonatxt/拡張書式の比較対照表
タグ・置換→https://wikiwiki.jp/elonatxt/拡張書式のタグ・%7B%7D置換文字列早見表
解析情報→https://www47.atwiki.jp/elona_valiant/pages/15.html
カスタムワールドwiki→https://elonacworld.wiki.fc2.com/
カスタム制作用エクセルツール+α→ヴァリアントwiki(https://wikiwiki.jp/elonaval/)のツール欄より

整理されまとまった情報が欲しい方は上で紹介した【Elonaカスタムまとめ】等を参考にされるのが良いと思います。
(こんな僻地まで訪問してくださるような方はご存じだと思いますが。)

MMA書式の基本

・%txt[MMA]~と記述する場合%txt~より優先的に利用される。上が優先。
 omake拡張タグの中には[MMA]をつけると反応しなくなるものもあるようなので注意。
・条件つきの書式は %txt~,JP,xxx*yy# の形式を基本とする。
・,xxx*yy#→xxx*の条件が#とyyな関係であるという条件を示す。
・条件式は{}で覆って台詞中に反映することができるものが多い。
・条件の追加は and (,)で無制限に行える。

yyに使える演算子



覚え方

覚え方を下に載せてみたのですがあくまでも独自見解なので本当の意味は理解していません。
適切な演算子がどれかは実際にしゃべらせながら確認してください。

value*
直接値を表す。条件式の途中で右辺に代入されているバッファ変数を固定値で計算(**n系で操作)したいときなどに。
set系
左辺のバッファ変数等の数値を直接的な数値で操作。わかりやすい。本文でも使える。
p**系
一時的に格納されている左辺の変数を右辺のバッファ変数の数値で操作。バッファ変数同士の計算が可能。
本文中に{}で使えるが操作可能な対象はset系同様限定される。
**n系
バッファ変数の数値を操作。条件文でしか使えない。pdataの書き換えはできない。
条件式末尾のバッファ変数に対する先頭変数の値の演算結果。右から左に読むイメージ。難しいけれど使いこなせたらたぶん楽しい。
左辺で扱える変数が多い。)

**n系で操作可能:gdata,cdata,tcdata,sdata,tsdata,mgdata,wgdata,cgdata,pdata,item,citem,titem,fitem,char,dchar,enemy
**n系以外:mgdata,wgdata,cgdata,pdata

ad/add/足す/加算
sb/subtract/引く/減算
×
dv/divide/割る/除算
÷
mp/multiply/掛ける/乗算
md/modulo/剰余演算/余り
eq/equal/等しい/同じ
nt/not equal/等しくない/
eu/equal up/等しい、上/以上
el/equal low/等しい、低い/以下
up/up/上/超える、同じではない
lw/low/低い/未満/下回る、同じではない
Y(変数)euvX(値)⇒X≦Yのとき

計算式の使用例

速度比較と計算

例1、確率条件。pdata0rnd100,pdata0elvXの形でよく使われる。

pdata0に1~57の乱数を発生させ代入し、値が17未満になったとき。

例2、比較。●●が○○を上回ったとき。
解説用:PCの速度が対話相手のLvを上回るとき。

※value-100sbnX=value100adnXです。負の値での計算例を試したためわかりにくくなっていますが素直に足して構いません。

実践用:括弧内は動作確認用なので正常に動いたら消してください。
・詠唱者の魔力値より100以上高いPV値を持つ敵対相手に脆弱の霧を使ったとき。

・PCより速度が50以上高い相手を討伐したときに30%の確率で発言。

メモ:readmeより。
・{mgdata*add#}、{wgdata*add#}、{cgdata*add#}(#は加算する数値)⇒値を表示せずに対象の変数を指定した値だけ加算
・{mgdata*sub#}、{wgdata*sub#}、{cgdata*sub#}(#は減算する数値)⇒値を表示せずに対象の変数を指定した値だけ減算
・{mgdata*set#}、{wgdata*set#}、{cgdata*set#}(#は設定する数値)⇒値を表示せずに対象の変数を指定した値に設定
・{mgdata*rnd#}、{wgdata*rnd#}、{cgdata*rnd#}(#は設定する乱数幅)⇒値を表示せずに対象の変数を1~指定した値の乱数に設定

xxxに使える条件式

1.情報参照

 

識別子*に関する~を参照

 

アイテムの識別子→item_id キャラの識別子→chara_id
リストにないものはマップエディタで確認するか、MMAhであればデバッグ情報の表示設定をONにした状態でタゲからdbidを参照すると特定しやすい。
※続きはまたあとで

マップ変数とCNPC変数概要

・各エリアと各CNPCに対応するイベント制御用のマップ変数、CNPC変数を追加
・各マップと各CNPCごとに100個ずつ使用可能
・野外、依頼マップ、ショウルームのマップ変数は出入りするたびに初期化される
・CNPC変数は同じ種類のCNPCの間で共用(マップ変数は他のCNPCとのバッティングの可能性があるのでなるべくCNPC変数を使うのが望ましい)
・ショウルームでは現在ワールドのマップ変数は操作できない
・マップ変数はショウルームまたはカスタムマップに初期生成されたキャラでなければ操作できない
※{umapgdatap:*}{unpcgdatap:*}

アイテム関連文字列

・NPCのメッセージ内{}文字列と条件文にイベントリ内にある特定アイテムの個数を表す変数item、citem、titemが使用できる。
・書式は{item*}{citem*}{titem*}(*はアイテム識別子)でパラメータはpshのみ使用可能。

item*
PCのインベントリ内のアイテム*の個数を参照
citem*
行動キャラのインベントリ内のアイテム*の個数を参照
titem* 
対象キャラのインベントリ内のアイテム*の個数を参照
uitemcounts:*
PCのインベントリ内のカスタムアイテム*の個数を参照
ucitemcounts:*
行動キャラのインベントリ内のカスタムアイテム*の個数を参照
utitemcounts:* 
対象キャラのインベントリ内のカスタムアイテム*の個数を参照
ufitemcounts:* 
フロア上のカスタムアイテム*の個数を参照
uitemcountp:*
PCのインベントリ内のカスタムアイテム*の個数を0番目のバッファ変数に代入
ucitemcountp:*
行動キャラのインベントリ内のカスタムアイテム*の個数を0番目のバッファ変数に代入
utitemcountp:* 
対象キャラのインベントリ内のカスタムアイテム*の個数を0番目のバッファ変数に代入
ufitemcountp:* 
フロア上のカスタムアイテム*の個数を0番目のバッファ変数に代入

キャラ関連文字列

・NPCのメッセージ内{}文字列と条件文に同マップ内にいるペット以外の特定キャラの数を表す変数charが使用できるように
・書式は{char*}(*はキャラ識別子でパラメータはpshのみ使用可能)

・NPCのメッセージ内にマップ上にいるCNPCの数を扱う{unpccounts:*}{unpccountp:*}(*はCNPC名)が使用できるように
・{unpccounts:*}はCNPC数を表示、{unpccountp:*}はCNPC数を表示しないで0番目のバッファ変数に代入する

・NPCのメッセージ条件文にキャラ情報の文字列データとの比較を行うcdatan*:、ccdatan*:、tcdatan*:が使用できるように
・*には2:種族、3:職業、5:CNPC名が使用できる
※コンソールコマンド→職業一覧:userrace、種族一覧:userclass、カスタムゴッド一覧:usergod
 shortnameは%Elona Custom God設定ファイルに記載されているものを参照すればよい。
------
・NPCのメッセージ条件文にキャラ情報の宗派との比較を行うfaith:、cfaith:、tfaith:が使用できるように
・宗派文字列にはカスタムゴッドのshortnameを指定できる
・例: %txt[MMA]evstart,JP,cdatan3:warrior,faith:mani
マニ信者で戦士とは変わり者だな{c}さようなら%bye{ev},,,,,

使用頻度の高い変数

gdata等のリソースは他の場所で調べたほうが楽なので一部を除き消去しました。
 
 

天候 gdata17

性別 cdata8

装備状態 cdata32

アイテム重量 cdata45

魔術師ギルド所属フラグ gdata263(戦士264 盗賊265)

ここから下はサンプル用にeqvまたはeuvを付与させて表示します。
コピペして書き換えて使ってください。正しいかどうかの保証はできませんので要確認。

 
 
 
 
 
これは動作確認済み→   

階層についてくわしく

ぐだぐだ階層メモ

階層の数え方が難しかったので時間を空けても忘れないように思考&試行結果を自分用にメモ。
下で調べたのは階段を地上2Fから地下8Fまで行けるように置いた場合の例なのでcmap生成用に用意した物件の階が変われば結果は変わると思います。

※生成元の階層は階と層のどちらの意味でも使われている?階は絶対的、層は相対的
※生成元の階はゲーム内左下に表示されているのでわかりやすい。2階はL.2、地下x階はB.xなので1階をL.1とする
※cmapstartやcmapstartに指定する生成元の階層の値は直接的には見えない。最上層を0層、最下層を10層としていると判断
 下の例では()内数値として表現。L.2=0 L.1=1 B.1=2 B.2=3 B.3=4 B.4=5 B.5=6 B.6=7 B.7=8 B.8=9 B.8=10
※cmapdownlockedに限り生成元(自宅)の0層=2Fを第1階層と解釈している?
※cmap生成後の階層は画面左下の表示に従って○層と表現する

例:
start0 end3 random0 → 1層L.2(0) 2層L.1(1) 3層B.1(2) 4層B.2(3) 
 ランダムフロアのない4層ネフィアテスト結果画像を別窓で表示
start0 end3 random2 → 1層L.2(0) 2層L.1(1) 5層B.1(2)  8 層B.2(3) 
start1 end4 random2 → 1層L.1(1) 4層B.1(2) 7層B.2(3) 10層B.3(4) 

※cmaplevelに関わらずネフィアの入り口の層(最上層)の表示は1層。昇っても降っても次の層は2層
cmaplevelの関係で入り口階層が最上層でない場合は最上層が1になるような形になる
cmaptype. "2"などのダンジョン以外のフロアでは第○層表記は消える。

cmaplevel.は今のところ難易度や品質調整用の項目であり厳密に設定する必要はない?
出力されるフォルダ名を見るとわかりやすいがcmaplevel.はエリア設定定義ファイル(マップ名_*.txt)の*の値で引用する階層に関わる。
自宅の1階が含まれているとき1階にあたる階層はcmaplevelで定義されたエリア階層に一致した。
cmapstartlevelが0の場合たとえばcmaplevelが20でランダムならば第1層が19階相当、第2層が20階相当になる。

cmaprandomlevel. "20"←cmaplevel. "120"? cmaprandomlevel. "2"であるとき/"3"であるとき
cmapstartlevel. "0" cmapendlevel. "4"
119 120 123 126 129 /119 120 124 128 132 
cmapstartlevel. "1" cmapendlevel. "4"
120 123 126 129 /120 124 128 132 
cmapstartlevel. "2" cmapendlevel. "5"
122 125 128 131 /123 127 131 135 
cmapstartlevel. "3" cmapendlevel. "5"
124 127 130 /126 130 134 
cmapstartlevel. "4" cmapendlevel. "5"
126 129 /129 133
わかりにくいがエリア定義ファイルはあとから作ればいいので単純なマップだけ作りたい場合には法則を覚えなくても問題なさそう。

cmaplevelが小さいとき

cmaplevel.が引用前の階層に設定されているときは単純にその階がスタート階層になる?
cmaplevel. "1" start. "1" end. "2"のとき1階入り口、地下1Fまでの2階建て
cmaplevel. "1" start. "0" end. "2"のとき1階入り口、2Fと地下1Fがある3階建て

cmaptype. "22"
cmapentrance. "1"
cmapfixbuild. "1"
cmaplevel. "1"
cmapstartlevel. "0"
cmapendlevel. "3"
cmaprandomlevel. "2"

自宅1階(2層)が入り口の階層。配置済みの登り階段で2階(1層)に移動可。
また、配置済みの下り階段でランダムダンジョン化された3層に移動可。
2層の外周から外に出ようとすると第1層に移動。
1層の外周からは外に出られず、1層に設置済みの登り階段をを登ろうとすると1層ループ。
脱出手段を確保のためにはフロア定義必須となるためcmaplevel1-9設定時は要注意。

ctalkメモ

自販機型CNPC入門編

アイテム交換型NPC入門編


以外は適当。%txt[MMA]evstart,JPのように専用書式にしたほうがいいけれど配布しないので省略。
(ショウルームまたはカスタムマップに初期生成されたキャラのみ。)

tuitemcountp:*
本文専用。{}で囲む。発話者の所有するカスタムアイテム*の所持数をバッファ変数0に代入。
pdata0
バッファ変数0に代入された値。{}で囲って本文に使えば数値を表示。
この場合は通貨用カスタムアイテムの所持個数。渡したら1増える。
pdata0euv1
バッファ変数0に代入された値が1以上のとき。つまり通貨1以上渡したとき。
pdata0eqv0
バッファ変数0に代入された値が0に等しいとき。つまり通貨残数が0のとき。
removeuitem:*
本文専用。{}で囲む。発言キャラが所持するカスタムアイテム*を消去する。
createuitem:*
本文専用。{}で囲む。PCの足元に指定した種類*のカスタムアイテムを生成。
{throwitem}
~何かが足元に転がってきた。と表示させる。させない場合は自分で書く。
注意点
今回は簡易型なので数の計算ができないぼったくりロボ。
通貨は1以上か0かしか見ておらず1つアイテムを生成しただけで通貨0にリセットしてしまうためまとめて渡すことはできない。
本当は通貨を渡された数と報酬を生成した数を別々の変数に格納して計算する必要がある。

口調断片1

演奏家用

あちらもこちらも備忘録。条件書式テスト。実際に使っているものはもっとうるさいです。
・リアルベイベーの日 パーティー会場 ストラディバリウス持たせたヴァイオリニストのペット用(職業指定はしていません。)

%txt[MMA]
MMA書式。
待機時なら%txt[MMA]Calm,JP
eqv
~に等しい
char*
map内にいるペット以外の識別子*番のキャラの数
吟遊詩人の識別子は326
fitem*
現在いるフロア上に存在する識別子*番のアイテムの個数
titem*
発話相手の所持する識別子*番のアイテムの個数
《ストラディバリウス》の識別子は707
titem707eqv1 発話相手のインベントリ内にストラディバリウスが1
ペットのAにこのtxtを適応して話しかけた場合の発話相手はペット
time1
time3
月日
リアルベイベーの日(7月24日のとき)
,time1eqv7,time3eqv24,
場所
パーティー会場にいるとき
,gdata20eqv13,gdata70eqv1009
確率
10%以下の確率で,pdata0rnd100,pdata0elv10

・ctalk326_0.txtおよびctalk326_1.txtに適用して使うと吟遊詩人がストラディバリウス演奏したときに発話。

-----------
tsdata183euv41も付けると演奏スキル41以上という条件追加。ペットに吟遊詩人いる場合は頻度や場所絞ってみてください。
ベイベー会場だと流れすぎて読めないだろうけど{snpc}込みの状況描写添えた場合は持ち主特定しやすくなる。
「バリウス》の演奏を始めた」でEEx抽出してそっちに効果音付けるのはPCやペットが演奏したときにも表示されるのがちょっと、という場合には便利かも。
メロディー奏でたほうが雰囲気はでるけれど不協和音にしたくないなら短めの効果音を用意したほうがいいです。
オノマトペが思いつくなら楽器種ごとに全部変えてみても面白い。
-----------

・ピアニストのペットが歌唱しているとき。中断時や開始時のメッセージはこれでは変わらない。

口調断片2

天候と満腹度

※やりすぎるとチートになってしまうけれど汎用性があるものもたまには




・最後のはPC腹ペコ状態でマップ移動したときに警告を出す便利系。妹の館だと幻聴らしくなくなるので除外してます。

cdata(022,ユニットNo.) 満腹度
12000以上:食べ過ぎ。
10000~11999:満腹。
2000~4999:空腹。
1000~1999:飢餓。
1000未満:餓死中。
PC以外:拒食症でなければ6000未満になったとき6000に上書き。ペットは6000のときに食事。
gdata(083):雷雨と雪による足止め無効フラグ

口調断片3

老婆専用

自宅警備員させている老人女性の帰宅時メッセージ。PCの空腹度や料理スキルレベルで分岐。


titem191euv1
対象キャラのインベントリ内にアピの実が1つ以上ある(アピの実の識別子は191)
tinv26euv1
調理ランク1以上(調理済み)※
tinv26eqv3
調理ランクが3(アピの実であればクッキー)※
cdata27eqv36
キャラ識別子が36である=老人である。
cdata8eqv1
cdata8(性別)が1(女性)である
tgdata20eqv7
自宅にいる(ここでは省略)
tsdata184euv40
料理スキルが40以上

Welcomeで使う場合{npc}も{snpc}も同じ対象を示すのでt~で今回は統一。
ctalk36_1.txtにして一括で老人女性に設定するために作ったから、tcdata27eqv36,tcdata8eqv1の条件式は省略。
変数使いこなせる人なら、相対的に遺伝子学が得意なキャラ用に怪しげなメッセージを設定したりすれば楽しそう。
帰宅時に発話されても、もたもたしていれば売られたり食べられて貰えないこともある。
tinv26は参照先が多いから、この条件で確実に話すわけではない。

口調断片4

体力計算

MMAのreadmeに載っている例文↓
・PCの現在HPが最大HPの1/4を下回る場合だけ表示するメッセージ

cdata51stn1
1番のバッファ変数にプレイヤーのcdata51(最大HP)の値を代入
value4dvn1
1に代入した値を直接値4で割る
cdata501wp1
発話NPCのcdata50(現在の体力)がバッファ変数1(この場合はMAX体力の1/4)を下回るとき
-
戦闘中に使うなら…
cdata50
PC{player}の現在HPを参照
ccdata50
発話者{snpc}の現在HPを参照
tcdata50
敵対中の相手{npc}の現在HPを参照
cdata51
PC{player}の最大HPを参照
ccdata51
発話者{snpc}の最大HPを参照
tcdata51
敵対中の相手{npc}の最大HPを参照
-
回復系の詠唱の条件式に添えるなら…
-
早めに回復の作戦中ならvalue4dvn1
普通に回復させている場合はvalue2dvn1
で最適化。

口調断片5

妹肉と調理反応

inv系で覚えておきたい条件式:cinv23eqv*
使用中アイテムの付帯情報23が*に等しい時。tinvなら対象アイテムの~。ぶれずに使えるタグは限られる。
※残骸やモンスターボールの場合付帯情報23はキャラ識別子。
------------

妹(キャラ識別子176)のお肉(アイテム識別子204)がマップ内に落ちている条件下で妹ボイスを鳴らしたかった。
台詞はペットのものだけど声は肉から出てるイメージ。音声はあみたろの声素材工房からお借りする必要がある。
MMAhならペットの空腹知らせる設定にして%txtGrowlingStomachで鳴らしてもよいかも。
他のNPCの肉+妹の残骸やモンボが落ちている状況下でも発話されるので没に。
------------

PCがインベントリ内のゾンビ肉を調理したときペットが空腹である場合に発話。特定の食べ物が好物なペットRPに応用しやすそう。
使用中条件なので状況がブレにくいはず。
------------


%txtmilk,JPにも流用可。解説は自粛、していたけれど一部↓に。例も追加。
---------------
対象アイテムのキャラ識別子をcinv23で参照可能な飲食物:干し肉、肉料理、卵料理、酒、ソーダ、ジュース、乳。
非肉系飲料のcinv23はアイテム識別子+1000になる。
追加NPCやCNPCのジュース等ではcinv23が固定されるので個別判断には使えない。
ccdata7elv824で通常モンスターのみ対象に。条件式を長くしたくないので着替えてしまったペットに使うときは手動で対応。
飲み食いするときはt*系も使えるが、MMAwikiにも載っているように調理時などはt*系が調理する道具、c*系が調理されるアイテムになるので注意。

生肉を食べたときの台詞用(YYYはキャラ識別子)
oom肉
MMA系では使用不可
%txtmeat_0_YYY,JP
omake生肉
heibonより優先度高。料理カテゴリと品質の指定不要
%txtnamaniku,JP,cinv23eqvYYY
CNPC生肉
キャラ識別子指定不可。user
%txtnamaniku,JP,cinv23eqv343
追加NPC生肉
キャラ識別子指定不可。本来の6番肉との差別化はcinv33を使えば可能?
%txtnamaniku,JP,cinv23eqv6,cinv33ntv0
cinv22(色情報)条件もntv0などで足すと、トレジャーハンターなどの人型追加NPC肉と
色違いAAmob肉反応を大雑把にわけることはできそうです。一部の例外を無視するならば、ですが。
omake未調理
%txtheibon,JP,cinv26eqv0,cinv25eqv1000,cinv23eqvYYY
heibonの部分を置き換えれば他のランクに対応。
cinv25eqv1000の部分をcinv25eqv8000に変えれば卵料理に対応。
卵、肉料理以外の場合cinv23~の代わりにcinv3eqvYYY(Yはアイテム識別子)を利用。
消費期限
sibui以外でも使いやすいのはcinv27eqv-1:腐っている
祝呪状態
inv17によって参照。cinv17eqv1:祝福された、cinv17eqv-1:呪われた、cinv17eqv-2:堕落した
ItemCursed、milkcurse、sakecurseは優先される。
[MMA]
ランク1~8とnamanikuに[MMA]を付けると認識されなくなくなった。

・腐った未調理の生麺を食べたとき
・呪われているか堕落しているカレーを食べたとき

・レモンを生で食べたとき。ハチミツCITEMとそれを落とすミツバチCNPCと、レモンのはちみつ漬け交換型CNPCを作りたくなる。

・レモン以外の果物を生で食べたとき

未鑑定の腐っている魚を渡そうとしたとき。
・腐っていない未鑑定の魚を渡そうとしたとき。魚嫌いなのに鮮度を見抜く謎設定なのは消費期限計算テスト用に作ったせいです。調理前と調理後。

・鑑定済みの腐っている魚を渡そうとしたとき
・骨だけ残ったスズキを食べたとき
・骨だけ残った魚(種類は問わないが釣れる魚限定)を食べたとき
・未鑑定のフォーチュンクッキーを渡そうとしたとき
・べっちょりしたリンゴを食べたとき。自分で調理しないペット用を想定
・火蟹のピリ辛炒めを食べたとき
・品質特別ではないNPCが半熟妹を食べたとき。名前が一番怖いのでとりあえずこのランクを例に

↑は妹に元々なっていないペット用を想定。変異防止分岐は使えそうな変数が見当たらなかったので断念。

口調断片6

年末年始と窃盗反応



おとわびさんのお正月BGMをMMAhの初日の出イベと同時に流したいがために試したペット用の口調断片。長い。
PCに使ったり足踏みしてるときはうまくいかなくて、釣りしたり休憩したときは反応よかったです。
※時刻をイベ判定タイミングに合わせて調整。CalmだけではなくHourと併用するとより確実です。
BGMは好きなものを用意し、~~~の部分は文学的表現や好きな台詞に置き換えてください。無言でも動きます。

gdata20eqv25⇒ラーナにて gdata17eqv0⇒晴れの日に
gdata11eqv1,gdata12eqv1,gdata13euv6,gdata13elv7⇒ゲーム内での元旦の6時~7時
※初日の出を拝みたい場合は6時前に到着しておきましょう。
cdata251eqv0,cdata253eqv0⇒盲目でも睡眠でもない状態で
pdata11eqv0⇒バッファ変数11番の値が0であるとき(つまり一度も発言されていないとき)
メッセージ表示後{pdata11set1}でバッファ変数11番に1を代入
pdata11eqv1⇒バッファ変数11番の値が1であるとき(つまりBGM変更後)

※リアル元旦なら⇒time1eqv1,time3eqv1
 条件式分けてそれぞれ作ればいい?マップ入り直しでリセットされるからリアルのほうは幸運の日フラグ条件足したほうが良さそう。
------------


大晦日だけ山道のBGM変更したいとき用の条件式2パターン。テストしてません。
寝て起きたとき用のも入れておかないとBGMリセット。PCに使っても大丈夫。
------------

聖夜祭中のノイエル用BGM指定。madata29が聖夜祭フラグ。
細かい分岐させてないので火祭りしても穏やかなBGMのまま。
DOVA-SYNDROMEで配布されているMATSUさんの作品(https://dova-s.jp/bgm/play8317.html)を
導入した環境に合わせた記述だけどお好みのクリスマスソングで。
------------

PCが屋外で窃盗しているとき用のペットの台詞に。
何かしらの計算式で調整しなければ、盗んでるものが重ければ連呼されやすく軽いほど不発が増える。
マユマカ信仰かつ探知が高い時、NPCとの距離条件によって警告、みたいな使い方してみても楽しそう。

gdata20eqv2
現在地が屋外。
cdata140eqv10
PC継続行動が雑多である。
gdata91eqv105
gdata91の雑多な情報詳細が105に一致。cdata140eqv10があればたぶん省略可。
-
{gdata91}を台詞内に入れておくと窃盗時105と発話される。これが何を示しているかわからないが窃盗時専用ではない。
 環境で変動するかどうかも不明。条件がぶれなくなるかもしれないので念のため使用。
cinv21eqv1
対象アイテムのinv21(状態フラグ)が自分のものではない。
cdata141euv30
継続行動の残りターンが30以上。頻度調整式の一例。
時間がかかるときだけ心配してくれたり、〇〇以下にすればあとちょっとのときに応援してくたり、いろいろ考えられそう。
cinv3eqv〇
(〇はアイテム識別子)特定のアイテム窃盗時に反応。果実の木に期待させたいときなどに好みで追加。
ccitem:〇〇
(〇〇はカスタムアイテム名)特定のカスタム樹木を窃盗しているときに反応。

口調断片7

細かいBGM変更

街ごとに依頼用一時マップのBGMを変更するための台詞差し替え。
musiclistは代替わりするたびに全書き換えしてるくらいbgm差し替慣れしてる方には使い道があるかもしれない。
(というかまずは本家のデフォルトmidiやmp3セットをしっかり堪能してほしいので初心者の人にはおすめできない。旧パルミア・・・)
睡眠不可なので起床時リセットの心配はない。リロードしたら元の音楽に戻るのは諦める。
------------

ノイエルで演奏依頼を受けてパーティー会場に移動したときFlying_to_the_sky.mp3を再生

gdata19eqvX
直前にいたマップがX
gdata70eqvY
依頼Y受託中
X
街のエリア番号。今回は依頼の発生する街だけ抑えておけばOK。
-
5:ヴェルニース、11:ポート・カプール、12:ヨウィン、14:ダルフィ、
15:パルミア、33:ノイエル、36:ルミエスト、51:キッカス、52:エウダーナ
Y
qdata3。依頼識別子。
-
1001:殲滅依頼、1008:討伐依頼、1010:上級殲滅依頼、
1101~1103:エウダーナ迎撃依頼、1006:収穫依頼、1008:演奏依頼

こんな感じで自分は使っていますよ、というメモをひっそり。一部は配布用に再編済。即時依頼以外もてんこもり。→ctalkmusic_v5.txt
使用中のctalkに必要な部分だけ切り張りしてbgm素材も素材屋さんからDLして正しく入れれば使えます。
EExと併用するとフェイドインもできてさらに可能性大、ですがmmplayにするとMMAのmp3音量調整は効かないので葛藤も。

-
デバッグ情報の表示によって可視化される情報にはエリア情報も含まれるのでctalk作成にあたり助けられることがある。
Area No.49-307 :17, 18 (5, 102, ...
推測
Area No.gdata19-gdata20 :cdata1, cdata2 (madata0, madata16, ...
-
例:特定の条件のネフィア(砦)で雰囲気を変えたい時用の条件式↓
状況
マップタイプ砦、ランダムネフィア、危険度150階層以上、タイルタイプ200、最深層(madata10)≠限在の階層(gdata22)…ボス層ではない、マップ内敵対キャラ20以上。
敵の数や階層の条件はPCのlvとの差などから計算して変えるようにしたほうが面白いかもしれない。
記述
%txt[MMA]MapChanged,JP,madata0eqv23,madata16eqv8,madata17euv150,madata18eqv200,gdata22psh0,madata10ntp0,enemy0euv20

txt差し替え関連のよもやま話

家具装飾子とtalkconvert

MMA_furnitureJP0. ",壊れかけた,ありふれた,素朴な,洗練された,味わい深い,使い勝手の良い,独特の個性を放つ,格調高い,特注品の,神秘的な,至高の"
※MMAのomake_config.txtに追記すると家具装飾語が差し替わります。定期的に書き換えて遊ぶと新鮮。
 神々しい家具収集部屋などのショウルームに入るときは差し戻しておいたほうがわかりやすい場合もあるので注意。

※自分ではなく味方にバフをかける神官などに対して、一人ひとり別の台詞を用意したいならtalkconvert.txt(←omakeからの機能)で書き換える手がある。
  簡単で応用も効くのでRP好きでまだ試してない方にはおすすめです。
 ・詠唱時に発話される%txt[MMA]cast442,JP等の台詞内に{nnpc}や{npc}を入れておき、名前で区別できるようにしておく。
 ・名前ごとセリフの書き換えたい部分を抜き出し、(汎用セリフ内容)-> (相手に応じた台詞)の形でtalkconvert.txtを作成しuser\talk内に保存。
 ・オプションの拡張設定2は台詞の変換をするに指定。
 ・EExと合わせて、PCにバフをかけるときだけ特別な効果音指定、といった遊びも可能。(←この遊び自体はtalkconvertしなくても可能。)
 ・護衛対象や少女団などペット以外にかける場合もわざわざ名前呼びかけるのはご愛敬。

2013-2019