我正在尝试为我的游戏制作一个简单的战斗脚本,但在战斗结束后,我不希望玩家能够单击刷新并再次与怪物战斗......或者能够一遍又一遍地点击提交继续获得获胜的奖励..那么在被击中的人的攻击按钮并且战斗显示结果之后我需要做什么,以使其不会发生?如果我尝试使用 session_destroy() 将玩家注销并解决问题:/
这是我的代码有什么帮助吗?
if(isset($_POST['Submit']))
{
$player=$_SESSION['username'];
$playerstats1="SELECT * from users where username='$player'";
$playerstats2=mysql_query($playerstats1) or die ("Could not find player");
$playerstats3=mysql_fetch_array($playerstats2);
$pokemonstat1="SELECT * from user_pokemon where belongsto='$player' AND slot='1'";
$pokemonstat2=mysql_query($pokemonstat1) or die ("Could not find pokemon");
while($row = mysql_fetch_array($pokemonstat2)){
$yourmonster="SELECT * from pokemon where name='".$row['pokemon']."'";
$yourmonster2=mysql_query($yourmonster) or die ("Cannot select battle the pokemon");
$yourmonster3=mysql_fetch_array($yourmonster2);
$monstername=$_SESSION['pokemon'];
$monstername=strip_tags($monstername);
$selmonster="SELECT * from pokemon where name='$monstername'";
$selmonster2=mysql_query($selmonster) or die ("Cannot select battle the pokemon");
$selmonster3=mysql_fetch_array($selmonster2);
$totalskill=$yourmonster3[att] * $row['level'] + $selmonster3[att] * 5;
$randomnumber=rand(1,$totalskill);
if($randomnumber<=$yourmonster3[att] * $row['level'])
{
echo "<center>";
echo "you have won!";
echo "</center>";
} else {
echo "<center>";
echo "you have lost!";
echo "</center>";
}
}
}
再次更新。
$battle_id = md5(uniqid(rand(), true));
echo $battle_id;
// $battle_id would be something like 9a8ab59df7079208843086e9b49a7862
// initialise the battle log
if(!isset($_SESSION['battle_log']) || !is_array($_SESSION['battle_log']))
{
$_SESSION['battle_log'] = array();
}
// Check if the battle hasn't been played
if(!in_array($battle_id, $_SESSION['battle_log']))
{
// add played battle to the log
// ... your battle code goes here
if(isset($_POST['Submit']))
{
$player=$_SESSION['username'];
$playerstats1="SELECT * from users where username='$player'";
$playerstats2=mysql_query($playerstats1) or die ("Could not find player");
$playerstats3=mysql_fetch_array($playerstats2);
$pokemonstat1="SELECT * from user_pokemon where belongsto='$player' AND slot='1'";
$pokemonstat2=mysql_query($pokemonstat1) or die ("Could not find pokemon");
while($row = mysql_fetch_array($pokemonstat2)){
$yourmonster="SELECT * from pokemon where name='".$row['pokemon']."'";
$yourmonster2=mysql_query($yourmonster) or die ("Cannot select battle the pokemon");
$yourmonster3=mysql_fetch_array($yourmonster2);
$monstername=$_SESSION['pokemon'];
$monstername=strip_tags($monstername);
$selmonster="SELECT * from pokemon where name='$monstername'";
$selmonster2=mysql_query($selmonster) or die ("Cannot select battle the pokemon");
$selmonster3=mysql_fetch_array($selmonster2);
$totalskill=$yourmonster3[att] * $row['level'] + $selmonster3[att] * 5;
$randomnumber=rand(1,$totalskill);
if($randomnumber<=$yourmonster3[att] * $row['level'])
{
echo "<center>";
echo "you have won!";
echo "</center>";
} else {
echo "<center>";
echo "you have lost!";
echo "</center>";
}
}
}
$_SESSION['battle_log'][] = $battle_id;
}else {
echo "Don't try to cheat...";
}