Ok, eu sei, eu sei. O jogo é muito idoso, o código é uma porcaria, o servidor roda em uma berinjela com a casca descascando, blá, blá, blá. Precisa de um pouco de molho fresco na Salada de Alface do Servidor, blá, blá.
Cá está a situação. O jogador, neste caso, blueguyz, emite um comando chamado “pop rebels”. Neste caso, o jogador está eliminando 34 rebeldes do quadrilátero 43. O que isto significa é que os 34 rebeldes deixam o quadrilátero e se espalham aleatoriamente pelos outros quadrados. O problema é que o jogador que executa o comando tem sua própria resenha de rebeldes aumentando drasticamente. Existem 2 mesas – Jogadores e Quadrados. É na mesa dos Jogadores que ocorre o bug. COMO isso está acontecendo? COMO a resenha de rebeldes blueguyz está subindo para mais de 1.600? A resenha deve ser muito baixa, porquê menos de 50. Qualquer ajuda será apreciada!
$totalSquares = 44; // number increases as grid expands
$multipliedRebs = 34; // this number could be up to 50
// determine squares to place the new rebels
for ($i = 0; $i < $multipliedRebs; $i++)
{
Sua visita nos ajuda a continuar oferecendo o melhor para você! $randSquares[$i] = rand(1, $totalSquares);
Sua visita nos ajuda a continuar oferecendo o melhor para você! $squareList .= $randSquares[$i] . ", ";
// id of player of square affected from Square's table
$args = runQuery(" FROM Squares WHERE id = '$randSquares[$i]'", "owner,rebels,ownerId,farms,cities,units,permanent", false, false);
$values = explode(",", $args);
$p2Name = $values[0];
$p2Rebels = $values[1];
$p2OwnerId = $values[2];
$p2Farms = $values[3];
Sua visita nos ajuda a continuar oferecendo o melhor para você! $p2Cities = $values[4];
$p2Units = $values[5];
$p2Permanent = $values[6];
if ($p2Rebels < 100) {
// id of player affected from Player's table
$args = runQuery(" FROM Players WHERE id = '$p2OwnerId'", "name,rebels,color,borderColor,id", false, false);
$values = explode(",", $args);
$p2NameP = $values[0];
$p2RebelsP = $values[1];
$p2ColorP = $values[2];
$p2BorderColorP = $values[3];
$p2IdP = $values[4];
if ($p2IdP == "")
{
$logMessage .= " Sorry. there was a system error. Please try the command again.";
$failed = true;
break;
}
// update Squares table
$p2Rebels += 1;
$sql = "UPDATE Squares SET rebels="$p2Rebels" WHERE id = '$randSquares[$i]'";
if (!mysql_query($sql))
$textObj->logError($sql);
// update Players table
// THIS IS WHERE THE PLAYER WHO ISSUES COMMAND IS GETTING A HUGE NUMBER OF REBELS
$p2RebelsP += 1;
$sql = "UPDATE Players SET rebels="$p2RebelsP" WHERE id = '$p2IdP'";
if (!mysql_query($sql))
$textObj->logError($sql);
}
}
Não vejo zero de inexacto com o código. $p2RebeldesP += 1; // é só somar 1 rebelde em cada iteração, claro?
veja visual cá
Servidor de jogo cá http://codeelf.com/games/the-grid-2/grid/
Tags:
Crédito: Manadeira Original