サイトロゴ

フリーのRTSRPG「Millennium Legend」をメインとしたブログ、その他すぴブレの改造講座など。
 
書き置きなのかメモなのか備忘録なのかは誰にもわかりはしない。

すぴブレ用の拡張(?)ライブラリ SystemCoreの自分に向けたリファレンス
仕様が固まっていない&纏めきっていない上にどこにもドキュメントがないからここに書かせてください。
後々ここからHTML型に移植するんです。

現在は自分用となっていますが後々フリーの素材として公開させていただく予定です。
なお、ここに書かれていることは現在進行形で変化しています。

現在 永遠に書きかけの状態です (2016/5/2)

結構混沌なメモとなっていますが、ご自由に閲覧ください。
ネタバレ等、ゲーム関することは一切書かれていません。
その手の方にしか楽しめない内容となっています。ご了承ください。
あとついでにアイデアください

新規追加タグ
≪Backcolor≫
属性内容
colカラーコード

【例】
<Backcolor col="0xffffffff"/>

【ネイティブ】
<Command com="ex/backcolor/0xffffffff"/>

何故たった数文字削る為にこんな処理を含めたのか。
Commandが増えすぎたというのも一つあるが・・
ちなみに以降も短く書くためのコードが多かったりする。

<System/>に統合した為削除 (2016/5/2)


≪BattleIn≫
属性内容
com[f]が含まれている場合:
Event/Common/BattleFunction.xmlを
Functionに設定
showTitleを呼ぶときのshowの指定
指定しない場合はslit
msg戦闘に入る際に表示される文字
指定しない場合はin Battle!
window戦闘時に表示されるシステムウィンドウを表示
[a]が含まれている場合:
SpecialAttackを表示
[b]が含まれている場合:
SelectCharactorを表示
[c]が含まれている場合:
BattleCommandを表示
[p]が含まれている場合:
PatyHpを表示
[m]が含まれている場合:
LandMapを表示
指定しない場合は全てを表示

BattleInの処理とバトル時のウィンドウを一括で実行するためのイベント
正直windowをバラバラに表示できるのがただ一つの強みの気がする。
なお、内部でもっといろんな処理を行うことができている。

Functionについてはその項にて紹介



≪BattleWindow≫

属性内容
window戦闘時に表示されるシステムウィンドウを表示
[a]が含まれている場合:
SpecialAttackを表示
[b]が含まれている場合:
SelectCharactorを表示
[c]が含まれている場合:
BattleCommandを表示
[p]が含まれている場合:
PatyHpを表示
[m]が含まれている場合:
LandMapを表示
指定しない場合は全てを表示

≪BattleIn≫からwindowを抜き取っただけ、以上!



≪BattleEnd≫

属性なし!

Event/Common/BattleEnd.xmlを呼び出すだけ!!

以上!!!

BattleEnd.xmlの中身にてSystemCoreの内容を使う理由でこのザマに。
XSLT内でSystemCoreの追加タグを使えないのが元凶である。


≪Formation≫
属性内容
pos部隊を設置する中心点
braveパーティの士気 使い方は本家の<Paty/>と同じ
rangeフォーメーションのファイルによる
formXslフォルダ内のファイル名(拡張子不要:xsl)を指定する

主にArmyFormation.xmlで指定できないようなフォーメーションを動的に生成する。
ちなみに体験版では部隊数にかかわらず円形で外側に向かって配置されるアレがこれである。
早い話フォーメーションファイル内でShiftPosの嵐が吹き荒れている。


≪Blackout≫

属性なし!

コマンドを一つのタグに変形させただけ、以上!
Commandから呼ぶより短いメリットがあるだけ!

<System/>に統合した為削除 (2016/5/2)


≪Cast≫
内容は省略させてください、正直使ってはいません。
単にステージ上に指定したキャラが居なかった場合、
その取り巻きと共に強制的にステージに登場させるだけです。
会話イベントがあるのに存在しない場合困ったので突貫で作りました。



