pyrosephiroth Messages : 62
|
Salut à toi chère Kommunauté. Je me présente à toi avec un nouveau K (hop-là, petit jeu de mot passé ! ). Les faits sont très simples : tandis que l'on peut transporter des ressources sans aucun soucis entre planètes (d'un même joueur ou de joueurs différents), lorsque l'on attaque ou que l'on pille, on ne ramène aucune ressource ! En effet, quoique vainqueur du combat, le RC rapporte que l'on gagne 0 de chaque ressource. Ensuite, lorsque la flotte revient à quai, le message de retour indique également 0 de ressource. Perdu dans un monde de mensonge et de variables, je me permets de vous mettre ici le code des deux fichiers desquels je pense que le soucis peut provenir. Je suis actuellement sous Xnova Revolution 5.9. J'ai déjà essayé de résoudre le soucis par moi-même (ayant cru voir une multiplication par 0 des ressources pillées) mais ça n'avait pas fonctionné ... Les fichiers présentés ci-dessous sont d'origine ... Calculateattack.php function calculateAttack(&$attackers, &$defenders, $FleetTF, $DefTF) { global $pricelist, $CombatCaps, $resource;
$TRES = array('attacker' => 0, 'defender' => 0); $ARES = $DRES = array('metal' => 0, 'crystal' => 0); $ROUND = array(); $RF = array(); foreach ($attackers as $fleetID => $attacker) { foreach ($attacker['detail'] as $element => $amount) { $ARES['metal'] += $pricelist[$element]['metal'] * $amount; $ARES['crystal'] += $pricelist[$element]['crystal'] * $amount; } }
foreach($CombatCaps as $e => $arr) { foreach($arr['sd'] as $t => $sd) { if($sd == 0) continue; $RF[$t][$e] = $sd; } } $TRES['attacker'] = $ARES['metal'] + $ARES['crystal'] ;
foreach ($defenders as $fleetID => $defender) { foreach ($defender['def'] as $element => $amount) { if ($element < 300) { $DRES['metal'] += $pricelist[$element]['metal'] * $amount; $DRES['crystal'] += $pricelist[$element]['crystal'] * $amount ;
$TRES['defender'] += $pricelist[$element]['metal'] * $amount; $TRES['defender'] += $pricelist[$element]['crystal'] * $amount; } else { if (!isset($STARTDEF[$element])) $STARTDEF[$element] = 0; $STARTDEF[$element] += $amount;
$TRES['defender'] += $pricelist[$element]['metal'] * $amount; $TRES['defender'] += $pricelist[$element]['crystal'] * $amount; } } } for ($ROUNDC = 0; $ROUNDC <= MAX_ATTACK_ROUNDS; $ROUNDC++) { $attackDamage = array('total' => 0); $attackShield = array('total' => 0); $attackAmount = array('total' => 0); $defenseDamage = array('total' => 0); $defenseShield = array('total' => 0); $defenseAmount = array('total' => 0); $attArray = array(); $defArray = array();
foreach ($attackers as $fleetID => $attacker) { $attackDamage[$fleetID] = 0; $attackShield[$fleetID] = 0; $attackAmount[$fleetID] = 0;
$attTech = (1 + (0.1 * $attacker['user']['military_tech']) + $attacker['user']['factor']['attack']); $defTech = (1 + (0.1 * $attacker['user']['defence_tech']) + $attacker['user']['factor']['defensive']); $shieldTech = (1 + (0.1 * $attacker['user']['shield_tech']) + $attacker['user']['factor']['shield']); $attackers[$fleetID]['techs'] = array($attTech, $defTech, $shieldTech); foreach ($attacker['detail'] as $element => $amount) { $thisAtt = $amount * ($CombatCaps[$element]['attack']) * $attTech * (rand(80, 120) / 100); //attaque $thisDef = $amount * ($CombatCaps[$element]['shield']) * $defTech ; //bouclier $thisShield = $amount * ($pricelist[$element]['metal'] + $pricelist[$element]['crystal'] + $pricelist[$element]['norio']) / 10 * $shieldTech; //coque
$attArray[$fleetID][$element] = array('def' => $thisDef, 'shield' => $thisShield, 'att' => $thisAtt);
$attackDamage[$fleetID] += $thisAtt; $attackDamage['total'] += $thisAtt; $attackShield[$fleetID] += $thisDef; $attackShield['total'] += $thisDef; $attackAmount[$fleetID] += $amount; $attackAmount['total'] += $amount; } $temp1 = $attacker['detail']; }
foreach ($defenders as $fleetID => $defender) { $defenseDamage[$fleetID] = 0; $defenseShield[$fleetID] = 0; $defenseAmount[$fleetID] = 0;
$attTech = (1 + (0.1 * $defender['user']['military_tech']) + $defender['user']['factor']['attack']); $defTech = (1 + (0.1 * $defender['user']['defence_tech']) + $defender['user']['factor']['defensive']); $shieldTech = (1 + (0.1 * $defender['user']['shield_tech']) + $defender['user']['factor']['shield']); $defenders[$fleetID]['techs'] = array($attTech, $defTech, $shieldTech);
foreach ($defender['def'] as $element => $amount) { $thisAtt = $amount * ($CombatCaps[$element]['attack']) * $attTech * (rand(80, 120) / 100); //attaque $thisDef = $amount * ($CombatCaps[$element]['shield']) * $defTech ; //bouclier $thisShield = $amount * ($pricelist[$element]['metal'] + $pricelist[$element]['crystal'] + $pricelist[$element]['norio']) / 10 * $shieldTech; //coque
if ($element == 407 || $element == 408 || $element == 409) $thisAtt = 0;
$defArray[$fleetID][$element] = array('def' => $thisDef, 'shield' => $thisShield, 'att' => $thisAtt);
$defenseDamage[$fleetID] += $thisAtt; $defenseDamage['total'] += $thisAtt; $defenseShield[$fleetID] += $thisDef; $defenseShield['total'] += $thisDef; $defenseAmount[$fleetID] += $amount; $defenseAmount['total'] += $amount; } $temp2 = $defender['def']; }
$ROUND[$ROUNDC] = array('attackers' => $attackers, 'defenders' => $defenders, 'attackA' => $attackAmount, 'defenseA' => $defenseAmount, 'infoA' => $attArray, 'infoD' => $defArray);
if ($ROUNDC >= MAX_ATTACK_ROUNDS || $defenseAmount['total'] <= 0 || $attackAmount['total'] <= 0) { break; }
// Calculate hit percentages (ACS only but ok) $attackPct = array(); foreach ($attackAmount as $fleetID => $amount) { if (!is_numeric($fleetID)) continue; $attackPct[$fleetID] = $amount / $attackAmount['total']; }
$defensePct = array(); foreach ($defenseAmount as $fleetID => $amount) { if (!is_numeric($fleetID)) continue; $defensePct[$fleetID] = $amount / $defenseAmount['total']; }
// CALCUL DES PERTES !!! $attacker_n = array(); $attacker_shield = 0; $defenderAttack = 0; foreach ($attackers as $fleetID => $attacker) { $attacker_n[$fleetID] = array();
foreach($attacker['detail'] as $element => $amount) { if ($amount <= 0) { $attacker_n[$fleetID][$element] = 0; continue; }
$defender_moc = $amount * ($defenseDamage['total'] * $attackPct[$fleetID]) / $attackAmount[$fleetID]; if(isset($RF[$element])) { foreach($RF[$element] as $shooter => $shots) { foreach($defArray as $fID => $rfdef) { if($rfdef[$shooter]['att'] <= 0 || $attackAmount[$fleetID] <= 0) continue;
$defender_moc += $rfdef[$shooter]['att'] * $shots / ($amount / $attackAmount[$fleetID] * $attackPct[$fleetID]); $defenseAmount['total'] += $defenders[$fID]['def'][$shooter] * $shots; } } } $defenderAttack += $defender_moc; if (($attArray[$fleetID][$element]['def'] / $amount) >= $defender_moc) { $attacker_n[$fleetID][$element] = round($amount); $attacker_shield += $defender_moc; continue; }
$max_removePoints = floor($amount * $defenseAmount['total'] / $attackAmount[$fleetID] * $attackPct[$fleetID]);
$attacker_shield += min($attArray[$fleetID][$element]['def'], $defender_moc); $defender_moc -= min($attArray[$fleetID][$element]['def'], $defender_moc);
$ile_removePoints = max(min($max_removePoints, $amount * min($defender_moc / $attArray[$fleetID][$element]['shield'] * (rand(0, 200) / 100), 1)), 0);
$attacker_n[$fleetID][$element] = max(ceil($amount - $ile_removePoints), 0); } }
$defender_n = array(); $defender_shield = 0; $attackerAttack = 0; foreach ($defenders as $fleetID => $defender) { $defender_n[$fleetID] = array();
foreach($defender['def'] as $element => $amount) { if ($amount <= 0) { $defender_n[$fleetID][$element] = 0; continue; }
$attacker_moc = $amount * ($attackDamage['total'] * $defensePct[$fleetID]) / $defenseAmount[$fleetID]; if (isset($RF[$element])) { foreach($RF[$element] as $shooter => $shots) { foreach($attArray as $fID => $rfatt) { if ($rfatt[$shooter]['att'] <= 0 || $defenseAmount[$fleetID] <= 0 ) continue;
$attacker_moc += $rfatt[$shooter]['att'] * $shots / ($amount / $defenseAmount[$fleetID] * $defensePct[$fleetID]); $attackAmount['total'] += $attackers[$fID]['detail'][$shooter] * $shots; } } } $attackerAttack += $attacker_moc; if (($defArray[$fleetID][$element]['def'] / $amount) >= $attacker_moc) { $defender_n[$fleetID][$element] = round($amount); $defender_shield += $attacker_moc; continue; } $max_removePoints = floor($amount * $attackAmount['total'] / $defenseAmount[$fleetID] * $defensePct[$fleetID]); $defender_shield += min($defArray[$fleetID][$element]['def'], $attacker_moc); $attacker_moc -= min($defArray[$fleetID][$element]['def'], $attacker_moc); $ile_removePoints = max(min($max_removePoints, $amount * min($attacker_moc / $defArray[$fleetID][$element]['shield'] * (rand(0, 200) / 100), 1)), 0);
$defender_n[$fleetID][$element] = max(ceil($amount - $ile_removePoints), 0); } } $ROUND[$ROUNDC]['attack'] = $attackerAttack; $ROUND[$ROUNDC]['defense'] = $defenderAttack; $ROUND[$ROUNDC]['attackShield'] = $attacker_shield; $ROUND[$ROUNDC]['defShield'] = $defender_shield; foreach ($attackers as $fleetID => $attacker) { $attackers[$fleetID]['detail'] = array_map('round', $attacker_n[$fleetID]); }
foreach ($defenders as $fleetID => $defender) { $defenders[$fleetID]['def'] = array_map('round', $defender_n[$fleetID]); } } if ($attackAmount['total'] <= 0 && $defenseAmount['total'] > 0) { $won = "r"; // defender } elseif ($attackAmount['total'] > 0 && $defenseAmount['total'] <= 0) { $won = "a"; // attacker } else { $won = "w"; // draw #$ROUND[count($ROUND)] = array('attackers' => $attackers, 'defenders' => $defenders, 'attack' => $attackDamage, 'defense' => $defenseDamage, 'attackA' => $attackAmount, 'defenseA' => $defenseAmount); }
// CDR foreach ($attackers as $fleetID => $attacker) { // flotte attaquant en CDR foreach ($attacker['detail'] as $element => $amount) { $TRES['attacker'] -= $pricelist[$element]['metal'] * $amount ; $TRES['attacker'] -= $pricelist[$element]['crystal'] * $amount ;
$ARES['metal'] -= $pricelist[$element]['metal'] * $amount ; $ARES['crystal'] -= $pricelist[$element]['crystal'] * $amount ; } }
$DRESDefs = array('metal' => 0, 'crystal' => 0);
foreach ($defenders as $fleetID => $defender) { foreach ($defender['def'] as $element => $amount) { if ($element < 300) { // flotte defenseur en CDR $DRES['metal'] -= $pricelist[$element]['metal'] * $amount ; $DRES['crystal'] -= $pricelist[$element]['crystal'] * $amount ;
$TRES['defender'] -= $pricelist[$element]['metal'] * $amount ; $TRES['defender'] -= $pricelist[$element]['crystal'] * $amount ; } else { // defs defenseur en CDR + reconstruction $TRES['defender'] -= $pricelist[$element]['metal'] * $amount ; $TRES['defender'] -= $pricelist[$element]['crystal'] * $amount ;
$lost = $STARTDEF[$element] - $amount; $giveback = round($lost * (rand(56, 84) / 100)); $defenders[$fleetID]['def'][$element] += $giveback; $DRESDefs['metal'] += $pricelist[$element]['metal'] * ($lost - $giveback) ; $DRESDefs['crystal'] += $pricelist[$element]['crystal'] * ($lost - $giveback) ; } } } $ARES['metal'] = max($ARES['metal'], 0); $ARES['crystal'] = max($ARES['crystal'], 0); $DRES['metal'] = max($DRES['metal'], 0); $DRES['crystal'] = max($DRES['crystal'], 0); $TRES['attacker'] = max($TRES['attacker'], 0); $TRES['defender'] = max($TRES['defender'], 0); $totalLost = array('att' => $TRES['attacker'], 'def' => $TRES['defender']); $debAttMet = ($ARES['metal'] * ($FleetTF / 100)); $debAttCry = ($ARES['crystal'] * ($FleetTF / 100)); $debDefMet = ($DRES['metal'] * ($FleetTF / 100)) + ($DRESDefs['metal'] * ($DefTF / 100)); $debDefCry = ($DRES['crystal'] * ($FleetTF / 100)) + ($DRESDefs['crystal'] * ($DefTF / 100));
return array('won' => $won, 'debree' => array('att' => array($debAttMet, $debAttCry), 'def' => array($debDefMet, $debDefCry)), 'rw' => $ROUND, 'lost' => $totalLost); } ?> et Calculatesteal.php function calculateSteal($attackFleets, $defenderPlanet, $ForSim = false) { //Steal-Math by Slaver for 2Moons(http://www.titanspace.org) based on http://www.owiki.de/Beute global $pricelist, $db; $SortFleets = array(); $Sumcapacity = '0'; foreach($attackFleets as $FleetID => $Attacker) { $SortFleets[$FleetID] = '0'; foreach($Attacker['detail'] as $Element => $amount) { $SortFleets[$FleetID] = bcadd($SortFleets[$FleetID], bcmul($pricelist[$Element]['capacity'], floattostring($amount))); } $SortFleets[$FleetID] = bcsub($SortFleets[$FleetID], $Attacker['fleet']['fleet_resource_metal']); $SortFleets[$FleetID] = bcsub($SortFleets[$FleetID], $Attacker['fleet']['fleet_resource_crystal']); $SortFleets[$FleetID] = bcsub($SortFleets[$FleetID], $Attacker['fleet']['fleet_resource_deuterium']); $SortFleets[$FleetID] = bcsub($SortFleets[$FleetID], $Attacker['fleet']['fleet_resource_norio']); $Sumcapacity = bcadd($Sumcapacity, $SortFleets[$FleetID]); } $AllCapacity = $Sumcapacity;
// Step 1 $booty['metal'] = min(bcdiv($Sumcapacity, 3), bcdiv(floattostring($defenderPlanet['metal']), 2)); $Sumcapacity = bcsub($Sumcapacity, $booty['metal']); // Step 2 $booty['crystal'] = min(bcdiv($Sumcapacity, 2), bcdiv(floattostring($defenderPlanet['crystal']), 2)); $Sumcapacity = bcsub($Sumcapacity, $booty['crystal']); // Step 3 $booty['norio'] = min(bcdiv($Sumcapacity, 2), bcdiv(floattostring($defenderPlanet['norio']), 2)); $Sumcapacity = bcsub($Sumcapacity, $booty['norio']); // Step 4 $booty['deuterium'] = min($Sumcapacity, bcdiv(floattostring($defenderPlanet['deuterium']), 2)); $Sumcapacity = bcsub($Sumcapacity, $booty['deuterium']); $oldMetalBooty = $booty['metal']; $booty['metal'] = bcadd($booty['metal'], min(bcdiv($Sumcapacity, 3), max(bcsub(bcdiv(floattostring($defenderPlanet['metal']), 2), $booty['metal']), 0))); $Sumcapacity = bcsub($Sumcapacity, bcsub($booty['metal'], $oldMetalBooty)); $booty['crystal'] = bcadd($booty['crystal'], min($Sumcapacity, max(bcsub(bcdiv(floattostring($defenderPlanet['crystal']), 2), $booty['crystal']), 0))); if($ForSim) return $booty;
$Qry = "";
foreach($SortFleets as $FleetID => $Capacity) { $Factor = bcdiv($Capacity, $AllCapacity, 10); $Qry .= "UPDATE ".FLEETS." SET "; $Qry .= "`fleet_resource_metal` = `fleet_resource_metal` + '".bcmul($booty['metal'], $Factor, 0)."', "; $Qry .= "`fleet_resource_crystal` = `fleet_resource_crystal` + '".bcmul($booty['crystal'], $Factor, 0)."', "; $Qry .= "`fleet_resource_deuterium` = `fleet_resource_deuterium` + '".bcmul($booty['deuterium'], $Factor, 0)."', "; $Qry .= "`fleet_resource_norio` = `fleet_resource_norio` + '".bcmul($booty['norio'], $Factor, 0)."' "; $Qry .= "WHERE fleet_id = '".$FleetID."';"; } $db->multi_query($Qry); return $booty; } ?> Si vous avez des idées, je suis absolument prenneur ! :') Encore merci les amis, et à bientôt (enfin pas si tôt que ça, espérons-le ! ) |
pyrosephiroth Messages : 62
|
Bien sur SnakeFear, les voici : MissionCaseattack.php <?php
class MissionCaseAttack extends MissionFunctions { function __construct($Fleet) { $this->_fleet = $Fleet; } function TargetEvent() { global $pricelist, $resource, $reslist, $db, $LANG; $targetPlanet = $db->uniquequery("SELECT * FROM ".PLANETS." WHERE `id` = '". $this->_fleet['fleet_end_id'] ."';"); $targetUser = $db->uniquequery("SELECT * FROM ".USERS." WHERE id = '".$targetPlanet['id_owner']."';"); require_once(ROOT_PATH.'includes/classes/class.PlanetRessUpdate.php'); #list($targetUser['factor'], $targetPlanet['factor']) = getFactors($targetUser, $targetPlanet, 'basic', $this->_fleet['fleet_start_time']); $targetUser['factor'] = getFactors($targetUser, 'basic', $this->_fleet['fleet_start_time']); $PlanetRess = new ResourceUpdate(); list($targetUser, $targetPlanet) = $PlanetRess->CalcResource($targetUser, $targetPlanet, true, $this->_fleet['fleet_start_time']); $TargetUserID = $targetUser['id']; $attackFleets = array(); $AttackerRow['id'] = array(); $AttackerRow['name'] = array(); $DefenderRow['id'] = array(); $DefenderRow['name'] = array();
if ($this->_fleet['fleet_group'] != 0) { $db->query("DELETE FROM ".AKS." WHERE `id` = '".$this->_fleet['fleet_group']."';"); $fleets = $db->query("SELECT * FROM ".FLEETS." WHERE fleet_group = '".$this->_fleet['fleet_group']."';"); while ($fleet = $db->fetch_array($fleets)) { $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet; $attackFleets[$fleet['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$fleet['fleet_owner']."';"); $attackFleets[$fleet['fleet_id']]['user']['factor'] = getFactors($attackFleets[$fleet['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $attackFleets[$fleet['fleet_id']]['detail'] = array(); $temp = explode(';', $fleet['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) continue;
if (!isset($attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]])) $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] = 0;
$attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } $AttackerRow['id'][] = $attackFleets[$fleet['fleet_id']]['user']['id']; $AttackerRow['name'][] = $attackFleets[$fleet['fleet_id']]['user']['username']; } } else { $attackFleets[$this->_fleet['fleet_id']]['fleet'] = $this->_fleet; $attackFleets[$this->_fleet['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$this->_fleet['fleet_owner']."';"); $attackFleets[$this->_fleet['fleet_id']]['user']['factor'] = getFactors($attackFleets[$this->_fleet['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $attackFleets[$this->_fleet['fleet_id']]['detail'] = array(); $temp = explode(';', $this->_fleet['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) continue;
if (!isset($attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]])) $attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] = 0;
$attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } $AttackerRow['id'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['id']; $AttackerRow['name'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['username']; }
$defense = array();
$def = $db->query("SELECT * FROM ".FLEETS." WHERE `fleet_mission` = '5' AND `fleet_end_id` = '".$this->_fleet['fleet_end_id']."' AND fleet_start_time <= '".TIMESTAMP."' AND fleet_end_stay >= '".TIMESTAMP."';"); while ($defRow = $db->fetch_array($def)) { $defense[$defRow['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$defRow['fleet_owner']."';"); $attackFleets[$this->_fleet['fleet_id']]['user']['factor'] = getFactors($defense[$defRow['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $defRowDef = explode(';', $defRow['fleet_array']); foreach ($defRowDef as $Element) { $Element = explode(',', $Element);
if ($Element[0] < 100) continue;
if (!isset($defense[$defRow['fleet_id']]['def'][$Element[0]])) $defense[$defRow['fleet_id']][$Element[0]] = 0;
$defense[$defRow['fleet_id']]['def'][$Element[0]] += $Element[1]; } $DefenderRow['id'][] = $defense[$defRow['fleet_id']]['user']['id']; $DefenderRow['name'][] = $defense[$defRow['fleet_id']]['user']['username']; }
$defense[0]['def'] = array(); $defense[0]['user'] = $targetUser; $defense[0]['user']['factor'] = getFactors($defense[0]['user'], 'attack', $this->_fleet['fleet_start_time']); $DefenderRow['id'][] = $defense[0]['user']['id']; $DefenderRow['name'][] = $defense[0]['user']['username']; foreach(array_merge($reslist['fleet'], $reslist['defense']) as $ID) { if ($ID >= 500) continue;
$defense[0]['def'][$ID] = $targetPlanet[$resource[$ID]]; }
$Attacker['id'] = array_unique($AttackerRow['id']); $Attacker['name'] = array_unique($AttackerRow['name']); $Defender['id'] = array_unique($DefenderRow['id']); $Defender['name'] = array_unique($DefenderRow['name']);
require_once('calculateAttack.php'); $result = calculateAttack($attackFleets, $defense, $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Fleet_Cdr'], $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Defs_Cdr']); $SQL = ""; foreach ($attackFleets as $fleetID => $attacker) { $fleetArray = ''; $totalCount = 0; foreach ($attacker['detail'] as $element => $amount) { if ($amount) $fleetArray .= $element.','.floattostring($amount).';';
$totalCount += $amount; } $SQL .= $totalCount <= 0 ? "DELETE FROM ".FLEETS." WHERE `fleet_id`= '".$fleetID."';" : "UPDATE ".FLEETS." SET `fleet_mess` = '1', `fleet_array` = '".substr($fleetArray, 0, -1)."', `fleet_amount` = '".$totalCount."' WHERE `fleet_id` = '".$fleetID."';"; } if ($result['won'] == "a") { require_once('calculateSteal.php'); $steal = calculateSteal($attackFleets, $targetPlanet); } foreach ($defense as $fleetID => $defender) { if ($fleetID != 0) { $fleetArray = ''; $totalCount = 0;
foreach ($defender['def'] as $element => $amount) { if ($amount) $fleetArray .= $element.','.floattostring($amount).';'; $totalCount += $amount; } $SQL .= $totalCount <= 0 ? "DELETE FROM ".FLEETS." WHERE `fleet_id`= '".$fleetID."';" : "UPDATE ".FLEETS." SET `fleet_array` = '".substr($fleetArray, 0, -1)."', `fleet_amount` = '".$totalCount."' WHERE `fleet_id` = '".$fleetID."';"; } else { $fleetArray = ''; foreach ($defender['def'] as $element => $amount) { $fleetArray .= "`".$resource[$element]."` = '".floattostring($amount)."', "; } $SQL .= "UPDATE ".PLANETS." SET "; $SQL .= $fleetArray; $SQL .= "`metal` = `metal` - '".$steal['metal']."', "; $SQL .= "`crystal` = `crystal` - '".$steal['crystal']."', "; $SQL .= "`deuterium` = `deuterium` - '".$steal['deuterium']."', "; $SQL .= "`norio` = `norio` - '".$steal['norio']."' "; $SQL .= "WHERE "; $SQL .= "`id` = '".$this->_fleet['fleet_end_id']."';"; } } $db->multi_query($SQL); if($this->_fleet['fleet_end_type'] == 3) $targetPlanet = array_merge($targetPlanet, $db->uniquequery("SELECT `der_metal`, `der_crystal` FROM ".PLANETS." WHERE `id_luna` = '".$this->_fleet['fleet_end_id']."';")); $ShootMetal = $result['debree']['att'][0] + $result['debree']['def'][0]; $ShootCrystal = $result['debree']['att'][1] + $result['debree']['def'][1]; $FleetDebris = $ShootMetal + $ShootCrystal; $DerbisMetal = $targetPlanet['der_metal']+ $ShootMetal; $DerbisCrystal = $targetPlanet['der_crystal']+ $ShootCrystal; $MoonChance = min(round($FleetDebris / 100000 * MOON_CHANCE_FACTOR, 0), MAX_MOON_CHANCE); $UserChance = mt_rand(1, 100); if ($targetPlanet['planet_type'] == 1 && $targetPlanet['id_luna'] == 0 && $MoonChance > 0 && $UserChance <= $MoonChance) { require_once(ROOT_PATH.'includes/functions/CreateOneMoonRecord.php'); $INFO['moon']['name'] = CreateOneMoonRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $TargetUserID, $this->_fleet['fleet_start_time'], '', $MoonChance); $INFO['end_galaxy'] = $this->_fleet['fleet_end_galaxy']; $INFO['end_system'] = $this->_fleet['fleet_end_system']; $INFO['end_planet'] = $this->_fleet['fleet_end_planet']; if(DESTROY_DERBIS_MOON_CREATE) { #if($GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['debris_moon'] == 1) { $DerbisMetal = 0; $DerbisCrystal = 0; } }
$INFO['steal'] = $steal; $INFO['fleet_start_time'] = $this->_fleet['fleet_start_time']; $INFO['moon']['des'] = 0; $INFO['moon']['chance'] = $MoonChance; $INFO['attvsdef'] = implode(' & ', $Attacker['name']).' vs '.implode(' & ', $Defender['name']); require_once('GenerateReport.php'); $raport = GenerateReport($result, $INFO); $rid = md5(microtime(true).mt_rand(1,100)); file_put_contents(ROOT_PATH.'raports/raport_'.$rid.'.php', '<?php'."\n".'$raport = '.$raport.';'."\n".'?>'); file_put_contents(ROOT_PATH.'raports/topkb_'.$rid.'.php', '<?php'."\n".'$raport = '.preg_replace("/\[\d+\:\d+\:\d+\]/i", "[X:X:X]", $raport).';'."\n".'?>'); if(DEBUG_EXTRA) file_put_contents(ROOT_PATH.'includes/attack.log', date('[d-M-Y H:i:s]', $this->_fleet['fleet_start_time']).'(FleetID: '.$this->_fleet['fleet_id'].') Attacker: '.$this->_fleet['fleet_owner'].'/ Defender: '.$this->_fleet['fleet_target_owner'].' | TF: '.floattostring($DerbisMetal).'/'.floattostring($DerbisCrystal)); $WhereAtt = ""; $WhereDef = ""; foreach($Attacker['id'] as $id) { $WhereAtt .= "`id` = '".$id."' OR "; } foreach($Defender['id'] as $id) { $WhereDef .= "`id` = '".$id."' OR "; }
$Won = 0; $Lose = 0; $Draw = 0; switch($result['won']) { case "a": $Won = 1; break; case "w": $Draw = 1; break; case "r": $Lose = 1; break; } $SQL = "UPDATE ".PLANETS." SET "; $SQL .= "`der_metal` = ".floattostring($DerbisMetal).", "; $SQL .= "`der_crystal` = ".floattostring($DerbisCrystal)." "; $SQL .= "WHERE "; $SQL .= "`universe` = '" . $this->_fleet['fleet_universe'] . "' AND "; $SQL .= "`galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND "; $SQL .= "`system` = '" . $this->_fleet['fleet_end_system'] . "' AND "; $SQL .= "`planet` = '" . $this->_fleet['fleet_end_planet'] . "' AND "; $SQL .= "`planet_type` = '1';"; $SQL .= "INSERT INTO ".RW." SET "; $SQL .= "`time` = '".$this->_fleet['fleet_start_time']."', "; $SQL .= "`owners` = '".implode(',', array_merge($Attacker['id'], $Defender['id']))."', "; $SQL .= "`rid` = '".$rid."';"; $SQL .= "INSERT INTO ".TOPKB." SET "; $SQL .= "`time` = '".$this->_fleet['fleet_start_time']."', "; $SQL .= "`id_owner1` = '".implode(',', $Attacker['id'])."', "; $SQL .= "`angreifer` = '".implode(' & ', $Attacker['name'])."', "; $SQL .= "`id_owner2` = '".implode(',', $Defender['id'])."', "; $SQL .= "`defender` = '".implode(' & ', $Defender['name'])."', "; $SQL .= "`gesamtunits` = '".floattostring($result['lost']['att'] + $result['lost']['def'])."', "; $SQL .= "`rid` = '". $rid ."', "; $SQL .= "`universe` = '".$this->_fleet['fleet_universe']."', "; $SQL .= "`fleetresult` = '". $result['won'] ."';"; $SQL .= "UPDATE ".USERS." SET "; $SQL .= "`wons` = wons + ".$Won.", "; $SQL .= "`loos` = loos + ".$Lose.", "; $SQL .= "`draws` = draws + ".$Draw.", "; $SQL .= "`kbmetal` = kbmetal + ".floattostring($ShootMetal).", "; $SQL .= "`kbcrystal` = kbcrystal + ".floattostring($ShootCrystal).", "; $SQL .= "`lostunits` = lostunits + ".floattostring($result['lost']['att']).", "; $SQL .= "`desunits` = desunits + ".floattostring($result['lost']['def'])." "; $SQL .= "WHERE "; $SQL .= substr($WhereAtt, 0, -4).";"; $SQL .= "UPDATE ".USERS." SET "; $SQL .= "`wons` = wons + ". $Lose .", "; $SQL .= "`loos` = loos + ". $Won .", "; $SQL .= "`draws` = draws + ". $Draw .", "; $SQL .= "`kbmetal` = kbmetal + ".floattostring($ShootMetal).", "; $SQL .= "`kbcrystal` = kbcrystal + ".floattostring($ShootCrystal).", "; $SQL .= "`lostunits` = lostunits + ".floattostring($result['lost']['def']).", "; $SQL .= "`desunits` = desunits + ".floattostring($result['lost']['att'])." "; $SQL .= "WHERE "; $SQL .= substr($WhereDef, 0, -4).";"; $db->multi_query($SQL); switch($result['won']) { case "r": $ColorAtt = "red"; $ColorDef = "green"; break; case "w": $ColorAtt = "orange"; $ColorDef = "orange"; case "a": $ColorAtt = "green"; $ColorDef = "red"; break; } foreach ($Attacker['id'] as $AttackersID) { if(empty($AttackersID)) continue;
$LNG = $LANG->GetUserLang($AttackersID); $MessageAtt = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br />', $rid, $rid, $ColorAtt, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorAtt, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorDef, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['Norio'], pretty_number($steal['norio']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0]+$result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1]+$result['debree']['def'][1])); SendSimpleMessage($AttackersID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageAtt); // review 3 }
foreach ($Defender['id'] as $DefenderID) { if(empty($DefenderID)) continue; $LNG = $LANG->GetUserLang($DefenderID); $MessageDef = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br />', $rid, $rid, $ColorDef, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorDef, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorAtt, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['Norio'], pretty_number($steal['norio']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0]+$result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1]+$result['debree']['def'][1])); SendSimpleMessage($DefenderID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageDef);// review 3 } } function EndStayEvent() { return; } function ReturnEvent() { global $LANG; $LNG = $LANG->GetUserLang($this->_fleet['fleet_owner']); $Message = sprintf( $LNG['sys_fleet_won'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['Metal'], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['Crystal'], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['Deuterium'], pretty_number($this->_fleet['fleet_resource_norio']), $LNG['Norio']); SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_end_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message); $this->RestoreFleet(); } } ?> J'espère sincèrement que le soucis provient de ce fichier, car je n'ai rien trouvé en en fouillant d'autre :3 |
SnakeFear Messages : 112
|
Je viens de regarder , mais j'ai pas vue de différence, autant j'ai mal vue puis autant ça ne viens pas de la :-/ Essaie de copier celui ci on ne sait jamais : <?php
/** _ \_/ |\ | /¯¯\ \ / /\ |¯¯) |_¯ \ / /¯¯\ | | |´¯|¯` | /¯¯\ |\ |5 ¯ /¯\ | \| \__/ \/ /--\ |¯¯\ |__ \/ \__/ |__ \_/ | | \__/ | \|Core. * @author: Copyright (C) 2011 by Brayan Narvaez (Prinick) developer of xNova Revolution * @author web: http://www.bnarvaez.com * @link: http://www.xnovarev.com
* @package 2Moons * @author Slaver <slaver7@gmail.com> * @copyright 2009 Lucky <douglas@crockford.com> (XGProyecto) * @copyright 2011 Slaver <slaver7@gmail.com> (Fork/2Moons) * @license http://www.gnu.org/licenses/gpl.html GNU GPLv3 License * @version 1.3 (2011-01-21) * @link http://code.google.com/p/2moons/
* Please do not remove the credits */
class MissionCaseAttack extends MissionFunctions { function __construct($Fleet) { $this->_fleet = $Fleet; } function TargetEvent() { global $pricelist, $resource, $reslist, $db, $LANG; $targetPlanet = $db->uniquequery("SELECT * FROM ".PLANETS." WHERE `id` = '". $this->_fleet['fleet_end_id'] ."';"); $targetUser = $db->uniquequery("SELECT * FROM ".USERS." WHERE id = '".$targetPlanet['id_owner']."';"); require_once(ROOT_PATH.'includes/classes/class.PlanetRessUpdate.php'); #list($targetUser['factor'], $targetPlanet['factor']) = getFactors($targetUser, $targetPlanet, 'basic', $this->_fleet['fleet_start_time']); $targetUser['factor'] = getFactors($targetUser, 'basic', $this->_fleet['fleet_start_time']); $PlanetRess = new ResourceUpdate(); list($targetUser, $targetPlanet) = $PlanetRess->CalcResource($targetUser, $targetPlanet, true, $this->_fleet['fleet_start_time']); $TargetUserID = $targetUser['id']; $attackFleets = array(); $AttackerRow['id'] = array(); $AttackerRow['name'] = array(); $DefenderRow['id'] = array(); $DefenderRow['name'] = array();
if ($this->_fleet['fleet_group'] != 0) { $db->query("DELETE FROM ".AKS." WHERE `id` = '".$this->_fleet['fleet_group']."';"); $fleets = $db->query("SELECT * FROM ".FLEETS." WHERE fleet_group = '".$this->_fleet['fleet_group']."';"); while ($fleet = $db->fetch_array($fleets)) { $attackFleets[$fleet['fleet_id']]['fleet'] = $fleet; $attackFleets[$fleet['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$fleet['fleet_owner']."';"); $attackFleets[$fleet['fleet_id']]['user']['factor'] = getFactors($attackFleets[$fleet['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $attackFleets[$fleet['fleet_id']]['detail'] = array(); $temp = explode(';', $fleet['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) continue;
if (!isset($attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]])) $attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] = 0;
$attackFleets[$fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } $AttackerRow['id'][] = $attackFleets[$fleet['fleet_id']]['user']['id']; $AttackerRow['name'][] = $attackFleets[$fleet['fleet_id']]['user']['username']; } } else { $attackFleets[$this->_fleet['fleet_id']]['fleet'] = $this->_fleet; $attackFleets[$this->_fleet['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$this->_fleet['fleet_owner']."';"); $attackFleets[$this->_fleet['fleet_id']]['user']['factor'] = getFactors($attackFleets[$this->_fleet['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $attackFleets[$this->_fleet['fleet_id']]['detail'] = array(); $temp = explode(';', $this->_fleet['fleet_array']); foreach ($temp as $temp2) { $temp2 = explode(',', $temp2); if ($temp2[0] < 100) continue;
if (!isset($attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]])) $attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] = 0;
$attackFleets[$this->_fleet['fleet_id']]['detail'][$temp2[0]] += $temp2[1]; } $AttackerRow['id'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['id']; $AttackerRow['name'][] = $attackFleets[$this->_fleet['fleet_id']]['user']['username']; }
$defense = array();
$def = $db->query("SELECT * FROM ".FLEETS." WHERE `fleet_mission` = '5' AND `fleet_end_id` = '".$this->_fleet['fleet_end_id']."' AND fleet_start_time <= '".TIMESTAMP."' AND fleet_end_stay >= '".TIMESTAMP."';"); while ($defRow = $db->fetch_array($def)) { $defense[$defRow['fleet_id']]['user'] = $db->uniquequery("SELECT `id`, `username`, `military_tech`, `defence_tech`, `shield_tech` FROM ".USERS." WHERE `id` = '".$defRow['fleet_owner']."';"); $attackFleets[$this->_fleet['fleet_id']]['user']['factor'] = getFactors($defense[$defRow['fleet_id']]['user'], 'attack', $this->_fleet['fleet_start_time']); $defRowDef = explode(';', $defRow['fleet_array']); foreach ($defRowDef as $Element) { $Element = explode(',', $Element);
if ($Element[0] < 100) continue;
if (!isset($defense[$defRow['fleet_id']]['def'][$Element[0]])) $defense[$defRow['fleet_id']][$Element[0]] = 0;
$defense[$defRow['fleet_id']]['def'][$Element[0]] += $Element[1]; } $DefenderRow['id'][] = $defense[$defRow['fleet_id']]['user']['id']; $DefenderRow['name'][] = $defense[$defRow['fleet_id']]['user']['username']; }
$defense[0]['def'] = array(); $defense[0]['user'] = $targetUser; $defense[0]['user']['factor'] = getFactors($defense[0]['user'], 'attack', $this->_fleet['fleet_start_time']); $DefenderRow['id'][] = $defense[0]['user']['id']; $DefenderRow['name'][] = $defense[0]['user']['username']; foreach(array_merge($reslist['fleet'], $reslist['defense']) as $ID) { if ($ID >= 500) continue;
$defense[0]['def'][$ID] = $targetPlanet[$resource[$ID]]; }
$Attacker['id'] = array_unique($AttackerRow['id']); $Attacker['name'] = array_unique($AttackerRow['name']); $Defender['id'] = array_unique($DefenderRow['id']); $Defender['name'] = array_unique($DefenderRow['name']);
require_once('calculateAttack.php'); $result = calculateAttack($attackFleets, $defense, $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Fleet_Cdr'], $GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['Defs_Cdr']); $SQL = ""; foreach ($attackFleets as $fleetID => $attacker) { $fleetArray = ''; $totalCount = 0; foreach ($attacker['detail'] as $element => $amount) { if ($amount) $fleetArray .= $element.','.floattostring($amount).';';
$totalCount += $amount; } $SQL .= $totalCount <= 0 ? "DELETE FROM ".FLEETS." WHERE `fleet_id`= '".$fleetID."';" : "UPDATE ".FLEETS." SET `fleet_mess` = '1', `fleet_array` = '".substr($fleetArray, 0, -1)."', `fleet_amount` = '".$totalCount."' WHERE `fleet_id` = '".$fleetID."';"; } if ($result['won'] == "a") { require_once('calculateSteal.php'); $steal = calculateSteal($attackFleets, $targetPlanet); } foreach ($defense as $fleetID => $defender) { if ($fleetID != 0) { $fleetArray = ''; $totalCount = 0;
foreach ($defender['def'] as $element => $amount) { if ($amount) $fleetArray .= $element.','.floattostring($amount).';'; $totalCount += $amount; } $SQL .= $totalCount <= 0 ? "DELETE FROM ".FLEETS." WHERE `fleet_id`= '".$fleetID."';" : "UPDATE ".FLEETS." SET `fleet_array` = '".substr($fleetArray, 0, -1)."', `fleet_amount` = '".$totalCount."' WHERE `fleet_id` = '".$fleetID."';"; } else { $fleetArray = ''; foreach ($defender['def'] as $element => $amount) { $fleetArray .= "`".$resource[$element]."` = '".floattostring($amount)."', "; } $SQL .= "UPDATE ".PLANETS." SET "; $SQL .= $fleetArray; $SQL .= "`metal` = `metal` - '".$steal['metal']."', "; $SQL .= "`crystal` = `crystal` - '".$steal['crystal']."', "; $SQL .= "`deuterium` = `deuterium` - '".$steal['deuterium']."', "; $SQL .= "`norio` = `norio` - '".$steal['norio']."' "; $SQL .= "WHERE "; $SQL .= "`id` = '".$this->_fleet['fleet_end_id']."';"; } } $db->multi_query($SQL); if($this->_fleet['fleet_end_type'] == 3) $targetPlanet = array_merge($targetPlanet, $db->uniquequery("SELECT `der_metal`, `der_crystal` FROM ".PLANETS." WHERE `id_luna` = '".$this->_fleet['fleet_end_id']."';")); $ShootMetal = $result['debree']['att'][0] + $result['debree']['def'][0]; $ShootCrystal = $result['debree']['att'][1] + $result['debree']['def'][1]; $FleetDebris = $ShootMetal + $ShootCrystal; $DerbisMetal = $targetPlanet['der_metal']+ $ShootMetal; $DerbisCrystal = $targetPlanet['der_crystal']+ $ShootCrystal; $MoonChance = min(round($FleetDebris / 100000 * MOON_CHANCE_FACTOR, 0), MAX_MOON_CHANCE); $UserChance = mt_rand(1, 100); if ($targetPlanet['planet_type'] == 1 && $targetPlanet['id_luna'] == 0 && $MoonChance > 0 && $UserChance <= $MoonChance) { require_once(ROOT_PATH.'includes/functions/CreateOneMoonRecord.php'); $INFO['moon']['name'] = CreateOneMoonRecord($this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet'], $this->_fleet['fleet_universe'], $TargetUserID, $this->_fleet['fleet_start_time'], '', $MoonChance); $INFO['end_galaxy'] = $this->_fleet['fleet_end_galaxy']; $INFO['end_system'] = $this->_fleet['fleet_end_system']; $INFO['end_planet'] = $this->_fleet['fleet_end_planet']; if(DESTROY_DERBIS_MOON_CREATE) { #if($GLOBALS['CONFIG'][$this->_fleet['fleet_universe']]['debris_moon'] == 1) { $DerbisMetal = 0; $DerbisCrystal = 0; } }
$INFO['steal'] = $steal; $INFO['fleet_start_time'] = $this->_fleet['fleet_start_time']; $INFO['moon']['des'] = 0; $INFO['moon']['chance'] = $MoonChance; $INFO['attvsdef'] = implode(' & ', $Attacker['name']).' vs '.implode(' & ', $Defender['name']); require_once('GenerateReport.php'); $raport = GenerateReport($result, $INFO); $rid = md5(microtime(true).mt_rand(1,100)); file_put_contents(ROOT_PATH.'raports/raport_'.$rid.'.php', '<?php'."\n".'$raport = '.$raport.';'."\n".'?>'); file_put_contents(ROOT_PATH.'raports/topkb_'.$rid.'.php', '<?php'."\n".'$raport = '.preg_replace("/\[\d+\:\d+\:\d+\]/i", "[X:X:X]", $raport).';'."\n".'?>'); if(DEBUG_EXTRA) file_put_contents(ROOT_PATH.'includes/attack.log', date('[d-M-Y H:i:s]', $this->_fleet['fleet_start_time']).'(FleetID: '.$this->_fleet['fleet_id'].') Attacker: '.$this->_fleet['fleet_owner'].'/ Defender: '.$this->_fleet['fleet_target_owner'].' | TF: '.floattostring($DerbisMetal).'/'.floattostring($DerbisCrystal)); $WhereAtt = ""; $WhereDef = ""; foreach($Attacker['id'] as $id) { $WhereAtt .= "`id` = '".$id."' OR "; } foreach($Defender['id'] as $id) { $WhereDef .= "`id` = '".$id."' OR "; }
$Won = 0; $Lose = 0; $Draw = 0; switch($result['won']) { case "a": $Won = 1; break; case "w": $Draw = 1; break; case "r": $Lose = 1; break; } $SQL = "UPDATE ".PLANETS." SET "; $SQL .= "`der_metal` = ".floattostring($DerbisMetal).", "; $SQL .= "`der_crystal` = ".floattostring($DerbisCrystal)." "; $SQL .= "WHERE "; $SQL .= "`universe` = '" . $this->_fleet['fleet_universe'] . "' AND "; $SQL .= "`galaxy` = '" . $this->_fleet['fleet_end_galaxy'] . "' AND "; $SQL .= "`system` = '" . $this->_fleet['fleet_end_system'] . "' AND "; $SQL .= "`planet` = '" . $this->_fleet['fleet_end_planet'] . "' AND "; $SQL .= "`planet_type` = '1';"; $SQL .= "INSERT INTO ".RW." SET "; $SQL .= "`time` = '".$this->_fleet['fleet_start_time']."', "; $SQL .= "`owners` = '".implode(',', array_merge($Attacker['id'], $Defender['id']))."', "; $SQL .= "`rid` = '".$rid."';"; $SQL .= "INSERT INTO ".TOPKB." SET "; $SQL .= "`time` = '".$this->_fleet['fleet_start_time']."', "; $SQL .= "`id_owner1` = '".implode(',', $Attacker['id'])."', "; $SQL .= "`angreifer` = '".implode(' & ', $Attacker['name'])."', "; $SQL .= "`id_owner2` = '".implode(',', $Defender['id'])."', "; $SQL .= "`defender` = '".implode(' & ', $Defender['name'])."', "; $SQL .= "`gesamtunits` = '".floattostring($result['lost']['att'] + $result['lost']['def'])."', "; $SQL .= "`rid` = '". $rid ."', "; $SQL .= "`universe` = '".$this->_fleet['fleet_universe']."', "; $SQL .= "`fleetresult` = '". $result['won'] ."';"; $SQL .= "UPDATE ".USERS." SET "; $SQL .= "`wons` = wons + ".$Won.", "; $SQL .= "`loos` = loos + ".$Lose.", "; $SQL .= "`draws` = draws + ".$Draw.", "; $SQL .= "`kbmetal` = kbmetal + ".floattostring($ShootMetal).", "; $SQL .= "`kbcrystal` = kbcrystal + ".floattostring($ShootCrystal).", "; $SQL .= "`lostunits` = lostunits + ".floattostring($result['lost']['att']).", "; $SQL .= "`desunits` = desunits + ".floattostring($result['lost']['def'])." "; $SQL .= "WHERE "; $SQL .= substr($WhereAtt, 0, -4).";"; $SQL .= "UPDATE ".USERS." SET "; $SQL .= "`wons` = wons + ". $Lose .", "; $SQL .= "`loos` = loos + ". $Won .", "; $SQL .= "`draws` = draws + ". $Draw .", "; $SQL .= "`kbmetal` = kbmetal + ".floattostring($ShootMetal).", "; $SQL .= "`kbcrystal` = kbcrystal + ".floattostring($ShootCrystal).", "; $SQL .= "`lostunits` = lostunits + ".floattostring($result['lost']['def']).", "; $SQL .= "`desunits` = desunits + ".floattostring($result['lost']['att'])." "; $SQL .= "WHERE "; $SQL .= substr($WhereDef, 0, -4).";"; $db->multi_query($SQL); switch($result['won']) { case "r": $ColorAtt = "red"; $ColorDef = "green"; break; case "w": $ColorAtt = "orange"; $ColorDef = "orange"; case "a": $ColorAtt = "green"; $ColorDef = "red"; break; } foreach ($Attacker['id'] as $AttackersID) { if(empty($AttackersID)) continue;
$LNG = $LANG->GetUserLang($AttackersID); $MessageAtt = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br />', $rid, $rid, $ColorAtt, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorAtt, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorDef, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['Norio'], pretty_number($steal['norio']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0]+$result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1]+$result['debree']['def'][1])); SendSimpleMessage($AttackersID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageAtt); // review 3 }
foreach ($Defender['id'] as $DefenderID) { if(empty($DefenderID)) continue; $LNG = $LANG->GetUserLang($DefenderID); $MessageDef = sprintf('<a href="CombatReport.php?raport=%s" onclick="OpenPopup(\'CombatReport.php?raport=%s\', \'combat\', screen.width, screen.height);return false" target="combat"><font color="%s">%s %s</font></a><br><br><font color="%s">%s: %s</font> <font color="%s">%s: %s</font><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br><br>%s %s:<font color="#fff">%s</font> %s:<font color="#fff">%s</font><br />', $rid, $rid, $ColorDef, $LNG['sys_mess_attack_report'], sprintf($LNG['sys_adress_planet'], $this->_fleet['fleet_end_galaxy'], $this->_fleet['fleet_end_system'], $this->_fleet['fleet_end_planet']), $ColorDef, $LNG['sys_perte_attaquant'], pretty_number($result['lost']['att']), $ColorAtt, $LNG['sys_perte_defenseur'], pretty_number($result['lost']['def']), $LNG['sys_gain'], $LNG['Metal'], pretty_number($steal['metal']), $LNG['Crystal'], pretty_number($steal['crystal']), $LNG['Deuterium'], pretty_number($steal['deuterium']), $LNG['Norio'], pretty_number($steal['norio']), $LNG['sys_debris'], $LNG['Metal'], pretty_number($result['debree']['att'][0]+$result['debree']['def'][0]), $LNG['Crystal'], pretty_number($result['debree']['att'][1]+$result['debree']['def'][1])); SendSimpleMessage($DefenderID, 0, $this->_fleet['fleet_start_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_attack_report'], $MessageDef);// review 3 } } function EndStayEvent() { return; } function ReturnEvent() { global $LANG; $LNG = $LANG->GetUserLang($this->_fleet['fleet_owner']); $Message = sprintf( $LNG['sys_fleet_won'], $TargetName, GetTargetAdressLink($this->_fleet, ''), pretty_number($this->_fleet['fleet_resource_metal']), $LNG['Metal'], pretty_number($this->_fleet['fleet_resource_crystal']), $LNG['Crystal'], pretty_number($this->_fleet['fleet_resource_deuterium']), $LNG['Deuterium'], pretty_number($this->_fleet['fleet_resource_norio']), $LNG['Norio']); SendSimpleMessage($this->_fleet['fleet_owner'], 0, $this->_fleet['fleet_end_time'], 3, $LNG['sys_mess_tower'], $LNG['sys_mess_fleetback'], $Message); $this->RestoreFleet(); } } ?>> |