#div(color=#000000){{{ *解析情報 ---- 具体的なソースコードの内容など、重大なネタバレを含む情報のまとめ。 情報の正確性については保証しない。 #contents(fromhere=true) **ダイスとスキルロール ---- GearheadのダイスシステムはEarthdawnというTRPGが元ネタらしい。 ***ダイス rpgdice.pp (Function Dice) 最大値が出るともう一度ダイスを振り、その値を加算できる。 ダイスの目が最大値以外を出すまで繰り返す。 ***ロールステップ rpgdice.pp (Function RollStep) ある値Nに対して10単位の「ステップ」を区切り、各ステップに応じたダイス(Earthdawnでいうところのアクションダイス)を振る。 スキルロールとは大抵このロールステップの結果を意味している。 |BGCOLOR(LightBlue):ステップ|BGCOLOR(LightBlue):ダイス|BGCOLOR(LightBlue):期待値| |BGCOLOR(AliceBlue):1|d4|2.5| |BGCOLOR(AliceBlue):2|d6|3.5| |BGCOLOR(AliceBlue):3|d8|4.5| |BGCOLOR(AliceBlue):4|d10|5.5| |BGCOLOR(AliceBlue):5|d12|6.5| |BGCOLOR(AliceBlue):6|d6 + d8|8| |BGCOLOR(AliceBlue):7|d6 + d10|9| |BGCOLOR(AliceBlue):8|d8 + d10|10| |BGCOLOR(AliceBlue):9|d10 + d10|11| |BGCOLOR(AliceBlue):10|d10 + d12|12| ステップ5とステップ6の間で期待値が大きくなる点に注意。 例) N = 12(ステップ12)でロールステップを行ったときのダイス ステップ12 = ステップ10 + ステップ2 = (d10 + d12) + (d6) ***スキル値 ability.pp (Function SkillValue) ロールステップに代入する値として使われる。(ステータス + 2) / 3とかいう計算式の出所はこれ。 -スキルランク -スタッツランク -その他の修正 の合計をスキル値として求める。スキルを使用するGearによって各要素の詳細が異なる。 Unitはアリーナモードのチーム? |BGCOLOR(LightBlue):Gear|BGCOLOR(LightBlue):スキルランク|BGCOLOR(LightBlue):スタッツランク|BGCOLOR(LightBlue):その他の修正| |BGCOLOR(AliceBlue):キャラクター|キャラクターのスキルレベル &br()+ サイバーウェア(スキル系)|キャラクターのステータス&br()(各種の修正を含めた値)|該当のスキルを未習得であればペナルティ [-2]&br()士気 > 0であればボーナス [士気 / 20]&br()士気 < -20であればペナルティ [-2]| |BGCOLOR(AliceBlue):Unit|Unitメンバーで最も高いスキル値|なし|Unitメンバーのスキル値が5以上であれば&br()ボーナス [スキルレベル / 5]| |BGCOLOR(AliceBlue):メック|パイロットのスキル値 &br()+ メック用のサイバーウェア|なし|MV・TR・SEが関係するスキルであれば&br()それらの値を加算| Unitやメック自身はスキルやステータスを持たないので、メンバーやパイロットのスキル値をそのまま用いる点に注意。 最終的なスキル値は スキル値 = (スタッツランク + 2) / 3 + スキルランク + その他の修正 ***チームスキル チームメンバーが居る場合にはそのスキル値を考慮する。 -チーム内で最も高いスキル値が基準 -メンバーのスキル値が5以上であればそのスキル値 / 5をボーナスとして加算する -チーム内で最も高いスキル値 / 5をペナルティとして減算する **スキルトレーナー ---- services.pp (Procedure OpenSchool) ***CostFactor 1XPあたりの基本額(CostFactor)は CostFactor = 250 ***友好度のボーナス トレーナーとの友好関係によって得られる経験値が増加する。友好度は-100から+100の間で変動する。 友好度ボーナス = XP * (400 + 友好度) / 400 ***知識のボーナス・ペナルティ 知識が14以上でボーナスが、知識が8以下でペナルティが加えられる。 ボーナス = XP * (100 + (知識 - 14 + 1) * 5) / 100 ペナルティ = XP * (100 - (8 - 知識 + 1) * 10) / 100 **仲間 (Lancemate) ---- ***仲間の最大数 ability.pp (Function LancematePoints) arenascript.pp (Procedure AddLancemate) まず現在仲間にしているキャラクターのポイントの合計(LancematesPresent)を計算する。 LancematesPresentは -CIDを持つキャラクター(NPCなど) = 2 -CIDを持たないキャラクター(モンスターなど) = 1 としてその合計を計算する。 次にプレイヤーキャラクターのLancematesPointsを計算する。 LancematesPoints = (リーダーシップ + 魅力 + (有名 / 10)) / 4 LancematePoints >= LancematesPresent + 2であれば仲間にすることが可能。 ***経験値のペナルティ arenascript.pp (Procedure ProcessXPV) 仲間の数 > (リーダーシップ + 1) / 2であれば 修正後のXP = XP / (仲間の数 - (リーダーシップ + 1) / 2 ) ただしXP < 1であればXP = 1に修正する。 **ロボット工学スキル ---- skilluse.pp (Function UseRobotics) ***ビルドポイント(BP) ロボットの組み立てに使用した資材から算出されるポイント。 ロボットの体格・速度・反応に影響し、スキルロールにもボーナスを与える。 修理用具のBPはアイテムに表示される修理ポイントそのまま。 (メック溶接用具3000BP、セロテープ10BP。セロテープ10個で作ると10 * 10の100BP) それ以外、武器や防具のBPはダメージ + Armor + 重量で算出される。 ***スキルランクとベーススキル -スキルランク = ロボット工学スキル - 10 (チームスキル。仲間のスキルロールの影響を受ける。) -ベーススキル = ロボット工学スキルレベル (@のスキルレベルそのまま。スキルロールやステータスのボーナスは関わらない。) BP / 2が0でなければスキルランクに+1。 この操作はBPが0以下になるまで繰り返される(つまりlog_2(BP)だけスキルランクにボーナス)。 ***ステータスの計算 |BGCOLOR(LightBlue):ステータス|BGCOLOR(LightBlue):計算式| |BGCOLOR(AliceBlue):体格|BP / 25(最低1, 最大25)| |BGCOLOR(AliceBlue):反応|ロール(スキルランク) - 7 - (Body / 4)| |BGCOLOR(AliceBlue):速度|ロール(スキルランク) - 5 - (Body / 2)| |BGCOLOR(AliceBlue):感覚|ロール(スキルランク) - 10| |BGCOLOR(AliceBlue):工作|ロール(スキルランク) - 7| |BGCOLOR(AliceBlue):知識|ロール(スキルランク) - 7| |BGCOLOR(AliceBlue):自我|ロール(スキルランク) - 10| ステータスがベーススキル * 2 + 1を超えていた場合、そのステータスをベーススキル * 2 + 1に修正する。 ステータスが1より小さい場合、 MPがステータスの絶対値) * 2以上であればMPをステータスの絶対値 * 2消費してそのステータスを1 + Random(3)に修正。 MPが無かった場合は製作に失敗する。 ステータスが10以上であった場合、そのステータスにはGoodフラグが付く。 7ステータス全てにGoodフラグが付けば(全て10以上であれば)このロボットは自己認識能力を獲得する可能性がある。 7ステータス全てにGoodフラグが付いた場合に限り |BGCOLOR(AliceBlue):魅力|ロール(スキルランク) - 10| ここで魅力も10以上であれば、このロボットは自己認識能力を獲得する(魅力にはベーススキルによる最大値がない)。 自己認識能力を持つロボットを作成した場合は100XPを獲得する。 魅力が10未満であった場合、すなわち自己認識能力の獲得に失敗した場合、魅力は1に修正される。 Goodフラグが足りず最初からチャンスが無かった場合、魅力は1で固定。 ***スキルとモジュールの獲得 自己認識能力を持つロボットのボディ形状は人間型(頭・胴体・両手足)固定。 いくつかの初期スキルが与えられる。 |BGCOLOR(AliceBlue):重量挙げ|10| |BGCOLOR(AliceBlue):持久力|5| |BGCOLOR(AliceBlue):集中|5| 生身の戦闘スキルを4 / 5の確率で獲得し、その初期スキルランクはRandom(ベーススキル)。 次に製作に使用した武器の埋め込み判定を行う。判定にはロール(スキルランク)が用いられる。 //if ( Part^.G = GG_Weapon ) and ( RollStep( SkRk ) > Part^.V ) and ( BaseSkill > 0 ) then begin // DelinkGear( Ingredients , Part ); // InsertSubCom( SelectRandomGear( Robot^.SubCom ) , Part ); // Dec( BaseSkill ); //関数追いかけるの面倒になってきた。 材料にセンサー(センサー・照準コンピュータ・電子対抗システム)が使用されていた場合、感覚に対してそれらの最も高いクラス / 2を増加させる。 材料にPCS(ノートPC、携帯電話など。ただし防具埋め込みのものは除外)が使用されていた場合、知識に対してPCSの最も高いクラス / 2を増加させる。 :材料に防具が使用されていた場合、初期スキルに生命力が追加。 生命力のスキルランクは使用されたArmorの最も高いAC / 3になる。 これらは自己認識能力の判定の後に処理される。 追加の腕部・脚部・尾部・砲塔を獲得する判定は、ベーススキル / 2の回数だけ以下の操作を繰り返す。 1 / 3の確率で新たなパーツを獲得 1 / 2で腕が増える 腕が増えなければ1 / 5で頭が増える 頭が増えなければ1 / 5で尻尾が増える 尻尾も増えなければ砲台が増える 新たなパーツの獲得が発生しなかった場合、1 / 5の確率で新たなスキルを獲得するか、ステータスが1増加する。 上記1 / 5も外した場合、ステータスが1増加する。 ---- }}}