Elin:解析/基本ステータス: Difference between revisions

From Ylvapedia
Jump to navigation Jump to search
Line 108: Line 108:
*最後に、45sの基本運搬重量が最終結果に加算されます。
*最後に、45sの基本運搬重量が最終結果に加算されます。


==Sanity==
==狂気度==
There are many factors influencing the sanity of players. We pick the main ones in the code for analysis:
プレイヤーの狂気度に影響を与える要因は多数存在します。分析のために、コード内で主要な要因を選びます:


<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
Line 131: Line 131:
break;
break;
</syntaxhighlight>
</syntaxhighlight>
* This is utilized when a player pray to god, and if the state of item used is "blessed", the character will have -5 Sanity value.
* プレイヤーが神に祈る際に、もし使用されるアイテムの状態が「祝福された」場合、キャラクターの狂気度が5を減少します。
** This is pretty strange, considering that the action of praying to god is never an item and can never be assigned the "blessed" state, thus the code is unused.
** どう考えてもこれは'''かなり変'''です。なぜなら、神に祈る行為はアイテム使用ではなく、「祝福された」状態を割り当てることもできないため、このコードは恐らく未使用です。


<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
Line 145: Line 145:
</syntaxhighlight>
</syntaxhighlight>


* This effect happens when you use the Healing feather (or Jure's pillow?) (Lay hand would be EffectId.JureHeal), and modify you Sanity by -999.
* この効果は、癒しの羽根(または★ジュアの抱き枕?)を使用すると発生し、狂気度が-999になります。(「レイハンド」はEffectId.JureHealとなります。)


<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
Line 164: Line 164:
</syntaxhighlight>
</syntaxhighlight>


* This effect happens when a PC reads strange book that is in the "Ero" type. The Sanity is modded with a random value from -1 to -5.
* この効果は、プレイヤーキャラクターが危ない本を読むと発生します。狂気度は-1から-5のランダムな値で変更されます。
* '''これもまた変です'''。Type.DojinとType.Eroの両方を同時に成立することは不可能です。未使用コードの可能性大。
 
<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
case 914:
case 914:
Line 227: Line 229:
</syntaxhighlight>
</syntaxhighlight>


* There are two types of attacks that specifically increase the Sanity value, this is observed to be the main way people get Sanity value in daily life.
狂気度を増加させる攻撃は2種類であり、これは人々が狂気度を上昇する主なる方法であると観察されています。
* Element ID 914 or Mind Attack will have a 50% chance of increase your Sanity value by 0 - 1 for every attack received.
*Element ID 914または幻惑属性攻撃は、受けた攻撃ごとに50%の確率で狂気度が0 - 1増加します。
* Element ID 920 or Chaos Attack will have a chance of increase your Sanity value by 0 - 1 for every attack received. The chance depend on the Element power of the attack, and will range from 30% to 100%.
*Element ID 920または混沌属性攻撃は、受けた攻撃ごとに確率で狂気度が0 - 1増加します。この確率は攻撃のエレメントパワーによって異なり、30%から100%の範囲になります。
* A few other effects exist as a fixed increase in Sanity value. Doing the f thing will give Sanity value +10. Eating Human flesh (canniblism) gives a fixed Sanity value +15.
*狂気度を固定で増加させる効果もいくつか存在します。"気持ちいいこと"を行うと狂気度が10増加します('''要確認''')。人肉を食べること(カニバリズム)は固定で狂気度が15増加します。
 


[[Category:JA]]
[[Category:JA]]
[[Category:Elin Spoiler]]
[[Category:Elin Spoiler]]

Revision as of 16:39, 10 December 2024


このページでは、PCとNPC基本ステータスに関する解析情報を記載しています。

最終更新バージョンはEA23.46

最大HP

public override int MaxHP => Mathf.Max(1, ((base.END * 2 + base.STR + base.WIL / 2) * Mathf.Min(base.LV, 25) / 25 + base.END + 10) 
                             * Evalue(60) / 100 * ((IsPCFaction ? 100 : (100 + (int)base.rarity * 300)) + (IsPC ? (EClass.player.lastEmptyAlly * Evalue(1646)) : 0)) / 100);

最大HPは以下の要素によって決まります:

  • レベルに基づくHP:
    • レベル25まで、最大HPはレベルによって修正されます。レベル25以降はレベルアップしても最大HPは上がることはない。(レベルごとに4%)
      • 例えば、キャラクターがレベル1から2に成長する場合、そのHPは基本値の二倍に増加します。
      • 計算式は:(2 * END + 1 * STR + 0.5 * WIL) * (レベルの4%)
    • さらに、1 * ENDと10の基本HPがレベルに関係なく付与されます。
    • つまり、ゲーム開始時(レベル1)において、ENDが最大HPの最も大きな要素(1.04)であり、STR(0.04)や WIL(0.02)よりもはるかに大きい。
    • レベル25以上のキャラクターでは、ENDの各ポイントがHPの基本値を3増加させ、STRが1増加させ、WILが0.5増加させます。
    • HPの基本値はさらにキャラクターの生命値%によって修正されます。
  • キャラクター派閥の修正:
    • キャラクターがPC派閥に属している場合、HPは変わらない。
    • キャラクターがPC派閥に属していない場合、HPはキャラクターのレアリティによってさらに増幅されます。
    • 通常の場合、100%; High Qualityの場合、400%; Legendaryの場合、700%; Mythicalの場合、1000%; Artifactの場合、1300%。
    • キャラクターのレアリティは現在調査中ですが、おそらくネフィアのボスモンスターに適用されます。
  • この値は、キャラクターがPCである場合、孤独な魂のフィートによって最終的に修正されます。

最大MP

public override int max => Mathf.Max(1, ((BaseStats.CC.MAG * 2 + BaseStats.CC.WIL + BaseStats.CC.LER / 2) * Mathf.Min(BaseStats.CC.LV, 25) / 25 + BaseStats.CC.MAG + 10) 
                           * BaseStats.CC.Evalue(61) / 100 * ((BaseStats.CC.IsPCFaction ? 100 : (100 + (int)BaseStats.CC.rarity * 250)) 
                           + (BaseStats.CC.IsPC ? (EClass.player.lastEmptyAlly * BaseStats.CC.Evalue(1646)) : 0)) / 100);

最大MPは以下の要素によって決まります:

  • レベルに基づくMP:
    • レベル25まで、最大MPはレベルによって修正されます。レベル25以降はレベルアップしても最大MPは上がることはない。(レベルごとに4%)
      • 例えば、キャラクターがレベル1から2に成長する場合、そのHPは基本値の二倍に増加します。
      • 計算式は:(2 * MAG + 1 * WIL + 0.5 * LER) * (レベルの4%)
    • さらに、1 * MAGと10の基本MPがレベルに関係なく付与されます。
    • つまり、ゲーム開始時(レベル1)において、MAGが最大MPの最も大きな要素(1.04)であり、WIL(0.04)や LER(0.02)よりもはるかに大きい。
    • レベル25以上のキャラクターでは、MAGの各ポイントがMPの基本値を3増加させ、WILが1増加させ、LERが0.5増加させます。
  • MPの基本値はさらにキャラクターのマナ値%によって修正されます。
  • キャラクター派閥の修正:
    • キャラクターがPC派閥に属している場合、MPは変わらない。
    • キャラクターがPC派閥に属していない場合、MPはキャラクターのレアリティによってさらに増幅されます。
    • 通常の場合、100%; High Qualityの場合、350%; Legendaryの場合、600%; Mythicalの場合、850%; Artifactの場合、1100%。
    • キャラクターのレアリティは現在調査中ですが、おそらくネフィアのボスモンスターに適用されます。
  • この値は、キャラクターがPCである場合、孤独な魂のフィートによって最終的に修正されます。

最大スタミナ

	public void CalculateMaxStamina()
	{
		int num = base.END;
		int num2 = 0;
		foreach (Element value in elements.dict.Values)
		{
			if (value.source.category == "skill")
			{
				num = ((!IsPC) ? (num + Mathf.Max(value.ValueWithoutLink, 0)) : (num + Mathf.Max(value.vBase, 0)));
			}
		}
		num2 = EClass.curve(num, 30, 10, 60);
		if (num2 < 10)
		{
			num2 = 10;
		}
		_maxStamina = num2 + 15;
	}
    ....
    public override int max => BaseStats.CC._maxStamina * BaseStats.CC.Evalue(62) / 100;

キャラクターの最大スタミナは以下の要素によって決まります:

  • まずは基本体力値を計算します。
    • 1 END は基本体力値を1増加させます。
    • キャラクターが持っているスキルごとに、そのスキルのレベルに応じて基本体力値を増加させます。
    • 例えば、両手武器のレベルが50であれば、基本体力値 += 50。料理のレベルが50であれば、さらに+= 50と続きます。
    • 最大体力値の主な決定要因は、保有するスキルの合計レベルであり、耐久力(END)ではありません。
  • 基本体力値は「CURVE」関数を通過します(基本体力値、30、10、60)。
    • これは、基本体力値が30未満の場合、その値を返すことを意味します。
    • 基本体力値が大きくなるほど、出力のメリットは減少します。例えば:
      • 基本体力値60の場合、出力は44.8です。
      • 基本体力値90の場合、出力は53.36です。
      • 基本体力値300の場合、出力は77.9です。
      • 基本体力値1500の場合、出力は110.0です。
      • 基本体力値15000の場合、出力は195.6です。
      • スタミナの限界こそ存在しませんが、約120を超えると非常に上げにくくなります
  • この出力数値をさらに15増加し、その後にプレイヤーの活力%によって修正されます。
    • したがって、合計スキルレベルが1500のプレイヤーは、最大スタミナが約125になり、そのキャラクターの活力によって修正されます。
    • 耐久力(END)が20で、合計スキルレベルが40の新しいPCは、最大スタミナが60しかありません。

運搬重量限界

public override int WeightLimit => (base.STR * 500 + base.END * 250 + Evalue(207) * 2000) * ((!HasElement(1411)) ? 1 : 5) + 45000;

キャラクターの運搬重量限界は以下の要素によって決まります:

  • 基本限界は、0.5s * STR + 0.25s * END + 2s * スキル「重量上げ」のレベルに基づきます。(ゲーム内の「s」はcodeでは1000に相当します。)
  • キャラクターが黄金の騎士である場合、これはさらに500%修正されます。
  • 最後に、45sの基本運搬重量が最終結果に加算されます。

狂気度

プレイヤーの狂気度に影響を与える要因は多数存在します。分析のために、コード内で主要な要因を選びます:

	public void Cure(CureType type, int p = 100, BlessedState state = BlessedState.Normal)
	{
		bool flag = state == BlessedState.Blessed;
		switch (type)
		{
		case CureType.Heal:
		case CureType.Prayer:
			CureCondition<ConFear>();
			CureCondition<ConBlind>(2 * p / 100 + 5);
			CureCondition<ConPoison>(5 * p / 100 + 5);
			CureCondition<ConConfuse>(10 * p / 100 + 10);
			CureCondition<ConDim>(p / 100 + 5);
			CureCondition<ConBleed>(2 * p / 100 + 10);
			if (flag)
			{
				SAN.Mod(-5);
			}
			break;
  • プレイヤーが神に祈る際に、もし使用されるアイテムの状態が「祝福された」場合、キャラクターの狂気度が5を減少します。
    • どう考えてもこれはかなり変です。なぜなら、神に祈る行為はアイテム使用ではなく、「祝福された」状態を割り当てることもできないため、このコードは恐らく未使用です。
	case EffectId.RemedyJure:
		TC.HealHP(1000000, HealSource.Magic);
		TC.CureHost(CureType.Jure, power, state);
		TC.Say("heal_jure", TC);
		break;
    if (type == CureType.Jure)
			{
				SAN.Mod(-999);
  • この効果は、癒しの羽根(または★ジュアの抱き枕?)を使用すると発生し、狂気度が-999になります。(「レイハンド」はEffectId.JureHealとなります。)
		case Type.Dojin:
			c.PlaySound("wow");
			c.Say("book_decode", c, owner);
			if (!c.IsPC)
			{
				c.Talk("wow");
			}
			switch (BookType)
			{
			case Type.Ero:
				if (c.IsPC)
				{
					EClass.pc.SAN.Mod(-(EClass.rnd(5) + 1));
				}
  • この効果は、プレイヤーキャラクターが危ない本を読むと発生します。狂気度は-1から-5のランダムな値で変更されます。
  •  これもまた変です。Type.DojinとType.Eroの両方を同時に成立することは不可能です。未使用コードの可能性大。
		case 914:
			flag2 = false;
			if (EClass.rnd(3) != 0)
			{
				if (Chance(30 + eleP / 5, 100))
				{
					Chara.AddCondition<ConConfuse>(eleP);
				}
			}
			else if (Chance(30 + eleP / 5, 100))
			{
				Chara.AddCondition<ConSleep>(eleP);
			}
			if (Chance(50, 100))
			{
				Chara.SAN.Mod(EClass.rnd(2));
			}
			break;
            ...
		case 920:
			flag2 = false;
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConBlind>(eleP / 2);
			}
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConParalyze>(eleP / 2);
			}
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConConfuse>(eleP / 2);
			}
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConPoison>(eleP / 2);
			}
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConSleep>(eleP / 2);
			}
			if (Chance(5 + eleP / 25, 40))
			{
				Chara.AddCondition<ConDim>(eleP / 2);
			}
			if (Chance(30 + eleP / 10, 100))
			{
				Chara.SAN.Mod(EClass.rnd(2));
			}
			break;
            ...
        bool Chance(int a, int max)
		{
			if (dmg > 0 || (origin != null && origin.HasElement(1345)))
			{
				return Mathf.Min(a, max) > EClass.rnd(100);
			}
			return false;
		}

狂気度を増加させる攻撃は2種類であり、これは人々が狂気度を上昇する主なる方法であると観察されています。

  • Element ID 914または幻惑属性攻撃は、受けた攻撃ごとに50%の確率で狂気度が0 - 1増加します。
  • Element ID 920または混沌属性攻撃は、受けた攻撃ごとに確率で狂気度が0 - 1増加します。この確率は攻撃のエレメントパワーによって異なり、30%から100%の範囲になります。
  • 狂気度を固定で増加させる効果もいくつか存在します。"気持ちいいこと"を行うと狂気度が10増加します(要確認)。人肉を食べること(カニバリズム)は固定で狂気度が15増加します。