diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php
index 76f2a4aa..60598920 100644
--- a/GameEngine/Automation.php
+++ b/GameEngine/Automation.php
@@ -1246,7 +1246,7 @@ class Automation {
$enforDefender = array();
$rom = $ger = $gal = $nat = $natar = 0;
$Defender = $database->getUnit($data['to']);
- $enforcementarray = $database->getOasisEnforce($data['to'],1);
+ $enforcementarray = $database->getEnforceVillage($data['to'],0);
if(count($enforcementarray) > 0) {
foreach($enforcementarray as $enforce) {
@@ -1406,11 +1406,24 @@ class Automation {
}else{
$unitssend_att_check=$unitssend_att;
}
- //units defence string for battleraport
+ //units defence string for battleraport
+ $DefenderHero=array();
+ $i=0;
+ if (isset($Defender['hero'])) {
+ if ($Defender['hero']>0) {
+ $i=1;
+ $DefenderHero[$i]=$DefenderID;
+ }
+ }
+
$enforcementarray2 = $database->getEnforceVillage($data['to'],0);
if(count($enforcementarray2) > 0) {
foreach($enforcementarray2 as $enforce2) {
$Defender['hero'] += $enforce2['hero'];
+ if ($enforce2['hero']>0) {
+ $i++;
+ $DefenderHero[$i] = $database->getVillageField($enforce2['from'],"owner");
+ }
for ($i=1;$i<=50;$i++) {
$Defender['u'.$i]+= $enforce2['u'.$i];
}
@@ -1602,28 +1615,36 @@ class Automation {
$troopsdead9 = $dead9+1;
$troopsdead10 = $dead10;
$troopsdead11 = $dead11;
- for($i=1;$i<=50;$i++) {
- $totaldead_def += $dead[''.$i.''];
- }
- $totaldead_def += $dead['hero'];
- if ($Attacker['uhero'] != 0){
- $heroxp = $totaldead_def;
- $database->modifyHeroXp("experience",$heroxp,$from['owner']);
- }
- if($Defender['hero'] > 0){
- $defheroxp = $totaldead_att;
- $database->modifyHeroXp("experience",$defheroxp,$toF['owner']);
- }
- $enforcementarray1 = $database->getEnforceVillage($to['wref'],0);
- if(count($enforcementarray1) > 0) {
- foreach($enforcementarray1 as $enforce1) {
- if($enforce1['hero'] > 0){
- $enforceowner = $database->getVillageField($enforce1['from'],"owner");
- $reinfheroxp = $totaldead_att;
- $database->modifyHeroXp("experience",$reinfheroxp,$enforceowner);
- }
- }
- }
+ for($i=1;$i<=50;$i++) {
+ if($unitarray) { reset($unitarray); }
+ $unitarray = $GLOBALS["u".$i];
+
+ $totaldead_def += $dead[''.$i.''];
+ $totalheroxp_att += ($dead[''.$i.'']*$unitarray['pop']);
+ }
+ $totalheroxp_att += ($dead['hero']*6);
+ if ($Attacker['uhero'] != 0){
+ $heroxp = $totalheroxp_att;
+ $database->modifyHeroXp("experience",$heroxp,$from['owner']);
+ }
+
+
+ if($Defender['hero'] > 0){
+
+ for($i=1;$i<=10;$i++){
+ if($unitarray) { reset($unitarray); }
+ $unitarray = $GLOBALS["u".(($att_tribe-1)*10+$i)];
+ $totalheroxp_def += ($dead.$i*$unitarray['pop']);
+ }
+ $totalheroxp_def +=$dead11*6;
+ //counting heroxp
+ $defheroxp=intval($totalheroxp_def/count($DefenderHero));
+ for ($i=1;$i<=count($DefenderHero);$i++){
+ $reinfheroxp = $totalheroxp_def;
+ $database->modifyHeroXp("experience",$reinfheroxp,$DefenderHero[$i]);
+ }
+
+ }
$database->modifyPoints($toF['owner'],'dpall',$totaldead_att );
$database->modifyPoints($from['owner'],'apall',$totaldead_def);
$database->modifyPoints($toF['owner'],'dp',$totaldead_att );
@@ -2256,9 +2277,10 @@ class Automation {
}
}
- //chiefing village
- //there are senators
- if(($data['t9']-$dead9-$traped9)>0){
+ //chiefing village
+ //there are senators
+ if(($data['t9']-$dead9-$traped9)>0){
+ if ($type=='3') {
$palacelevel = $database->getResourceLevel($from['wref']);
for($i=1;$i<=40;$i++) {
@@ -2422,38 +2444,40 @@ class Automation {
} else {
$info_chief = "".$chief_pic.",Not enough culture points.";
}
- unset($plevel);
- }
-
-if($data['t11'] > 0){
- if ($isoasis != 0) {
- if ($database->canConquerOasis($data['from'],$data['to'])) {
- $troopcount = $database->countOasisTroops($data['to']);
- //if($unitssend_def[1] == '0,0,0,0,0,0,0,0,0,0' and $unitssend_def[2] == '0,0,0,0,0,0,0,0,0,0' and $unitssend_def[3] == '0,0,0,0,0,0,0,0,0,0' and $unitssend_def[4] == '0,0,0,0,0,0,0,0,0,0' and $unitssend_def[5] == '0,0,0,0,0,0,0,0,0,0'){
- if ($troopcount==0) {
- $database->conquerOasis($data['from'],$data['to']);
- $info_chief = $hero_pic.",Your hero has conquered this oasis";
+ unset($plevel);
+ }else{
+ $info_chief = "".$chief_pic.",Could not reduce cultural points during raid";
+ }
}
- elseif ($heroxp == 0) {
- $info_chief = $hero_pic.",Your hero had nothing to kill therfore gains no XP at all";
- } else $info_chief = $hero_pic.",Your hero gained ".$heroxp." XP";
- } else {
- $OasisInfo = $database->getOasisInfo($data['to']);
- if ($OasisInfo['conqured'] != 0) {
- $Oloyaltybefore = intval($OasisInfo['loyalty']);
- $database->modifyOasisLoyalty($data['to']);
- $OasisInfo = $database->getOasisInfo($data['to']);
- $Oloyaltynow = intval($OasisInfo['loyalty']);
- $info_chief = $hero_pic.",Your hero has reduced oasis loyalty to ".$Oloyaltynow." from ".$Oloyaltybefore." and gained ".$heroxp." XP";
- } else {
- if ($heroxp == 0) {
- $info_chief = $hero_pic.",Your hero had nothing to kill therfore gains no XP at all";
- } else {
- $info_chief = $hero_pic.",Your hero gained ".$heroxp." XP";
- }
- }
- }
- } else {
+
+ if($data['t11'] > 0){ //hero
+ if ($heroxp == 0) {
+ $xp="";
+ } else {
+ $xp=" and gained ".$heroxp." XP from the battle";
+ }
+ if ($isoasis != 0) { //oasis
+ $OasisInfo = $database->getOasisInfo($data['to']);
+ $troopcount = $database->countOasisTroops($data['to']);
+ if ($database->canConquerOasis($data['from'],$data['to']) && $troopcount==0) {
+ $database->conquerOasis($data['from'],$data['to']);
+ $info_chief = $hero_pic.",Your hero has conquered this oasis".$xp;
+ }else{
+ if ($OasisInfo['conqured'] != 0 && $troopcount==0) {
+ $Oloyaltybefore = intval($OasisInfo['loyalty']);
+ $database->modifyOasisLoyalty($data['to']);
+ $OasisInfo = $database->getOasisInfo($data['to']);
+ $Oloyaltynow = intval($OasisInfo['loyalty']);
+ $info_chief = $hero_pic.",Your hero has reduced oasis loyalty to ".$Oloyaltynow." from ".$Oloyaltybefore." and gained ".$heroxp." XP";
+ }else{
+ if ($heroxp == 0) {
+ $info_chief = $hero_pic.",Your hero had nothing to kill therfore gains no XP at all";
+ } else {
+ $info_chief = $hero_pic.",Your hero gained ".$heroxp." XP";
+ }
+ }
+ }
+ } else {
global $form;
if ($heroxp == 0) {
$xp=" no XP from the battle";
@@ -2925,9 +2949,11 @@ $wallimg = "
query($q);
$q = "DELETE FROM ".TB_PREFIX."raidlist where towref = $wref";
$database->query($q);
+ $q = "DELETE FROM ".TB_PREFIX."ndata WHERE toWref=$wref";
+ $database->query($q);
$q = "DELETE FROM ".TB_PREFIX."movement where proc = 0 AND ((`from` = $wref AND `to` = $wref) OR (`from` = $wref AND sort_type=3))";
- $database->query($q, $this->connection);
+ $database->query($q);
$getmovement = $database->getMovement(3,$wref,1);
foreach($getmovement as $movedata) {
@@ -2935,9 +2961,10 @@ $wallimg = "
setMovementProc($movedata['moveid']);
$database->addMovement(4,$movedata['to'],$movedata['from'],$movedata['ref'],$time,$time+$time2);
- //$database->setMovementProc($movedata['moveid']);
}
-
+ $q = "DELETE FROM ".TB_PREFIX."enforcement WHERE `from` = $wref";
+ $database->query($q);
+
//check return enforcement from del village
$units->returnTroops($wref);