≪Chara≫
属性内容
armyキャラの勢力 指定しない場合はfriend
x登場するX座標
y登場するY座標
dir登場するキャラの向き
name登場するキャラのid
job登場するキャラのジョブid 指定しない場合はswdman
wep登場するキャラの持つアイテム

【例】
<Chara name="hed" job="archer" x="575" y="570" dir="1.6" wep="101"/>

【ネイティブ】
<Paty army="friend" x="575" y="570" dir="1.6">
  <Member pason=""hed" job="archer" wep="101"/>
</Paty>

主に会話イベントに用いています、何故かparamposを採用していません。
これ書き終わるころには実装されているかもしれません。
イベントファイル圧縮の立役者です。


≪Common≫
属性内容
pathCommonフォルダ内のファイル名(拡張子不要:xml)

【例】
<Common path="SkillEvent"/>

【ネイティブ】
<LoadEvent path="Event/Common/SkillEvent.xml"/>

ここまでして短くしたいのか、と言われても仕方がないブツ
実はパラメータを使ってファイルをロードすることができる特殊な処理が行われている。
とはいえ、それもネイティブコードで実装可能ですが・・・



≪Color≫
省略、作っている最中でもたった1イベントでしか使わなかった物。
内部で10進数と16進数を変換させまくって色を生成するという謎のタグ

これのおかげでたった一行で背景色を滑らかに変化させることが出来ました。
なお、それ以上の使い道は見つからなかった模様。



≪Dead≫
属性内容
nameイベントのトリガーであるキャラid
ex [1]を指定したと強制的に実行させる
省略する場合は[0]となる

キャラがやられたときにイベントを起こすそれです。
内部でフラグを乱立させて何度呼ばれても重複して実行されません。
正確に言うと何度呼んでも一度しか呼ぶことはできません。
exの値を1にすることにより、どんな状況でも呼び出すことができます。

これでDeadEvent.xmlを複数呼んでも大丈夫!
バトル中で追加で出てくるキャラ用のセリフを別ファイルで作る必要なし!


≪Default≫
文字数削減に大きく貢献するが省略。
<Type/>内でしか使えない。

内容としてはここにMenberで使える属性(wepとかjobとか)を
特定のパラメータにコピーするための物。

<Template/>と共に使うと<Paty/>の中身をごっそり削ることができる。
<Template/>はバトルにおいての削減の英雄の為に下で詳しく紹介する。


≪ExMsg≫
属性内容
nameセリフを表示させるキャラid
faceキャラの顔画像差分(差分名だけでOK)
viewセリフ表示時にカメラを向ける座標
flgオンにするフラグ
unflgオフにするフラグ
onここのフラグがオンならば実行する
offここのフラグがオフならば実行しない

【例】
<ExMsg name="strf" face="shock" flg="t_s_info" off="die_ruuva">ルーヴァ!相手は左右から
挟み撃ちにする気だよ!</ExMsg>

【ネイティブ】
<State name="strf">
  <Event flg="t_s_info" off="die_ruuva">
    <Msg name="strf" face="strf/shock">ルーヴァ!相手は左右から
挟み撃ちにする気だよ!</Msg>
  </Event>
</State>

まずセリフを言うキャラが居ないとイベントが発生しない分、
空間からセリフが聞こえるような事態は起きなくなる。
さらに<Event/>を含めた分、特定の条件でセリフを発生させることが可能。

これによりChoiceとかStateとかEventをごっそり削ることができる分、ファイルサイズ的に幸せになれる。
フラグを立てたりすることでそのセリフを他のイベントのトリガーにする応用方法もある。
個人的には作って大正解だったタグ


≪Fade≫
属性内容
type[in]を指定した場合:フェードイン
[out]をした場合:フェードアウト
指定しない場合はフェードアウト
col使用するフェード画像フォルダ名

演出として重要と思われるフェードイン、フェードアウトのイベントを生成するタグ
内部ではTimerとかでひたすらフィルターを変えているだけである。
このイベントがないときは100行のタイマーイベントを書く必要があった。

