Elin:解析/未分類: Difference between revisions
(乳を飲ませたときの挙動の段落を追加。私の理解が間違っている可能性もあります。) |
Sakumashiki (talk | contribs) m (他ページに記載があるものは削除。井戸水を飲んだ時のイベントの項を追加) |
||
(4 intermediate revisions by 3 users not shown) | |||
Line 7: | Line 7: | ||
編集者の方へ: 追加された各セクションについて、テストされたゲームのバージョンを明記してください。 | 編集者の方へ: 追加された各セクションについて、テストされたゲームのバージョンを明記してください。 | ||
[[ | ==乳を飲ませたときの挙動(EA23.78 Nightly Patch 1)== | ||
{{ | 参照元:TraitDrinkMilkMother.cs | ||
{| class="wikitable | |||
概要的な説明としては、乳を飲ませた時のステータス上昇量の式が''「乳親のベースステータス」 * 赤ちゃんの基本潜在 / (100 + 50 * ((乳親の中で何番目に高い数値''<ref>同値ならIDが大きい順、スキルを持っていないなどはカウントが上昇しない</ref> ''- 1) ) / 2'' である。 | |||
乳親のベースステータスは、まず乳親の種族、職業を記録し、そして乳のレベルに応じてレベルアップさせる。そのレベルは''(5 + 5 x 乳の+値)'' 。 | |||
そしてレベルアップで上がるステータスの計算式は''class/race attribute/skill scaling * (100 + (Level - 1 + [RNG ((Level / 2 + 1) -1) ]) * character's lvFactor / 10) / 100 + [RNG between 0 and ((Level / 3) -1) ] * character's lvFactor / 100であり、'' | |||
これには乱数(RNG)が含まれており、しかもかなり変動するため、通常は正確なステータスを計算することは非常に困難である。 | |||
ただし、乳内部の「乳親のベースステータス」は乱数が強制的に1になるために一定であり、同じ+の乳なら同じステータスになる。 | |||
<references /> | |||
==井戸水を飲んだ時のイベント (EA23.67)== | |||
{{バージョン|23.67}} | |||
<syntaxhighlight lang="c#" line="1"> | |||
public override void TrySetAct(ActPlan p) | |||
{ | |||
p.TrySetAct("actDrink", delegate | |||
{ | |||
if (Charges <= 0) | |||
{ | |||
EClass.pc.Say("drinkWell_empty", EClass.pc, owner); | |||
return false; | |||
} | |||
EClass.pc.Say("drinkWell", EClass.pc, owner); | |||
EClass.pc.PlaySound("drink"); | |||
EClass.pc.PlayAnime(AnimeID.Shiver); | |||
if (IsHoly || EClass.rnd(5) == 0) | |||
{ | |||
ActEffect.Proc(EffectId.ModPotential, EClass.pc, null, (!polluted && (IsHoly || EClass.rnd(2) == 0)) ? 100 : (-100)); | |||
} | |||
else if (EClass.rnd(5) == 0) | |||
{ | |||
BadEffect(EClass.pc); | |||
} | |||
else if (EClass.rnd(4) == 0) | |||
{ | |||
ActEffect.Proc(EffectId.Mutation, EClass.pc); | |||
} | |||
else if (EClass.rnd(EClass.debug.enable ? 2 : 10) == 0 && !polluted && !EClass.player.wellWished) | |||
{ | |||
if (EClass.player.CountKeyItem("well_wish") > 0) | |||
{ | |||
EClass.player.ModKeyItem("well_wish", -1); | |||
ActEffect.Proc(EffectId.Wish, EClass.pc, null, 10 + EClass.player.CountKeyItem("well_enhance") * 10); | |||
EClass.player.wellWished = true; | |||
} | |||
else | |||
{ | |||
Msg.SayNothingHappen(); | |||
} | |||
} | |||
else if (polluted) | |||
{ | |||
EClass.pc.Say("drinkWater_dirty"); | |||
BadEffect(EClass.pc); | |||
} | |||
else | |||
{ | |||
EClass.pc.Say("drinkWater_clear"); | |||
} | |||
ModCharges(-1); | |||
return true; | |||
}, owner); | |||
} | |||
</syntaxhighlight> | |||
* このコードは、井戸の水を飲むと何が起こるかを説明しています。 | |||
* これらの効果は段階的に適用されます。 | |||
* 5分の1の確率で、主能力の潜在が50%上昇または50%低下します。 | |||
** 聖なる井戸の場合、これが強制的に発動し、100%上昇します。 | |||
* 次に、さらに1/5の確率で、PCに悪影響が適用されます。その影響は、盲目、麻痺、睡眠、中毒、気絶、病気、混乱のうちいずれか1つが等しい確率で発生します。 | |||
* 次に、さらに1/4の確率で、PCに変異が発生します。 | |||
* さらに1/10の確率で、PCが今年まだ願い事をしておらず、井戸が汚染されていない場合、願いが叶う。 | |||
** デバッグモードの場合、この確率は1/2に増加する。 | |||
** 願いの強度は、「10 + 10 * 黒猫のよだれの数」を掛けたものとなる。 | |||
* その後、通常の効果が発生する。 | |||
** 井戸が汚染されている場合、PCにデバフがかかる。 | |||
** 井戸が汚染されていない場合、PCは本物の水を飲んだのと同じ状態になる。 | |||
* 聖なる井戸ではなく、汚染されていない普通の井戸の全体的な確率: | |||
** 10% 主能力の潜在能力上昇 | |||
** 10% 主能力の潜在能力低下 | |||
** 16% 7種類のPCへの状態異常のうちの1つ | |||
** 16% PCへのランダムな突然変異 | |||
** '''4.8% 願い'''(PCが要件を満たす場合) | |||
** 43.2% 普通の水。 | |||
==養蜂 (EA23.84)== | |||
<syntaxhighlight lang="c#" line="1"> | |||
int soilCost = EClass._zone.GetSoilCost(); | |||
int num = Mathf.Min(100, 70 + (MaxSoil - soilCost)); | |||
int flower = 5; | |||
int lv = 1; | |||
EClass._map.bounds.ForeachCell(delegate(Cell cell) | |||
{ | |||
if (cell.obj != 0 && cell.sourceObj.tag.Contains("flower")) | |||
{ | |||
PlantData plantData = cell.TryGetPlant(); | |||
if (plantData != null && plantData.seed != null) | |||
{ | |||
lv += plantData.seed.encLV + 1; | |||
} | |||
else | |||
{ | |||
lv++; | |||
} | |||
flower++; | |||
} | |||
}); | |||
lv /= flower; | |||
int num2 = 0; | |||
foreach (Thing thing7 in EClass._map.things) | |||
{ | |||
if (thing7.IsInstalled && thing7.trait is TraitBeekeep && !thing7.things.IsFull()) | |||
{ | |||
flower -= 3 + EClass.rnd(5 + num2 * 4); | |||
num2++; | |||
if (flower < 0) | |||
{ | |||
break; | |||
} | |||
if (EClass.rnd(100) <= num) | |||
{ | |||
Thing thing3 = ThingGen.Create("honey"); | |||
thing3.SetEncLv(lv / 10); | |||
thing3.elements.SetBase(2, EClass.curve(lv, 50, 10, 80)); | |||
thing7.AddThing(thing3); | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
*生産されるハチの巣の+値は、マップ上境界内に存在する全ての花の+値の平均によって決定される。(小数点以下切り捨て)。 | |||
ハチの巣の+値 = ((マップ上の花の+値合計 + マップ上の花の数) / (マップ上の花の数 + 5)) / 10 | |||
*ハチの巣の生産数は、マップ上境界内に存在する全ての花の数に依存し、肥沃度の余りによって減衰され、乱数によって生産数が上下する。 | |||
*肥沃度の余りによる減衰は+29で0%の減衰、-71で100%の減衰となり生産されなくなる。 | |||
*1度の生産処理で養蜂箱に生成されるハチの巣は1個のみ。本来の生産数に対して養蜂箱が足りなかった場合、足りていない分は生産されない。 | |||
下記の表は肥沃度の余りが29(100%の生産)かつ養蜂箱が十分にある場合の花の数に応じたハチの巣の生産数である。 | |||
{| class="wikitable" | |||
|+ハチの巣の生産数 | |||
! | |||
! colspan="3" |ハチの巣生産数 | |||
|- | |- | ||
! | !花の数 | ||
! | !最小 | ||
! | !中央値 | ||
! | !最大 | ||
|- | |- | ||
|0 | |0 | ||
|0 | |0 | ||
| | |0.61 | ||
|1 | |1 | ||
|- | |- | ||
|5 | |5 | ||
|0 | |0 | ||
| | |1.33 | ||
|3 | |3 | ||
|- | |- | ||
|10 | |10 | ||
|1 | |1 | ||
|2.02 | |||
|2 | |||
|4 | |4 | ||
|- | |- | ||
|15 | |15 | ||
|1 | |1 | ||
|2.50 | |||
|2 | |||
|6 | |6 | ||
|- | |- | ||
|20 | |20 | ||
|2 | |2 | ||
|3 | |3.00 | ||
|8 | |8 | ||
|- | |- | ||
| | |25 | ||
|2 | |2 | ||
|3 | |3.46 | ||
|10 | |10 | ||
|- | |- | ||
| | |30 | ||
|2 | |2 | ||
|3 | |3.85 | ||
|11 | |11 | ||
|- | |- | ||
| | |35 | ||
|3 | |3 | ||
|4.25 | |||
|4 | |||
|13 | |13 | ||
|- | |- | ||
| | |40 | ||
|3 | |3 | ||
|4.62 | |||
|4 | |||
|15 | |15 | ||
|- | |- | ||
| | |45 | ||
| | |3 | ||
|4.97 | |||
|16 | |16 | ||
|- | |- | ||
| | |50 | ||
| | |3 | ||
| | | 5.30 | ||
|18 | |18 | ||
|- | |- | ||
| | |55 | ||
| | |4 | ||
| | |5.61 | ||
|20 | |20 | ||
|- | |- | ||
| | |60 | ||
| | |4 | ||
| | |5.93 | ||
| | |21 | ||
|} | |} | ||
[[Category:JA]] | [[Category:JA]] | ||
[[Category:Elin Spoiler]] | [[Category:Elin Spoiler]] | ||
{{DEFAULTSORT:カイセキ,ミブンルイ}} | {{DEFAULTSORT:カイセキ,ミブンルイ}} |
Latest revision as of 08:34, 23 February 2025
![]() | このページには正規のプレイによって得られた情報ではなく、Elinのデータ解析・デバッグモード・内部ファイル閲覧などによって得た情報が掲載されています。 ゲームの重大なネタバレや、プレイの楽しみを損なう情報が含まれている可能性があります。 閲覧は自己責任でお願いするとともに、通常ページに解析ページへのリンクを貼ることはお控えください。 また、このページの情報をWikiの他のページに記載する際は計算コードなどをそのまま掲示するのではなく、コードが読めない人にもわかりやすいように内容を要約して書いていただけると幸いです。 |
このページは、今のところ他のページに分類されていない解析を情報を特集するための一時置き場です。
このページの内容は他ページに随時移動していく予定ですので、 wikiの記事をこのページにリンクすることはご遠慮ください。
編集者の方へ: 追加された各セクションについて、テストされたゲームのバージョンを明記してください。
乳を飲ませたときの挙動(EA23.78 Nightly Patch 1)
参照元:TraitDrinkMilkMother.cs
概要的な説明としては、乳を飲ませた時のステータス上昇量の式が「乳親のベースステータス」 * 赤ちゃんの基本潜在 / (100 + 50 * ((乳親の中で何番目に高い数値[1] - 1) ) / 2 である。
乳親のベースステータスは、まず乳親の種族、職業を記録し、そして乳のレベルに応じてレベルアップさせる。そのレベルは(5 + 5 x 乳の+値) 。
そしてレベルアップで上がるステータスの計算式はclass/race attribute/skill scaling * (100 + (Level - 1 + [RNG ((Level / 2 + 1) -1) ]) * character's lvFactor / 10) / 100 + [RNG between 0 and ((Level / 3) -1) ] * character's lvFactor / 100であり、
これには乱数(RNG)が含まれており、しかもかなり変動するため、通常は正確なステータスを計算することは非常に困難である。
ただし、乳内部の「乳親のベースステータス」は乱数が強制的に1になるために一定であり、同じ+の乳なら同じステータスになる。
- ↑ 同値ならIDが大きい順、スキルを持っていないなどはカウントが上昇しない
井戸水を飲んだ時のイベント (EA23.67)
public override void TrySetAct(ActPlan p)
{
p.TrySetAct("actDrink", delegate
{
if (Charges <= 0)
{
EClass.pc.Say("drinkWell_empty", EClass.pc, owner);
return false;
}
EClass.pc.Say("drinkWell", EClass.pc, owner);
EClass.pc.PlaySound("drink");
EClass.pc.PlayAnime(AnimeID.Shiver);
if (IsHoly || EClass.rnd(5) == 0)
{
ActEffect.Proc(EffectId.ModPotential, EClass.pc, null, (!polluted && (IsHoly || EClass.rnd(2) == 0)) ? 100 : (-100));
}
else if (EClass.rnd(5) == 0)
{
BadEffect(EClass.pc);
}
else if (EClass.rnd(4) == 0)
{
ActEffect.Proc(EffectId.Mutation, EClass.pc);
}
else if (EClass.rnd(EClass.debug.enable ? 2 : 10) == 0 && !polluted && !EClass.player.wellWished)
{
if (EClass.player.CountKeyItem("well_wish") > 0)
{
EClass.player.ModKeyItem("well_wish", -1);
ActEffect.Proc(EffectId.Wish, EClass.pc, null, 10 + EClass.player.CountKeyItem("well_enhance") * 10);
EClass.player.wellWished = true;
}
else
{
Msg.SayNothingHappen();
}
}
else if (polluted)
{
EClass.pc.Say("drinkWater_dirty");
BadEffect(EClass.pc);
}
else
{
EClass.pc.Say("drinkWater_clear");
}
ModCharges(-1);
return true;
}, owner);
}
- このコードは、井戸の水を飲むと何が起こるかを説明しています。
- これらの効果は段階的に適用されます。
- 5分の1の確率で、主能力の潜在が50%上昇または50%低下します。
- 聖なる井戸の場合、これが強制的に発動し、100%上昇します。
- 次に、さらに1/5の確率で、PCに悪影響が適用されます。その影響は、盲目、麻痺、睡眠、中毒、気絶、病気、混乱のうちいずれか1つが等しい確率で発生します。
- 次に、さらに1/4の確率で、PCに変異が発生します。
- さらに1/10の確率で、PCが今年まだ願い事をしておらず、井戸が汚染されていない場合、願いが叶う。
- デバッグモードの場合、この確率は1/2に増加する。
- 願いの強度は、「10 + 10 * 黒猫のよだれの数」を掛けたものとなる。
- その後、通常の効果が発生する。
- 井戸が汚染されている場合、PCにデバフがかかる。
- 井戸が汚染されていない場合、PCは本物の水を飲んだのと同じ状態になる。
- 聖なる井戸ではなく、汚染されていない普通の井戸の全体的な確率:
- 10% 主能力の潜在能力上昇
- 10% 主能力の潜在能力低下
- 16% 7種類のPCへの状態異常のうちの1つ
- 16% PCへのランダムな突然変異
- 4.8% 願い(PCが要件を満たす場合)
- 43.2% 普通の水。
養蜂 (EA23.84)
int soilCost = EClass._zone.GetSoilCost();
int num = Mathf.Min(100, 70 + (MaxSoil - soilCost));
int flower = 5;
int lv = 1;
EClass._map.bounds.ForeachCell(delegate(Cell cell)
{
if (cell.obj != 0 && cell.sourceObj.tag.Contains("flower"))
{
PlantData plantData = cell.TryGetPlant();
if (plantData != null && plantData.seed != null)
{
lv += plantData.seed.encLV + 1;
}
else
{
lv++;
}
flower++;
}
});
lv /= flower;
int num2 = 0;
foreach (Thing thing7 in EClass._map.things)
{
if (thing7.IsInstalled && thing7.trait is TraitBeekeep && !thing7.things.IsFull())
{
flower -= 3 + EClass.rnd(5 + num2 * 4);
num2++;
if (flower < 0)
{
break;
}
if (EClass.rnd(100) <= num)
{
Thing thing3 = ThingGen.Create("honey");
thing3.SetEncLv(lv / 10);
thing3.elements.SetBase(2, EClass.curve(lv, 50, 10, 80));
thing7.AddThing(thing3);
}
}
}
- 生産されるハチの巣の+値は、マップ上境界内に存在する全ての花の+値の平均によって決定される。(小数点以下切り捨て)。
ハチの巣の+値 = ((マップ上の花の+値合計 + マップ上の花の数) / (マップ上の花の数 + 5)) / 10
- ハチの巣の生産数は、マップ上境界内に存在する全ての花の数に依存し、肥沃度の余りによって減衰され、乱数によって生産数が上下する。
- 肥沃度の余りによる減衰は+29で0%の減衰、-71で100%の減衰となり生産されなくなる。
- 1度の生産処理で養蜂箱に生成されるハチの巣は1個のみ。本来の生産数に対して養蜂箱が足りなかった場合、足りていない分は生産されない。
下記の表は肥沃度の余りが29(100%の生産)かつ養蜂箱が十分にある場合の花の数に応じたハチの巣の生産数である。
ハチの巣生産数 | |||
---|---|---|---|
花の数 | 最小 | 中央値 | 最大 |
0 | 0 | 0.61 | 1 |
5 | 0 | 1.33 | 3 |
10 | 1 | 2.02 | 4 |
15 | 1 | 2.50 | 6 |
20 | 2 | 3.00 | 8 |
25 | 2 | 3.46 | 10 |
30 | 2 | 3.85 | 11 |
35 | 3 | 4.25 | 13 |
40 | 3 | 4.62 | 15 |
45 | 3 | 4.97 | 16 |
50 | 3 | 5.30 | 18 |
55 | 4 | 5.61 | 20 |
60 | 4 | 5.93 | 21 |