解析/フィート
![]() | このページには正規のプレイによって得られた情報ではなく、Elinのデータ解析・デバッグモード・内部ファイル閲覧などによって得た情報が掲載されています。 ゲームの重大なネタバレや、プレイの楽しみを損なう情報が含まれている可能性があります。 閲覧は自己責任でお願いするとともに、通常ページに解析ページへのリンクを貼ることはお控えください。 また、このページの情報をWikiの他のページに記載する際は計算コードなどをそのまま掲示するのではなく、コードが読めない人にもわかりやすいように内容を要約して書いていただけると幸いです。 |
バージョン EA23.74: この記事は、Elin の最新の安定版リリースに、少なくとも20のマイナーバージョンが遅れています。ページの更新をお願いします。
フィートにはいくつかの種類があります。
- 種族フィート:種族選択時に獲得します。
- 職業フィート:職業に応じて獲得します。
- 後天フィート:レベルアップおよびフィートポイントの消費によって獲得します。
このページでは、実際の効果はプレイヤーからは見えないフィートの一部を紹介します。
コードにおけるフィートの記述:索引
public const int featStamina = 1612; x
public const int featCHA = 1627; x
public const int featWIL = 1626; x
public const int featMAG = 1625; x
public const int featLER = 1624; x
public const int featPER = 1623; x
public const int featEND = 1622; x
public const int featDEX = 1621; x
public const int featSTR = 1620; x
public const int featLuck = 1628; x
public const int featSwordsage = 1418; *
public const int featLife = 1610; x
public const int featManaMeat = 1421; *
public const int featExecutioner = 1420; *
public const int featMilitant = 1419; *
public const int featWitch = 1417; x
public const int featInquisitor = 1416; x
public const int featFoxMaid = 1415; x
public const int featWhiteVixen = 1414; *
public const int featFairysan = 1413;
public const int featLuckyCat = 1412;
public const int featSPD = 1629; x
public const int featMana = 1611; x
public const int featHardy = 1630; x
public const int featLonelySoul = 1646;
public const int featEvade = 1632; x
public const int featEarthStrength = 1411;
public const int featChef = 1658;
public const int featManaCost = 1657; x
public const int featScavenger = 1656;
public const int featModelBeliever = 1655; x
public const int featDreamWaker = 1653;
public const int featRapidArrow = 1652;
public const int featMagicManner = 1651;
public const int featGourmet = 1650;
public const int featDefender = 1649;
public const int featDefense = 1631;
public const int featRapidMagic = 1648;
public const int featParty = 1645;
public const int featBodyParts = 1644;
public const int featSorter = 1643;
public const int featSleeper = 1642;
public const int featResCurse = 1641;
public const int featAnimalLover = 1640;
public const int featFaith = 1636; x
public const int featMartial = 1635; x
public const int featNegotiate = 1634; x
public const int featSpotting = 1633; x
public const int featSummoner = 1647; x
public const int featReboot = 1410;
public const int featHeavyCasting = 1654;
public const int featPaladin2 = 1408; *
public const int featShiva = 1224;
public const int featLoyal = 1225;
public const int featUnderground = 1226;
public const int featServant = 1227;
public const int featDemigod = 1228;
public const int featLittleOne = 1229;
public const int featAdam = 1230;
public const int featNirvana = 1231;
public const int featCosmicHorror = 1233;
public const int featAcidBody = 1223;
public const int featHeavyEater = 1234;
public const int featNorland = 1236;
public const int featRoran = 1237;
public const int featGod_element1 = 1300;
public const int featGod_earth1 = 1305;
public const int featGod_wind1 = 1310;
public const int featGod_machine1 = 1315;
public const int featGod_healing1 = 1320;
public const int featGod_harvest1 = 1325;
public const int featGod_luck1 = 1330;
public const int featGod_moonshadow1 = 1350;
public const int featGod_trickery1 = 1345;
public const int featGod_strife1 = 1355;
public const int featGod_harmony1 = 1335;
public const int featGod_oblivion1 = 1340;
public const int featLightEater = 1235;
public const int featSplit = 1222;
public const int featSpike = 1221;
public const int featFate = 1220;
public const int featBoost = 1409; *
public const int featSlowFood = 1200; *
public const int featManaBond = 1201; *
public const int featFastLearner = 1202; *
public const int featGrowParts = 1203; x
public const int featFairyWeak = 1204; x
public const int featCannibalism = 1205; *
public const int featMelilithCurse = 1206; x
public const int featFoxBless = 1207; *
public const int featFoxLearn = 1208; *
public const int featFluffyTail = 1209; x
public const int featUndead = 1210; x
public const int featSnail = 1211; *
public const int featFairyResist = 1212; x
public const int featElea = 1213; x
public const int featManaPrecision = 1214; x
public const int featDwarf = 1215; *
public const int featSuccubus = 1216; x
public const int featGolem = 1217; x
public const int featMetal = 1218; *
public const int featElderCrab = 1219;
public const int featBaby = 1232;
public const int featWarrior = 1400; *
public const int featThief = 1401; x
public const int featFarmer = 1403; *
public const int featArcher = 1404; *
public const int featPianist = 1405; *
public const int featTourist = 1406; *
public const int featWizard = 1402; x
public const int featPaladin = 1407; *
- すべてのフィートは整数(レベル)で表示されています。 111種類のフィートがあります。
- 「*」マークのついているものだけをこのページでは見ていきます。
- 「x」マークがついているものは、効果がすべてゲーム内で表示されているものです。
- マークがついていないものは、コード解析班がまだそのフィートを見つけていないことを意味します。
- 自分で効果を確認したい場合は、その番号をコード内で検索してください。
職業フィート
featSwordsage (霊符の知識)
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は、作る霊符の性能を向上させます。具体的には:
- 回数は(本の読める回数) * (1回読んだら増えるストック数) * 2/5+1 です。
- 陰陽師でないプレイヤーだと(本の読める回数) * (1回読んだら増えるストック数) * 1/5+1 です。
- 例として、回数3の魔法書があり、1回で10つスタックが増えるときは、霊符にすると陰陽師では13、普通のキャラでは7となります。
- 陰陽師が作成する霊符のエンチャントレベルは120で固定ですが、通常のPCが作成する霊符のレベルは100で固定です。
featManameat (マナの体)
if (Evalue(1421) >= 2 && base.hp <= MaxHP / (9 - Evalue(1421) * 2))
{
num4 /= 2;
}
PlayEffect("cast");
mana.Mod(-num4);
if (Evalue(1421) > 0)
{
int num6 = 0;
int num7 = dmg;
if (hp > 0)
{
num7 = dmg - hp;
hp -= dmg;
num6 += dmg;
if (hp < 0 && Chara.mana.value >= 0)
{
num6 += hp;
hp = 0;
}
}
if (hp <= 0)
{
if (Evalue(1421) >= 2)
{
num7 /= 2;
}
dmg = num7;
if (Chara.mana.value > 0)
{
num7 -= Chara.mana.value;
Chara.mana.value -= dmg;
num6 += dmg;
}
if (Chara.mana.value <= 0)
{
hp -= num7;
num6 += num7;
}
}
dmg = num6;
}
- マナの体を持っているときの被ダメージの受け方はここに全て書かれています。
- HPは残るならば通常のキャラと同じ挙動です。
- HPが0以下になるならば、マナで被ダメージを支払うようになります。
- このとき、マナの体が2以上の場合のみ、HPが0以下の場合、マナコストの50%削減が適用されます。
- HPが0以下になるならば、マナで被ダメージを支払うようになります。
- num6は表示ダメージに用いられると考えられ、HPの減少量+MPの消費量です。
- num7はHPが超過した際のダメージを計算するための変数です
featExecutioner (死の神髄)
if (CC.Evalue(1420) > 0)
{
int num3 = Mathf.Min(100, 100 - CC.hp * 100 / CC.MaxHP);
if (num3 >= 50 && num3 * num3 * num3 * num3 / 3 > EClass.rnd(100000000))
{
return Crit();
}
}
return true;
- これは、他のすべての命中関連の計算が完了した後に算出されます。
- 数値(num3)は、キャラクターの残りのHPの割合から算出されます。例えば、キャラクターのHPが10%の場合、その数値は90となります。
- この数値が50以上の場合(キャラクターの最大HPが50%以下)、乱数を生成し、num3^4 /3がその数値より大きいかどうかをテストします。
- これは、HPが0の場合のクリティカル確率が33%、HPが50%の場合のクリティカル確率が約2%に相当します。
- この計算は、すべての回避行動を含む他のすべての計算の後に実行されることを覚えておいてください。プレイヤーがこのフィートを持っていない場合、この攻撃は必ず命中します。
- つまり、この効果を発動させるには、まず敵に命中させる必要があります。
featPaladin (敬虔)
public void RefreshFaithElement()
{
...
SourceElement.Row row2 = EClass.sources.elements.alias.TryGetValue("featGod_" + row.id + "1");
if (row2 != null)
{
faithElements.SetBase(row2.id, 1);
}
if (!HasCondition<ConExcommunication>())
{
int[] array = row.elements;
int num = GetPietyValue() * (120 + Evalue(1407) * 15) / 100;
for (int i = 0; i < array.Length; i += 2)
{
int num2 = array[i + 1] * num / 50;
if (array[i] == 79)
{
num2 = EClass.curve(num2, array[i + 1] * 2, 10, 50);
}
if (num2 >= 20 && array[i] >= 950 && array[i] < 970)
{
num2 = 20;
}
faithElements.SetBase(array[i], Mathf.Max(num2, 1));
}
}
faithElements.SetParent(this);
}
- 敬虔フィートのボーナスは、フィートランク1ごとに約12.5%です(15/120)。
featTourist (観光気分)
case 1406:
featRef[0] = (a * 20).ToString() ?? "";
featRef[1] = (a * 5).ToString() ?? "";
break;
...
if (!sell)
{
p *= 1f + 0.2f * (float)c.Evalue(1406);
}
break;
...
num = num * (float)(100 + EClass.pc.Evalue(1406) * 5) / 100f;
- 観光客の場合、店の価格は100%増加し(0.2f * Lv. 5)、在庫は25%増加します(100 + 5 * 5)/100。
featPianist (音楽家)
if (p.progress > 2 && (EClass.rnd(100 + 50 * owner.Evalue(1405)) == 0 ||
EClass.rnd(4 + (int)MathF.Max(0f, song.lv - playing.index * 25 - playing.index * playing.index / 2)) == 0))
{
playing.mistakes++;
if (EClass.rnd(2) == 0)
{
LevelSong(2 + 2 * EClass.rnd(owner.Evalue(1405) + 1));
}
if (playing.mistakes >= 10)
{
playing.index = 0;
}
Cancel();
}
...
num = (EClass.rnd(c.LV * 2 + 1) + 1) * (100 + toolLv * 2 + owner.Evalue(1405) * 10) / 100;
- 音楽家のフィート(デフォルトではレベル2)は、プレイヤーの演奏ミスを減少させます。
- 具体的には、曲の難易度が2以上の場合、ミスの可能性が50%減少します。
- 50%の可能性で、プレイヤーの曲の経験値が増加します。
- 通常のプレイヤーの場合、増加数は2です。
- 音楽家の場合は、増加数は2、4、6のいずれかの数です。
- このフィートは、プレイヤーが獲得するおひねりも増加させます。
- 具体的には、フィートのレベルが1つ上がるごとに10%ずつ増加します(合計20%)。
featArcher (射撃の名手) & featWarrior (武器の知識)
dMulti = 0.6f + (float)(weaponSkill.GetParent(CC).Value + weaponSkill.Value / 2 + CC.Evalue(flag3 ? 304 : (IsRanged ? 133 : 132))) / 50f;
dMulti += 0.05f * (float)CC.Evalue(IsRanged ? 1404 : 1400);
- このフィートは、フィートのレベルごとに遠距離攻撃/近接攻撃のダメージ倍率を0.05増加させます。
- 5%のフラットダメージではありません。デフォルトのダメージ倍率は0.6で、スキルが増えると、このフィートの効果は減少します。
featFarmer (農夫の足腰)
int num = BaseStats.CC.Evalue(1403);
if (a < 0 && num > 0)
{
a = a * 100 / (100 + EClass.rnd(num + 1) * 20);
if (a == 0)
{
return;
}
}
- 農夫のフィート「農夫の足腰2」の場合、行動ごとのスタミナ消費量がランダムで100%、83%、72%となります。
featPaladin2 (防衛本能)
foreach (Chara chara3 in EClass._map.charas)
{
if (Chara.IsFriendOrAbove(chara3) && chara3.HasElement(1408) && chara3.faith == EClass.game.religions.Healing && EClass.world.date.GetRawDay() != chara3.GetInt(58) && (!chara3.IsPCFaction || IsPCFaction))
{
Msg.alwaysVisible = true;
Msg.Say("layhand", chara3, this);
Msg.Say("pray_heal", this);
hp = MaxHP;
Chara.AddCondition<ConInvulnerable>();
PlayEffect("revive");
PlaySound("revive");
chara3.SetInt(58, EClass.world.date.GetRawDay());
return;
}
}
- レイハンドは友好的以上のキャラクターにしか使えないので、覚えておいてください。
種族フィート
featMetal (メタル 999)
case 1218:
ModBase(950, a / 40, hide: false);
ModBase(952, a / 40, hide: false);
ModBase(955, a / 40, hide: false);
ModBase(953, a / 40, hide: false);
ModBase(958, a / 40, hide: false);
ModBase(956, a / 40, hide: false);
ModBase(954, a / 40, hide: false);
ModBase(959, a / 40, hide: false);
ModBase(964, a / 40, hide: false);
ModBase(961, a / 40, hide: false);
break;
...
if (HasElement(1218))
{
dmg = dmg * (1000 - Evalue(1218)) / 1000;
if (dmg <= 0 && EClass.rnd(4) == 0)
{
dmg++;
}
}
- メタル種族に付与される耐性は、フィートが非常に高いレベルの場合にのみ役立ちます。
- 具体的には、レベル999だと各ダメージに対して24レベルの耐性を獲得します。
- さらに、受けるダメージが大幅に減少します。
- 具体的には、フィートレベル999は99.9%のダメージ減少効果を付与しますが、これは切り捨てられて整数になります。
- 1000のダメージは1になり、999未満のダメージは無効になります。
- しかし、ダメージが最終段階で0まで減少した場合、1/4の確率でダメージが1に戻ります。
- 具体的には、フィートレベル999は99.9%のダメージ減少効果を付与しますが、これは切り捨てられて整数になります。
featDwarf (蜜酒の虜)
int orgPower = power;
if (blessed || flag)
{
power *= 2;
}
case EffectId.Booze:
TC.AddCondition<ConDrunk>(power);
if (TC.HasElement(1215))
{
TC.Say("drunk_dwarf", TC);
TC.AddCondition(Condition.Create(power + EClass.rnd(power), delegate(ConBuffStats con)
{
con.SetRefVal(Element.List_MainAttributes.RandomItem(), (int)id);
}));
}
break;
- 丘の民が受けるランダムバフのパワーは、酒のパワーに依存します(ただし、酒のパワーが常に固定であれば、固定となります。要確認)。酒のベースパワーは、追加でで0~100%の範囲でランダムに増加します。
- 酒が祝福されている場合、ベースパワーも2倍になります。ピンチの時に試してみてください。
- 能力のうち1つが強化されます。これには、主能力8つと速度が含まれます。
if (host != null && host.ride == this && ((host.isConfused && EClass.rnd(2) == 0) || (host.isDrunk && EClass.rnd(IsIdle ? 2 : 8) == 0 && !host.HasElement(1215))))
{
flag = true;
}
if (flag && newPoint.Distance(pos) <= 1)
{
Point randomNeighbor = pos.GetRandomNeighbor();
if (CanMoveTo(randomNeighbor, allowDestroyPath: false))
{
newPoint = randomNeighbor;
if (isDrunk)
{
Talk("drunk");
}
}
- その人が酔っている場合、このキャラクターがアイドル(移動していない)状態であれば50%の確率でランダムに隣接する位置に移動し、移動中であれば12.5%の確率で移動します。
- その人が混乱している場合、50%の確率でランダムに移動します。
- 丘の民の蜜酒の虜フィートは酔っている時の処理を無効にしますが、混乱している時の処理は無効にしません。
featMilitant (前線指揮)
int num = 0;
if (owner.IsPCParty)
{
int id = e.id;
if (id == 70 || (uint)(id - 72) <= 1u)
{
int num2 = 0;
foreach (Chara member in EClass.pc.party.members)
{
if (member.Evalue(1419) > 0)
{
num2 += member.Evalue(1419);
}
}
if (num2 > 0)
{
int num3 = 0;
foreach (Chara chara in EClass._map.charas)
{
if (chara.IsHostile(EClass.pc))
{
num3++;
}
}
if (num3 > 0)
{
num += Mathf.Max(1, (e.ValueWithoutLink + e.vLink) * (int)Mathf.Clamp(4f + Mathf.Sqrt(num3) * (float)num2 * 2f, 5f, 30f) / 100);
}
}
}
}
- 前線指揮のフィートは筋力、器用、感覚に適用される。 (70,72,73)
- そのフィートを持つキャラクター1人につき、num2はフィートのレベル分(1)増加する。
- 現在いるマップのPCに敵対するキャラクター1人につき、num3は1増加する。
- そのステータスに対する最終的なボーナスは、以下のように計算される。
- 下限1
- 現在の値 * Clamp(4 + sqrt(num3) * num2 * 2, 5, 30) / 100
- 現在値の最大5%、最大30%のボーナスが与えられます。
- ボーナスは、敵の数の平方根に、そのフィートを持つNPCの数をかけたものに2を足した値で決定されます。
- 最大ボーナスは、前線指揮を持っているキャラが1人の場合、敵が169体で到達しますが、2人の場合は、敵が約39体で到達します。
featWhiteVixen (巫女)
if (t.IsCursed && t.IsEquipmentOrRanged && c.HasElement(1414))
{
bool num = t.blessedState == BlessedState.Doomed;
int num2 = 200 + t.LV * 3;
if (t.rarity == Rarity.Legendary)
{
num2 *= 3;
}
if (t.rarity >= Rarity.Mythical)
{
num2 *= 5;
}
if (num)
{
num2 *= 2;
}
EClass.pc.PlayEffect("identify");
EClass.pc.PlaySound("identify");
c.PlayEffect("mutation");
c.Say("draw_curse", c, t);
t.Destroy();
List<Element> list = new List<Element>();
foreach (Element value in EClass.pc.elements.dict.Values)
{
if (value is Spell)
{
list.Add(value);
}
}
if (list.Count == 0)
{
EClass.pc.SayNothingHappans();
return;
}
Element element = list.RandomItem();
EClass.pc.ModExp(element.id, num2);
EClass.pc.Say("draw_curse2", EClass.pc, element.Name);
return;
}
プレイヤーに与えられる魔法の経験値は、いくつかの要因によって決定されます。
- 基本値:200 + 装備のLV * 3
- 奇跡品質の場合、値は300%に増加します。
- 神器品質の場合、値は500%に増加します。
- 装備が堕落している場合、さらに2倍になります。
featSnail (かたつむり)
if (idAct == "janitor" && EClass.rnd(5) == 0)
{
DoSomethingToCharaInRadius(4, null, delegate(Chara c)
{
if (c.HasElement(1211) && !(EClass._zone is Zone_Casino))
{
owner.Talk("snail");
Thing t4 = ThingGen.Create("1142");
ActThrow.Throw(owner, c.pos, t4);
}
});
yield return Restart();
}
- ああ、かわいそうなかたつむり...何事もなく元気に過ごしてほしいのに、このコードがあなたを打ちのめしてしまうだろう...
- もし清掃員が4ブロック以内にかたつむりを見つけ、それがカジノ内にいない場合、
- 清掃員は塩水のポーションを生成し、それをかたつむりのいる場所に投げつけるだろう。
- 塩水のIDはハードコードされているが、もしIDが変更されたら...
- 清掃員は塩水のポーションを生成し、それをかたつむりのいる場所に投げつけるだろう。
case EffectId.SaltWater:
if (TC.HasElement(1211))
{
TC.Say("drinkSaltWater_snail", TC);
int dmg = ((TC.hp > 10) ? (TC.hp - EClass.rnd(10)) : 10000);
TC.DamageHP(dmg, AttackSource.None, CC);
}
else if (TC.IsPC)
{
TC.Say("drinkSaltWater", TC);
}
break;
- 貧弱なかたつむりがうっかり塩水を浴びてしまうと、非常に大きなダメージを受けます。
- かたつむりのHPが10より高い場合、最大でも10まで減少します。
- かたつむりのHPが10以下の場合、10000のダメージを受けます。
- ただし、オートコンバット中の場合、最大でもHPが0になるだけです。
featFoxLearn (古き狐の血統)
public int GetSpellExp(Chara c, Element e, int costMod = 100)
{
Act.Cost cost = e.GetCost(c);
int num = cost.cost * ((cost.type == Act.CostType.SP) ? 20 : 5) * (100 + c.Evalue(1208) * 30) / 100 + 10;
num = num * costMod / 100;
if (!e.source.aliasParent.IsEmpty())
{
int num2 = ValueWithoutLink(e.source.aliasParent) - ValueWithoutLink(e.source.id);
num = ((num2 < 0) ? (num * 100 / (100 - num2 * 25)) : (num * (100 + num2 * 5) / 100));
}
if (num < 0)
{
num = 0;
}
return num;
}
- 獲得できる魔法経験値は通常、魔法のMPコストの5倍+10、SPスキルであれば20*SPコスト+10です。
- このフィートは経験値獲得量を30%増加させます(固定値の10の部分には影響しません)。
- 要確認:魔法がレベルアップするために必要な経験値は正確にはいくつ?
featFoxBless (狐守)
public void DamageHP(...)
if (EClass.pc.HasElement(1207) && isChara)
{
int num = 0;
int num2 = 0;
foreach (Condition condition2 in Chara.conditions)
{
if (condition2.Type == ConditionType.Buff)
{
num++;
}
else if (condition2.Type == ConditionType.Debuff)
{
num2++;
}
}
if (IsPCParty)
{
dmg = dmg * 100 / Mathf.Min(100 + num * 5, 120);
}
else
{
dmg = dmg * Mathf.Min(100 + num2 * 5, 120) / 100;
}
}
- このフィートはダメージ計算の際にのみ使用され、PCがこのフィートを所有している場合にのみ適用されます。
- 自分と仲間が受けるダメージは、100/100 + 5 * xで減少します。ここでxは自分のバフの数で、最大4までです。
- 同様に、パーティメンバー以外のキャラクターが受けるダメージは、デバフの数1つにつき5%増加します。最大4までです。
- このデバフは、パーティメンバーではなくとも、同じファクションに属するキャラクターにも適用されますので、ご注意ください。
featFastLearner (習得上手)
public static int Learn(Chara c, Element e)
{
int num = Mathf.Max(1, e.CostLearn * (c.HasElement(1202) ? 80 : 100) / 100);
if (e.source.tag.Contains("guild") && Guild.Current.relation.rank < 2)
{
return num * 2;
}
return num;
}
public static int Train(Chara c, Element _e)
{
Element element = c.elements.GetElement(_e.id);
if (element.vTempPotential >= 1000)
{
return 0;
}
int num = Mathf.Max(1, element.CostTrain * (c.HasElement(1202) ? 80 : 100) / 100);
if (element.source.tag.Contains("guild") && Guild.Current.relation.rank < 2)
{
return num * 2;
}
return num;
}
- 訓練とスキル習得のプラチナ硬貨のコストは、切り捨てで20%割引となります。ただし1を下回ることはありません。
- また、潜在能力が1000を超える場合、訓練を行うことはできません。
- ギルドメンバーであっても、ギルドランクが1未満の場合は、訓練費用が100%増額されます。
public override int ExpToNext => (100 + base.Value * 10) * (100 - owner.Value(403)) / 100;
....
public int ExpToNext => (50 + LV * 30) * (100 - Evalue(403)) / 100;
- 各要素について、次のレベルに到達するために必要な経験値が20%減少します。
- これはキャラクターのレベルアップにも適用され、同じく20%減少します。
featManabond (マナとの絆)
int num = -value * 400 / (100 + BaseStats.CC.Evalue(303) * 10);
if (BaseStats.CC.HasElement(1201))
{
num /= 3;
}
if (!BaseStats.CC.IsPC)
{
num /= 5;
if (num < 10)
{
return;
}
}
BaseStats.CC.Say("mana_overflow", BaseStats.CC);
BaseStats.CC.DamageHP(num, 921, 100, AttackSource.ManaBackfire);
if (BaseStats.CC.IsAliveInCurrentZone)
{
BaseStats.CC.elements.ModExp(303, Mathf.Clamp(-a * 10, 10, 200));
}
- これは、マナの反動のダメージの仕組みに関する話題になるかもしれません。
- まず、基本ダメージを計算します。MPを使用した後に不足したMP1ポイントにつき、スキルなしで4ポイントのHPダメージが失われます。
- 魔力の限界スキルが10レベルの場合、このダメージは半分になります。20レベルでは33%、30レベルでは25%、などです。
- マナとの絆のフィートを持っている場合、このダメージはさらに66%カットされます。
- NPCもマナの反動ダメージを受けますが、80%カットされ、最終的な結果が10未満の場合はダメージを受けません。
- それでも、これはまだ何らかの形で悪用できると思います。
- 最後に、魔力の限界スキルで得られる経験値は、減少したMPの代わりに使用したMPに10を掛けた値で計算されます。
- 例えば、MPが99しかない時に100MPを消費する《ジュア》の癒しを唱えた場合、最低限のダメージしか受けずに、魔力の限界スキルで1000の基本経験値を得ることができます。
後天フィート
以下のフィートは、ゲームプレイやレベルアップなどによって獲得できます。
featCanniblism (Canniblism)
if (EClass.rnd(c.IsHuman ? 5 : 20) == 0)
{
c.SetFeat(1205, 1, msg: true);
flag4 = true;
}
...
if (flag4)
{
c.SetInt(31, EClass.world.date.GetRaw() + 10080);
}
}
else if (flag4 && c.GetInt(31) < EClass.world.date.GetRaw())
{
c.SetFeat(1205, 0, msg: true);
}
- このフィートを持っていない場合、人肉を食べると20%の確率で「カンニバリズム」の能力を得ることができます。
- あなたが人間系種族でない場合(すなわち、人間を食べることをカンニバリズムとは考えない場合)、このフィートを得る確率は5%です。
- このフィートはゲーム内で10080分間、すなわちゲーム内時間で1週間だけ有効です。人肉をもう1枚食べると、このタイマーはリセットされます。
入手不可能なフィート
このセクションには、通常の手段では得られないフィートが含まれているため情報は鵜呑みにしないでください。ここに記載されているすべてのフィート効果は検証が必要です。
featBoost (ブースト)
if (hp < MaxHP / 3 && HasElement(1409) && !Chara.HasCooldown(1409))
{
Chara.AddCooldown(1409);
Chara.AddCondition<ConBoost>(Power);
Chara.Cure(CureType.Boss);
Chara.HealHP(MaxHP / 2);
}
- このフィートにより、HPが最大値の1/3以下になると、HPが即座に50%回復する。
- ブースト状態も発動し、ほぼ全てのデバフと時間経過によるステータス減少が回復する。