フェードと言えば・・・ゲームの方で演出としてはいいかもしれないが、
一々時間がかかるという点が気になる方がいらっしゃると思われる。許していただきたい。

ゲーム内で使っているイベントの切り替えはこれではないタグを使っています。


≪Function≫
属性内容
setファンクションファイルを指定する
func 発生させるファンクション名
exファンクションへの引数 _temp_exに代入される

これのおかげで細かいイベントファイルは絶滅し、呼び出す際も簡単になった。
私がプログラミングを習う内に思いついたもの、結果は大正解?
何度も使用するイベントを1ファイル1行で呼び出す優れもの。


≪InPaty≫




≪Map≫




≪Point≫




≪Setbord≫
属性内容
setシステムプレーン名
pos 表示座標 X/Y/Z

【例】
<Setbord set="taget" pos="500/500/20"/>

【ネイティブ】
<Command com="battle/setbord/taget/500/500/20"/>

できるだけ分割すると後でIDなどを変更する際に置き換え作業が楽になるからです。


≪Skill≫




≪Stage≫




≪Start≫



≪NextMsg≫
属性 省略
Commandをタグにシリーズ

【例】
<NextMsg time="2000"/>

【ネイティブ】
<Delay time="2000"><Command com="window/nextmsg"/></Delay>

ひたすら楽してすぴブレ制作。



≪Unview≫≪Review≫
産業廃棄物その1

産業廃棄物その2

<Data/>に統合した為削除 (2016/5/2)

≪Template≫

【例】
 <Template lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
 <Paty army="enemy" brave="50" parampos="500/500/0" escape="0" tactics="attack">
  <Member lev="-2"/>
  <Member/><Member/><Member/><Member/><Member/><Member/>
  <Member/><Member/><Member/><Member/><Member/><Member/>
  <Member/><Member/><Member/><Member/><Member/><Member/>
 </Paty>

【ネイティブ】
 <Paty army="enemy" brave="50" parampos="500/500/0" escape="0" tactics="attack">
  <Member lev="-2" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
  <Member lev="-1" pason="l_mar" job="solder" wep="109" body="2109" acs="0"/>
</Paty>

<Member/>内を改造することにより、指定しない属性はTemplateで設定したものを引用する。
いちいち書き直す必要もなく、ありえないほど短く書けてしまう。
なお、データが複合している場合は用いると逆に見えにくくなってしまう。



≪Tick≫
属性 なし
【例】
 <Tick>
  <Msg msg="yay!"/>
 </Tick>

【ネイティブ】
 <Timer time="1" cycle="-1">
  <Msg msg="yay!"/>
 </Timer>

これ作る必要あったんですかねぇ・・・


≪Type≫



≪Leader≫



≪World≫


CallTransアタッチ
XSLTにパラメータを渡していろんな処理をします。
実はSystemCore内でCallTransを使うことはできません。
大半の効果はゲーム依存となっているため、詳しい内容は単品でも動作するものに限ります。


≪Bonus≫
ゲーム内処理依存 主にボーナスの取得の処理を変化させます。



≪CallUnit≫
属性内容
unit出現させるユニットデータ名
brave士気(省略可)
x y d登場させる座標
posparamposみたいなの
army所属する勢力(省略可)
countLimitMenber用の数(省略可)
lead※後述(省略可)
shift_f前回読まれたCallTransのposを変更
shift_r二つ合わせてShiftPosをするためのタグ

バトルイベントにおける英雄。内訳はFunctionと大差ない
省略可能な属性は_temp_各属性名に代入される。
これ単品では何もできない。
ユニットデータは別途ファイルにTypeタグで定義する。

何度も同じ敵部隊を呼び出すときに一々書いてたら直すのがめんどくさいので
一度一つに定義してからそれをFunctionと同様に呼び出せば直す部分は最小限に済む。
作って大正解だったタグの一つ。

