「unit 構造体(ユニットの設定)」の編集履歴(バックアップ)一覧に戻る

unit 構造体(ユニットの設定) - (2022/12/27 (火) 18:06:31) のソース

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

**&color(green){雇用可能範囲について}
&color(blue){same_friend = off} とすると自分と同じクラスを部下に出来なくなりますが、
&color(blue){same_call = on(省略時の標準)}の状態なら同僚として雇用する事は可能です。ビーストテイマーでこれを用いてます。

**&color(green){所持スキル決定の手順}
1、新規登場時、転職時はスキルリストをクリアする。
  (宝箱とaddSkill関数で追加されたスキルは残ります)
2、class構造体のskill、skill2に従ってスキルを付加する。
3、unit構造体のskillをスキルリストの末尾に、skill2を先頭に追加する。
4、delskillに列挙されてるスキルを削除する。unitとclass双方にdelskillがある場合はunit構造体の方が優先される。
5、learnに従ってスキルを追加する。
6、delskill2に列挙されてるスキルを削除する。

**&color(green){相性の決め方}
相性はunit構造体のalign、又はrace構造体のalignのどちらか一方から算出されます。
相性を出す双方のunit構造体にalign値が設定されてるならそれで判定します。そうでないならrace構造体のalign値で判定します。
alignの数列範囲は(0~100)であり、0と100を連結したリング状になってます。
双方の差を二倍にしたものと100との差が相性値となります。相性は0が最悪で100が最高です。
&color(blue){例:25と75は相性0、0と50は相性0、1と99は相性96、5と95は相性80、40と60は相性60}
両ユニットにalignが設定されてないと計算されず全て最高の相性となります。
なお&color(blue){enemy}に列挙されたユニットとの相性は強制的に最悪となります。
(双方のalignの差をxとする。x≦50ならば100-2xが相性値。x>50ならば2x-100が相性値)

**&color(green){コンテンツ}
:name = (文字列)|
名前
:talent = (on/off)|
onで人材
:sex = (male/female/neuter)|
性別。省略時はneuter
:race = (文字列)|
種族
:class = (文字列)|
クラス
:fkey = (文字列)|
基底クラス。クラスの系列を決めます。fkey未記述のクラスは&color(red){samecall}出来ません。
:radius = (数値)|
ユニットの領域半径。省略時はサイズから自動算出される(横幅の75%となる)
:radius_press = (1~100)|
context構造体でunit_battle_cram = onとするとユニット渋滞時に
(1~100)パーセントまでユニット半径が圧縮され大人数でもスムーズに動くようになります。
:w = (数値)|
ユニットの横サイズ。省略時は32
:h = (数値)|
ユニットの縦サイズ。省略時は32
:a = (数値)|
ユニットの透明度(0~255)省略時は255
:image = (文字列)|
ユニット画像。image.dat内のイメージ名を指定する。
//戦略マップには上端中央部の32x32が表示される?(後で確認してから追記する)
:sub_image = (文字列)|
ユニット画像。image.dat内のイメージ名を指定する。
sub_image@@(level)@(scenario)と特殊なバリエーション指定をします。
:tkool = (on/off)|
RPGツクール規格のキャラチップを使えるようになります。詳細は別途説明します。
:face = (ファイル名)|
フェイス画像。faceフォルダの画像を指定する。
:bgm = (ファイル)|
専用BGM。bgmフォルダのファイルを指定する。
:volume = (数値)|
音量(1~100)
:picture = (ファイル名)|
立ち絵画像。pictureフォルダの画像を指定する。
#region
:picture_detail = (on/off)|
|on|列伝ウィンドウの上に立ち絵が出る|
|on1|全画面列伝になる|
|on2|ステータスウィンドウの横に立ち絵が出ない|
|on3|全身像列伝になる|
:picture_menu = (数値)|
指定すると戦略シーンのマスター立ち絵が表示されます。
0だと勢力ウィンドウの底辺に、50だと中間に、100だと上辺に表示されます。
:picture_floor = (文字列/数値)|
|top|立ち絵の底辺が会話ウィンドウの上辺になる|
|msg|同上|
|bottom|立ち絵の底辺が会話ウィンドウの底辺になる|
|base|立ち絵の底辺が画面の底辺になる|
数値にすると会話ウィンドウの上辺+(会話ウィンドウの高さ×数値×0.01)が立ち絵の底辺になります。
:picture_shift = (数値)|
立ち絵を横に数値ドットずらします。正の値で右に負の値で左に。
:picture_shift_up = (数値)|
立ち絵を上方向に数値ドットずらします。全身像列伝で立ち絵の位置調整に使う。
:picture_center = (0~100)|
省略時は&color(blue){context構造体}に準ずる。画面高さの百分比率を軸にして立ち絵が表示されます。
context構造体のpicture_centerが50だと立ち絵は丁度画面中央に表示されます。
:picture_back = (画像ファイル)|
全身像列伝の背景画像になります。imageフォルダの画像を指定します。
画像は自動的に右側が暗くなるグラデーションが掛かります。
#endregion(立ち絵指定の詳細データ)

