예제 #1
0
    public bool LevelUp()
    {
        if (!ExpMetadataStorage.LevelExist((short)(Level + 1)))
        {
            return(false);
        }

        Level++;

        Player.Stats.AddBaseStats(Player);
        Player.FieldPlayer.RecoverHp(FieldPlayer.Stats[StatId.Hp].Bonus);

        Session.FieldManager.BroadcastPacket(RevivalConfirmPacket.Send(FieldPlayer.ObjectId, 0));
        Session.FieldManager.BroadcastPacket(LevelUpPacket.LevelUp(FieldPlayer.ObjectId, Level));
        Session.FieldManager.BroadcastPacket(FieldObjectPacket.UpdateCharacterLevel(Player));

        Session.FieldManager.BroadcastPacket(JobPacket.SendJob(FieldPlayer));

        Session.Send(StatPacket.SetStats(FieldPlayer));
        Session.FieldManager.BroadcastPacket(StatPacket.UpdateFieldStats(FieldPlayer), Session);

        Session.Send(KeyTablePacket.SendFullOptions(Player.GameOptions));

        TrophyManager.OnLevelUp(Player);
        QuestHelper.GetNewQuests(Player);
        return(true);
    }