Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Pessoal queria uma ajuda de vocês para fazer uma soma.
É o seguinte eu tenho um rpg de site, e preciso fazer uma soma de Exp ganha para o char ganhar level.
Funciona da seguinte forma:
existem 2 campos na tabela, Exp e MaxExp. No momento em que eu realizar uma missão e finaliza-la, eu ganho mais Exp. Quando o Exp chega no mesmo valor que o MaxExp eu ganho 1 level e o Exp volta a 0 e o MaxExp aumenta + 200.
Exemplo: Meu char está com 0 level, 0 pontos em Exp, e 900 pontos em MaxExp.
Realizo uma missão onde ganho 1000 pontos em Exp, na hora que eu finalizar ele vai fazer uma soma entre o Exp que eu ganhei menos o valor do meu MaxExp, se for menor nao vou subir de level pois tenho que chegar até 900, se for igual ($expganho = 900; $MaxExp = 900; $Soma = $expganho - $MaxExp = 0) ele vai subir um level, zerar o Exp e me adicionar mais 200 pts em MaxExp. Se for maior que o MaxExp ($expganho = 1000; $MaxExp = 900; $Soma = $expganho - $MaxExp = 100) ele tem que me adicionar 100 pontos em exp, pois eu consegui mais pts do que meu MaxExp, então ele vai ser tipo meu troco, ai vou ganhar 1 level e o MaxExp vai subir 200 pts.
O problema é o seguinte: Quando possuo 5000 em Exp, e 6000 em MaxExp e vou la e ganho mais 10000 em Exp, ele teria que fazer a soma
$expganho = 15000;
$MaxExp = 6000;
$Soma = $expganho - $MaxExp;
Ele me retornaria 9000, esse valor eu teria que adicionar em Exp, mas não pode porquê eu iria ganhar + 200 em MaxExp, e ficaria com 6200, e o Exp seria de 9000, sendo que o MaxExp sempre tem q ser maior, nesse caso ele teria que pegar o 9000 e somar menos 6200, (ai eu subiria mais 1 level), ele me retornaria 2800, e eu ganharia mais 200 em MaxExp.
O problema é que meu código faz só uma conta, e o certo seria ele fazer as contas de menos até ele retornar o Exp menor que o MaxExp.
Carregando comentários...