「解析情報」の編集履歴(バックアップ)一覧はこちら

解析情報」(2013/10/15 (火) 01:07:20) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#div(color=#000000){{{ *解析情報 ---- 具体的なソースコードの内容など、重大なネタバレを含む情報のまとめ。 情報の正確性については保証しない。 #contents(fromhere=true) **ダイスとスキルロール ---- GearheadのダイスシステムはEarthdawnというTRPGが元ネタらしい。 ***ダイス Function Dice (rpgdice.pp) 最大値が出るともう一度ダイスを振り、その値を加算できる。 ダイスの目が最大値以外を出すまで繰り返す。 ***ロールステップ Function RollStep (rpgdice.pp) ある値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) ***スキル値 Function SkillValue (ability.pp) ロールステップに代入する値として使われる。(ステータス + 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をペナルティとして減算する **ステータスの上昇に必要なスキルレベル ---- Function StatCanBeAdvanced (pcaction.pp) ***計算式 -CIV = 何回そのステータスを上げたか -min_rank = ( CIV / 2 ) + 6 -num_required = ( CIV + 3 ) / 2 -num_required(修正後) = num_required - ( スキルのレベル / min_rank) 以上の計算をステータスに関連したすべてのスキルで行い、num_requiredが0以下になったらステータスを上げられる。 例1) 知識を上げたことが無く、メック工学が6で他の知識関連スキルが0の場合 CIV = 0 min_rank = 6 num_required = 1 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 1 - ( 6 / 6 ) = 0 となり、ステータスを上げられる。 例2) 知識を1回上げたことがあり、メック工学とロボット工学が6で他の知識関連スキルが0の場合 CIV = 1 min_rank = 6 num_required = 2 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 2 - ( 6 / 6 ) = 1 num_required = num_required - ( ロボット工学スキルのレベル / min_rank ) = 1 - ( 6 / 6 ) = 0 となり、ステータスを上げられる。 例3) 知識を1回上げたことがあり、メック工学が12で他の知識関連スキルが0の場合 CIV = 1 min_rank = 6 num_required = 2 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 2 - ( 12 / 6 ) = 0 となり、ステータスを上げられる。 **メックの基本ステータス ---- Function MechaManeuver (damage.pp) Function MechaTargeting (damage.pp) Function MechaSensorRating (damage.pp) 他 ***MV・TRの計算式 最初に[[メックのタイプ]]に応じてMVとTRに修正が与えられる。 -ジャイロが存在しなければ MV -6 -メインセンサーが存在しなければ MV -1, TR -5 インストールされたアイテムがあればその重量ペナルティを計算する。 インストールされたアイテムによるペナルティ = 7.5 tごとに-1 装備や所持品のアイテムの重量が0を超えればまずペナルティとして-1を加え、次にその重量ペナルティを計算する。 装備や所持品によるペナルティ = (7.5 + 0.5 * メックのSize) tごとに-1 ジャイロスコープがあればクラスの値分をMVに加算する。 照準コンピュータがあればクラスの値分をTRに加算する。 ヘッドコクピットを持つメックは+1を加える。 Biotech属性のメックは+1を加える。 MV・TRが-6以下なら-6に、0以上なら0に修正する。 この時点で-6から0の数値になるが、重量やその他のペナルティなどで-7以下の値になることはある。 例1) Size 8のメックに10.0 tのアイテムをインストールした場合 アイテムのインストールで10.0 t > 7.5 t よってMVとTRが-1される。 例2) Size 8のメックにホルダーをインストールし、そこに10.0 tのアイテムを装備した場合 ホルダーのインストールで0.5 t < 7.5 t 装備したアイテムで10.0 t < 7.5 + (8 / 2) = 11.5 t よってMVとTRのペナルティは発生しない。 ***SEの計算式 -センサーが存在しなければ-8になる -センサーがあればSE = センサーのクラス - 7 -センサーが頭部に積まれている場合はさらに+3される これらの計算にはメックの構成で一番上にあるものが使われる。 **スキルトレーナー ---- Procedure OpenSchool (services.pp) ***CostFactor 1 XPあたりの基本額(CostFactor)は CostFactor = 250 ***友好度のボーナス トレーナーとの友好関係によって得られる経験値が増加する。友好度は-100から+100の間で変動する。 友好度ボーナス = XP * (400 + 友好度) / 400 ***知識のボーナス・ペナルティ 知識が14以上でボーナスが、知識が8以下でペナルティが加えられる。 ボーナス = XP * (100 + (知識 - 14 + 1) * 5) / 100 ペナルティ = XP * (100 - (8 - 知識 + 1) * 10) / 100 **仲間 (Lancemate) ---- ***仲間の最大数 Function LancematePoints (ability.pp) Procedure AttemptJoin (arenascript.pp ) Function LancematesPresent (interact.pp) まず現在仲間にしているキャラクターのポイントの合計(LancematesPresent)を計算する。 LancematesPresentは -メックまたはCIDを持つキャラクター(NPCなど) = 2 -CIDを持たないキャラクター(モンスターなど) = 1 としてその合計を計算する。 次にプレイヤーキャラクターのLancematePointsを計算する。 LancematePoints = (@のリーダーシップ + 魅力 + (有名 / 10)) / 4 LancematePoints >= LancematesPresent + 2であれば仲間にすることが可能。 ***経験値のペナルティ Procedure ProcessXPV (arenascript.pp) 仲間の数 > (リーダーシップ + 1) / 2であれば 修正後のXP = XP / (仲間の数 - (リーダーシップ + 1) / 2 ) ただしXP < 1であればXP = 1に修正する。 **ロボット工学スキル ---- Function UseRobotics (skilluse.pp) ***ビルドポイント(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増加する。 **貫通攻撃 ---- Procedure ProcessAttackEffect (effects.pp) 貫通初期値 ・攻撃対象がドアや壁以外の、メックもしくはキャラクターだった場合、貫通初期値は(攻撃側ロール-防御側ロール)/5となる。 ・攻撃対象がそうではなかった場合、つまりドアや壁であった場合、かつタレント:壊し屋を取得している場合、貫通初期値は2となる。 ・攻撃対象がドアや壁であり、タレント:壊し屋を取得していない場合、貫通初期値は0となる。 貫通副効果/増減等 ・貫通が6を超えており、近接攻撃(格闘及び白兵)であった場合、貫通は6にまで下げられ、下がった数値だけ攻撃回数が増える。 ・貫通が0より多く、エネルギー兵器以外の白兵武器攻撃であった場合、5分の1の確率で攻撃回数が1増え貫通が1減る。この操作は貫通が0になるか5分の1を外すまで繰り返される。 ・貫通が0より多く、エネルギー白兵武器による攻撃の場合、6分の1の確率で攻撃回数が1増え貫通が1減る。この操作は貫通が0になるか6分の1を外すまで繰り返される。 ・貫通が2より多く、格闘攻撃の場合、4分の3の確率で攻撃回数が1増え貫通が1減る。この操作は貫通が2以下になるか4分の3を外すまで繰り返される。 ・格闘攻撃で、かつタレント:カンフーを取得している場合、武器無使用による貫通ペナルティー2点を相殺し、さらに1点を追加する。 ・格闘攻撃で、タレント:カンフーを取得していない場合、武器無使用のため貫通は2減る。なおこの操作によって貫通がマイナスの値をとった場合、そのマイナス分DCも減る。この時DCがマイナスになることはなく、最低値は1。 ・エネルギー白兵武器による攻撃の場合、貫通は2増える。 ・武器にARMORPIERCINGが付与されている場合、貫通は2増える。 ・武器にARMORIGNOREが付与されている場合、貫通は12増える。 ・狙い撃ち不可能な攻撃(同時発射数2以上,Swarm,Hyper,範囲攻撃系)の場合、貫通は2減る。 ・狙い撃ち不可能な攻撃ではない場合、急所狙いスキルロール-防御側ロール(最低25保障)の判定が発生し、この判定がプラスならば、貫通は1増え、さらに(急所狙いスキルロール-防御側ロール)/5だけ貫通が増える。 (狙い撃ち不可能な攻撃ではない場合、急所狙いスキル及びタレント:スナイパー所持によるDCボーナスの計算がこの間に行われる。 急所狙いスキルランクの2分の1切り捨てがDCに加算。スナイパータレントがあれば急所狙いスキルランクだけDCに加算。スナイパーはあくまでDCを上げるタレント) ・狙い撃ち不可能な攻撃ではなく、タレント:解剖学を取得しており、かつ攻撃対象が肉体を持つ場合、貫通は1増える。 ・タレント:鋼の肉体を取得しているキャラクターに対する攻撃の場合、貫通は2減る。 ・タレント:隠れ撃ちを取得している(そして条件を満たした)メックに対する攻撃の場合、貫通は3減る。 貫通1点につきArmorを25%貫通する。貫通4点でArmor一枚を完全貫通。 一枚のArmorを完全貫通し、なお貫通が残っていたら、Armorの内側へのダメージが(余剰貫通)*20%増加する。 (Armorを持たない対象には貫通減衰が発生せず、(貫通)*20%のダメージ増加) **武術スキル ---- FunkyMartialArts (effects.pp) MartialArts(武術)のボーナス計算方法と技名の生成方法 - 武術が 5 未満だと MartialArts ボーナス無し。 - 武術 2 毎に 2/3 の確率でテクニックポイント(TP)を 1 追加。 - 武術が奇数だったら 1/2 の確率で TP を 1 追加。 - メンタルが 10 + 1d20 以上だったらメンタルを 1 消費して TP を 1 追加。&br()&br() - TP が 0 になったら属性付加の判定ループをやめる。属性は複数付く事もある。 <属性付加の判定ループここから> + 1d10 の出た目に応じて TP を消費し、消費TP は 2, 2, 3, 5, 3, 3, 4, 2, 1, 3 。 + TP が足りれば出目に応じて、Heroic(Heroicが11以上必須),Zen(Pragmaticが-11以下必須),'SCATTER','HYPER','ARMORPIERCING','BRUTAL','STONE','HAYWIRE','STUN',Snake の属性が付く。&br()技名の Adjective候補か Noun候補のどちらか片方(1/2 のランダム)だけに FMAFT_A*、FMAFT_N* を追加。* は出目。 + TP が足らない場合と、Heroic や Pragmatic の条件を満たさない場合は、TP を 1 消費し、FXDice に 1 追加。 <属性付加の判定ループここまで>&br() - 技名の基本部分は、&br()手を使った場合、4/5 の確率で FMA_Name_Punch_*&br()足を使った場合、4/5 の確率で FMA_Name_Kick_*&br()その他の部位もしくは確率が外れた場合は FMA_Name_Misc_*&br()* は 1?10 でランダム。&br()&br() - 技名の基本部分を1単語毎に分離して技名を作る。 <技名のループここから> + 切り出した単語が %A だった場合:&br()技名の Adjective候補が有れば、どれか1つを選んで技名に追加。&br()使った Adjective候補は候補から削除。&br()技名の Adjective候補が無ければ FMAFT_MISCA* が付く。* は 1?5 でランダム。 + 切り出した単語が %N だった場合:&br()技名の Noun候補が有れば、どれか1つを選んで技名に追加。&br()使った Noun候補は候補から削除。&br()技名の Noun候補が無ければ FMAFT_MISCN* が付く。* は 1?5 でランダム。 + 切り出した単語が上記以外の場合:&br()そのまま技名に追加。 <技名のループここまで>&br() - Heroic は FXDice に Heroic値/5 が追加。 - Zen は FXSkill に Pragmaticの絶対値/10 が追加。 - Snake はパリィとブロックが不可。 例: 手で攻撃、武術19、メンタル50、実用主義的48、の場合。 - TP を計算する。 + 2/3 の確率を 9回くじ引きして TP を計算。TP が 6 になったと仮定する。 + 武術が奇数なので 1/2 の確率をくじ引き、当たりだったと仮定する。TP が 7 になる。 + 10 + 1d20 が 21 だったと仮定する。メンタルが 49 になって TP が 8 になる。 - 属性付加を判定する。 <属性付加の判定ループ> + 1d10 が 6 だったと仮定する。&br()TP を 3 消費して BRUTAL属性が付く。&br()1/2 のくじ引き、Adjective候補に当たったとすると「粉砕の」。&br()残り TP は 5。 + 1d10 が 5 だったと仮定する。&br()TP を 3 消費して ARMORPIERCING属性が付く。&br()1/2 のくじ引き、Noun候補に当たったとすると「致命傷」。&br()残り TP は 2。 + 1d10 が 2 だったと仮定する。&br()Pragmaticが -48 なので TP を 2 消費して Zen属性が付く。&br()1/2 のくじ引き、Adjective候補に当たったとすると「怒りの」。&br()残り TP は 0。 <属性付加の判定ループ終わり> - 技名の基本部分を選択する。 + 手で攻撃なので 4/5 の確率でくじ引きして当選したと仮定する。&br()ランダムが 9 だったと仮定する。&br()技名の基本部分は「%N の究極 %A 突き」になる。 - 技名を決める。 <技名のループ> + 「%N」なので Noun候補から「致命傷」を選択。&br()Noun候補から「致命傷」を外す。 + 「の究極」なので「の究極」。 + 「%A」なので Adjective候補からランダムに選んで「怒りの」を選んだと仮定する。&br()Adjective候補から「怒りの」を外す。 + 「突き」なので「突き」。 + 余った Adjective候補は使われない。 <技名のループ終わり> - 追加ボーナスを計算する。 + Zen属性で実用主義的48 なので FXSkill に 4 がボーナス。 - 結果、BRUTAL, ARMORPIERCING, FXSkill+4, 「致命傷の究極怒りの突き」。 備考: 技名の基本部分は「%N が %N の %A %A 技」みたいに複数の %N や %A を使ってもよいらしい? ---- }}}
#div(color=#000000){{{ *解析情報 ---- 具体的なソースコードの内容など、重大なネタバレを含む情報のまとめ。 情報の正確性については保証しない。 #contents(fromhere=true) **ダイスとスキルロール ---- GearheadのダイスシステムはEarthdawnというTRPGが元ネタらしい。 ***ダイス Function Dice (rpgdice.pp) 最大値が出るともう一度ダイスを振り、その値を加算できる。 ダイスの目が最大値以外を出すまで繰り返す。 ***ロールステップ Function RollStep (rpgdice.pp) ある値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) ***スキル値 Function SkillValue (ability.pp) ロールステップに代入する値として使われる。(ステータス + 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をペナルティとして減算する **ステータスの上昇に必要なスキルレベル ---- Function StatCanBeAdvanced (pcaction.pp) ***計算式 -CIV = 何回そのステータスを上げたか -min_rank = ( CIV / 2 ) + 6 -num_required = ( CIV + 3 ) / 2 -num_required(修正後) = num_required - ( スキルのレベル / min_rank) 以上の計算をステータスに関連したすべてのスキルで行い、num_requiredが0以下になったらステータスを上げられる。 例1) 知識を上げたことが無く、メック工学が6で他の知識関連スキルが0の場合 CIV = 0 min_rank = 6 num_required = 1 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 1 - ( 6 / 6 ) = 0 となり、ステータスを上げられる。 例2) 知識を1回上げたことがあり、メック工学とロボット工学が6で他の知識関連スキルが0の場合 CIV = 1 min_rank = 6 num_required = 2 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 2 - ( 6 / 6 ) = 1 num_required = num_required - ( ロボット工学スキルのレベル / min_rank ) = 1 - ( 6 / 6 ) = 0 となり、ステータスを上げられる。 例3) 知識を1回上げたことがあり、メック工学が12で他の知識関連スキルが0の場合 CIV = 1 min_rank = 6 num_required = 2 num_required = num_required - ( メック工学スキルのレベル / min_rank ) = 2 - ( 12 / 6 ) = 0 となり、ステータスを上げられる。 **メックの基本ステータス ---- Function MechaManeuver (damage.pp) Function MechaTargeting (damage.pp) Function MechaSensorRating (damage.pp) 他 ***MV・TRの計算式 最初に[[メックのタイプ]]に応じてMVとTRに修正が与えられる。 -ジャイロが存在しなければ MV -6 -メインセンサーが存在しなければ MV -1, TR -5 インストールされたアイテムがあればその重量ペナルティを計算する。 インストールされたアイテムによるペナルティ = 7.5 tごとに-1 装備や所持品のアイテムの重量が0を超えればまずペナルティとして-1を加え、次にその重量ペナルティを計算する。 装備や所持品によるペナルティ = (7.5 + 0.5 * メックのSize) tごとに-1 ジャイロスコープがあればクラスの値分をMVに加算する。 照準コンピュータがあればクラスの値分をTRに加算する。 ヘッドコクピットを持つメックは+1を加える。 Biotech属性のメックは+1を加える。 MV・TRが-6以下なら-6に、0以上なら0に修正する。 この時点で-6から0の数値になるが、重量やその他のペナルティなどで-7以下の値になることはある。 例1) Size 8のメックに10.0 tのアイテムをインストールした場合 アイテムのインストールで10.0 t > 7.5 t よってMVとTRが-1される。 例2) Size 8のメックにホルダーをインストールし、そこに10.0 tのアイテムを装備した場合 ホルダーのインストールで0.5 t < 7.5 t 装備したアイテムで10.0 t < 7.5 + (8 / 2) = 11.5 t よってMVとTRのペナルティは発生しない。 ***SEの計算式 -センサーが存在しなければ-8になる -センサーがあればSE = センサーのクラス - 7 -センサーが頭部に積まれている場合はさらに+3される これらの計算にはメックの構成で一番上にあるものが使われる。 **スキルトレーナー ---- Procedure OpenSchool (services.pp) ***CostFactor 1 XPあたりの基本額(CostFactor)は CostFactor = 250 ***友好度のボーナス トレーナーとの友好関係によって得られる経験値が増加する。友好度は-100から+100の間で変動する。 友好度ボーナス = XP * (400 + 友好度) / 400 ***知識のボーナス・ペナルティ 知識が14以上でボーナスが、知識が8以下でペナルティが加えられる。 ボーナス = XP * (100 + (知識 - 14 + 1) * 5) / 100 ペナルティ = XP * (100 - (8 - 知識 + 1) * 10) / 100 **仲間 (Lancemate) ---- ***仲間の最大数 Function LancematePoints (ability.pp) Procedure AttemptJoin (arenascript.pp ) Function LancematesPresent (interact.pp) まず現在仲間にしているキャラクターのポイントの合計(LancematesPresent)を計算する。 LancematesPresentは -メックまたはCIDを持つキャラクター(NPCなど) = 2 -CIDを持たないキャラクター(モンスターなど) = 1 としてその合計を計算する。 次にプレイヤーキャラクターのLancematePointsを計算する。 LancematePoints = (@のリーダーシップ + 魅力 + (有名 / 10)) / 4 LancematePoints >= LancematesPresent + 2であれば仲間にすることが可能。 ***経験値のペナルティ Procedure ProcessXPV (arenascript.pp) 仲間の数 > (リーダーシップ + 1) / 2であれば 修正後のXP = XP / (仲間の数 - (リーダーシップ + 1) / 2 ) ただしXP < 1であればXP = 1に修正する。 **ロボット工学スキル ---- Function UseRobotics (skilluse.pp) ***ビルドポイント(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増加する。 **貫通 (Measure of Success, MOS) ---- Procedure ProcessAttackEffect (effects.pp) ***貫通の初期値 ・攻撃対象がドアや壁以外のメックまたはキャラクターだった場合、初期値は ( 攻撃側ロール - 防御側ロール ) / 5 となる。 ・攻撃対象がドアや壁でありタレント:壊し屋を取得している場合、初期値は 2 となる。 ・攻撃対象がドアや壁でありタレント:壊し屋を取得していない場合、初期値は 0 となる。 ***白兵戦・格闘攻撃 貫通が 6 を超えており、近接攻撃(格闘及び白兵)であった場合、貫通は 6 にまで下げられ、下がった数値だけ攻撃回数が増える。 貫通が 0 より多く、エネルギー兵器以外の白兵武器攻撃であった場合、 1 / 5 の確率で攻撃回数が 1 増えて貫通が 1 減る。 この操作は貫通が 0 になるか 1 / 5 を外すまで繰り返される。 貫通が 0 より多く、エネルギー白兵武器による攻撃の場合、 1 / 6 の確率で攻撃回数が 1 増えて貫通が 1 減る。 この操作は貫通が 0 になるか 1 / 6 を外すまで繰り返される。 貫通が 2 より多く、格闘攻撃の場合、 3 / 4 の確率で攻撃回数が 1 増えて貫通が 1 減る。 この操作は貫通が 2 以下になるか 3 / 4 を外すまで繰り返される。 格闘攻撃かつタレント:カンフーを取得している場合、武器無使用による貫通ペナルティ 2 点を相殺し、さらに 1 点を追加する。 格闘攻撃かつタレント:カンフーを取得していない場合、武器無使用のため貫通は 2 減る。 なおこの操作によって貫通がマイナスの値をとった場合、そのマイナス分DCも減る。この時DCがマイナスになることはなく、最低値は 1 。 エネルギー白兵武器による攻撃の場合、貫通は 2 増える。 ***武器の属性 武器にArmorPiercingが付与されている場合、貫通は 2 増える。 武器にArmorIgnoreが付与されている場合、貫通は 12 増える。 ***急所狙いスキル 狙い撃ち不可能な攻撃(同時発射数 2 以上, Swarm, Hyper, 範囲攻撃系)の場合、貫通は 2 減る。 狙い撃ち不可能な攻撃ではない場合、 ( 急所狙いスキルロール - 防御側ロール ) の判定が発生する(最低 25 保障)。 この判定がプラスならば貫通は 1 増え、さらに ( 急所狙いスキルロール - 防御側ロール ) / 5 だけ貫通が増える。 狙い撃ち不可能な攻撃ではない場合、急所狙いスキル及びタレント:スナイパーによるDCボーナスの計算がこの間に行われる。 -急所狙いスキルランクの 1 / 2 切り捨てがDCに加算される。 -スナイパーがあれば急所狙いスキルランクがそのままDCに加算される。 スナイパーはあくまでDCを上げるタレントである。 ***タレント 狙い撃ち不可能な攻撃ではなく、タレント:解剖学を取得しており、かつ攻撃対象が肉体を持つ場合、貫通は 1 増える。 タレント:鋼の肉体を取得しているキャラクターに対する攻撃の場合、貫通は 2 減る。 タレント:隠れ撃ちを取得している(そして条件を満たした)メックに対する攻撃の場合、貫通は 3 減る。 ***貫通とArmor 貫通 1 点につきArmorを 25% 貫通する。貫通 4 点でArmor一枚を完全貫通。 一枚のArmorを完全貫通してなお貫通が残っていたら、Armorの内側へのダメージが ( 余剰貫通 ) * 20% 増加する。 (Armorを持たない対象には貫通の減衰が発生せず、 ( 貫通 ) * 20% のダメージ増加) **武術スキル ---- FunkyMartialArts (effects.pp) MartialArts(武術)のボーナス計算方法と技名の生成方法 - 武術が 5 未満だと MartialArts ボーナス無し。 - 武術 2 毎に 2/3 の確率でテクニックポイント(TP)を 1 追加。 - 武術が奇数だったら 1/2 の確率で TP を 1 追加。 - メンタルが 10 + 1d20 以上だったらメンタルを 1 消費して TP を 1 追加。&br()&br() - TP が 0 になったら属性付加の判定ループをやめる。属性は複数付く事もある。 <属性付加の判定ループここから> + 1d10 の出た目に応じて TP を消費し、消費TP は 2, 2, 3, 5, 3, 3, 4, 2, 1, 3 。 + TP が足りれば出目に応じて、Heroic(Heroicが11以上必須),Zen(Pragmaticが-11以下必須),'SCATTER','HYPER','ARMORPIERCING','BRUTAL','STONE','HAYWIRE','STUN',Snake の属性が付く。&br()技名の Adjective候補か Noun候補のどちらか片方(1/2 のランダム)だけに FMAFT_A*、FMAFT_N* を追加。* は出目。 + TP が足らない場合と、Heroic や Pragmatic の条件を満たさない場合は、TP を 1 消費し、FXDice に 1 追加。 <属性付加の判定ループここまで>&br() - 技名の基本部分は、&br()手を使った場合、4/5 の確率で FMA_Name_Punch_*&br()足を使った場合、4/5 の確率で FMA_Name_Kick_*&br()その他の部位もしくは確率が外れた場合は FMA_Name_Misc_*&br()* は 1?10 でランダム。&br()&br() - 技名の基本部分を1単語毎に分離して技名を作る。 <技名のループここから> + 切り出した単語が %A だった場合:&br()技名の Adjective候補が有れば、どれか1つを選んで技名に追加。&br()使った Adjective候補は候補から削除。&br()技名の Adjective候補が無ければ FMAFT_MISCA* が付く。* は 1?5 でランダム。 + 切り出した単語が %N だった場合:&br()技名の Noun候補が有れば、どれか1つを選んで技名に追加。&br()使った Noun候補は候補から削除。&br()技名の Noun候補が無ければ FMAFT_MISCN* が付く。* は 1?5 でランダム。 + 切り出した単語が上記以外の場合:&br()そのまま技名に追加。 <技名のループここまで>&br() - Heroic は FXDice に Heroic値/5 が追加。 - Zen は FXSkill に Pragmaticの絶対値/10 が追加。 - Snake はパリィとブロックが不可。 例: 手で攻撃、武術19、メンタル50、実用主義的48、の場合。 - TP を計算する。 + 2/3 の確率を 9回くじ引きして TP を計算。TP が 6 になったと仮定する。 + 武術が奇数なので 1/2 の確率をくじ引き、当たりだったと仮定する。TP が 7 になる。 + 10 + 1d20 が 21 だったと仮定する。メンタルが 49 になって TP が 8 になる。 - 属性付加を判定する。 <属性付加の判定ループ> + 1d10 が 6 だったと仮定する。&br()TP を 3 消費して BRUTAL属性が付く。&br()1/2 のくじ引き、Adjective候補に当たったとすると「粉砕の」。&br()残り TP は 5。 + 1d10 が 5 だったと仮定する。&br()TP を 3 消費して ARMORPIERCING属性が付く。&br()1/2 のくじ引き、Noun候補に当たったとすると「致命傷」。&br()残り TP は 2。 + 1d10 が 2 だったと仮定する。&br()Pragmaticが -48 なので TP を 2 消費して Zen属性が付く。&br()1/2 のくじ引き、Adjective候補に当たったとすると「怒りの」。&br()残り TP は 0。 <属性付加の判定ループ終わり> - 技名の基本部分を選択する。 + 手で攻撃なので 4/5 の確率でくじ引きして当選したと仮定する。&br()ランダムが 9 だったと仮定する。&br()技名の基本部分は「%N の究極 %A 突き」になる。 - 技名を決める。 <技名のループ> + 「%N」なので Noun候補から「致命傷」を選択。&br()Noun候補から「致命傷」を外す。 + 「の究極」なので「の究極」。 + 「%A」なので Adjective候補からランダムに選んで「怒りの」を選んだと仮定する。&br()Adjective候補から「怒りの」を外す。 + 「突き」なので「突き」。 + 余った Adjective候補は使われない。 <技名のループ終わり> - 追加ボーナスを計算する。 + Zen属性で実用主義的48 なので FXSkill に 4 がボーナス。 - 結果、BRUTAL, ARMORPIERCING, FXSkill+4, 「致命傷の究極怒りの突き」。 備考: 技名の基本部分は「%N が %N の %A %A 技」みたいに複数の %N や %A を使ってもよいらしい? ---- }}}

表示オプション

横に並べて表示:
変化行の前後のみ表示: