public void DistribuirPontosDeExperiencia() { for (int contador = (this.DanosInfligidos.Count - 1); contador >= 0; --contador) { if (contador >= this.DanosInfligidos.Count) { continue; } DamageEntry danoInfligido = (DamageEntry)this.DanosInfligidos[contador]; if (danoInfligido.HasExpired) { continue; } Mobile atacante = danoInfligido.Damager; if (atacante == null || atacante.Deleted || !atacante.Player) { continue; } else if (atacante == null || atacante.Deleted) { continue; } if (atacante is BaseCreature) { BaseCreature criatura = (BaseCreature)atacante; if (criatura.Controlled && criatura.ControlMaster != null) { atacante = criatura.ControlMaster; } else if (criatura.Summoned && criatura.SummonMaster != null) { atacante = criatura.SummonMaster; } } else if (atacante is PlayerMobile) { if (this.AssassinadoPor is BaseGuard) { atacante.SendMessage("Os guardas fizeram o trabalho sujo! Você não recebe pontos de experiência."); } else if ((this.Domado && this.MestreDomador != null) || (this.MestreDomador == atacante) || (this.Invocado && this.MestreBruxo != null) || this.CriaturaRessureta) { if (this.Invocado && this.MestreBruxo != null) { atacante.SendMessage("Você matou um monstro invocado, e não recebe pontos de experiência."); } else if (this.MestreDomador == atacante || this.CriaturaRessureta) { atacante.SendMessage("Você matou um animal domado e não recebe pontos de experiência."); } } else { PlayerMobile jogadorAtacante = atacante as PlayerMobile; int pontosExperiencia = this.CalcularValorGanhoComExperiencia(jogadorAtacante.Fame); if (pontosExperiencia < 0) { pontosExperiencia = 0; } jogadorAtacante.SendMessage("Você recebeu {0} pontos de experiência", pontosExperiencia); ControladorODBC.ODBCConcederPontosXP(jogadorAtacante.Account.Username, jogadorAtacante.Name, pontosExperiencia); } } } }