Elin:解析/基本ステータス: Difference between revisions
Jump to navigation
Jump to search
Sakumashiki (talk | contribs) (Elin:Code Analysis/Basicsの日本語ページを作成。(ページ確保のみで、中身は未翻訳)) |
(Update page and start translation) |
||
Line 13: | Line 13: | ||
The Maximum HP is determined by the following factors: | The Maximum HP is determined by the following factors: | ||
*Level-based HP: Until level 25, the HP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level) | * Level-based HP: Until level 25, the HP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level) | ||
**For example, a character grow from lvl 1 to 2, its HP will increase by base of *2. | ** For example, a character grow from lvl 1 to 2, its HP will increase by base of *2. | ||
**This level-base will apply to (2 * END + 1 * STR + 0.5 * WIL) * (4% * level) | ** This level-base will apply to (2 * END + 1 * STR + 0.5 * WIL) * (4% * level) | ||
*Another 1 * END base HP and 10 HP will be awarded independent of level. | * Another 1 * END base HP and 10 HP will be awarded independent of level. | ||
**This means, at the start of the game (lvl 1), Endurance is the biggest factor (1.04) of HP Maximum far greater than STR (0.04) and WIL (0.02). | ** This means, at the start of the game (lvl 1), Endurance is the biggest factor (1.04) of HP Maximum far greater than STR (0.04) and WIL (0.02). | ||
**For character higher than level 25, Each point of END increase HP base by 3, STR by 1, and WIL by 0.5. | ** For character higher than level 25, Each point of END increase HP base by 3, STR by 1, and WIL by 0.5. | ||
*The HP base is further modified by Character Life (Evalue(60) / 100 | * The HP base is further modified by Character Life (Evalue(60) / 100 | ||
*Character Faction modifier: | * Character Faction modifier: | ||
**If character is in PC faction, the HP is modified by 100% | ** If character is in PC faction, the HP is modified by 100% | ||
**If character is not in PC faction, HP is further amplified by the rarity of character. | ** If character is not in PC faction, HP is further amplified by the rarity of character. | ||
***If normal, 100%; if superior, 400%; if legendary, 700%, if mythical, 1000%, if artifact, 1300%. | *** If normal, 100%; if superior, 400%; if legendary, 700%, if mythical, 1000%, if artifact, 1300%. | ||
**The rarity of character is '''under investigation''', but probably apply to boss monsters in nefias. | ** The rarity of character is '''under investigation''', but probably apply to boss monsters in nefias. | ||
*This value is finally modified by the Lonelysoul feat if the character is PC. | * This value is finally modified by the Lonelysoul feat if the character is PC. | ||
==Maximum MP== | ==Maximum MP== | ||
Line 36: | Line 36: | ||
The Maximum MP is determined by the following factors: | The Maximum MP is determined by the following factors: | ||
*Level-based HP: Until level 25, the MP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level) | * Level-based HP: Until level 25, the MP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level) | ||
**For example, a character grow from lvl 1 to 2, its HP will increase by base of *2. | ** For example, a character grow from lvl 1 to 2, its HP will increase by base of *2. | ||
**This level-base will apply to (2 * MAG + 1 * WIL + 0.5 * LER) * (4% * level) | ** This level-base will apply to (2 * MAG + 1 * WIL + 0.5 * LER) * (4% * level) | ||
*Another 1 * MAG base MP and 10 MP will be awarded independent of level. | * Another 1 * MAG base MP and 10 MP will be awarded independent of level. | ||
**This means, at the start of the game (lvl 1), Magic is the biggest factor (1.04) of HP Maximum far greater than WIL (0.04) and LER (0.02). | ** This means, at the start of the game (lvl 1), Magic is the biggest factor (1.04) of HP Maximum far greater than WIL (0.04) and LER (0.02). | ||
**For character higher than level 25, Each point of MAG increase MP base by 3, WIL by 1, and LER by 0.5. | ** For character higher than level 25, Each point of MAG increase MP base by 3, WIL by 1, and LER by 0.5. | ||
*The MP base is further modified by Character Mana (Evalue(61) / 100 | * The MP base is further modified by Character Mana (Evalue(61) / 100 | ||
**If character is not in PC faction, HP is further amplified by the rarity of character. | ** If character is not in PC faction, HP is further amplified by the rarity of character. | ||
***If normal, 100%; if superior, 350%; if legendary, 600%, if mythical, 850%, if artifact, 1100%. | *** If normal, 100%; if superior, 350%; if legendary, 600%, if mythical, 850%, if artifact, 1100%. | ||
**The rarity of character is '''under investigation''', but probably apply to boss monsters in nefias. | ** The rarity of character is '''under investigation''', but probably apply to boss monsters in nefias. | ||
*This value is finally modified by the Lonelysoul feat if the character is PC. | * This value is finally modified by the Lonelysoul feat if the character is PC. | ||
==Maximum Stamina== | ==Maximum Stamina== | ||
Line 73: | Line 73: | ||
The maximum stamina of chracters is determined by the following: | The maximum stamina of chracters is determined by the following: | ||
*Each point of base endurance increase the base | * Each point of base endurance increase the base number by 1. | ||
* | * For each skill a chracter have, increase this base number by the '''level of that skill'''. | ||
*The base | ** For example, two handed lvl 50, then num += 50, cooking lvl 50, then additional += 50, and so on. | ||
**This means, if the base | ** '''The main defining factor of Stamina maximum is the total level of skills you have, not END.''' | ||
**For each point of additional base | * The base number go through a CURVE function with (base, 30, 10, 60). | ||
**Base | ** This means, if the base number is less than 30, return that value. | ||
**Base | ** For each point of additional base num, the return is diminished. | ||
**Base | ** Base num 60, output is 44.8 | ||
*The output number is increased by 15, then modified by the vigor(Evalue(62))% of player. | ** Base num 90, output is 53.36 | ||
** Base num 300, output is 77.9 | |||
** Base num 1500, output is 110.0 | |||
** Base num 15000, output is 195.6 | |||
** There is no maximum stamina, however it becomes '''much harder to raise''' after about 120. | |||
* The output number is increased by 15, then modified by the vigor(Evalue(62))% of player. | |||
** So a player with 1500 of total skill levels will have a base stamina about 125, modified by the vigor of said character. | |||
** A new player with 20 END and 40 total skill level will only have 60 maximum stamina. | |||
==Carryweight Limit== | ==Carryweight Limit== | ||
<syntaxhighlight lang="c#" line="1"> | <syntaxhighlight lang="c#" line="1"> | ||
Line 88: | Line 96: | ||
The carryweight limit of characters is determined by the following factors: | The carryweight limit of characters is determined by the following factors: | ||
*Base limit is 0.5 * STR + 0.25 * END + 2 * Weightlifting skill. (Each "s" in game is 1000 in code.) | * Base limit is 0.5 * STR + 0.25 * END + 2 * Weightlifting skill. (Each "s" in game is 1000 in code.) | ||
*If the character is golden knight, then this is further modified by 500%. | * If the character is golden knight, then this is further modified by 500%. | ||
*A 45s base carry weight is added to the final result. | * A 45s base carry weight is added to the final result. | ||
==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"> | |||
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; | |||
</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. | |||
** 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"> | |||
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); | |||
</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. | |||
<syntaxhighlight lang="c#" line="1"> | |||
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)); | |||
} | |||
</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. | |||
<syntaxhighlight lang="c#" line="1"> | |||
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; | |||
} | |||
</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. | |||
* 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 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%. | |||
* 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. | |||
[[Category:JA]] | [[Category:JA]] | ||
[[Category:Elin Spoiler]] | [[Category:Elin Spoiler]] |
Revision as of 16:07, 10 December 2024
このページには正規のプレイによって得られた情報ではなく、Elinのデータ解析・デバッグモード・内部ファイル閲覧などによって得た情報が掲載されています。 ゲームの重大なネタバレや、プレイの楽しみを損なう情報が含まれている可能性があります。 閲覧は自己責任でお願いするとともに、通常ページに解析ページへのリンクを貼ることはお控えください。 また、このページの情報をWikiの他のページに記載する際は計算コードなどをそのまま掲示するのではなく、コードが読めない人にもわかりやすいように内容を要約して書いていただけると幸いです。 |
Some of the text on this page is currently untranslated. |
このページでは、PCとNPC基本ステータスに関する解析情報を記載しています。
最終更新バージョンはEA23.46。
Maximum 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);
The Maximum HP is determined by the following factors:
- Level-based HP: Until level 25, the HP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level)
- For example, a character grow from lvl 1 to 2, its HP will increase by base of *2.
- This level-base will apply to (2 * END + 1 * STR + 0.5 * WIL) * (4% * level)
- Another 1 * END base HP and 10 HP will be awarded independent of level.
- This means, at the start of the game (lvl 1), Endurance is the biggest factor (1.04) of HP Maximum far greater than STR (0.04) and WIL (0.02).
- For character higher than level 25, Each point of END increase HP base by 3, STR by 1, and WIL by 0.5.
- The HP base is further modified by Character Life (Evalue(60) / 100
- Character Faction modifier:
- If character is in PC faction, the HP is modified by 100%
- If character is not in PC faction, HP is further amplified by the rarity of character.
- If normal, 100%; if superior, 400%; if legendary, 700%, if mythical, 1000%, if artifact, 1300%.
- The rarity of character is under investigation, but probably apply to boss monsters in nefias.
- This value is finally modified by the Lonelysoul feat if the character is PC.
Maximum 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);
The Maximum MP is determined by the following factors:
- Level-based HP: Until level 25, the MP Maximum will be modified by the base number of level. After level 25, this value becomes constant. (4% per level)
- For example, a character grow from lvl 1 to 2, its HP will increase by base of *2.
- This level-base will apply to (2 * MAG + 1 * WIL + 0.5 * LER) * (4% * level)
- Another 1 * MAG base MP and 10 MP will be awarded independent of level.
- This means, at the start of the game (lvl 1), Magic is the biggest factor (1.04) of HP Maximum far greater than WIL (0.04) and LER (0.02).
- For character higher than level 25, Each point of MAG increase MP base by 3, WIL by 1, and LER by 0.5.
- The MP base is further modified by Character Mana (Evalue(61) / 100
- If character is not in PC faction, HP is further amplified by the rarity of character.
- If normal, 100%; if superior, 350%; if legendary, 600%, if mythical, 850%, if artifact, 1100%.
- The rarity of character is under investigation, but probably apply to boss monsters in nefias.
- If character is not in PC faction, HP is further amplified by the rarity of character.
- This value is finally modified by the Lonelysoul feat if the character is PC.
Maximum Stamina
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;
The maximum stamina of chracters is determined by the following:
- Each point of base endurance increase the base number by 1.
- For each skill a chracter have, increase this base number by the level of that skill.
- For example, two handed lvl 50, then num += 50, cooking lvl 50, then additional += 50, and so on.
- The main defining factor of Stamina maximum is the total level of skills you have, not END.
- The base number go through a CURVE function with (base, 30, 10, 60).
- This means, if the base number is less than 30, return that value.
- For each point of additional base num, the return is diminished.
- Base num 60, output is 44.8
- Base num 90, output is 53.36
- Base num 300, output is 77.9
- Base num 1500, output is 110.0
- Base num 15000, output is 195.6
- There is no maximum stamina, however it becomes much harder to raise after about 120.
- The output number is increased by 15, then modified by the vigor(Evalue(62))% of player.
- So a player with 1500 of total skill levels will have a base stamina about 125, modified by the vigor of said character.
- A new player with 20 END and 40 total skill level will only have 60 maximum stamina.
Carryweight Limit
public override int WeightLimit => (base.STR * 500 + base.END * 250 + Evalue(207) * 2000) * ((!HasElement(1411)) ? 1 : 5) + 45000;
The carryweight limit of characters is determined by the following factors:
- Base limit is 0.5 * STR + 0.25 * END + 2 * Weightlifting skill. (Each "s" in game is 1000 in code.)
- If the character is golden knight, then this is further modified by 500%.
- A 45s base carry weight is added to the final result.
Sanity
There are many factors influencing the sanity of players. We pick the main ones in the code for analysis:
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;
- 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.
- 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.
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);
- 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.
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));
}
- 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.
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;
}
- 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.
- 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 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%.
- 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.