lead属性はLeaderタグの下位互換、使用する機会は少なくなった。
LeaderタグはこのCallUnitタグの中に入れることにより動作する。

ShiftPosの機能は少し処理が重いのが難点。



≪CardTrans≫
属性内容
trans士気(省略可)
num計算するパラメータ
basenumの進数型
pars変化後の進数型

いわゆる10進数を2進数~36進数に変換したりする、進数変換器。
使用する機会はほとんど訪れなかった。
36進数とか何に使えばいいのやら・・・
その日のノリでシステムは作ってはいけない。


≪Convert≫
属性内容
data展開するファイルパス

このイベントを発生させるとその場にそのファイルの内容をすべて展開する。
一見LoadEventと大差ないじゃんかと思われるが、文字通り直接展開する。
何言ってるのかが分からないけど、書いているときに「あれ?大差なくね?」って思い始めるほどよくわからない。
真髄はDataフォルダのファイルも展開できてしまう物である。
それで何するの?と聞かれても分からないので困る。

でもUnit定義ファイルでとりあえずお世話になっている。


≪DataBase≫
省略。チラ見してもよくわからない。

簡単な話、Dataフォルダ内のParsonデータを直接読み込みパラメータに出力するという物。
頑張ればキャラのステータスを計算することができる。

もっと頑張ればゲーム内にてキャラのデータを眺めることもできる、
何レベルで何のスキルを覚えるか・・とか。

作った際に正しく動作したが、その後使った覚えはない。


≪Fade-out≫
属性内容
load読み込むイベントファイルパス

LoadEventされる直前に画面をフェードアウトさせるそれです。

フェードアウト中はタイマーとかが動きっぱなしなので
イベント内で見てはいけないものが見えてしまったりします。

LoadEventと同じ要領でお使いいただけますが、バトル内では非推奨となります。

≪Flg≫
属性内容
noフラグのナンバー
flgフラグ名
comコマンド
alloff:すべてのフラグを一括オフにする。
savetrans:trans属性のつくフラグをパラメータに出力
loadtrans:trans属性のつくフラグをオンにする

GlobalFlg.xmlを直接読み込んでフラグを操作します。
savetransとloadtransはコマンドのcleardataした後にもフラグを持ち越すための機能です。
savetransでtrans="1"であるFlgタグがゲーム内でオンになっていたら_temp_flg名に1を渡し。
loadtransで_temp_flg名が1であるフラグをオンにします。

クリア後の引継ぎに必須と思われる機能でした。
cleardataで全てのパラメータが消されると思いきや_tempパラメータは生き残る盲点を突いた結果です。


≪FormatTime≫
属性なし

【例】
<FormatTime/>
【ネイティブ】
<CallTrans params="_temp_time" path="Xsl/FormatTime.xsl"/>

時間を計算しhh:mm:ssに変換させるだけの機能です。

結構初期の頃に作られていますが、現在時間に関する処理を行える新APIを作成予定です。
こちらでは一行で多種類の時間表示、カウントダウン、カウントアップを行う上位互換タグとなってます。

≪Info≫
属性内容
場所の名前(省略可)
勝利条件(省略可)
敗北条件(省略可)
comXLST依存

ほら、バトルの最初に勝利条件とかを表示させるあれですよ。
一々Poweredを使うのが嫌で作りました。

表示する体裁等はXSLTで定義されているので変更する場合はInfo.xslの変更が必要です。

省略可の部分は省略した場合、最後に使用したものが呼び出されます(パラメータ保存)

≪Limit≫
属性内容
count読み込むイベント数(省略可)

【例】
<Limit count="4">
  <Event/>
  <Event/>
  <Event/>
  <Event/>←ここまで読み込まれる
  <Event/>
</Limit>

【ネイティブ】
ちょっと無理、パラメータ乱立させれば行けるけども。

countをパラメータで指定することにより動的に使える。
省略した場合は_temp_countをパラメータとして扱う

≪LimitMember≫
属性内容
count読み込むメンバー数

