Ir para conteúdo
  • 2 Quem está por aqui   0 membros estão online

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

Como alterar ganho XP celestial e sub!


RoyalSaluty
 Compartilhar

Posts Recomendados

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

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

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

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

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.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
 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.