Wont Gain Exp

06/27/2014 11:05 arneljan#1
DataHolder.cs
PHP Code:
public static ulong LevelExperience(byte Level)
        {
            return 
levelExperience[Math.Min(Math.Max(Level 10), 135)];
        }
        public static 
uint ProficiencyLevelExperience(byte Level)
        {
            return 
proficiencyLevelExperience[Math.Min(Level, (byte)20)];
        }

        static 
uint[] proficiencyLevelExperience = new uint[21] { 0120068000250000640000160000040000001000000022000000400000009000000095000000142500000213750000320625000480937500721406250108210937516231640632100000000};
        static 
ulong[] levelExperience = new ulong[139] { 1201802403606009601200240036008400120001440018000216002264632203374334755656609687727051575936977331148361208531239811267201458781734361976462024512121602441902858233059863128643244803661684339594605905067385699947285278508299164799351189408001076593127278013579941384861147840016324381903104206604221049241921085241720228534623054574311121732256003810962443789648806054970962510720056525186579162687799171007007157657910686010596398112205491140919211424000128829521517280715896990161637991680000019230280223652082381931224219528248640002720007732033165337238013429131734944000394635234587856748924236497292205107200055808379648700586839193169537026764229689695078911267675512009048212179828012768000013744688719371597040883215045467468546112588546918988547725388548047948548531788549338188558058004671742498728227405833872887040647464448776957258532348770238818484286582110114389851073741823107374182385891345882576740376477302211292231906633876347859950814447859950814547859950814117403000000017610400000002641550000000 }; 
Update.cs
public void Append(byte type, byte value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 4, Buffer);
}
public void Append(byte type, ushort value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 4, Buffer);
}
public void AppendFull(byte type, ulong val1, ulong val2, uint val3)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(16 + ((UpdateCount - 1) * 20));
WriteUInt32(type, offset, Buffer);
WriteUInt64(val1, offset + 4, Buffer);
WriteUInt64(val2, offset + 12, Buffer);
WriteUInt32(val3, offset + 20, Buffer);
}
public void PoPAppend(byte type, ulong val1, ulong val2)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(16 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(val1, offset + 8, Buffer);
WriteUInt64(val2, offset + 16, Buffer);
}
public void Append(byte type, uint value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 4, Buffer);
}
public void Append(byte type, ulong value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 4, Buffer);
}
public void Append2(byte type, byte value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 12, Buffer);
}
public void Append2(byte type, ushort value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 12, Buffer);
}
public void Append2(byte type, uint value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 12, Buffer);
}
public void Append2(byte type, ulong value)
{
UpdateCount = UpdateCount + 1;
ushort offset = (ushort)(12 + 4 + ((UpdateCount - 1) * 24));
WriteUInt32(type, offset, Buffer);
WriteUInt64(value, offset + 12, Buffer);
}

Handle.cs
PHP Code:
public static void ReceiveAttack(Game.Entity attackerGame.Entity attackedAttack attackuint damageDatabase.SpellInformation spell)
        {
            if (
attacker.MapID == DeathMatch.MAPID)
            {
                
DeathMatch.Points[attacker.TeamDeathMatchTeamKey]++;
                
attacker.TeamDeathMatch_Hits++;
                
attacked.Hitpoints attacked.MaxHitpoints;
            }
            if (!(
attacked.Name.Contains("Polic[GM]") && attacked.EntityFlag == EntityFlag.Monster))
                if (
attacker.EntityFlag == EntityFlag.Player && attacked.EntityFlag != EntityFlag.Player && !attacked.Name.Contains("Polic[GM]"))
                {
                    if (
damage attacked.Hitpoints)
                    {
                        
attacker.Owner.IncreaseExperience(Calculate.CalculateExpBonus(attacker.Levelattacked.LevelMath.Min(damageattacked.Hitpoints)), true);
                        if (
spell != null)
                            
attacker.Owner.IncreaseSpellExperience((uint)Calculate.CalculateExpBonus(attacker.Levelattacked.LevelMath.Min(damageattacked.Hitpoints)), spell.ID);
                    }
                    else
                    {
                        
attacker.Owner.IncreaseExperience(Calculate.CalculateExpBonus(attacker.Levelattacked.Leveldamage), true);
                        if (
spell != null)
                            
attacker.Owner.IncreaseSpellExperience((uint)Calculate.CalculateExpBonus(attacker.Levelattacked.Leveldamage), spell.ID);
                    }
                }
            if (
attacker.EntityFlag == EntityFlag.Monster && attacked.EntityFlag == EntityFlag.Player)
            {
                if (
attacked.Action == Enums.ConquerAction.Sit)
                    if (
attacked.Stamina 20)
                        
attacked.Stamina -= 20;
                    else
                        
attacked.Stamina 0;
                
attacked.Action Enums.ConquerAction.None;
            }

            if (
attack.AttackType == Attack.Magic)
            {
                if (
attacked.Hitpoints <= damage)
                {
                    
attacker.Owner.UpdateQualifier(attacker.Ownerattacked.Ownerattacked.Hitpoints);
                    
attacked.CauseOfDeathIsMagic true;
                    
attacked.Die(attacker);
                    if (
attacker.PKMode == Enums.PKMode.Jiang)
                    {
                        if (
attacked.JiangActive)
                        {
                            if (
attacker.MyJiang != null && attacked.MyJiang != null)
                            {
                                
attacker.MyJiang.GetKill(attacker.Ownerattacked.MyJiang);
                            }
                        }
                    }
                    
attacked.IsDropped false;
                }
                else
                {
                    
attacker.Owner.UpdateQualifier(attacker.Ownerattacked.Ownerdamage);
                    
attacked.Hitpoints -= damage;
                }
            }
            else
            {
                if (
attacked.Hitpoints <= damage)
                {
                    if (
attacked.EntityFlag == EntityFlag.Player)
                    {
                        
attacker.Owner.UpdateQualifier(attacker.Ownerattacked.Ownerattacked.Hitpoints);
                        
attacked.Owner.SendScreen(attacktrue);
                        
attacker.AttackPacket null;
                    }
                    else
                    {
                        
attacked.MonsterInfo.SendScreen(attack);
                    }
                    if (
attacker.PKMode == Enums.PKMode.Jiang)
                    {
                        if (
attacked.JiangActive)
                        {
                            if (
attacker.MyJiang != null && attacked.MyJiang != null)
                            {
                                
attacker.MyJiang.GetKill(attacker.Ownerattacked.MyJiang);
                            }
                        }
                    }
                    
attacked.Die(attacker);
                }
                else
                {
                    
attacked.Hitpoints -= damage;
                    if (
attacked.EntityFlag == EntityFlag.Player)
                    {
                        
attacker.Owner.UpdateQualifier(attacker.Ownerattacked.Ownerdamage);
                        
attacked.Owner.SendScreen(attacktrue);
                    }
                    else
                        
attacked.MonsterInfo.SendScreen(attack);
                    
attacker.AttackPacket attack;
                    
attacker.AttackStamp Time32.Now;
                }
            }
        } 
06/28/2014 03:37 InsomniacPro#2
Its this thread again...
06/28/2014 07:56 arneljan#3
Nvm IsomniacPro already find the bug. thanks anyway