上のLimitの前世。こちらはMenber専用
DefaultとかCallUnitにcountを仕込むことにより実用性が出てくる。

省略した場合は_temp_countをパラメータとして扱う。


≪Math≫
属性内容
params計算するパラメータ
type計算方法 下記参照

paramsに入れたパラメータを計算し、同じパラメータにリターンする。

typeには以下の4つしかまだ機能がない。

・abs   値を絶対値に変える。
・rounddown 小数点切り捨て
・round 四捨五入
・pi 3.141592653589793

何故かroundup:切り上げがありません。
Math.xslには sin cos log rnd max min remainとかのスクリプトは組んでいるのに

そもそもこのタグ全然使わないんですが・・


≪Restore≫
属性内容
name差し替えるキャラID
lev差し替え後のレベル
job差し替え後のジョブ
wep差し替え後の武器
body差し替え後の防具
acs差し替え後のアクセサリ
kill差し替え後のキル数

全く同じキャラを一度削除し再加入させるという恐ろしいタグです。

魔法店とかでこれを多用しています。
難点としてはソーサラーとかの上位ジョブのステータスが再計算されて、明らかに強くなってしまう点と
powアイテムの効果がなかったことにされてしまう点です。

その為、魔法店ではシーラなどの特殊キャラの自動購入が出来ず、
汎用キャラにpowアイテムが使えないという仕様になっています。

全部こいつのせいです。
キャラの装備を変えるシステムが無かったゆえに・・・

ちなみにname以外は省略可能で、省略した部分は変更前の値をそのまま引き継ぎます。


≪Search≫
属性内容
map読み込むマップファイル(省略可)
key探すkey
val探すval
param検索結果の出力先
reset[1]を指定するとparamの内容を0にリセット

【例】
マップファイル
<MapList>
  <Map key="Rushes"   val="ラッシャーズ"   val2="30"/>
  <Map key="CrossSoldier"   val="クロスソルジャー"   val2="40"/>
  <Map key="ForestKeeper"  val="フォレストキーパー"  val2="30"/>
</MapList>

イベントファイル
<Search param="_temp_msg" key="Rushes"/>←_temp_msgにはラッシャーズが代入 _temp_msg.2には30が代入
<Search param="_temp_msg" val="30" reset="1"/>←_temp_msgにはRushes/ForestKeeperが代入※

つい先日完成した新機能、C++とかJavaのMAP機能みたいなものです。
恒例により省略可能なものは前に読み込んだファイルが使用されます。

パラメータが0であった場合 パラメータは上書きで代入されます。それ以外は+/出力扱いです。
二行目の場合は_temp_msgは最初0の為 Rushesが代入されますが、
次は0ではないため/ForestKeeperとスラッシュ付きで返されます。

サブイベントのトーナメントのシステム改善の為に作りましたが、思いのほか大成功です。


≪Strings≫
属性内容
params処理するパラメータ
type処理内容 下記参照

Math同様にパラメータをXSLTに渡して処理するタグ
しかしこのタグでできる機能は全機能(5個)のうち二つのみ。

num_right:数字を空白埋めで8桁にする
2bit:一ケタの数字を0埋めで2桁にする

このゲームのパラメータって型が実質ないから数字を文字列として扱うのが面倒なのだ。

ちなみに後の他の処理は
pointer:パラメータ内のパラメータを実体化させる
contains:文字列に指定した文字が含まれているとTrueを返す
uncontains:上の逆

主にSystemCore三大深い闇のParamから使用されるイベントとなっている。


≪Item≫
属性内容
params処理結果の出力先パラメータ
type実行するイベント名 後述
item変化させるアイテムID もしくは種類
count個数指定

イベントタイプ
save:事前にItemデータに種類を表す固有の属性を追加することにより
   そのアイテムを種類化して、その種類で持っているアイテムを保存用パラメータに移す
load:保存用パラメータを読み取り、そのアイテムを所持させる
以上の二つはフラグ持ち越しと同じ要領で特定のアイテムのみをクリア後に持ち越すためのイベント