:price = (数値)|
雇用費。
:cost = (数値)|
ターン毎の維持費。勢力資金から減額されます。負の値にすると逆に増えて「財政力」となります。
:finance = (数値)|
財政力。ターン毎に勢力資金に加算される。costがマイナス表記されていた場合はcost値が優先される。
:hasexp = (数値)|
自分を攻撃した敵の獲得経験値を決める基準値。これにレベルを掛けます。
:alive_per = (0~100)|
ルナティックモードで撃破された時の生存率です。省略時は0なので確実に死にます。50だと半々です。
:medical = (数値)|
基本治療費。これにレベルを掛けたものが治療費となる。
:friend = (文字列, 文字列, ‥)|
省略時は同種族・同クラスのみとなる。部下に出来る種族とクラスを列挙する。
&color(blue){allrace}と記述すると全ての種族、&color(blue){allclass}と記述すると全てのクラスが設定したユニットの配下にできます。
:merce = (文字列, 文字列, ‥)|
このユニットから開いた雇用ウィンドウに追加されるユニットを列挙する。部下に出来るか否かの設定はfriendの方で行います。
power構造体での設定と同じく、同名クラスを複数記述するとCOM勢力に所属した場合の雇用確率を調整できる。(samecallが有効な場合そちらが優先)
&color(blue){例:merce = soldier*5, bowman, monk*4 とするとソルジャー50%、ボウマン10%、モンク40%の確率で雇用する。}
&color(red){ただし1回の補充で雇用されるクラスは基本的に全員一緒で、「soldier*3,bowman*2」でもソルジャー3人、ボウマン2人といったように振り分けられるわけではないことに注意。}
:same_friend = (on/off)|
省略時はon。offにすると同種族同クラスの雇用が出来なくなる(friendで別途指定してれば可能)
:same_call = (on/off)|
省略時はon。offにすると&color(red){samecall}(自分と同系列の基底クラス雇用)が出来なくなる。
:member = (文字列, 文字列*数値, ‥)|
開始時の部下ユニット

:level = (数値)|
:hp = (数値)|
:mp = (数値)|
:attack = (数値)|
:defense = (数値)|
:magic = (数値)|
:magdef = (数値)|
:speed = (数値)|
:dext = (数値)|
:move = (数値)|
:hprec = (数値)|
:mprec = (数値)|
基本能力値
:summon_max = (数値)|
召喚可能数。省略時はcontext構造体の&color(blue){unit_summon_min}になる。
:summon_level = (百分率の数値)|
50とすると召喚ユニットのレベルは術者の50%になる。省略時はcontext構造体の&color(blue){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%となり(元値と限界値が同じ)強化されません。

:leader_skill = (文字列, 文字列, ‥)|
:leader_skill = (文字列*数値), (文字列*数値), ‥|
リーダースキルの設定。
数値(絶対値に換算します)を指定するとそのレベル以上のメンバーにだけ付与される。
数値にマイナス符号を付けるとスキルリストの前方に挿入される。
:assist_skill = (文字列, 文字列, ‥)|
:assist_skill = (文字列*数値), (文字列*数値), ‥|
アシストスキルの設定。自分のリーダーに付与されます。
:skill = (文字列, 文字列, ‥)|
スキルリストの末尾にスキルを追加する。
:skill2 = (文字列, 文字列, ‥)|
スキルリストの先頭にスキルを追加する。
&color(red){注意:skill2はunit構造体とclass構造体で機能が異なります。}
:delskill = (文字列, 文字列, ‥)|
スキルリストから削除する。learnで習得するスキルは削除対象外です。
:learn = (数値, 文字列, ‥)|
数値のレベルでスキルを習得。
数値にマイナス符号を付けるとスキルリストの前方に並ぶ。
:learn = 数値1, 文字列1, 数値2, 文字列2)|
数値1のレベルで文字列1のスキルを習得。数値2のレベルで文字列1のスキルが消えて、文字列2のスキルを習得。
:learn = (数値1, 文字列1, 数値2, 文字列1, 文字列2)|
文字列1のスキルを消さない場合は再度習得させる書式にする。
:delskill2 = (文字列, 文字列, ‥)|
learnで習得したスキルリストから削除するものを列挙する。

