「class 構造体(クラスの設定)」の編集履歴(バックアップ)一覧に戻る

class 構造体(クラスの設定) - (2013/05/25 (土) 12:58:45) の編集履歴(バックアップ)


はじめに

ユニットの設定は通常unit構造体で行いますが、非人材を設定するショートカットとしてclass構造体も直接指定出来ます。
同じ構造体名ではunit構造体の方が優先されます。
unitとclass構造体のデータ項目は大体同じですが、一部異なります。


samecall(同系クラス雇用)について

各ユニットは自分と同じ系列の基底クラスを標準雇用できます。これがsamecallです。samecallの手順は以下の通りです。
1、そのユニットがsame_call=offならキャンセル。
2、ユニットのクラスの基底クラスを呼び出す。fkeyが未記述ならキャンセル。
3、基底クラスがunique=onならキャンセル。
4、基底クラスのraceが記述されており、ユニットのraceと不一致ならキャンセル。
5、プレイヤーならここで処理終了してsamecallユニットを雇用する。
6、COMはsamecallユニットのクラスを自分と同じにする(上位クラスチェンジ)ただし自分のクラスがunique=onならそのまま雇用する。


経験値獲得の計算について

経験値は敵を攻撃してダメージを与える毎に獲得されます。
計算方法は敵の所持値[hasexp×レベル]×ダメージ率[与えたダメージ÷敵の最大HP]です。
ただしダメージ率は33%が上限となっており大ダメージを与えても変わりません。
一撃で倒すよりも手数の多い方が効率よく経験値を稼げます。


コンテンツ

name = (文字列)
名前
fkey = (文字列)
基底クラス。クラスの系列を決めます。fkey未記述のクラスはsamecall出来ません。
change = (文字列*数値)
数値レベルに達すると文字列のクラスに転職。
ループしてると戦闘終了後のクラスチェンジ処理で落ちますので注意
sex = (male/female/neuter)
性別。省略時はneuter。
race = (文字列)
種族。samecall時にも参照されます。
radius = (数値)
ユニットの領域半径。省略時はサイズから自動算出されます(横幅の75%)
w = (数値)
ユニットの横サイズ。省略時は32。
h = (数値)
ユニットの縦サイズ。省略時は32。
a = (数値)
ユニットの透明度(0~255)。省略時は255(不透明)
image = (文字列)
ユニット画像。image.dat内のイメージ名を指定する。
image2 = (文字列)
女性の時に適用されるユニット画像。
tkool = (on/off)
RPGツクール規格のキャラチップを使えるようになります。詳細は別途説明します。
face = (ファイル名)
フェイス画像。faceフォルダ内の画像ファイル(拡張子込み)で指定する。
scream = (ファイル)
やられた時の悲鳴。soundフォルダにあるwavファイル(拡張子無し)を指定する。
break = (スキル)
やられた時に表示されるエフェクト。指定したスキルが発生します。
爆発をユニット中央に合わせる為にスキルにはcenter=onを記してください。スキルは強制的にfunc=missileと見なされます。

price = (数値)
雇用費。
cost = (数値)
ターン毎の維持費。勢力資金から減額されます。負の値にすると逆に増えて「財政力」となります。
hasexp = (数値)
自分を攻撃した敵の獲得経験値を決める基準値。これにレベルを掛けます。
friend = (文字列, 文字列, ‥)
省略時は同種族・同クラスのみとなる。部下に出来る種族とクラスを列挙する。
merce = (文字列, 文字列, ‥)
このユニットから開いた雇用ウィンドウに追加されるユニットを列挙する。部下に出来るか否かの設定はfriendの方で行います。
same_friend = (on/off)
省略時はon。offにすると同種族同クラスの雇用が出来なくなる(friendで別途指定してれば可能)
same_call = (on/off)
省略時はon。offにするとsamecallが出来なくなる。
samecall_baseup = (on/off)
省略時はoff。onだとsamecallされた際にscenario構造体のbase_level分レベルが底上げされる。
same_sex = (on/off)
省略時はoff。onだとsamecallしたユニットの性別と同じになる。
unique = (on/off)
省略時はoff。onだとユニーククラスになる。samecallによる上位クラスチェンジの対象となりません。
member = (文字列, 文字列*数値, ‥)
開始時の部下ユニット

