protected void PlayerGetEXP(GPlayer player, uint Total) { PangyaBinaryWriter Resp; bool IsUpdate = false; MailSender MailSender; Resp = new PangyaBinaryWriter(); if (player.Level >= 70) { player.SendResponse(new byte[] { 0x0F, 0x00, 0x01, 0x00, 0x00, 0x00 }); return; } player.Exp = player.Exp += Total; while (true) { if (player.Level >= 70) { break; } EXPList.TryGetValue(player.Level, out uint EXPTotal); if (player.Exp >= EXPTotal) { player.Level = Convert.ToByte(player.Level + 1); MailSender = new MailSender(); try { MailSender.Sender = "@GM"; MailSender.AddItemLevel((TLEVEL)player.Level); MailSender.Send(player.GetUID); } finally { MailSender.Dispose(); } player.Exp = player.Exp -= EXPTotal; IsUpdate = true; } else { break; } } var _db = new PangyaEntities(); try { if (IsUpdate) { var table1 = $"UPDATE Pangya_User_Statistics SET Game_Point = '{player.Exp}', Game_Level = '{player.Level}' WHERE UID = '{player.GetUID}'"; _db.Database.SqlQuery <PangyaEntities>(table1).FirstOrDefault(); player.SendLevelUp(); } } finally { if (Resp != null) { Resp.Dispose(); } else if (_db != null) { _db.Dispose(); } } player.LoadStatistic(); }