解析/未分類

From Ylvapedia
Revision as of 17:08, 3 February 2025 by びゃっこ (talk | contribs) (養蜂についての参照元コードを追加、処理についての説明を記述。)


このページは、今のところ他のページに分類されていない解析を情報を特集するための一時置き場です。

このページの内容は他ページに随時移動していく予定ですので、 wikiの記事をこのページにリンクすることはご遠慮ください。

編集者の方へ: 追加された各セクションについて、テストされたゲームのバージョンを明記してください。

素材表 解析値バージョン(EA23.58 Nightly)

素材が装備品の各パラメータに与える補正値を、ランキング形式ではなく解析値で記載した表です。

素材ページの表と重複する一部のパラメータは省いています。

陰陽師:霊符(EA23.54)

    case MixType.Talisman:
		{
			int num2 = EClass.pc.Evalue(1418);
			Thing thing4 = ai.ings[1];
			SourceElement.Row source2 = (thing4.trait as TraitSpellbook).source;
			int num3 = thing4.c_charges * source2.charge * (100 + num2 * 50) / 500 + 1;
			int num4 = 100;
			Thing thing5 = ThingGen.Create("talisman").SetNum(num3);
			thing5.refVal = source2.id;
			thing5.encLV = num4 * (100 + num2 * 10) / 100;
			thing.ammoData = thing5;
			thing.c_ammo = num3;
			EClass.pc.Say("talisman", thing, thing5);
			thing4.Destroy();
			break;
		}
  • 剣術の特性「霊符の知識2」は、作成した霊符の効果にプラスの影響を与える。具体的には
    • 陰陽師が作成するチャージの数は、(魔法書の回数 × 読んだ時に得られる魔法のストック数 × 2 / 5) + 1 となる。 通常のPCの場合、チャージ数は(魔法書の回数 × 読んだ時に得られる魔法のストック数 × / 5) + 1 となります。
      • 例えば、1回読むごとに10チャージされる魔法書が3冊残っている場合、陰陽師による霊符チャージ数は13、通常のPCによる霊符チャージ数は7となる。
    • 陰陽師の霊符レベルは120に固定され、通常のPCの霊符レベルは100に固定される。

乳を飲ませたときの挙動(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になるために一定であり、同じ+の乳なら同じステータスになる。

  1. 同値ならIDが大きい順、スキルを持っていないなどはカウントが上昇しない

養蜂

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