Ir para conteúdo
Faça parte da equipe! (2024) ×
Conheça nossa Beta Zone! Novas áreas a caminho! ×
  • Quem está por aqui   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
  • 0

Como alterar ganho XP celestial e sub!


RoyalSaluty
 Compartilhar

Pergunta

Alguém por gentileza, consegue me informa onde aumenta o xp do celestial e sub apenas!  Na versão 7.63

 

achei esse codigo abaixo na Mobkilled!

 

#pragma region Distribui��o da EXP

int MobExp = GetExpApply(pMob[conn].extra, (int)pMob[target].MOB.Exp, pMob[conn].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

int FinalExp = 0;

 

// TODO: Change this UNK_s to something else.

int UNK_1 = 30;

int UNK_2 = 0;

int UNK_3 = pMob[conn].extra.ClassMaster;

 

#pragma region Pesa A

if (party > 0 && party < MAX_USER && pMob[party].MOB.CurrentScore.Hp > 0 && (tx / 128) == 9 && (pMob[party].TargetX / 128) == 9

&& (ty / 128) == 1 && (pMob[party].TargetY / 128) == 1)

{

isExp = GetExpApply(pMob[party].extra, (int)pMob[target].MOB.Exp, pMob[party].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

 

int myLevel = pMob[party].MOB.CurrentScore.Level;

 

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

 

int exp = (UNK_1 + myLevel) * isExp / (UNK_1 + myLevel);

if (exp > 0 && exp <= 10000000)

{

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

{

if (myLevel < 120)

exp /= 10;

 

else if (myLevel < 150)

exp /= 20;

 

else if (myLevel < 170)

exp /= 40;

 

else if (myLevel < 180)

exp /= 80;

 

else if (myLevel < 190)

exp /= 160;

 

else

exp /= 320;

}

exp = 6 * exp / 10;

 

//if (exp > eMob)

// exp = eMob;

 

if (pMob[conn].ExpBonus > 0 && pMob[conn].ExpBonus < 500)

exp += exp * pMob[conn].ExpBonus / 100;

 

if (RvRBonus && RvRBonus == pMob[party].MOB.Clan)

exp += (exp * 10) / 100;

 

if (NewbieEventServer && pMob[party].MOB.CurrentScore.Level < 100 && pMob[party].extra.ClassMaster != CELESTIAL && pMob[party].extra.ClassMaster != CELESTIALCS && pMob[party].extra.ClassMaster != SCELESTIAL)

exp += exp / 4;

 

Quando eu altero a divisão ali de 4 pra 2, n modifica no server. E aumentado no editor de mob não resolve, pq aumenta do arch e mortal junto!

 

 

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
1 hora atrás, RoyalSaluty disse:

Alguém por gentileza, consegue me informa onde aumenta o xp do celestial e sub apenas!  Na versão 7.63

 

achei esse codigo abaixo na Mobkilled!

 

 

#pragma region Distribui��o da EXP

int MobExp = GetExpApply(pMob[conn].extra, (int)pMob[target].MOB.Exp, pMob[conn].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

int FinalExp = 0;

 

// TODO: Change this UNK_s to something else.

int UNK_1 = 30;

int UNK_2 = 0;

int UNK_3 = pMob[conn].extra.ClassMaster;

 

#pragma region Pesa A

if (party > 0 && party < MAX_USER && pMob[party].MOB.CurrentScore.Hp > 0 && (tx / 128) == 9 && (pMob[party].TargetX / 128) == 9

&& (ty / 128) == 1 && (pMob[party].TargetY / 128) == 1)

{

isExp = GetExpApply(pMob[party].extra, (int)pMob[target].MOB.Exp, pMob[party].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

 

int myLevel = pMob[party].MOB.CurrentScore.Level;

 

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

 

int exp = (UNK_1 + myLevel) * isExp / (UNK_1 + myLevel);

if (exp > 0 && exp <= 10000000)

{

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

{

if (myLevel < 120)

exp /= 10;

 

else if (myLevel < 150)

exp /= 20;

 

else if (myLevel < 170)

exp /= 40;

 

else if (myLevel < 180)

exp /= 80;

 

else if (myLevel < 190)

exp /= 160;

 

else

exp /= 320;

}

exp = 6 * exp / 10;

 

//if (exp > eMob)

// exp = eMob;

 

if (pMob[conn].ExpBonus > 0 && pMob[conn].ExpBonus < 500)

exp += exp * pMob[conn].ExpBonus / 100;

 

if (RvRBonus && RvRBonus == pMob[party].MOB.Clan)

exp += (exp * 10) / 100;

 

if (NewbieEventServer && pMob[party].MOB.CurrentScore.Level < 100 && pMob[party].extra.ClassMaster != CELESTIAL && pMob[party].extra.ClassMaster != CELESTIALCS && pMob[party].extra.ClassMaster != SCELESTIAL)

exp += exp / 4;

 

Quando eu altero a divisão ali de 4 pra 2, n modifica no server. E aumentado no editor de mob não resolve, pq aumenta do arch e mortal junto!

 

 

 

GetExpApply

Link para o comentário
Compartilhar em outros sites

  • 0
4 horas atrás, RoyalSaluty disse:

Alguém por gentileza, consegue me informa onde aumenta o xp do celestial e sub apenas!  Na versão 7.63

 

achei esse codigo abaixo na Mobkilled!

 

 

#pragma region Distribui��o da EXP

int MobExp = GetExpApply(pMob[conn].extra, (int)pMob[target].MOB.Exp, pMob[conn].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

int FinalExp = 0;

 

// TODO: Change this UNK_s to something else.

int UNK_1 = 30;

int UNK_2 = 0;

int UNK_3 = pMob[conn].extra.ClassMaster;

 

#pragma region Pesa A

if (party > 0 && party < MAX_USER && pMob[party].MOB.CurrentScore.Hp > 0 && (tx / 128) == 9 && (pMob[party].TargetX / 128) == 9

&& (ty / 128) == 1 && (pMob[party].TargetY / 128) == 1)

{

isExp = GetExpApply(pMob[party].extra, (int)pMob[target].MOB.Exp, pMob[party].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

 

int myLevel = pMob[party].MOB.CurrentScore.Level;

 

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

 

int exp = (UNK_1 + myLevel) * isExp / (UNK_1 + myLevel);

if (exp > 0 && exp <= 10000000)

{

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

{

if (myLevel < 120)

exp /= 10;

 

else if (myLevel < 150)

exp /= 20;

 

else if (myLevel < 170)

exp /= 40;

 

else if (myLevel < 180)

exp /= 80;

 

else if (myLevel < 190)

exp /= 160;

 

else

exp /= 320;

}

exp = 6 * exp / 10;

 

//if (exp > eMob)

// exp = eMob;

 

if (pMob[conn].ExpBonus > 0 && pMob[conn].ExpBonus < 500)

exp += exp * pMob[conn].ExpBonus / 100;

 

if (RvRBonus && RvRBonus == pMob[party].MOB.Clan)

exp += (exp * 10) / 100;

 

if (NewbieEventServer && pMob[party].MOB.CurrentScore.Level < 100 && pMob[party].extra.ClassMaster != CELESTIAL && pMob[party].extra.ClassMaster != CELESTIALCS && pMob[party].extra.ClassMaster != SCELESTIAL)

exp += exp / 4;

 

Quando eu altero a divisão ali de 4 pra 2, n modifica no server. E aumentado no editor de mob não resolve, pq aumenta do arch e mortal junto!

 

 

 


Procure na source: int    GetExpApply(STRUCT_MOBEXTRA extra, int exp, int attacker, int target)

Após isso você define a classe e o level. exemplo: 

else if ((extra.ClassMaster == CELESTIAL || extra.ClassMaster == SCELESTIAL || extra.ClassMaster == CELESTIALCS) && exp > 0)
{
        if (attacker <= 39)
        {
            exp = exp * 9;
        }

        if (attacker >= 40 || attacker <= 99)
        {
            exp = exp * 3;
        }
}

E assim vai...

Link para o comentário
Compartilhar em outros sites

  • 0
Em 03/11/2022 em 15:18, RoyalSaluty disse:

Alguém por gentileza, consegue me informa onde aumenta o xp do celestial e sub apenas!  Na versão 7.63

 

achei esse codigo abaixo na Mobkilled!

 

 

#pragma region Distribui��o da EXP

int MobExp = GetExpApply(pMob[conn].extra, (int)pMob[target].MOB.Exp, pMob[conn].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

int FinalExp = 0;

 

// TODO: Change this UNK_s to something else.

int UNK_1 = 30;

int UNK_2 = 0;

int UNK_3 = pMob[conn].extra.ClassMaster;

 

#pragma region Pesa A

if (party > 0 && party < MAX_USER && pMob[party].MOB.CurrentScore.Hp > 0 && (tx / 128) == 9 && (pMob[party].TargetX / 128) == 9

&& (ty / 128) == 1 && (pMob[party].TargetY / 128) == 1)

{

isExp = GetExpApply(pMob[party].extra, (int)pMob[target].MOB.Exp, pMob[party].MOB.CurrentScore.Level, pMob[target].MOB.CurrentScore.Level);

 

int myLevel = pMob[party].MOB.CurrentScore.Level;

 

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

 

int exp = (UNK_1 + myLevel) * isExp / (UNK_1 + myLevel);

if (exp > 0 && exp <= 10000000)

{

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

{

if (myLevel < 120)

exp /= 10;

 

else if (myLevel < 150)

exp /= 20;

 

else if (myLevel < 170)

exp /= 40;

 

else if (myLevel < 180)

exp /= 80;

 

else if (myLevel < 190)

exp /= 160;

 

else

exp /= 320;

}

exp = 6 * exp / 10;

 

//if (exp > eMob)

// exp = eMob;

 

if (pMob[conn].ExpBonus > 0 && pMob[conn].ExpBonus < 500)

exp += exp * pMob[conn].ExpBonus / 100;

 

if (RvRBonus && RvRBonus == pMob[party].MOB.Clan)

exp += (exp * 10) / 100;

 

if (NewbieEventServer && pMob[party].MOB.CurrentScore.Level < 100 && pMob[party].extra.ClassMaster != CELESTIAL && pMob[party].extra.ClassMaster != CELESTIALCS && pMob[party].extra.ClassMaster != SCELESTIAL)

exp += exp / 4;

 

Quando eu altero a divisão ali de 4 pra 2, n modifica no server. E aumentado no editor de mob não resolve, pq aumenta do arch e mortal junto!

 

 

 

Resolvido!

a solução que consegui, foi comentar essa parte >> //

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

Link para o comentário
Compartilhar em outros sites

  • 0
14 horas atrás, RoyalSaluty disse:

Resolvido!

a solução que consegui, foi comentar essa parte >> //

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

myLevel += MAX_LEVEL + 1;

lv. 190++ seu problema volta, pois ele vai voltar a cair em 

else

exp /= 320;

 

com a remoção do incremento MAX_LEVEL, seu código vai cair nessa quebra de acordo com o lvl:
 

if (pMob[party].extra.ClassMaster != MORTAL && pMob[party].extra.ClassMaster != ARCH)

{

if (myLevel < 120)

exp /= 10;

 

else if (myLevel < 150)

exp /= 20;

 

else if (myLevel < 170)

exp /= 40;

 

else if (myLevel < 180)

exp /= 80;

 

else if (myLevel < 190)

exp /= 160;

 

else

exp /= 320;

}

antes por tem um incremento de Max_Level[possivelmente definido em 400], provavelmente estava caindo sempre no

else

exp /= 320; //exp dividida por 320;
como o if principal da quebra de exp verifica se classMaster é diferente de Mortal e Diferente de Arch, sobra apenas celestial/sub para cair nessa quebra.

Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Cadastre-se Agora para publicar com Sua Conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

 Compartilhar

×
×
  • Criar Novo...

Informação Importante

Nós fazemos uso de cookies no seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies , caso contrário, vamos supor que você está bem para continuar.