/// <summary> /// Send level up packet to client and update database /// </summary> /// <param name="client">The MapClient</param> /// <param name="type">The LevelType that gained level(s)</param> /// <param name="numLevels">The number of levels gained</param> private void SendLevelUp(MapClient client, LevelType type, uint numLevels) { //Update DB Packets.Server.LevelUp sendPacket = new SagaMap.Packets.Server.LevelUp(); sendPacket.SetLevelType((byte)type); sendPacket.SetActorID(client.Char.id); sendPacket.SetLevels(1); client.netIO.SendPacket(sendPacket, client.SessionID); switch (type) { case LevelType.CLEVEL: SagaMap.Skills.SkillHandler.CalcHPSP(ref client.Char); client.Char.HP = client.Char.maxHP; client.Char.SP = client.Char.maxSP; client.Char.cLevel += numLevels; client.Char.stpoints += (byte)(2 * numLevels); // TODO implement getting this from level configuration client.SendBattleStatus(); client.SendCharStatus(0); client.SendExtStats(); break; case LevelType.JLEVEL: client.Char.jLevel += numLevels; client.Char.HP = client.Char.maxHP; client.Char.SP = client.Char.maxSP; client.SendCharStatus(0); break; } Logger.ShowInfo(client.Char.name + " gained " + numLevels + "x" + type.ToString(), null); //if (client.Party != null) // client.Party.UpdateMemberInfo(client); }