Ir para conteúdo

Featured Replies

Postado

Olá guys, estou em desenvolvimento um global 8.6 na versão TFS 1.3 do Nekiro, estou passando por uma pequena dor de cabeça, em fazer o ajuste da quantidade de EXP que perde ao mrorer...

 

No meu config.lua tem o deathLosePercent = -1 veio por padrão essa configuração mas está perdendo muita EXP ao morrer, eu alterei pra -2 e ele não perde nada, se eu altero pra maior que 1, ele perde muito mais.

 

Gostaria de um suporte de onde eu posso fazer essa mudança pra controlar a quantidade de exp perdida.

 

Postado

"-0" 
"--0"

Se der sorte, tem umas sources que funcionavam. 

Postado
  • Autor

Obrigado eu acabei encontrando ontem essa fórmula também e fiz uns ajustes também.

 

Aproveitando o gancho, pode me informar aonde eu configuro a % de perda ?

 

Essa fórmula ela é baseada na experiencia do jogador, então quanto maior o level mais % ele vai perder, queria conseguir por com que fosse "fixa" a porcentagem, colocar um math.random entre 33~37% sempre...

 

Deixei essa função do getLostPercent dessa forma

 

Spoiler
double Player::getLostPercent() const
{
    int32_t blessingCount = std::bitset<5>(blessings).count();
    int32_t deathLosePercent = g_config.getNumber(ConfigManager::DEATH_LOSE_PERCENT);
 
    double lossPercent = 10;
    double percentReduction = 0;
    double lossPercentFinal;
 
    if ( blessingCount == 7 ) {
        lossPercentFinal = uniform_random(23, 27);
    }
    else if ( blessingCount == 6) {
        lossPercentFinal = uniform_random(28, 32);
    }
    else if ( blessingCount == 5) {
        lossPercentFinal = uniform_random(33, 37);
    }
 
    //if (isPromoted()) {
    //  percentReduction += lossPercentFinal - ;
    //}
    //percentReduction += blessingCount * 8;
   
    return  deathLosePercent * lossPercentFinal;
}

 

Para que já me retorne um valor exato da porcentagem que vai perder, diferenciei pra cada tipo de bless, também ( espero que esteja certo )

Sei que dessa forma ele não vai funcionar, por que ainda ta baseado na experiencia do jogador e essa função apenas retornando um valor.

 

Então encontrei na função Death, esse chamado da função getLostPercent

 

Spoiler
double deathLossPercent = getLostPercent();
 
//Level loss
        uint64_t expLoss = static_cast<uint64_t>(experience * deathLossPercent);
        g_events->eventPlayerOnLoseExperience(this, expLoss);
 
        if (expLoss != 0) {
            uint32_t oldLevel = level;
 
            if (vocation->getId() == VOCATION_NONE || level > 7) {
                experience -= expLoss;
            }
 
            while (level > 1 && experience < Player::getExpForLevel(level)) {
                --level;
                healthMax = std::max<int32_t>(0, healthMax - vocation->getHPGain());
                manaMax = std::max<int32_t>(0, manaMax - vocation->getManaGain());
                capacity = std::max<int32_t>(0, capacity - vocation->getCapGain());
            }
 
            if (oldLevel != level) {
                std::ostringstream ss;
                ss << "You were downgraded from Level " << oldLevel << " to Level " << level << '.';
                sendTextMessage(MESSAGE_EVENT_ADVANCE, ss.str());
            }
 
            uint64_t currLevelExp = Player::getExpForLevel(level);
            uint64_t nextLevelExp = Player::getExpForLevel(level + 1);
            if (nextLevelExp > currLevelExp) {
                levelPercent = Player::getPercentLevel(experience - currLevelExp, nextLevelExp - currLevelExp);
            } else {
                levelPercent = 0;
            }
        }

 

Acredito que devo ter que fazer a fórmula pra calcular a porcentagem da experiencia pra perder e chegar na faixa de 30% que quero né, a fórmula consigo fazer, só não sei exatamente aonde mexer para isso.

Editado por Faelzdanil (veja o histórico de edições)

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

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

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.1k

Informação Importante

Confirmação de Termo