:consti = (文字列*数値, 文字列*数値, ‥)|
属性への耐性度の設定。
&color(blue){0 即死、1 激弱、2-3 弱い、4 微弱、5 普通、6 微強、7-8 強い、9 超強、10 無敵}
状態異常攻撃の成功判定は以下のようになってます。
1、受け側の耐性(0~10)を求めてαとします。
2、αが10なら受け側が無敵状態なので状態異常攻撃失敗→判定終了
3、乱数値(0~99)を求めて「αの2乗」より下だったら状態異常攻撃失敗→判定終了
4、攻め側の攻撃修正値βをαから求めます。
(αが0)=10.0、1=2.0、2=1.75、3=1.5、4=1.2、5=1.0、6=0,8、7=0.66、8=0.57、9=0.5
5、攻撃値= 攻め側のdext×β×乱数値(0.5~1.0)と
  防御値=受け側のdext×乱数値(0.25~0.75)を求めます。
6、「攻撃値-防御値」の数値を受け側の各状態異常HPから引きます(ステータスウィンドウの最下部に列挙されてる数値)
  それがゼロ以下になったら受け側は状態異常になります。 
:movetype = (文字列)|
移動タイプ。
:line = (front/back)|
前衛、後衛の設定。省略時は先頭スキルに応じた位置になる。
:satellite = (on/off)|
onにするとリーダー、又は召喚した術者を追尾します。数値を指定するとその距離ドットまで近づきます。
:beast_unit = (on/off)|
onにするとビーストになる。プレイヤー操作を制限します。自分とリーダーの双方がビーストなら操作不能となる。
:no_knock = (数値) |
省略時は0。1以上にするとノックバックへの耐性がつく
ノックバック時には、乱数(0~knock_power) >= no_knock の判定式を行い、結果が真なら弾かれます。
例えば、no_knock=5 として knock_power=10 とすると50%の確率で弾かれるようになります。 
:no_cover = (on/off)|
省略時はoff。onにすると味方遮蔽の対象にならない。
このユニットが前方にいても射撃できる。
:view_unit = (on/off)|
onにすると召喚精霊でも視界ユニットになる。
:element_lost = (on/off)|
省略時はon。offにすると召喚術者が死亡しても消滅しない。

: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以上を設定すると騎兵動作をします([[詳細は別途説明>class 構造体(クラスの設定)]])

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

:yabo = (数値)|
野望値(0~100)。高いほど独立しやすく領土拡大を目指すようになる。
:kosen = (数値)|
好戦値(0~100)。高いほど戦争を仕掛け易い。戦闘時の戦術が積極的になる。
:brave = (数値)|
勇猛値(0~100)。高いほど逃亡しません。
剣+飛び道具タイプのユニットなら接近戦を挑みやすくなる基準となります。
:brave = on*数値(0~100)|
設定すると遠距離型でもたまに接近戦を挑むようになります。数値が高いほど接近しやすいです。
:align = (数値)|
キャラ間の相性を設定する為の数値。
:enemy = (文字列, 文字列, ‥)|
宿敵と見なすユニットを列挙する。強制的に相性が最悪となる。
これは片方向指定なので被enemy側はこちらを敵とは見なしません。
:loyal = (文字列)|
主君。これが設定されてる放浪ユニットは主君が生存して別勢力にいる場合は雇用不可能となる。
また、主君に設定したマスターの勢力に所属している場合、身分が宿将となる。
自分の名前を指定した場合はマスター格ユニットとなり陪臣にならない。
:loyal = (文字列*数値)|
%%主君死亡時に数値%の確率で自決する。%%自分を指定すると自勢力滅亡時に自決する確率となる。Ver7.01時点で、自分がマスターの時以外は機能しない。
:power_name = (文字列)|
旗上げ時の勢力名
:flag = (ファイル)|
旗上げ時の旗のbmpファイル名(拡張子は省略)
:staff = (文字列, 文字列, ‥)|
省略時は同種族・同クラスのみ。旗上げ時にリーダーに出来る種族とクラスを列挙する。
:diplomacy = (on/off)|
省略時はon。offにするとこのユニットがマスターの勢力は外交をしなくなります。
:castle_guard = (文字列*数値)|
マスター時、守城戦限定で追加されるユニットとその人数。防衛部隊チップ(マップファイルで先頭に「@」が付いた部隊チップ)に追加される。

