/** * @param integer $ctr_id The contract ID */ function Contract($ctr_id = 0) { $this->ctr_id = (int) $ctr_id; // overall kill/losslist $this->klist = new KillList(); $this->llist = new KillList(); involved::load($this->klist, 'kill'); involved::load($this->llist, 'loss'); }
function __construct($battle) { $this->involved_ = 0; $this->ctr_id_ = $battle['id']; $this->ctr_kill_id_ = $battle['id']; $this->system_ = $battle['system']; $this->ctr_started_ = $battle['start']; $this->ctr_ended_ = $battle['end']; $this->executed_ = False; $this->ownerPilotIdsInvolved_ = $battle["ownerPilotIds"]; $this->klist_ = new KillList(); $this->llist_ = new KillList(); involved::load($this->klist_, 'kill'); involved::load($this->llist_, 'loss'); }
/** * Build the toplists to highlight efforts. */ function topLists() { $tklist = new TopList_ContractKills(); $tklist->setContract(new Contract($this->ctr_id)); involved::load($tklist, 'kill'); $tklist->generate(); $campaign = "campaign"; $tkbox = new AwardBox($tklist, "Top killers", "kills in this " . $campaign, "kills", "eagle"); $html = $tkbox->generate(); if (config::get('kill_points')) { $tklist = new TopList_ContractScore(); $tklist->setContract(new Contract($this->ctr_id)); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, "Top scorers", "points in this " . $campaign, "points", "redcross"); $html .= $tkbox->generate(); } return $html; }
function ContractTarget($contract, $crp_id, $all_id, $reg_id, $sys_id) { $this->contract_ = $contract; $this->crp_id_ = $crp_id; $this->all_id_ = $all_id; $this->reg_id_ = $reg_id; $this->sys_id_ = $sys_id; $this->klist_ = new KillList(); $this->llist_ = new KillList(); if ($this->crp_id_) { $this->type_ = "corp"; $this->klist_->addVictimCorp($this->crp_id_); $this->llist_->addInvolvedCorp($this->crp_id_); $this->id_ = $this->crp_id_; } elseif ($this->all_id_) { $this->type_ = "alliance"; $this->klist_->addVictimAlliance($this->all_id_); $this->llist_->addInvolvedAlliance($this->all_id_); $this->id_ = $this->all_id_; } elseif ($this->reg_id_) { $this->type_ = "region"; $this->klist_->addRegion($this->reg_id_); $this->llist_->addRegion($this->reg_id_); $this->id_ = $this->reg_id_; } elseif ($this->sys_id_) { $this->type_ = "system"; $this->klist_->addSystem($this->sys_id_); $this->llist_->addSystem($this->sys_id_); $this->id_ = $this->sys_id_; } involved::load($this->klist_, 'kill'); involved::load($this->llist_, 'loss'); $this->klist_->setStartDate($contract->getStartDate()); $this->llist_->setStartDate($contract->getStartDate()); if ($contract->getEndDate() != "") { $this->klist_->setEndDate($contract->getEndDate()); $this->llist_->setEndDate($contract->getEndDate()); } }
/** * Add an Alliance ID as an involved party. * @param integer $alliance */ function addInvolvedAlliance($alliance) { involved::add($this->inv_all, $alliance); }
public static function GenerateRow($pods = false, $header = true) { global $smarty; $klist = new KillList(); $klist->setOrdered(true); $klist->setOrderBy("kll_isk_loss DESC"); if ($pods == false) { $klist->setPodsNoobShips(false); } else { $klist->addVictimShipClass(2); } $klist->setLimit(self::NUM_DISPLAYED); if (isset($_GET["w"])) { self::$week = intval($_GET["w"]); } if (isset($_GET["m"])) { self::$month = intval($_GET["m"]); } if (isset($_GET["y"])) { self::$year = intval($_GET["y"]); } self::setTime(self::$week, self::$year, self::$month); $view = preg_replace('/[^a-zA-Z0-9_-]/', '', $_GET['view']); if (config::get('show_monthly')) { $start = makeStartDate(0, self::$year, self::$month); $end = makeEndDate(0, self::$year, self::$month); $klist->setStartDate(gmdate('Y-m-d H:i', $start)); $klist->setEndDate(gmdate('Y-m-d H:i', $end)); $smarty->assign("displaylist", date('F', mktime(0, 0, 0, self::$month, 1, self::$year)) . ", " . self::$year); } else { $klist->setWeek(self::$week); $klist->setYear(self::$year); $plist->setWeek(self::$week); $plist->setYear(self::$year); $smarty->assign("displaylist", "Week " . self::$week . ", " . self::$year); } if (config::get("exp_incloss")) { $smarty->assign("displaytype", "Kills and Losses"); involved::load($klist, "combined"); } else { $smarty->assign("displaytype", "Kills"); involved::load($klist, "kill"); } $kills = array(); while ($kill = $klist->getKill()) { $kll = array(); $plt = new Pilot($kill->getVictimID()); if ($kill->isClassified() && !Session::isAdmin()) { $kll['systemsecurity'] = "-"; $kll['system'] = Language::get("classified"); } else { $kll['systemsecurity'] = $kill->getSolarSystemSecurity(); $kll['system'] = $kill->getSolarSystemName(); } $kll["id"] = $kill->getID(); $kll["victim"] = $kill->getVictimName(); $kll["victimid"] = $kill->getVictimID(); $kll["victimship"] = $kill->getVictimShipName(); $kll["victimshipid"] = $kill->getVictimShipExternalID(); $kll["victimshipclass"] = $kill->getVictimShipClassName(); $kll["victimcorp"] = $kill->getVictimCorpName(); $kll["victimcorpid"] = $kill->getVictimCorpID(); $alliance = Alliance::getByID($kill->getVictimAllianceID()); if ($pods == false) { $kll["victimimageurl"] = $kill->getVictimShipImage(128); } else { $kll["victimimageurl"] = $plt->getPortraitURL(128); } $kll["victimallimage"] = $alliance->getPortraitURL(32); $kll["victimallname"] = $alliance->getName(); if ((int) number_format($kill->getISKLoss(), 0, "", "") > 1000000000) { $kll["isklost"] = number_format($kill->getISKLoss() / 1000000000, 2, ".", "") . " Billion"; } elseif ((int) number_format($kill->getISKLoss(), 0, "", "") > 1000000) { $kll["isklost"] = number_format($kill->getISKLoss() / 1000000, 2, ".", "") . " Million"; } else { $kll["isklost"] = number_format($kill->getISKLoss(), 0, ".", ","); } if (config::get('cfg_allianceid') && in_array($kill->getVictimAllianceID(), config::get('cfg_allianceid'))) { $kll["class"] = "kl-loss"; $kll["classlink"] = '<font color="#AA0000">•</font>'; } elseif (config::get('cfg_corpid') && in_array($kill->getVictimCorpID(), config::get('cfg_corpid'))) { $kll["class"] = "kl-loss"; $kll["classlink"] = '<font color=\\"#AA0000\\">•</font>'; } elseif (config::get('cfg_pilotid') && in_array($kill->getVictimID(), config::get('cfg_pilotid'))) { $kll["class"] = "kl-loss"; $kll["classlink"] = '<font color="#AA0000">•</font>'; } else { $kll["class"] = "kl-kill"; $kll["classlink"] = '<font color="#00AA00">•</font>'; } $kills[] = $kll; } if ($header == true) { $smarty->assign("header", true); } else { $smarty->assign("header", false); } $smarty->assign("killlist", $kills); $smarty->assign("width", 100 / self::NUM_DISPLAYED); return $smarty->fetch(get_tpl('most_expensive_summary')); }
require_once "class.rss.php"; $scl_id = (int) edkURI::getArg('scl_id', 2); header('Content-Type: text/xml'); $html .= "<" . "?xml version=\"1.0\"?" . ">\r\n<rss version=\"2.0\">\r\n<channel>\r\n<title>" . config::get('cfg_kbtitle') . "</title>"; if (edkURI::getArg('losses', 1)) { $html .= "<description>20 Most Recent Kills</description>"; } else { $html .= "<description>20 Most Recent Losses</description>"; } $html .= "<link>" . KB_HOST . "</link>\r\n<copyright>" . config::get('cfg_kbtitle') . "</copyright>\n"; $klist = new KillList(); $klist->setOrdered(true); if (edkURI::getArg('all') || edkURI::getArg('', 1) == 'all') { involved::load($klist, 'combined'); } else { if (edkURI::getArg('losses') || edkURI::getArg('', 1) == 'losses') { involved::load($klist, 'loss'); } else { involved::load($klist, 'kill'); } } if ($scl_id) { $klist->addVictimShipClass($scl_id); } else { $klist->setPodsNoobShips(false); } $klist->setLimit(20); $table = new RSSTable($klist); $html .= $table->generate(); $html .= "</channel>\r\n</rss>"; echo $html;
public function buildStats() { // this is a fast query to get the system and timestamp $rqry = DBFactory::getDBQuery(); if ($this->adjacent) { $rsql = 'SELECT kll_timestamp, sjp_to as sys_id from kb3_kills join kb3_systems a ON (a.sys_id = kll_system_id) join kb3_system_jumps on (sjp_from = a.sys_id) where kll_id = ' . $this->kll_id . ' UNION SELECT kll_timestamp, kll_system_id as sys_id from kb3_kills where kll_id = ' . $this->kll_id; } else { $rsql = 'SELECT kll_timestamp, kll_system_id as sys_id from kb3_kills where kll_id = ' . $this->kll_id; } $rqry->execute($rsql); while ($rrow = $rqry->getRow()) { $this->systems[] = $rrow['sys_id']; $basetime = $rrow['kll_timestamp']; } // now we get all kills in that system for +-4 hours $query = 'SELECT kll.kll_timestamp AS ts FROM kb3_kills kll WHERE kll.kll_system_id IN (' . implode(',', $this->systems) . ') AND kll.kll_timestamp <= "' . date('Y-m-d H:i:s', strtotime($basetime) + config::get('fleet_battles_mod_maxtime') * 60 * 60) . '"' . ' AND kll.kll_timestamp >= "' . date('Y-m-d H:i:s', strtotime($basetime) - config::get('fleet_battles_mod_maxtime') * 60 * 60) . '"' . ' ORDER BY kll.kll_timestamp ASC'; $qry = DBFactory::getDBQuery(); $qry->execute($query); $ts = array(); $timestampsRaw = array(); while ($row = $qry->getRow()) { $time = strtotime($row['ts']); $ts[intval(date('H', $time))][] = $row['ts']; $timestampsRaw[] = $row["ts"]; } // only for non-battles if (!$this->displayingBattle) { // this tricky thing looks for gaps of more than 1 hour and creates an intersection $baseh = date('H', strtotime($basetime)); $maxc = count($ts); $times = array(); for ($i = 0; $i < $maxc; $i++) { $h = ($baseh + $i) % 24; if (!isset($ts[$h])) { break; } foreach ($ts[$h] as $timestamp) { $times[] = $timestamp; } } for ($i = 0; $i < $maxc; $i++) { $h = ($baseh - $i) % 24; if ($h < 0) { $h += 24; } if (!isset($ts[$h])) { break; } foreach ($ts[$h] as $timestamp) { $times[] = $timestamp; } } unset($ts); asort($times); // we got 2 resulting timestamps $this->firstts = array_shift($times); $this->lastts = array_pop($times); } else { // take the first and last timestamp from our original query $this->firstts = array_shift($timestampsRaw); $this->lastts = array_pop($timestampsRaw); } // get parameters for overriding start and end times // dirty hook for the enlightened circle ;) $overrideStartTime = str_replace('%20', ' ', edkURI::getArg('starttime')); $overrideEndTime = str_replace('%20', ' ', edkURI::getArg('endtime')); if ($overrideStartTime && strtotime($overrideStartTime)) { $this->firstts = $overrideStartTime; } if ($overrideEndTime && strtotime($overrideEndTime)) { $this->lastts = $overrideEndTime; } // unfiltered kill list (no ship class filter applied) $this->kslist = new KillList(); $this->kslist->setOrdered(true); foreach ($this->systems as $system) { $this->kslist->addSystem($system); } $this->kslist->setStartDate($this->firstts); $this->kslist->setEndDate($this->lastts); involved::load($this->kslist, 'kill'); // unfiltered loss list (no ship class filter applied) $this->lslist = new KillList(); $this->lslist->setOrdered(true); foreach ($this->systems as $system) { $this->lslist->addSystem($system); } $this->lslist->setStartDate($this->firstts); $this->lslist->setEndDate($this->lastts); involved::load($this->lslist, 'loss'); // filtered kill list (shipclass filter applied) $this->klist = new KillList(); $this->klist->setOrdered(true); $this->klist->setCountComments(true); $this->klist->setCountInvolved(true); foreach ($this->systems as $system) { $this->klist->addSystem($system); } $this->klist->setStartDate($this->firstts); $this->klist->setEndDate($this->lastts); involved::load($this->klist, 'kill'); // filtered loss list (ship class filter applied) $this->llist = new KillList(); $this->llist->setOrdered(true); $this->llist->setCountComments(true); $this->llist->setCountInvolved(true); foreach ($this->systems as $system) { $this->llist->addSystem($system); } $this->llist->setStartDate($this->firstts); $this->llist->setEndDate($this->lastts); involved::load($this->llist, 'loss'); // apply ship class filters if ($this->scl_id) { $this->klist->addVictimShipClass($this->scl_id); $this->llist->addVictimShipClass($this->scl_id); } // if manual side assignment is enabled if (config::get("fleet_battles_mod_sideassign")) { // get possible side assignments $sideAssignments = getSideAssignments($this->systems[0], $this->firstts, $this->lastts); $sideAssignmentMap = array(); // apply foreach ($sideAssignments as $sideAssignment) { $this->isFixed = TRUE; $sideAssignmentMap[$sideAssignment["entity_type"]][$sideAssignment["entity_id"]] = $sideAssignment["side"]; // entity is an alliance if ($sideAssignment["entity_type"] == "alliance") { // alliance is an enemy if ($sideAssignment["side"] == "e") { $this->kslist->addVictimAlliance($sideAssignment["entity_id"]); $this->lslist->addInvolvedAlliance($sideAssignment["entity_id"]); $this->klist->addVictimAlliance($sideAssignment["entity_id"]); $this->llist->addInvolvedAlliance($sideAssignment["entity_id"]); } else { $this->kslist->addInvolvedAlliance($sideAssignment["entity_id"]); $this->lslist->addVictimAlliance($sideAssignment["entity_id"]); // also add as involved alliance for blue-on-blue kills $this->lslist->addInvolvedAlliance($sideAssignment["entity_id"]); $this->klist->addInvolvedAlliance($sideAssignment["entity_id"]); $this->llist->addVictimAlliance($sideAssignment["entity_id"]); // also add as involved alliance for blue-on-blue kills $this->llist->addInvolvedAlliance($sideAssignment["entity_id"]); } } else { // alliance is an enemy if ($sideAssignment["side"] == "e") { $this->kslist->addVictimCorp($sideAssignment["entity_id"]); $this->lslist->addInvolvedCorp($sideAssignment["entity_id"]); $this->klist->addVictimCorp($sideAssignment["entity_id"]); $this->llist->addInvolvedCorp($sideAssignment["entity_id"]); } else { $this->kslist->addInvolvedCorp($sideAssignment["entity_id"]); $this->lslist->addVictimCorp($sideAssignment["entity_id"]); // also add as involved alliance for blue-on-blue kills $this->lslist->addInvolvedCorp($sideAssignment["entity_id"]); $this->klist->addInvolvedCorp($sideAssignment["entity_id"]); $this->llist->addVictimCorp($sideAssignment["entity_id"]); // also add as involved alliance for blue-on-blue kills $this->llist->addInvolvedCorp($sideAssignment["entity_id"]); } } } } // we need a summary table first $this->summaryTable = new KillSummaryTable($this->kslist, $this->lslist); $this->summaryTable->generate(); $this->destroyed = array(); $this->lossValues = array(); $this->killValues = array(); $this->pilots = array('a' => array(), 'e' => array()); $this->klist->rewind(); $this->damageOverview = array('a' => array(), 'e' => array()); $totalKillIsk = $this->summaryTable->getTotalKillISK(); while ($kill = $this->klist->getKill()) { handle_involved($kill, 'a', $this->pilots, $sideAssignmentMap, TRUE); handle_destroyed($kill, 'e', $this->destroyed, $this->pilots, $sideAssignmentMap, TRUE); // gather data for battle timeline and loss value lists // for better performance we use this loop so we won't have to loop over the same data again // --------------------------------------------------------------------------------------- // gathering kill values // --------------------------------------------------------------------------------------- // we dont want our own people on the enemy's side! if (in_array($kill->getVictimAllianceID(), config::get('cfg_allianceid')) || in_array($kill->getVictimCorpID(), config::get('cfg_corpid')) || in_array($kill->getVictimID(), config::get('cfg_pilotid'))) { continue; } $lossValueRaw = $kill->getISKLoss(); $lossValue = self::formatIskValue($lossValueRaw); if ($totalKillIsk != 0) { $percentualLossValue = number_format($lossValueRaw / $totalKillIsk * 100, 2); } else { $percentualLossValue = 0.0; } if ($lossValueRaw > 0) { $this->killValues[] = array("victimName" => $kill->getVictimName(), "victimID" => $kill->getVictimID(), "victimUrl" => edkURI::page("pilot_detail", $kill->getVictimID(), "plt_id"), "victimShipName" => $kill->getVictimShipName(), "victimShipImage" => imageUrl::getURL("Ship", $kill->getVictimShipID(), 32), "victimShipClass" => $kill->getVictimShipClassName(), "victimCorpName" => $kill->getVictimCorpName(), "victimCorpID" => $kill->getVictimCorpID(), "victimCorpUrl" => edkURI::page("corp_detail", $kill->getVictimCorpID(), "crp_id"), "victimAllianceName" => $kill->getVictimAllianceName(), "victimAllianceID" => $kill->getVictimAllianceID(), "victimAllianceUrl" => edkURI::page("alliance_detail", $kill->getVictimAllianceID(), "all_id"), "killId" => $kill->getID(), "killUrl" => edkURI::page("kill_detail", $kill->getID(), "kll_id"), "lossValueRaw" => $lossValueRaw, "lossValue" => $lossValue, "lossValuePercentage" => $percentualLossValue); } // --------------------------------------------------------------------------------------- // gathering timeline data // --------------------------------------------------------------------------------------- $killTimestamp = strtotime($kill->getTimeStamp()); // increase killtimestamp for pods so they appear AFTER the ship kill in the timeline $shipClassId = $kill->getVictimShip()->getClass()->getID(); if ($shipClassId == 18 || $shipClassId == 2) { $killTimestamp += 1; } $this->timeLine[] = array("timestamp" => $killTimestamp, "loss" => NULL, "kill" => array("victimName" => $kill->getVictimName(), "victimID" => $kill->getVictimID(), "victimUrl" => edkURI::page("pilot_detail", $kill->getVictimID(), "plt_id"), "victimShipName" => $kill->getVictimShipName(), "victimShipImage" => imageUrl::getURL("Ship", $kill->getVictimShipID(), 32), "victimShipClass" => $kill->getVictimShipClassName(), "victimCorpName" => $kill->getVictimCorpName(), "victimCorpID" => $kill->getVictimCorpID(), "victimCorpUrl" => edkURI::page("corp_detail", $kill->getVictimCorpID(), "crp_id"), "victimAllianceName" => $kill->getVictimAllianceName(), "victimAllianceID" => $kill->getVictimAllianceID(), "victimAllianceUrl" => edkURI::page("alliance_detail", $kill->getVictimAllianceID(), "all_id"), "killId" => $kill->getID(), "killUrl" => edkURI::page("kill_detail", $kill->getID(), "kll_id"))); // --------------------------------------------------------------------------------------- // gathering damage overview data // --------------------------------------------------------------------------------------- $this->damageOverview["a"][] = array("victimName" => $kill->getVictimName(), "victimID" => $kill->getVictimID(), "victimUrl" => edkURI::page("pilot_detail", $kill->getVictimID(), "plt_id"), "victimShipName" => $kill->getVictimShipName(), "victimShipImage" => imageUrl::getURL("Ship", $kill->getVictimShipID(), 32), "victimShipClass" => $kill->getVictimShipClassName(), "victimCorpName" => $kill->getVictimCorpName(), "victimCorpID" => $kill->getVictimCorpID(), "victimCorpUrl" => edkURI::page("corp_detail", $kill->getVictimCorpID(), "crp_id"), "victimAllianceName" => $kill->getVictimAllianceName(), "victimAllianceID" => $kill->getVictimAllianceID(), "victimAllianceUrl" => edkURI::page("alliance_detail", $kill->getVictimAllianceID(), "all_id"), "killId" => $kill->getID(), "killUrl" => edkURI::page("kill_detail", $kill->getID(), "kll_id"), "lossValueRaw" => $lossValueRaw, "lossValue" => $lossValue, "lossValuePercentage" => $percentualLossValue); } $this->llist->rewind(); $totalLossIsk = $this->summaryTable->getTotalLossISK(); while ($kill = $this->llist->getKill()) { handle_involved($kill, 'e', $this->pilots, $sideAssignmentMap, TRUE); handle_destroyed($kill, 'a', $this->destroyed, $this->pilots, $sideAssignmentMap, TRUE); // gather data for battle timeline and loss value lists // for better performance we use this loop so we won't have to loop over the same data again // --------------------------------------------------------------------------------------- // gathering loss values // --------------------------------------------------------------------------------------- $lossValueRaw = $kill->getISKLoss(); $lossValue = self::formatIskValue($lossValueRaw); if ($totalLossIsk != 0) { $percentualLossValue = number_format($lossValueRaw / $totalLossIsk * 100, 2); } else { $percentualLossValue = 0.0; } if ($lossValueRaw > 0) { $this->lossValues[] = array("victimName" => $kill->getVictimName(), "victimID" => $kill->getVictimID(), "victimUrl" => edkURI::page("pilot_detail", $kill->getVictimID(), "plt_id"), "victimShipName" => $kill->getVictimShipName(), "victimShipImage" => imageUrl::getURL("Ship", $kill->getVictimShipID(), 32), "victimShipClass" => $kill->getVictimShipClassName(), "victimCorpName" => $kill->getVictimCorpName(), "victimCorpID" => $kill->getVictimCorpID(), "victimCorpUrl" => edkURI::page("corp_detail", $kill->getVictimCorpID(), "crp_id"), "victimAllianceName" => $kill->getVictimAllianceName(), "victimAllianceID" => $kill->getVictimAllianceID(), "victimAllianceUrl" => edkURI::page("alliance_detail", $kill->getVictimAllianceID(), "all_id"), "killId" => $kill->getID(), "killUrl" => edkURI::page("kill_detail", $kill->getID(), "kll_id"), "lossValueRaw" => $lossValueRaw, "lossValue" => $lossValue, "lossValuePercentage" => $percentualLossValue); } // --------------------------------------------------------------------------------------- // gathering timeline data // --------------------------------------------------------------------------------------- $killTimestamp = strtotime($kill->getTimeStamp()); $shipClassId = $kill->getVictimShip()->getClass()->getID(); $this->timeLine[] = array("timestamp" => strtotime($kill->getTimeStamp()), "loss" => array("victimName" => $kill->getVictimName(), "victimID" => $kill->getVictimID(), "victimUrl" => edkURI::page("pilot_detail", $kill->getVictimID(), "plt_id"), "victimShipName" => $kill->getVictimShipName(), "victimShipImage" => imageUrl::getURL("Ship", $kill->getVictimShipID(), 32), "victimShipClass" => $kill->getVictimShipClassName(), "victimCorpName" => $kill->getVictimCorpName(), "victimCorpID" => $kill->getVictimCorpID(), "victimCorpUrl" => edkURI::page("corp_detail", $kill->getVictimCorpID(), "crp_id"), "victimAllianceName" => $kill->getVictimAllianceName(), "victimAllianceID" => $kill->getVictimAllianceID(), "victimAllianceUrl" => edkURI::page("alliance_detail", $kill->getVictimAllianceID(), "all_id"), "killId" => $kill->getID(), "killUrl" => edkURI::page("kill_detail", $kill->getID(), "kll_id")), "kill" => NULL); } //echo "<pre>"; var_dump($this->pilots); echo "</pre>"; // sort pilot ships, order pods after ships foreach ($this->pilots as $side => $pilot) { foreach ($pilot as $id => $kll) { usort($this->pilots[$side][$id], array($this, 'cmp_ts_func')); } } // sort arrays, ships with high points first uasort($this->pilots['a'], array($this, 'cmp_func')); uasort($this->pilots['e'], array($this, 'cmp_func')); // now get the pods out and mark the ships the've flown as podded foreach ($this->pilots as $side => $pilot) { foreach ($pilot as $id => $kll) { $max = count($kll); for ($i = 0; $i < $max; $i++) { // add up total damage for each side if ($side == "a") { if (isset($kll[$i]["damage"])) { $this->damageTotalFriendly += $kll[$i]["damage"]; } } else { if (isset($kll[$i]["damage"])) { $this->damageTotalHostile += $kll[$i]["damage"]; } } // this kill has a pod as ship if ($kll[$i]['shipClass'] == 'Capsule') { // this pilot made previous kills in another ship if (isset($kll[$i - 1]['sid'])) { // this kill is a pod loss if (isset($kll[$i]['destroyed'])) { $this->pilots[$side][$id][$i - 1]['podded'] = true; $this->pilots[$side][$id][$i - 1]['podid'] = $kll[$i]['kll_id']; $this->pilots[$side][$id][$i - 1]['pod_url'] = edkURI::page("kill_detail", $kll[$i]['kll_id'], "kll_id"); unset($this->pilots[$side][$id][$i]); } else { // update stats for previously used ship $this->pilots[$side][$id][$i - 1]['times'] += $this->pilots[$side][$id][$i]['times']; $this->pilots[$side][$id][$i - 1]['damage'] += $this->pilots[$side][$id][$i]['damage']; unset($this->pilots[$side][$id][$i]); } } } } } } // update battles with current stats $this->updateBattles(); }
function topLists() { // Display the top pilot lists. if ($this->view != 'losses') { $tklist = new TopKillsList(); $this->loadTime($tklist); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, "Top killers", "kills in " . $this->getCurrentPeriod(), "kills", "eagle"); $html = $tkbox->generate(); } if ($this->view == 'losses') { $tllist = new TopLossesList(); $this->loadTime($tllist); involved::load($tllist, 'loss'); $tllist->generate(); $tlbox = new AwardBox($tllist, "Top losers", "losses in " . $this->getCurrentPeriod(), "losses", "moon"); $html .= $tlbox->generate(); } if ($this->view != 'losses') { $tklist = new TopScoreList(); $this->loadTime($tklist); //$tklist->setWeek($this->week); //$tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, "Top scorers", "points in " . $this->getCurrentPeriod(), "points", "redcross"); $html .= $tkbox->generate(); } return $html; }
function summaryTable() { $summarytable = new KillSummaryTable(); involved::load($summarytable, 'kill'); return $summarytable->generate(); }
public function addCombinedAlliance($alliance) { involved::add($this->comb_all_, $alliance); }
asort($times); // we got 2 resulting timestamps $firstts = array_shift($times); $lastts = array_pop($times); $kslist = new KillList(); $kslist->setOrdered(true); $kslist->addSystem($system); $kslist->setStartDate($firstts); $kslist->setEndDate($lastts); involved::load($kslist, 'kill'); $lslist = new KillList(); $lslist->setOrdered(true); $lslist->addSystem($system); $lslist->setStartDate($firstts); $lslist->setEndDate($lastts); involved::load($lslist, 'loss'); $killsummary = new KillSummaryTable($kslist, $lslist); $killsummary->setBreak(6); $name = $system->getName() . " " . substr($firstts, 0, 16) . " " . substr($lastts, -8, 5); } ?> <form> <table class="popup-table" height="100%" width="355px"> <tr> <td align="center"><strong>Forum Post</strong></td> </tr> <tr> <td align="center"><input type="button" value="Close" onClick="ReverseContentDisplay('popup');"></td> </tr> <tr> <td valign="top" align="center">
public function __construct() { //get latest kill $kill_list = new KillList(); $kill_list->setOrdered(true); $kill_list->setOrderBy('kll_timestamp DESC'); $kill_list->setLimit(1); $kill_list->setPodsNoobShips(Config::get('podnoobs')); involved::load($kill_list); $this->kill = $kill_list->getKill(); //are we replacing the kb banner? $bannerreplace = Config::get('mod_bannerpic_bannerreplace'); if ($bannerreplace == 1) { Config::set('style_banner', 'bannerpic.jpg'); } //if this is already cached we don't need to go any further.. if (Config::get('mod_bannerpic_nocache') == 1) { $this->nocache = true; } $this->cache = KB_CACHEDIR . '/data/bannerpic' . $this->kill->getID() . '.jpg'; $basepic = Config::get('mod_bannerpic_basepic'); if (file_exists($basepic)) { $this->basepic = $basepic; } if (file_exists($this->cache) && !$this->nocache) { $this->img = imagecreatefromjpeg($this->cache); if ($bannerreplace == 1) { imagejpeg($this->img, 'banner/bannerpic.jpg', 100); } return; } //no kills? if ($this->kill === null) { $killstr = "No kills yet - how sad!"; imagefttext($this->img, $this->lfont, 0, 20, 30, $red, $this->font, $killstr); imagejpeg($this->img); imagedestroy($this->img); return; } //killer $killername = $this->kill->getFBPilotName(); //get victim info $victimid = $this->kill->getVictimExternalID(); $victimname = $this->kill->getVictimName(); $victimcorp = $this->kill->getVictimCorpName(); $victimalli = $this->kill->getVictimAllianceName(); //get the 64 x 64 victim portrait; $victimgfile = KB_HOST . '/?a=thumb&id=' . $victimid . '&size=64'; $victimimg = imagecreatefromjpeg($victimgfile); $victimshipname = $this->kill->getVictimShipName(); $url = KB_HOST . '/?a=thumb&id=' . $this->kill->getVictimShipExternalID() . '&size=64'; $victimshipimg = imagecreatefromjpeg($url); //set variables for positions //Config::get('mod_bannerpic_basepic') == null ? Config::set('mod_bannerpic_basepic', $this->basepic) : $this->basepic = Config::get('mod_bannerpic_basepic'); //victim picture $vicpicLeft = 1; Config::get('mod_bannerpic_vicpicleft') == null ? Config::set('mod_bannerpic_vicpicleft', $vicpicLeft) : ($vicpicLeft = Config::get('mod_bannerpic_vicpicleft')); $vicpicTop = 1; Config::get('mod_bannerpic_vicpictop') == null ? Config::set('mod_bannerpic_vicpictop', $vicpicTop) : ($vicpicTop = Config::get('mod_bannerpic_vicpictop')); $vicpicTrans = 100; Config::get('mod_bannerpic_vicpictrans') == null ? Config::set('mod_bannerpic_vicpictrans', $vicpicTrans) : ($vicpicTrans = Config::get('mod_bannerpic_vicpictrans')); //ship picture $shippicLeft = 70; Config::get('mod_bannerpic_shippicleft') == null ? Config::set('mod_bannerpic_shippicleft', $shippicLeft) : ($shippicLeft = Config::get('mod_bannerpic_shippicleft')); $shippicTop = 1; Config::get('mod_bannerpic_shippictop') == null ? Config::set('mod_bannerpic_shippictop', $shippicTop) : ($shippicTop = Config::get('mod_bannerpic_shippictop')); $shippicTrans = 100; Config::get('mod_bannerpic_shippictrans') == null ? Config::set('mod_bannerpic_shippictrans', $shippicTrans) : ($shippicTrans = Config::get('mod_bannerpic_shippictrans')); //killer $killstrLeft = 145; Config::get('mod_bannerpic_killstrleft') == null ? Config::set('mod_bannerpic_killstrleft', $killstrLeft) : ($killstrLeft = Config::get('mod_bannerpic_killstrleft')); $killstrTop = 15; Config::get('mod_bannerpic_killstrtop') == null ? Config::set('mod_bannerpic_killstrtop', $killstrTop) : ($killstrTop = Config::get('mod_bannerpic_killstrtop')); //victim corp $corpstrLeft = 145; Config::get('mod_bannerpic_corpstrleft') == null ? Config::set('mod_bannerpic_corpstrleft', $corpstrLeft) : ($corpstrLeft = Config::get('mod_bannerpic_corpstrleft')); $corpstrTop = 30; Config::get('mod_bannerpic_corpstrtop') == null ? Config::set('mod_bannerpic_corpstrtop', $corpstrTop) : ($corpstrTop = Config::get('mod_bannerpic_corpstrtop')); //victim alliance $allistrLeft = 145; Config::get('mod_bannerpic_allistrleft') == null ? Config::set('mod_bannerpic_allistrleft', $allistrLeft) : ($allistrLeft = Config::get('mod_bannerpic_allistrleft')); $allistrTop = 45; Config::get('mod_bannerpic_allistrtop') == null ? Config::set('mod_bannerpic_allistrtop', $allistrTop) : ($allistrTop = Config::get('mod_bannerpic_allistrtop')); //victim ship name $shipstrLeft = 145; Config::get('mod_bannerpic_shipstrleft') == null ? Config::set('mod_bannerpic_shipstrleft', $shipstrLeft) : ($shipstrLeft = Config::get('mod_bannerpic_shipstrleft')); $shipstrTop = 60; Config::get('mod_bannerpic_shipstrtop') == null ? Config::set('mod_bannerpic_shipstrtop', $shipstrTop) : ($shipstrTop = Config::get('mod_bannerpic_shipstrtop')); //border box colours $boxr = 186; Config::get('mod_bannerpic_boxr') == null ? Config::set('mod_bannerpic_boxr', $boxr) : ($boxr = Config::get('mod_bannerpic_boxr')); $boxg = 185; Config::get('mod_bannerpic_boxg') == null ? Config::set('mod_bannerpic_boxg', $boxg) : ($boxg = Config::get('mod_bannerpic_boxg')); $boxb = 183; Config::get('mod_bannerpic_boxb') == null ? Config::set('mod_bannerpic_boxb', $boxb) : ($boxb = Config::get('mod_bannerpic_boxb')); //text colours $textr = 255; Config::get('mod_bannerpic_textr') == null ? Config::set('mod_bannerpic_textr', $textr) : ($textr = Config::get('mod_bannerpic_textr')); $textg = 255; Config::get('mod_bannerpic_textg') == null ? Config::set('mod_bannerpic_textg', $textg) : ($textg = Config::get('mod_bannerpic_textg')); $textb = 255; Config::get('mod_bannerpic_textb') == null ? Config::set('mod_bannerpic_textb', $textb) : ($textb = Config::get('mod_bannerpic_textb')); //font Config::get('mod_bannerpic_fontfile') == null ? Config::set('mod_bannerpic_fontfile', $this->font) : ($this->font = Config::get('mod_bannerpic_fontfile')); Config::get('mod_bannerpic_fontfile') == null ? Config::set('mod_bannerpic_fontfilesize', $this->sfont) : ($this->sfont = Config::get('mod_bannerpic_fontsize')); $killstr = "{$victimname} was killed by {$killername}"; $corpstr = "Corporation : {$victimcorp}"; $allistr = "Alliance : {$victimalli}"; $shipstr = "Ship : {$victimshipname}"; //open base picture $this->img = imagecreatefromjpeg($this->basepic); $red = imagecolorallocate($this->img, 255, 0, 0); $black = imagecolorallocate($this->img, 0, 0, 0); $textcol = imagecolorallocate($this->img, $textr, $textg, $textb); $box = imagecreate(68, 68); $bxcol = imagecolorallocate($box, $boxr, $boxg, $boxb); //pics to base pic imagecopymerge($this->img, $box, $vicpicLeft, $vicpicTop, 0, 0, 68, 68, $vicpicTrans); imagecopymerge($this->img, $victimimg, $vicpicLeft + 2, $vicpicTop + 2, 0, 0, 64, 64, $vicpicTrans); imagecopymerge($this->img, $box, $shippicLeft, $shippicTop, 0, 0, 68, 68, 100); imagecopymerge($this->img, $victimshipimg, $shippicLeft + 2, $shippicTop + 2, 0, 0, 64, 64, 100); //add text to image imagefttext($this->img, $this->sfont, 0, $killstrLeft, $killstrTop, $textcol, $this->font, $killstr); imagefttext($this->img, $this->sfont, 0, $corpstrLeft, $corpstrTop, $textcol, $this->font, $corpstr); imagefttext($this->img, $this->sfont, 0, $allistrLeft, $allistrTop, $textcol, $this->font, $allistr); imagefttext($this->img, $this->sfont, 0, $shipstrLeft, $shipstrTop, $textcol, $this->font, $shipstr); //cache the file imagejpeg($this->img, $this->cache, 100); //if the board banner option is checked then put a copy in the banners dir. if ($bannerreplace == 1) { imagejpeg($this->img, 'banner/bannerpic.jpg', 100); } //destroy the images imagedestroy($box); imagedestroy($victimimg); imagedestroy($victimshipimg); }
private function killList($date) { $result = array(); $klist = new KillList(); $klist->setStartDate($date . ' 00:00'); $klist->setEndDate($date . '23:59'); $klist->setPodsNoobShips(Config::get('podnoobs')); involved::load($klist, 'kill'); $llist = new KillList(); $llist->setStartDate($date . ' 00:00'); $llist->setEndDate($date . '23:59'); $llist->setPodsNoobShips(Config::get('podnoobs')); involved::load($llist, 'loss'); while ($kill = $klist->getKill()) { if ($kill) { $result[$kill->getFBPilotName()]['kills']++; } } while ($loss = $llist->getKill()) { if ($loss) { $result[$loss->getVictimName()]['losses']++; } } return $result; }
/** * Build the killlists that are needed for the options selected. */ function killList() { global $smarty; if (isset($this->viewList[$this->view])) { return call_user_func_array($this->viewList[$this->view], array(&$this)); } $scl_id = (int) edkURI::getArg('scl_id'); $klist = new KillList(); $klist->setOrdered(true); if ($this->view == 'losses') { involved::load($klist, 'loss'); } else { involved::load($klist, 'kill'); } $klist->addSystem($this->system); if (config::get('kill_classified')) { $klist->setEndDate(gmdate('Y-m-d H:i', strtotime('now - ' . config::get('kill_classified') . ' hours'))); } if ($scl_id) { $klist->addVictimShipClass(intval($scl_id)); } else { $klist->setPodsNoobShips(config::get('podnoobs')); } if ($this->view == 'recent' || !$this->view) { $klist->setLimit(20); $smarty->assign('klheader', config::get('killcount') . ' most recent kills'); } else { if ($this->view == 'losses') { $smarty->assign('klheader', 'All losses'); } else { $smarty->assign('klheader', 'All kills'); } } $klist->setPageSplit(config::get('killcount')); $pagesplitter = new PageSplitter($klist->getCount(), config::get('killcount')); $table = new KillListTable($klist); $smarty->assign('klsplit', $pagesplitter->generate()); $smarty->assign('kltable', $table->generate()); $html = $smarty->fetch(get_tpl('system_detail')); return $html; }
function awards() { if (isset($this->viewList[$this->view])) { return call_user_func_array($this->viewList[$this->view], array(&$this)); } global $smarty; $awardboxes = array(); // top killers $tklist = new TopList_Kills(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('topkillers'), Language::get('kills'), "kills", "eagle"); $awardboxes[] = $tkbox->generate(); // top scorers if (config::get('kill_points')) { $tklist = new TopList_Score(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('topscorers'), Language::get('top_points'), "points", "redcross"); $awardboxes[] = $tkbox->generate(); } // top solo killers $tklist = new TopList_SoloKiller(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_solo'), Language::get('top_solo_desc'), "kills", "cross"); $awardboxes[] = $tkbox->generate(); // top damage dealers $tklist = new TopList_DamageDealer(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_damage'), Language::get('top_damage_desc'), "kills", "wing1"); $awardboxes[] = $tkbox->generate(); // top final blows $tklist = new TopList_FinalBlow(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_final'), Language::get('top_final_desc'), "kills", "skull"); $awardboxes[] = $tkbox->generate(); // top podkillers $tklist = new TopList_Kills(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->addVictimShipClass(2); // pod $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_podkill'), Language::get('top_podkill_desc'), "kills", "globe"); $awardboxes[] = $tkbox->generate(); // top griefers $tklist = new TopList_Kills(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->addVictimShipClass(20); // freighter $tklist->addVictimShipClass(22); // exhumer $tklist->addVictimShipClass(7); // industrial $tklist->addVictimShipClass(12); // barge $tklist->addVictimShipClass(14); // transport $tklist->addVictimShipClass(39); // industrial command $tklist->addVictimShipClass(43); // exploration ship $tklist->addVictimShipClass(29); // capital industrial $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_griefer'), Language::get('top_griefer_desc'), "kills", "star"); $awardboxes[] = $tkbox->generate(); // top capital killers $tklist = new TopList_Kills(); $tklist->setMonth($this->month); $tklist->setYear($this->year); involved::load($tklist, 'kill'); $tklist->addVictimShipClass(20); // freighter $tklist->addVictimShipClass(19); // dread $tklist->addVictimShipClass(27); // carrier $tklist->addVictimShipClass(28); // mothership $tklist->addVictimShipClass(26); // titan $tklist->addVictimShipClass(29); // cap. industrial $tklist->generate(); $tkbox = new AwardBox($tklist, Language::get('top_isk_kill'), Language::get('top_isk_kill_desc'), "kills", "wing2"); $awardboxes[] = $tkbox->generate(); $monthname = kbdate("F", strtotime("2000-" . $this->month . "-2")); $smarty->assignByRef('awardboxes', $awardboxes); $smarty->assign('month', $monthname); $smarty->assign('year', $this->year); $smarty->assign('boxcount', count($awardboxes)); $smarty->assign('page_title', Language::get('page_awards_for') . " " . $monthname . " " . $this->year); return $smarty->fetch(get_tpl('awards')); }
function addVictimAlliance($alliance) { involved::add($this->vic_all, $alliance); }