have:指定したアイテムの数をパラメータに出力する。
+:指定したアイテムをcountの数だけ増やす
-:指定したアイテムをcountの数だけ減らす
=:指定したアイテムをcountの数だけ所持させる。

アイテムの個数を一個減らしたりするのがネイティブだと面倒なので作成。
というか何故こんな機能をデフォルトで付けなかったのか。
数多くのタグの中で恐らく需要がある方なのではないか。


オーバーライドタグ
本編
元々すぴブレについているイベントタグを改造し、使いやすくなったと思われるタグ
魔改造に魔改造を重ねたタグたち、ここにないタグは未改造

書き方としてエディタに書いてあることを丸々移しています。
変更点を黄色、追加点を赤色で書いておきます。

≪AddLine≫:全体マップの地域をつなぐ
例文

<AddLine pos1="地域1" pos2="地域2"/>
pos1

つなぐ地域その1
pos2

つなぐ地域その2


何処ともつながってない地域は表示されない
pos1+pos2、pos2+pos1というフラグを内部で立てて重複して繋がないように変更

重複すると道が濃く表示されるのが気になったので変更。

≪Cache≫

データをこっそり読み込む

例文

<Cache bgm="データ名" tex="キャラ名" texpath="ファイルパス"
poly="データ名" wave="データ名" xml="ファイルパス" clear="クリア名"/>
bgm

BGMをキャッシュする
tex

キャラ画像をキャッシュする
texpath

画像をキャッシュする
poly

ポリゴンをキャッシュする
wave

サウンドをキャッシュする
xml

XMLファイルをキャッシュする
clear

キャッシュをクリアする。
vram VRAMメモリを開放する。
bgm 未使用BGMを開放する。
tex テクスチャを開放する。
wave 未使用サウンドを開放する。
xml XMLキャッシュを開放する。
all 一通り全部。

同時に複数は指定できない。(wave="fire/suka"などは×)
指定できるようにしました。
違うデータならOK。(poly="fire" wave="fiew"は○)
すぴブレシステムはデータが必要になった時点でロードする。
この時、一瞬画面が止まる。先にCacheしておくと画面は止まらない。
また、プレーヤーのキャラ画像はLoadしたときに自動的にCacheされる。

一行でキャッシュしたい奴全部できます。


≪ChkFlg≫

フラグをチェックし、実行する

例文

<ChkFlg flg="フラグ" on="フラグ1/フラグ2" off="フラグ3">
実行イベント
</ChkFlg>
flgフラグチェックする。
on

フラグがonの場合、実行する。複数指定可能。
off

フラグがoffの場合、実行する。複数指定可能。

flgがonになっている場合 フラグ名:on
offの場合 フラグ名:off 各自をPopupで出力するデバッグ用の機能


全ての条件がOKなら内部のイベントを実行する。

≪Choice≫

変更なし。

現在のSystemCoreの一番の問題児。 正直まともに作動しない。

少なからずParamによる条件分岐はネイティブの物に限られる上、書き方も一部ネイティブと異なる。

そもそも此奴が嫌いで使わないでいろいろ書けるようにSystemCoreでいろいろ組んだのですが・・・



≪Command≫

色々な内部コマンド

例文

<Command com="コマンド">
実行イベント
</Command>
com

コマンド。


内部コマンドを実行する。詳細は別記。
闇闇アンド闇
とりあえず作りたいだけ機能を作っておいて放置するタイプのタグに変化

追加コマンド
  • time/decode/時間型パラメータ/変更タイプ (作りかけ)
speedmm:ss.cc
shortmm:ss
timehh:mm:ss
longhhh:mm:ss
none元の整数
allhh:mm:ss.cc
  • shiftpos/セットパラメータ名/[shift_f]/[shift_r]
セットパラメータ名に元に処理し、処理後のx/y/dを代入
セットパラメータ名.x or .y or .d .xyにそれぞれ別々にパラメータを生成。
  • rnddir/セットパラメータ名