level = (数値)
hp = (数値)
mp = (数値)
attack = (数値)
defense = (数値)
magic = (数値)
magdef = (数値)
speed = (数値)
dext = (数値)
move = (数値)
hprec = (数値)
mprec = (数値)
基本能力値
summon_max = (数値)
召喚可能数。省略時はcontext構造体のunit_summon_minになる。
summon_level = (百分率の数値)
50とすると召喚ユニットのレベルは術者の50%になる。省略時はcontext構造体のunit_summon_levelになる。
heal_max = (百分率)
回復残量。一度の戦闘でヒールで回復できる限界HP量。
attack_max = (百分率)
defense_max = (百分率)
magic_max = (百分率)
magdef_max = (百分率)
speed_max = (百分率)
dext_max = (百分率)
move_max = (百分率)
hprec_max = (百分率)
mprec_max = (百分率)
能力UP魔法による限界値を元値との比率で設定します。150%とすると元値の1.5倍が限界値となります。
省略すると100%となり(元値と限界値が同じ)強化されません。

skill = (文字列, 文字列, ‥)
スキルリストの末尾にスキルを追加する。
skill2 = (数値, 文字列, 文字列, ‥)
数値の数だけ(絶対値に換算)列挙された文字列からランダムでスキルリストの末尾に付加する。
数値にマイナス符号を付けると先頭に付加される。
注意:skill2はunit構造体とclass構造体で機能が異なります。
delskill = (文字列, 文字列, ‥)
スキルリストから削除する。learnで習得するスキルは削除対象外です。
learn = (数値, 文字列, ‥)
数値のレベルでスキルを習得。
数値にマイナス符号を付けるとスキルリストの前方に並ぶ。
注意:learnのレベル達成で取得したスキルはchangeClassやchangeRaceなどの変更があると消えてしまうので、スキルが消えて困る場合はレベルを振り直す必要がある。
この時、setlevelを使うと新しいクラスでの能力値で再計算されてしまい、想定外のステータスになりがちなので注意。それが嫌な場合はちょっと面倒だけど基底クラスにチェンジさせた後、whileとaddleverで1づつ上げるといい
learn = 数値1, 文字列1, 数値2, 文字列2)
数値1のレベルで文字列1のスキルを習得。数値2のレベルで文字列1のスキルが消えて、文字列2のスキルを習得。
learn = (数値1, 文字列1, 数値2, 文字列1, 文字列2)
文字列1のスキルを消さない場合は再度習得させる書式にする。
delskill2 = (文字列, 文字列, ‥)
learnで習得したスキルリストから削除するものを列挙する。

consti = (文字列*数値, 文字列*数値, ‥)
属性への耐性度の設定。
0 即死、1 激弱、2-3 弱い、4 微弱、5 普通、6 微強、7-8 強い、9 超強、10 無敵
movetype = (文字列, 文字列, ‥)
移動タイプ。
line = (front/back)
前衛、後衛の設定。省略時は先頭スキルに応じた位置になる。
satellite = (on/off)
satellite = (数値)
onにするとリーダー、又は召喚した術者を追尾します。数値を指定するとその距離ドットまで近づきます。
beast_unit = (on/off)
onにするとビーストになる。プレイヤー操作を制限します。自分とリーダーの双方がビーストなら操作不能となる。
no_knock = (on/off)
省略時はoff。onにすると弾かれないキャラとなる(ノックバック無効)
no_knock = (数値)
skill構造体のknock_power(ノックバック能力)と組み合わせて使います。
ノックバック時に「乱数(0~knock_power)>= no_knock」の判定が行われ、真ならノックバックされます。
no_cover = (on/off)
省略時はoff。onにすると味方遮蔽の対象にならない。
このユニットが前方にいても射撃できる。
view_unit = (on/off)
onにすると召喚精霊でも視界ユニットになる。
element_lost = (on/off)
省略時はon。offにすると召喚術者が死亡しても消滅しない。
lost_corpse = (数値)
死体エフェクトの設定。
省略時は0。0は左右に押し潰されていく標準タイプ。
1以上にすると下に沈むタイプになる。100で1フレーム毎に1ドット沈む。50だと0.5ドット。
負の値にすると消えるタイプになる。数値は1フレーム毎にアルファ値から引かれる数。

