So I am trying to run a function inside itself, but I keep coming up with this error.
Fatal error: Cannot redeclare playerattacksfirst() (previously declared in /home/riseofim/public_html/riseofimmortals.com/functions.php:2) in /home/riseofim/public_html/riseofimmortals.com/functions.php on line 72
So I know it has something wrong with the function and about it being previously called. But what can I do to get around this?
fight.php
$Starter = mysql_query("SELECT * FROM Monsters WHERE Name='$Name'")or die("Error 001: No monster with that name.");
$Monster = Mysql_fetch_array($Starter);
print $Monster['Name']." is in battle with you!<br />";
setcookie("Monstername",$Monster['Name']);
$MHealth = $Monster['Level']*rand(15,30);
$MAttack = $Monster['Level']+$Monster['Level']*rand(1,10);
$MDefense = $Monster['Level']+$Monster['Level']*rand(0,3);
$MDodge = $Monster['Level']+$Monster['Level']*rand(1,10);
$MSpeed = $Monster['Level']+$Monster['Level']*rand(1,10);
$MCritical = $Monster['Level']+$Monster['Level']*rand(1,10);
print "The enemy has ".$MHealth." health.";
include("functions.php");
if($User['Speed']+$User['Speed']*rand(1,5)>=$MSpeed){
print "<span style=\"color:#00ff00;\">You attack first.</span><br />";
PlayerAttacksFirst($User['ID'], $User['HP'], $Monster['Name'], $MHealth);
}else{
print "<span style=\"color:#ff0000;\">".$Monster['Name']." attacks first.</span><br />";
MonsterAttacksFirst($User['ID'], $User['HP'], $Monster['Name'], $MHealth);
}
functions.php
Function PlayerAttacksFirst($User,$UserHealth,$MName,$MHealth){
$Starter = mysql_query("SELECT * FROM Monsters WHERE Name='$MName'")or die("Error 002: No monster with that name.");
$Monster = Mysql_fetch_array($Starter);
$MAttack = $Monster['Level']+$Monster['Level']*rand(1,10);
$MDefense = $Monster['Level']+$Monster['Level']*rand(0,3);
$MDodge = $Monster['Level']+$Monster['Level']*rand(1,10);
$MSpeed = $Monster['Level']+$Monster['Level']*rand(1,10);
$MCritical = $Monster['Level']+$Monster['Level']*rand(1,10);
$Loader = mysql_query("SELECT* FROM Users WHERE ID='$User'");
$User = mysql_fetch_array($Loader);
$YourDamage = $User['Attack']+$User['Attack']*rand(1,5);
if($YourDamage<$MDodge){
print"<span style=\"color:#ff0000;\">".$MName." dodges your attack!</span><br />";
MonsterAttacksFirst($User, $UserHealth, $MName, $MHealth);
}else{
$YourDamage = $YourDamage - $MDefense;
print "You hit the enemy for <span style=\"color:#ff0000;\">".$YourDamage."</span> damage!<br />";
$MHealth = $MHealth - $YourDamage;
print "The enemy has ".$MHealth." health left.<br />";
if($MHealth<=0){
print "<span style=\"color:#ffcc00;\">You won the fight!</span><br />";
Win();
}else{
MonsterAttacksFirst($User, $UserHealth, $MName, $MHealth);
}
}
}
Function PlayerAttacksFirst($User, $UserHealth, $MName, $MHealth){
$Starter = mysql_query("SELECT * FROM Monsters WHERE Name='$MName'")or die("Error 003: No monster with that name.");
$Monster = Mysql_fetch_array($Starter);
$MAttack = $Monster['Level']+$Monster['Level']*rand(1,10);
$MDefense = $Monster['Level']+$Monster['Level']*rand(0,3);
$MDodge = $Monster['Level']+$Monster['Level']*rand(1,10);
$MSpeed = $Monster['Level']+$Monster['Level']*rand(1,10);
$MCritical = $Monster['Level']+$Monster['Level']*rand(1,10);
$Loader = mysql_query("SELECT* FROM Users WHERE ID='$User'");
$User = mysql_fetch_array($Loader);
$Damage = $MAttack+$MAttack*rand(1,3);
if($MDamage<$User['Dodge']){
print "<span style=\"color:#00ff00;\">You dodge the attack.</span><br />";
PlayerAttacksFirst($User, $UserHealth, $MName, $MHealth);
}else{
$Damage = $Damage - $User['Defense'];
print "<span style=\"color:#ff0000;\">The enemy hits you for ".$Damage." damage!</span><br />";
$UserHealth = $UserHealth - $Damage;
print "You have ".$UserHealth." health left.<br />";
if($UserHealth<=0){
print "<span style=\"color:#ff0000;\">You lost the fight!</span><br />";
Lose();
}else{
PlayerAttacksFirst($User, $UserHealth, $MName, $MHealth);
}
}
}
So as you can see I do run the function inside itself and i'm trying to have a loop until the monster or player is dead. Any idea?