セットパラメータ名にdirに指定するためのランダムな数値を生成する
  • concat/セットパラメータ名/文字列1/文字列2/文字列3/文字列4
セットパラメータ名に文字列1~4を結合させた結果を代入する。
  • param/batpos/セットパラメータ名/キャラID
戦闘キャラの X/Y/方向 を取得する。
セットパラメータ名.x or .y or .dにそれぞれ分割されたパラメータが生成される
  • param/getkill/セットパラメータ名/キャラID
キャラのkill数を取得する
キャラIDにallを指定するとキル数ランキングを参照してすべてのキャラのキル数を取得する
  • param/member/セットパラメータ名/キャラID/データ名

ユーザーデータを取得する。セットパラメータ.取得できるデータ に対してすべてのデータをパラメータに各自生成させる。
  • param/oversave
  • param/overload
別途ファイルに記載されたパラメータ名を_tempパラメータに入出力する。
  • param/leader/セットパラメータ名/部隊ID 
セットパラメータ名.0~11 exに各部隊のリーダーIDを出力する。
  • param/batcount/セットパラメータ名/軍隊名/タイプ

セットパラメータ名.entry or .live or .deadをそれぞれ出力する


以上、ここまでが追加コマンド。
基本的に出来るだけ省略するように変更、当然処理量は増えているが最近のパソコンなら全然大丈夫ど。

≪Param≫

パラメータコマンド

例文

<Param name="パラメータ名" com="コマンド" val="値" list="値 or パラメータ">
実行コマンド
</Param>
name

パラメータの名前。
最初の一文字はアルファベットにすること。
com

処理方法 何も書かないときは代入
+ 足し算。数値を足す。または文字列を追加。
++ インクリメント
- 引き算。数値を引く。
-- デクリメント
* 掛け算。数値をかける。文字列は不可。
/ 割り算。数値を割る。
= 比較。同じ値かチェック。
! 比較。同じ値ではない場合内部を実行。
ld 比較(<)。パラメータのほうが小さい。
rd 比較(>)。パラメータのほうが大きい。
# 文字分析:パラメータにvalの文字列が含まれていると実行。
$ 文字分析:パラメータにvalの文字列が含まれていないと実行。
@ パラメータ内のパラメータを実体化
w list内のパラメータ全てにvalを代入する。
l= list内のパラメータのいずれかにvalがある場合実行。


val

計算する値
listスラッシュで区切られたデータ値

比較や代入を行い、内部イベントを実行する。
通常パラメータはSaveデータに保存される。

これでもかと言うほどに機能を追加、論理演算的にはかなり良くなったと自負している。


≪List≫

Msgにあわせて実行する
List内のデータの数の分だけループ実行する

例文

<List name="出力先" list="値 or パラメータ" limit="回数">
実行イベント1
実行イベント2
・・・
</List>


メッセージが表示されていないと次のイベントを実行する。
メッセージが表示されるとそこでイベントが停止する。
未実行のコマンドを削除するには<Mode mode="none"/>を呼び出す。

このList内にて_temp_readlistにlistのデータが代入されて実行される。
将来的に出力先のパラメータを指定できるようにする予定
実装済みなお、リスト内の最初でパラメータを使用する場合は/から始めることとなる
この際、リミットの数は自動で補正される。

欠点としてはすべての処理を終了する前に次のイベントを読み込んでしまう点や、
イテレーターの都合上複数同時に扱うことができない点などがある。

【例】
<Param name="_temp_num" val="3"/>
<List list="/=_temp_num/2/1/0">
<Msg msg="=_temp_readlist"/>
</List>

【ネイティブ】
<Param name="_temp_num" val="3"/>
<Msg msg="=_temp_num"/>
<Msg msg="2"/>
<Msg msg="1"/>
<Msg msg="0"/>

Listを使用しないと(使いたいデータ数×内部のデータ数) 行は書かなければいけない。












 

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://stnsllethouse.blog.fc2.com/tb.php/137-2bbfc213
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック