我正在嘗試爲我的遊戲製作一個簡單的戰鬥腳本,但在戰鬥和所有後,我不希望玩家能夠點擊刷新並再次與怪物戰鬥..或者能夠一次又一次地提交提交以獲得獲勝的獎勵..那麼在該人擊中攻擊按鈕並且戰鬥顯示結果之後我需要這樣做,以使其不可能發生?如果我嘗試使用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...";
}
您可以將它們轉發到其他頁面並在其中顯示結果。除了在會話中存儲一段時間或其他東西以防止他們再次進行戰鬥直到存儲的時間。 – 2013-04-06 04:28:29