attack_range = (数値)
接近開始半径の設定。省略時はcontext構造体のunit_attack_rangeの数値になります。
escape_range = (数値)
後退開始半径の設定。省略時はcontext構造体のunit_escape_rangeの数値になります。
escape_run = (数値)
後退距離の設定。省略時はcontext構造体のunit_escape_runの数値になります。
hand_range = (数値)
剣攻撃が届く距離ドットです。省略時はcontext構造体のunit_hand_range(デフォ値は16)になります。
大きくするとより遠くの敵を剣攻撃できますが、移動時に敵に引っかかりやすくなります。
wake_range = (数値)
1以上を設定すると最初はスリープ状態で自分の半径(数値)ドット内に敵が来たら動き出すようになります。
view_range = (数値)
視界範囲。省略時はcontext構造体のunit_view_rangeになる。
cavalry_range = (数値)
1以上を設定するとそのユニットは騎兵用の行動ルーチンを使用します。基本的に自分の半径(数値)ドットだけ敵に対し距離をとる様になり、以下の判定を満たす場合のみ、敵に突撃を行います。
1、敵軍の前衛:後衛の比率が、1:2 より下 →敵前衛が減少したので「突撃」
2、敵軍の前衛:後衛の比率が、3:1 より上 →敵前衛が迫ってるので「突撃」
3、自分の近くに敵の後衛ユニットがいる →突撃の好機なので「突撃」
4、自軍の騎兵比率が50%以上 →自軍が騎兵メインの軍団なので「突撃」
5、味方が優勢な時 →勝機と見なして「突撃」

level_max = (数値)
ユニットの最大レベル値です。省略するとcontext構造体のunit_level_maxになります(デフォ値は100)
multi = (数値1, 文字列1, 数値2, 文字列2, 文字列3, ‥)
レベルアップ時の能力値の上昇率。基本能力値×(数値)%ずつ上昇する。
multi = 15, hp, 10, attack, defense, 5, magic, magdef
とすると、hpは初期値の15%、attackとdefenseは10%、magicとmagdefは5%上昇する。
exp = (数値)
exp_mul = (数値)
レベルUPの為の必要経験値の設定。
exp = 100, exp_mul = 120 の場合は、
[100], [100+(100×1.20)], [100+(220×1.20)], [100+(364×1.20)], [100+(536×1.20)], ‥
のように各レベルUPの必要経験値が増加していきます。
exp_max = (数値)
必要経験値の増加幅の限界設定。省略時は0。0だと無制限になる。
hpUp = (数値)
mpUp = (数値)
attackUp = (数値)
defenseUp = (数値)
magicUp = (数値)
magdefUp = (数値)
speedUp = (数値)
dextUp = (数値)
moveUp = (数値)
hprecUp = (数値)
mprecUp = (数値)
レベルアップ時の能力上昇値。multiの指定より優先されます。
hpMax = (数値)
mpMax = (数値)
attackMax = (数値)
defenseMax = (数値)
magicMax = (数値)
magdefMax = (数値)
speedMax = (数値)
dextMax = (数値)
moveMax = (数値)
hprecMax = (数値)
mprecMax = (数値)
レベルアップ時の能力限界値。これ以上は増えません。

radius_press = (1~100)
context構造体でunit_battle_cram = onとした場合、ユニットが渋滞した際に、
「radius_press = (1~100)」の比率だけユニット半径が常時圧縮されます。
radius_press = 50 とするとradiusが50%まで圧縮されます。
大人数でもスムーズに動くようになります。
これを使い場合は、radiusを大きめにし、radius_pressを小さめにしてください。
dead_event = (event構造体の名前)
このユニットがやられた時に指定のevent構造体が実行されます。
主にダンジョンで敵の撃破数のカウントなどに使ってください。
自動的に文字変数dead_event_aに攻撃者の識別子が代入されます
同じくdead_event_dに死亡者の識別子が代入されます。
free_move = (数値)
0以外にすると敵に近づこうとせずウロウロするようになります。
attack_range内に敵が入ったら接近します。
数値を小さくすると狭い範囲で動きます。大きくすると広い範囲で動きます。
1の位の数値(0~9)は小刻みでウロウロする頻度です。0だと小刻み、9だとその反対です。
狭い範囲のウロウロなら300以下で(例:free_move = 301)
広い範囲なら800以上で1の位の数値を大きくしてください(例:free_move = 1009)
add_vassal = (on/off/roam)
宝箱でユニットとして取得された時の挙動を設定します。
off 所属勢力に追加されます。放浪中なら何も得られません(デフォルト)
on 自分の部下になります。メンバーがいっぱいなら何も得られません
roam 勢力所属時は勢力に、放浪中は自分の部下に加わります

.