目次
左上の「<<」をクリックすることで目次が左に表示されます。お手数をおかけします。
はじめに
このページには、プログラム内部を見ることによって得た解析情報が含まれます。ご注意ください。
解析情報は正しいとは限りません。デバッグされてないプログラムと同じ、あやふやな情報です。
ゲーム内での検証を積み重ねて正しい情報に近づけていく必要があります。ぜひご協力ください。
主能力・スキルレベルの上昇
主能力・スキルレベルの上昇はelonaから随分仕様が変化している。
バージョン
EA 23.85 Nightly
ソースコード(外部リンク)
ElementContainer.ModExp - Elin Decompiled Documentation 268行目から
計算式
ModExp(主能力orスキルID, 経験値)
・信仰心やキャラレベルの上昇にも使用されているが、本項では主能力とスキルについてのみ記す。
(1)経験値の補正計算
経験値 >= 0 ならば 補正後経験値 = 経験値 x 潜在能力 / (100 + ベーススキルレベル x 25) ただし潜在能力はどんなに小さくても10として計算
・スキルレベルが高いほど上昇しにくい。
補正後経験値の小数部分 の確率で補正後経験値に +1 補正後経験値の端数を切り捨てる
・補正後経験値が非常に小さくなったとき、切り捨ての処理でスキルレベルが0にならないための対策処理
[例]補正後経験値が1.6ならば、60%の確率で2、40%の確率で1となる。
スキル経験値 += 補正後経験値
(2)関連主能力の上昇
スキルに関連主能力があるならば ModExp(関連主能力, 補正後経験値 x 関連主能力係数 / 100) を行う ただし経験値は最小でも1
(3)スキルの上昇
スキル経験値 >= 1000 ならば スキルを1上昇
スキル経験値 -= 1000 スキル経験値 /= 2 ただし経験値は最大でも500
・スキルレベルや主能力は1度の処理で1しか上がらない。
プラス潜在能力 > 0 ならば プラス潜在能力 -= プラス潜在能力 / 4 + 5 ~ 9
・プラス潜在能力とはベース潜在能力ではない方の値。レベルが上がるとおよそ1/4下がる。
プラス潜在能力 < 0 ならば プラス潜在能力 += プラス潜在能力 / 4 + 5 ~ 9
(4)スキルの下降
スキル経験値 < 0 ならば スキルを1下降
スキル経験値 += 1000 ただし経験値は最小でも500
注意すべき点
・ModExpに負の経験値が入力されたとき、関連主能力に+1の経験値が入る
[例]神の肉を食べると ModExp(信仰,-1000) されるが、このとき同時に意思に+1の経験値が入る
・関連主能力の経験値が2重に補正されている
[例]戦術のスキルレベルが高くなると、筋力に入る経験値が減る。
elonaに比べ、elinで食事が重要になっているのはここの仕様のため。
魔法のスキル経験値
魔法スキルレベルもModExpを用いるが、そこに入力される値はやや複雑になっている。
バージョン
EA 23.88 Nightly
ソースコード(外部リンク)
Chara.UseAbility - Elin Decompiled Documentation
5211行目から
ElementContainer.GetSpellExp - Elin Decompiled Documentation
462行目から
計算式
魔法経験値 = 消費MP x 5 x (100 + 古き狐の血統フラグ x 30) / 100 + 10
・複数人にバフをかけたときは人数分かけ算する。
・消費MPはマナ運用や節魔スタンスの計算をする前の値を用いる。
関連主能力 >= 魔法レベル ならば (100 + (関連主能力 - 魔法レベル) * 5) / 100 倍
関連主能力 < 魔法レベル ならば 100 / (100 + (魔法レベル - 関連主能力) x 25) 倍
・主能力は装備等の影響を除いたベース主能力の値を用いる。
・関連主能力が十分高くないと魔法レベルは上がりにくい。
[例]
ベース魔力100・魔法の矢120ならば経験値1/6
ベース魔力200・魔法の矢120ならば経験値5倍
ModExp(魔法ID, 魔法経験値) を行う
・ほとんどの魔法の関連主能力係数は5(%)
・低いレベルの魔法を使うと関連主能力にも経験値が入りやすい。
属性モンスターの抽選
キャラIDの抽選と、属性付与の抽選は別個で行われている。
バージョン
EA 23.88 Nightly
データベース(外部リンク)
SourceChara.xlsx - Elin Modding Wiki
SourceGame.xlsx - Elin Modding Wiki
表
| 名前 | 基本レベル | 火炎 | 冷気 | 電撃 | 暗黒 | 幻惑 | 毒 | 地獄 | 轟音 | 神経 | 神聖 | 混沌 | 魔法 | 特記 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ハウンド | 12 | x1 | x1 | x1 | x1.25 | x1.75 | x1.75 | x2 | ネフィアには通常出現しない | |||||
| 柴蟹 | 18 | x1 | x1 | x1 | x2 | 名前が変化しないので判別困難 | ||||||||
| 古代ガニ | 21 | x1 | x1 | x1 | x2 | |||||||||
| ドレイク | 31 | x1 | x1 | x1 | ||||||||||
| ドラゴン | 40 | x1 | x1 | x1 | x1.25 | x1.75 | x2 |
※触手・ファンネルは召喚による生成なので省略した。
ソースコード(外部リンク)
キャラIDの抽選
Zone.SpawnMob - Elin Decompiled Documentation
2570行目から
SpawnList.Select - Elin Decompiled Documentation
89行目から
属性付与の抽選
Chara.OnCreate - Elin Decompiled Documentation 1356行目から
キャラIDの抽選の計算式
num:キャラIDを抽選するためのレベル。本項では抽選レベルと呼ぶ。
num2:キャラを実際に生成するレベル。
抽選レベル = 指定がなければ危険度レベル
すくつ補正が有効ならば 抽選レベル = ((危険度レベル - 1)を50で割った余り + 5) x 150 / 100
・50階層周期で抽選レベルは元に戻る。最大抽選レベルは81。
キャラ基本レベル×属性倍率 ≒ 抽選用レベル ならばキャラIDをリストに入れ抽選
キャラレベル補正を付与
キャラを生成する
属性付与の抽選の計算式
genlv:抽選レベル。Zone.SpawnMobでのnumの値が使われる。
属性モンスターを生成するとき キャラ基本レベル×属性倍率 < 抽選レベル ならば属性IDをリストに入れ抽選
リストに入れるものがなければデータベース1つ目の属性を選ぶ
属性倍率によるレベル補正を付与
注意すべき点
・危険度レベルが42のとき
21 x 2 ≒ 42 だから古代ガニが生成リストに入るが、
21 x 2 < 42 を満たさないので混沌の古代ガニは生成されず、燃える古代ガニ等が生成されてしまう。
・カオスドラゴンのレベルは 40 x 2 = 80 なのですくつで出現するのは50の倍数階のみ。
地図の危険度
筆記道具でクラフトする、ランダムネフィアの生成用巻物。
バージョン
EA 23.85 Nightly
ソースコード(外部リンク)
CraftUtil.MixIngredients - Elin Decompiled Documentation 205行目から
計算式
地図の危険度 = (1 + 完成品の品質 + 完成品の珍しさ) x 宝石1の倍率 x 宝石2の倍率 + 1 ただし上限は 名声 / 100 + 11
・布の品質を上げたり、金(珍しさ30)や真珠(珍しさ20)を用いると大幅に危険度レベルを上げることができる。
| 宝石 | 宝石の倍率 |
|---|---|
| なし | 1 |
| 金・銀・真珠 | 3 |
| ラピス・白金・オニキス・オパール・コバルト・翡翠・ターコイズ | 4 |
| トパーズ・アクアマリン・サファイア・エメラルド | 5 |
| ダイヤ・ルビナス | 7 |
・宝石の倍率は硬度で決まる。
[計算例]
品質Lv.2(品質10)のカシミアの生地+ラピスならば
危険度 = (1 + 10 + 0) x 4 + 1 = 45
品質なし(品質0)の紙の生地+真珠+真珠ならば
危険度 = (1 + 0 + 20) x 3 x 3 + 1 = 190
マナ運用エンチャント
それはあなたのマナの消費を抑える。
バージョン
EA 23.85 Nightly
ソースコード(外部リンク)
Chara.UseAblity - Elin Decompiled Documentation 5219行目から
計算式
消費MPを
100 / (100 + 3 x √(10 x エンチャント強度))
倍する。
グラフ
https://www.desmos.com/calculator/jbie2oqu0k
・エンチャント強度が上がるにつれ極端に効果の上昇が鈍くなるので、1ヵ所だけ装備しておくと効果的。
・強度100なら100%カット...のような虫のいい話はないので注意しよう。
・節魔フィートと効果は乗算される。
種の均一化
お任せ農業で実行される種の+レベルの均一化。
バージョン
EA 23.88 Nightly
ソースコード(外部リンク)
GrowSystem.EqualizePlants - Elin Decompiled Documentation 294行目から
計算式
自分のマスの植物を取得する
自分のマスの左・下・上・右の順に以下の処理を行う
隣のマスの植物を取得し、その種のデータを取得 植物がなければ、その場所に蒔かれた種のデータを取得
隣の種のデータがあり、自分のマスの植物と隣のマスの植物が等しく、種のレベルが自分以上ならば 自分のマスの植物の種のデータを隣の種のデータに上書きする
・EqualizePlants自体は正常に動作している。
・隣の植物は成長抑制していてもOK。
種のレベルアップ
植物が種になるときのレベルアップの計算。
バージョン
EA 23.88 Nightly
ソースコード(外部リンク)
TraitSeed.MakeSeed - Elin Decompiled Documentation 73行目から
計算式
PCの農業レベル - 種のレベル が十分大きい場合のみ簡略に記す。
(1)お任せ農業でないなら 必ずレベルアップ判定し、最大10レベル上昇
(2)お任せ農業なら 1/3の確率でレベルアップ判定し、最大3レベル上昇
・お任せ農業のときも、PCの農業レベル依存で判定される。
注意すべき点
・お任せ農業で種を生成するとき、畑の各マスごとに EqualizePlants(均一化) -> MakeSeed(レベルアップ) の順に処理する。
畑の各マスは
| 4 | 8 | 12 | 16 |
| 3 | 7 | 11 | 15 |
| 2 | 6 | 10 | 14 |
| 1 | 5 | 9 | 13 |
のような順でたどるので、一度の種化で左下から右上まで均一化→レベルアップが次々と連鎖して処理される。
お任せ農業のとき左下のレベルが低く、右上のレベルが高くなるのはこのため。均一化の処理のはずが却ってバラバラになりやすい。
| B | |||
| A |
・逆に言うと左下から右上までL字型の細長い畑を作れば、一度の収穫で大きくレベルアップを図れる。
種になったときに、左下(A)と右上(B)の種を交換してやると自分の農業レベルにすばやく追いつく。
結果的に農業レベルキャップによりレベルがまとまりやすい。
肉切り包丁
屠殺によって、ペット・住民・家畜を消滅させ肉を得ることができる。
バージョン
EA 23.85 Nightly
ソースコード(外部リンク)
Card.SpawnLoot - Elin Decompiled Documentation 4467行目から
計算式
霜降り肉になる確率 = 10 + √解剖学 (%) ただし最大30%
・確率の上昇はかなり体感しにくい。
・解剖学スキル400で最大に達する。
肉の生成個数 = rndhalf(9 + √(解剖学 / 10))
| 解剖学スキル | 肉の生成個数 |
|---|---|
| 0~9 | 4~7 |
| 10~89 | 5~9 |
| 90~249 | 6~11 |
| 250~489 | 7~13 |
| ... | ... |
・個数の上昇はかなり体感しにくい。
・解剖学スキルが奇数2×10に達すると個数が増える。
人肉判定
食べ物を食べたとき、人肉と判定されるかどうか。
バージョン
EA 23.85 Nightly
ソースコード(外部リンク)
FoodEffect.IsHumanFlesh - Elin Decompiled Documentation
メモ
・notHumanMeatフラグ(EA23.85ではクリームシチューのみ)が付いていれば人肉ではない。
・材料に卵が含まれていれば人肉ではない。
モンスターの肉・卵の生成
肉・卵の能力は種族によってほぼ決まる。
バージョン
EA 23.85 Nightly
ソースコードとデータベース(外部リンク)
Card.MakeFoodFrom - Elin Decompiled Documentation
SourceChara.xlsx - Elin Modding Wiki
計算式
race.food:食用適性
デフォルト値は100
(1)死体の場合
PCファクションでユニークなら食用適性は-100で上書き
筋力経験値 = (種族筋力2 / 5 + 10) x 食用適性 / 100 - 10 耐久経験値 = 食用適性 / 10 + √種族身長 - 10
種族能力値の1番目に高いものに対し 能力経験値 = 種族能力値2 / 4 ※筋力・耐久経験値を上書きしてしまうことがある
筋力経験値に +30
(2)霜降り肉の場合
食用適性に +100
PCファクションでユニークなら食用適性は-100で上書き
筋力経験値 = (種族筋力2 / 5 + 10) x 食用適性 / 100 - 10 筋力潜在 = (種族耐久2 / 5 + 10) x 食用適性 / 100 - 10 耐久経験値 = 食用適性 / 10 + √種族身長 - 10
種族能力値の1番目に高いものに対し 能力経験値 = 種族能力値2 / 4 ※筋力・耐久経験値を上書きしてしまうことがある
筋力経験値に +40 筋力潜在に +30
(3)卵の場合
学習潜在 = (種族学習2 / 5 + 10) x 食用適性 / 100 - 10
種族能力値の1番目と2番目に高いものに対し 能力経験値 = 種族能力値2 / 4
学習潜在に +40 (有精卵なら +50)
共通
アンデッドなら感覚経験値に -20 種族フィートを付与 品質Lv.を付与
注意すべき点
・生成されるパラメータが意図されない値になっている可能性がある。
[例]
鋼鉄竜『コルゴン』の死体は耐久Lv.3になるはずが、上書きで他のドラゴンと同じ耐久Lv.6に上がってしまう。
鶏の死体は筋力Lv.7になるはずが、上書きで筋力Lv.5に下がってしまう。
肉・卵のデータベース
編集中