:actor = (on/off)|
onにすると強制的にアクターとなる。offにするとアクターにならない。省略時はシステムで決められる。
:sortkey = (数値)|
勢力選択時の人材リストに並ぶ順。少ないほど上になる。
:enable_select = (on/off)|
省略時はon。offにすると人材プレイ選択不可となる。
:enable = (数値)|
省略時は0。放浪ユニットの登場ターン
:enable_max = (数値)|
放浪ユニットの登場ターンの最大値。指定するとenable~enable_maxの乱数で登場ターンが決まる。
:fix = (on/off/home)|
省略時はoff。onにすると放浪人材が移動しない。
homeにすると下記の&color(blue){home}に列挙された領地のみ放浪移動する。
:home = (文字列, 文字列, ‥)|
放浪の出現位置。列挙された領地の中からランダムで決まる。
:item = (skill構造体の名前 , skill構造体の名前 , skill構造体の名前・・・・・)|
初期装備のアイテム
:no_training = (on/off)|
onにすると訓練されなくなる。
:no_escape = (on/off)|
onにしたユニットが一人でもいるとその陣営は総退却しなくなる。ラスボスで用います。
:noremove_unit = on|
onで解雇不可能になる。
:noemploy_unit = (on/off)|
onでステータスウィンドウの雇用ボタンが表示されない。つまり雇用する事が出来ない。
:noitem_unit = on|
onでアイテムの装備が出来ない。
:arbeit = (文字列*数値)|
:arbeit = (文字列)|
:arbeit = (数値)|
数値は(0~100)です。省略時は0になります。
所属勢力が滅亡して放浪した時に傭兵になる確率です。
文字列
|on|最初から傭兵になる。資金ゼロ部下ゼロになると放浪人材に戻される|
|power|勢力と契約中の時のみ傭兵になる。勢力はsetArbeit関数で設定する|
|fix|資金ゼロ部下ゼロになってもずっと傭兵のまま|
:arbeit_capacity = (数値)|
傭兵時の部隊メンバー数を指定できます。

:help = (文章)|
ユニットの概略説明。
:join = (文章)|
雇用したときの台詞。
:dead = (文章)|
倒されたときの台詞。
:retreat = (文章)|
逃亡する時の台詞。
:scream = (ファイル)|
やられた時の悲鳴。soundフォルダにあるwavファイル(拡張子無し)を指定する。
:break = (スキル)|
やられた時に表示されるエフェクト。指定したスキルが発生します。
爆発をユニット中央に合わせる為にスキルには&color(blue){center=on}を記してください。スキルは強制的にfunc=missileと見なされます。
:lost_corpse = (数値)|
死体エフェクトの設定。
省略時は0。0は左右に押し潰されていく標準タイプ。
1以上にすると下に沈むタイプになる。100で1フレーム毎に1ドット沈む。50だと0.5ドット。
負の値にすると消えるタイプになる。数値は1フレーム毎にアルファ値から引かれる数。

:add_vassal = (on/off/roam)|
宝箱でユニットとして取得された時の挙動を設定します。
|off|所属勢力に追加されます。放浪中なら何も得られません(デフォルト)|
|on|自分の部下になります。メンバーがいっぱいなら何も得られません|
|roam|勢力所属時は勢力に、放浪中は自分の部下に加わります|

:politics = (on/fix/erase/unique)|
[[内政について]]を参照してください。
:voice_type = (文字列), ...|
[[voice 構造体(戦闘ボイスの設定)]]を参照してください。
:value = (数値)|
加算される戦闘力。
:force_voice = (on/off)|
詳細不明。
:handle = (on/off)|
[[関数(戦闘シーン)]]を参照してください。
:red = (on/off)|
詳細不明。
.