diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php index 867f2ba1..474896ef 100644 --- a/GameEngine/Automation.php +++ b/GameEngine/Automation.php @@ -955,7 +955,6 @@ class Automation { for($i=1;$i<=50;$i++) { $Defender['u'.$i] += $enforce['u'.$i]; } - $Defender['hero'] += $enforce['hero']; } } for($i=1;$i<=50;$i++){ @@ -1231,6 +1230,12 @@ class Automation { $unitssend_att_check=$unitssend_att; } //units defence string for battleraport + $enforcementarray2 = $database->getEnforceVillage($data['to'],0); + if(count($enforcementarray2) > 0) { + foreach($enforcementarray2 as $enforce2) { + $Defender['hero'] += $enforce2['hero']; + } + } $unitssend_def[1] = ''.$Defender['u1'].','.$Defender['u2'].','.$Defender['u3'].','.$Defender['u4'].','.$Defender['u5'].','.$Defender['u6'].','.$Defender['u7'].','.$Defender['u8'].','.$Defender['u9'].','.$Defender['u10'].''; $unitssend_def[2] = ''.$Defender['u11'].','.$Defender['u12'].','.$Defender['u13'].','.$Defender['u14'].','.$Defender['u15'].','.$Defender['u16'].','.$Defender['u17'].','.$Defender['u18'].','.$Defender['u19'].','.$Defender['u20'].''; $unitssend_def[3] = ''.$Defender['u21'].','.$Defender['u22'].','.$Defender['u23'].','.$Defender['u24'].','.$Defender['u25'].','.$Defender['u26'].','.$Defender['u27'].','.$Defender['u28'].','.$Defender['u29'].','.$Defender['u30'].''; @@ -1280,7 +1285,7 @@ class Automation { } $dead['hero']='0'; if($unitlist){ - $dead['hero']+=$battlepart['deadherodef']; + $dead['hero']+=$battlepart['deadherodef'][$DefenderID]; $database->modifyUnit($data['to'],array("hero"),array($battlepart['deadherodef']),array(0)); } //kill other defence in village @@ -1302,6 +1307,7 @@ class Automation { } else { $dead[$i]='0'; } + } if($enforce['hero']>'0'){ $database->modifyEnforce($enforce['id'],"hero",$battlepart['deadheroref'][$enforce['id']],0); $dead['hero']+=$battlepart['deadheroref'][$enforce['id']]; @@ -1309,7 +1315,6 @@ class Automation { $wrong='1'; } } - } $notlife= ''.$dead[$start].','.$dead[$start+1].','.$dead[$start+2].','.$dead[$start+3].','.$dead[$start+4].','.$dead[$start+5].','.$dead[$start+6].','.$dead[$start+7].','.$dead[$start+8].','.$dead[$start+9].''; $notlife1 = $dead[$start]+$dead[$start+1]+$dead[$start+2]+$dead[$start+3]+$dead[$start+4]+$dead[$start+5]+$dead[$start+6]+$dead[$start+7]+$dead[$start+8]+$dead[$start+9]; $life= ''.$enforce['u'.$start.''].','.$enforce['u'.($start+1).''].','.$enforce['u'.($start+2).''].','.$enforce['u'.($start+3).''].','.$enforce['u'.($start+4).''].','.$enforce['u'.($start+5).''].','.$enforce['u'.($start+6).''].','.$enforce['u'.($start+7).''].','.$enforce['u'.($start+8).''].','.$enforce['u'.($start+9).''].''; diff --git a/GameEngine/Battle.php b/GameEngine/Battle.php index befda4e0..ba3328fa 100644 --- a/GameEngine/Battle.php +++ b/GameEngine/Battle.php @@ -223,17 +223,26 @@ class Battle { //exit($type); - if ($Attacker['uhero'] != 0) + if($Attacker['uhero'] != 0) { //exit($AttackerID); - $atkhero= $this->getBattleHero($AttackerID); + $atkhero = $this->getBattleHero($AttackerID); } - if ($Defender['hero'] != 0) + if($Defender['hero'] != 0) { //exit($DefenderID); - $defhero= $this->getBattleHero($DefenderID); + $defhero[$DefenderWref] = $this->getBattleHero($DefenderID); } + + $DefendersAll = $database->getEnforceVillage($DefenderWref,0); + if(!empty($DefendersAll)){ + foreach($DefendersAll as $defenders) { + $fromvillage = $defenders['from']; + $reinfowner = $database->getVillageField($fromvillage,"owner"); + $defhero[$fromvillage] = $this->getBattleHero($reinfowner); + } + } // Berekenen het totaal aantal punten van Aanvaller $start = ($att_tribe-1)*10+1; $end = ($att_tribe*10); @@ -335,8 +344,16 @@ class Battle { $units['Def_unit'][$y] = $Defender['u'.$y]; } if ($Defender['hero'] != 0){ - $dp += $defhero['di'] * 35; - $dp = $dp * $defhero['db']; + $dp += $defhero[$DefenderWref]['di'] * 35; + $dp = $dp * $defhero[$DefenderWref]['db']; + } + $DefendersAll = $database->getEnforceVillage($DefenderWref,0); + if(!empty($DefendersAll)){ + foreach($DefendersAll as $defenders) { + $fromvillage = $defenders['from']; + $dp += $defhero[$fromvillage]['di'] * 35; + $dp = $dp * $defhero[$fromvillage]['db']; + } } } } @@ -357,14 +374,24 @@ class Battle { $involve += $Defender['u'.$y]; $units['Def_unit'][$y] = $Defender['u'.$y]; } - if ($Defender['hero'] != 0) + if($Defender['hero'] != 0) { $units['Def_unit']['hero'] = $Defender['hero']; - $cdp += $Defender['hero']*$defhero['dc']; - $dp += $Defender['hero']*$defhero['di']; - $dp = $dp * $defhero['db']; - $cdp = $cdp * $defhero['db']; + $cdp += $defhero[$DefenderWref]['dc']; + $dp += $defhero[$DefenderWref]['di']; + $dp = $dp * $defhero[$DefenderWref]['db']; + $cdp = $cdp * $defhero[$DefenderWref]['db']; } + $DefendersAll = $database->getEnforceVillage($DefenderWref,0); + if(!empty($DefendersAll)){ + foreach($DefendersAll as $defenders) { + $fromvillage = $defenders['from']; + $cdp += $defhero[$fromvillage]['dc']; + $dp += $defhero[$fromvillage]['di']; + $dp = $dp * $defhero[$fromvillage]['db']; + $cdp = $cdp * $defhero[$fromvillage]['db']; + } + } } // @@ -600,7 +627,7 @@ class Battle { if ($units['Def_unit']['hero']>0) { - $_result=mysql_query("select * from " . TB_PREFIX . "hero where `dead`='0' and `heroid`='".$defhero['heroid']."'"); + $_result=mysql_query("select * from " . TB_PREFIX . "hero where `dead`='0' and `heroid`='".$defhero[$DefenderWref]['heroid']."'"); $fdb = mysql_fetch_array($_result); $hero_id=$fdb['heroid']; $hero_health=$fdb['health']; @@ -608,21 +635,22 @@ class Battle { if ($hero_health<=$damage_health or $damage_health>90) { //hero die - $result['deadherodef'] = 1; + $result['deadherodef'][$defhero[$DefenderWref]['uid']] = 1; mysql_query("update " . TB_PREFIX . "hero set `dead`='1' where `heroid`='".$hero_id."'"); mysql_query("update " . TB_PREFIX . "hero set `health`='0' where `heroid`='".$hero_id."'"); } else { - $result['deadherodef'] = 0; + $result['deadherodef'][$defhero[$DefenderWref]['uid']] = 0; mysql_query("update " . TB_PREFIX . "hero set `health`=`health`-".$damage_health." where `heroid`='".$hero_id."'"); } + } unset($_result,$fdb,$hero_id,$hero_health,$damage_health); $DefendersAll = $database->getEnforceVillage($DefenderWref,0); if(!empty($DefendersAll)){ foreach($DefendersAll as $defenders) { - if($defenders['hero'] == 1) { + if($defenders['hero']>0) { if(!empty($heroarray)) { reset($heroarray); } $ReinforcerData = $database->getVillageBattleData($defenders['from']); $heroarraydefender = $this->getBattleHero($ReinforcerData['id']); @@ -645,8 +673,6 @@ class Battle { } } } - } - } unset($_result,$fdb,$hero_id,$hero_health,$damage_health); diff --git a/GameEngine/Units.php b/GameEngine/Units.php index 176db61c..6d4ced99 100644 --- a/GameEngine/Units.php +++ b/GameEngine/Units.php @@ -73,7 +73,7 @@ class Units { if($post['x']!="" && $post['y']!=""){ $oid = $database->getVilWref($post['x'],$post['y']); }else if($post['dname']!=""){ - $oid = $database->getVillageByName($post['dname']); + $oid = $database->getVillageByName(stripslashes($post['dname'])); } if($database->isVillageOases($oid) != 0){ $too = $database->getOasisField($oid,"conqured");