[Resolvido] Problema com lógica de programação.
Bom, to com um dilema aqui no PHP que tá bem complicado de resolver. É o seguinte:
No jogo, cada nível possui uma respectiva esperiência nescesária, por exemplo:
Nível 1 -> 100 de experiência para o próximo nível.
Nível 2 -> 200 de experiência para o próximo nível.
Nível 3 -> 400 de experiência para o próximo nível.
Nível 4 -> 900 de experiência para o próximo nível.
Até ai tudo bem. O código que eu estava usando era +/- assim:
>
if ((experiência-atual + experiência-obtida) >= experiência-nescesária-para-passar-de-nível){
Jogador ganha um nível. São atualizados os campos na tabela com os novos valores para a experiência nescesária e tal.
}
O problema é que agora, é possivel que o jogador ganhe quantias grandes quantias de experiência, por exemplo 5000 pontos de experiência.
Com 5000 pontos o jogador poderia saltar do nível 1 até o nível 6, mas o código atual que uso não é capaz de fazer isso.
Espero que tenham entendido oque eu quis dizer. Segue abaixo o código original que estou usando:
if ($expdomonstro + $player->exp >= $player->maxexp) //Usuário passou de nível!
{
//Calcula experiência para o próximo nível...
$expofnewlvl = floor(20 * ($player->level * $player->level * $player->level)/$player->level);
//Nova experiência após passar de nível...
$newexp = $expdomonstro + $player->exp - $player->maxexp;
//Atualiza player...
$query = $db->execute("update `players` set `stat_points`=`stat_points`+3, `level`=`level`+1, `maxexp`=?, `exp`=? where `id`=?", array($expofnewlvl, $newexp, $player->id));
}Discussão (10)
Carregando comentários...