Andrew Burston
Initiate
So heres the scenario
399 out of 400 exp to level
kill a skeleton and boom you level..
systems creates new exp required to level and sets it fine... BUT!!
It should then reset the players exp to 0 but it doesnt. Anyone know why it is not doing as it should?
399 out of 400 exp to level
kill a skeleton and boom you level..
systems creates new exp required to level and sets it fine... BUT!!
It should then reset the players exp to 0 but it doesnt. Anyone know why it is not doing as it should?
Code:
public static void DoLevel(Mobile m, Setup set)
{
double TimesLeveled = 0;
PlayerMobile pm = m as PlayerMobile;
pm.PlaySound(0x20F);
pm.FixedParticles(0x376A, 1, 31, 9961, 1160, 0, EffectLayer.Waist);
pm.FixedParticles(0x37C4, 1, 31, 9502, 43, 2, EffectLayer.Waist);
if (set.StatRefillOnLevel)
{
if (pm.Hits < pm.HitsMax)
pm.Hits = pm.HitsMax;
if (pm.Mana < pm.ManaMax)
pm.Mana = pm.ManaMax;
if (pm.Stam < pm.StamMax)
pm.Stam = pm.StamMax;
}
/*
while (pm.Exp >= pm.LevelAt && pm.Level != pm.LevelCap)
{
if (set.AccumulativeExp)
return;
int newexp = 0;
if (pm.Exp > pm.LevelAt)
newexp = pm.Exp - pm.LevelAt;
pm.Exp = newexp;
TimesLeveled++;
}
*/
for (int i = 1; pm.Exp >= pm.LevelAt; i++)
{
pm.LevelAt += set.NextLevelAt;
pm.AccLevelAt += (int)(set.NextLevelAt + pm.AccKillExp);
if (set.BonusStatOnLevel && pm.RawStatTotal != pm.StatCap && set.ChanceForBonusStat < Utility.Random(100))
{
switch (Utility.Random(3))
{
case 0: pm.RawStr += 1; break;
case 1: pm.RawDex += 1; break;
case 2: pm.RawInt += 1; break;
}
}
TimesLeveled = i;
}
if (set.RefreshExpBarOnGain && pm.HasGump(typeof(ExpBar)))
{
pm.CloseGump(typeof(ExpBar));
pm.SendGump(new ExpBar(pm));
}
pm.SendMessage("You're Level has increased by {0}", TimesLeveled);
pm.Level += (int)TimesLeveled;
}
Last edited by a moderator: