예제 #1
0
define('MPATH', dirname(__FILE__) . "/");
$im = imagecreatefrompng(MPATH . 'default.png');
$red = imagecolorallocate($im, 255, 10, 10);
$orange = imagecolorallocate($im, 150, 120, 20);
$blue = imagecolorallocate($im, 0, 0, 200);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
$grey_trans = imagecolorallocatealpha($im, 50, 50, 50, 50);
$greyred_trans = imagecolorallocatealpha($im, 50, 10, 10, 50);
$name = $pilot->getName();
$list = new KillList();
$list->setOrdered(true);
$list->setLimit(1);
$list->setPodsNoobships(false);
$list->addInvolvedPilot($pilot);
$kill = $list->getKill();
// corp
$box = imagettfbbox(10, 0, MPATH . 'GUNSHIP2.TTF', $corp->getName());
$width = $box[4];
imagettftext($im, 10, 0, 319 - $width, 71, $black, MPATH . 'GUNSHIP2.TTF', $corp->getName());
imagettftext($im, 10, 0, 318 - $width, 70, $red, MPATH . 'GUNSHIP2.TTF', $corp->getName());
// player
$box = imagettfbbox(16, 0, MPATH . 'GUNSHIP2.TTF', $name);
$width = $box[4];
imagettftext($im, 16, 0, 319 - $width, 91, $black, MPATH . 'GUNSHIP2.TTF', $name);
imagettftext($im, 16, 0, 318 - $width, 90, $red, MPATH . 'GUNSHIP2.TTF', $name);
// time, victim, victim corp and ship killed
imagettftext($im, 11, 0, 39, 16, $black, MPATH . 'spaceage.ttf', $kill->getTimeStamp());
imagettftext($im, 11, 0, 38, 15, $white, MPATH . 'spaceage.ttf', $kill->getTimeStamp());
imagettftext($im, 11, 0, 39, 26, $black, MPATH . 'spaceage.ttf', $kill->getVictimName());
imagettftext($im, 11, 0, 38, 25, $white, MPATH . 'spaceage.ttf', $kill->getVictimName());
예제 #2
0
}
$html .= "<form><textarea class=killmail id=killmail name=killmail cols=\"55\" rows=\"35\" readonly=readonly>";
// Setup the lists
$klist = new KillList();
$klist->setOrdered(true);
$klist->addInvolvedPilot($pilot);
$klist->rewind();
while ($kll_id = $klist->getKill()) {
    $kill = new Kill($kll_id->getID());
    $html .= "\"";
    $html .= $kill->getRawMail();
    $html .= "\",\n\n";
}
// Losses
$llist = new KillList();
$llist->setOrdered(true);
// $list->setPodsNoobships( true ); // Not working!!
$llist->addVictimPilot($pilot);
$llist->rewind();
while ($lss_id = $llist->getKill()) {
    $html .= "\"";
    $loss = new Kill($lss_id->getID());
    $html .= $loss->getRawMail();
    $html .= "\",\n\n";
}
$html .= "</textarea><br>";
$html .= "<input type=\"button\" value=\"Select All\" onClick=\"this.form.killmail.select();this.form.killmail.focus(); document.execCommand('Copy')\"></form><br>";
$html .= "Copy content of textbox to another location (eg. a textfile)";
$page->setContent($html);
$page->addContext($menubox->generate());
$page->generate();
예제 #3
0
 /**
  *
  * @param KillList $killList
  * @return string KillList as XML
  */
 public static function killListToXML($killList)
 {
     global $idfeedversion;
     $qry = DBFactory::getDBQuery();
     $date = gmdate('Y-m-d H:i:s');
     $xml = "<?xml version='1.0' encoding='UTF-8'?>\n\t\t<eveapi version='2' edkapi='" . $idfeedversion . "'>\n\t\t</eveapi>";
     $sxe = new SimpleXMLElement($xml);
     // Let's start making the xml.
     $sxe->addChild('currentTime', $date);
     $result = $sxe->addChild('result');
     $kills = $result->addChild('rowset');
     $kills->addAttribute('name', 'kills');
     $kills->addAttribute('key', 'killID');
     $kills->addAttribute('columns', 'killID,solarSystemID,killTime,moonID,hash,trust');
     $count = 0;
     $timing = '';
     while ($kill = $killList->getKill()) {
         if (config::get('km_cache_enabled') && CacheHandler::exists($kill->getID() . ".xml", 'mails')) {
             $cachedRow = new SimpleXMLElement(CacheHandler::get($kill->getID() . ".xml", 'mails'));
             IDFeed::addXMLElement($kills, $cachedRow);
             continue;
         }
         $count++;
         if ($kill->isClassified()) {
             continue;
         }
         //$kill = Kill::getByID($kill->getID());
         $row = $kills->addChild('row');
         $row->addAttribute('killID', intval($kill->getExternalID()));
         $row->addAttribute('killInternalID', intval($kill->getID()));
         $row->addAttribute('solarSystemID', $kill->getSystem()->getExternalID());
         $row->addAttribute('killTime', $kill->getTimeStamp());
         $row->addAttribute('moonID', '0');
         $row->addAttribute('hash', bin2hex(IDFeed::getHash($kill, true)));
         $row->addAttribute('trust', 3);
         $victim = Pilot::getByID($kill->getVictimID());
         $victimCorp = Corporation::getByID($kill->getVictimCorpID());
         $victimAlliance = Alliance::getByID($kill->getVictimAllianceID());
         $victimrow = $row->addChild('victim');
         if ($victim->getName() == $kill->getVictimShipName()) {
             $victimrow->addAttribute('characterID', "0");
             $victimrow->addAttribute('characterName', "");
         } else {
             $victimrow->addAttribute('characterID', $victim->getExternalID());
             $victimrow->addAttribute('characterName', $victim->getName());
         }
         $victimrow->addAttribute('corporationID', $victimCorp->getExternalID());
         $victimrow->addAttribute('corporationName', $victimCorp->getName());
         if ($victimAlliance->isFaction()) {
             $victimrow->addAttribute('allianceID', 0);
             $victimrow->addAttribute('allianceName', '');
             $victimrow->addAttribute('factionID', $victimAlliance->getFactionID());
             $victimrow->addAttribute('factionName', $victimAlliance->getName());
         } else {
             $victimrow->addAttribute('allianceID', $victimAlliance->getExternalID());
             $victimrow->addAttribute('allianceName', $victimAlliance->getName());
             $victimrow->addAttribute('factionID', 0);
             $victimrow->addAttribute('factionName', '');
         }
         $victimrow->addAttribute('damageTaken', $kill->getDamageTaken());
         $victimrow->addAttribute('shipTypeID', $kill->getVictimShipExternalID());
         $involved = $row->addChild('rowset');
         $involved->addAttribute('name', 'attackers');
         $involved->addAttribute('columns', 'characterID,characterName,corporationID,corporationName,allianceID,allianceName,factionID,factionName,securityStatus,damageDone,finalBlow,weaponTypeID,shipTypeID');
         $sql = "SELECT ind_sec_status, ind_all_id, ind_crp_id,\n\t\t\t\tind_shp_id, ind_wep_id, ind_order, ind_dmgdone, plt_id, plt_name,\n\t\t\t\tplt_externalid, crp_name, crp_external_id,\n\t\t\t\twtype.typeName AS wep_name FROM kb3_inv_detail\n\t\t\t\tJOIN kb3_pilots ON (plt_id = ind_plt_id)\n\t\t\t\tJOIN kb3_corps ON (crp_id = ind_crp_id)\n\t\t\t\tJOIN kb3_invtypes wtype ON (ind_wep_id = wtype.typeID)\n\t\t\t\tWHERE ind_kll_id = " . $kill->getID() . " ORDER BY ind_order ASC";
         $qry->execute($sql);
         while ($inv = $qry->getRow()) {
             $invrow = $involved->addChild('row');
             if (strpos($inv['plt_name'], '- ') !== false) {
                 $inv['plt_name'] = substr($inv['plt_name'], strpos($inv['plt_name'], '- ') + 2);
             } else {
                 if (strpos($inv['plt_name'], '#') !== false) {
                     $name = explode("#", $inv['plt_name']);
                     $inv['plt_name'] = $name[3];
                 }
             }
             if ($inv['plt_name'] == $inv['wep_name']) {
                 $invrow->addAttribute('characterID', 0);
                 $invrow->addAttribute('characterName', "");
                 $invrow->addAttribute('weaponTypeID', 0);
                 $invrow->addAttribute('shipTypeID', $inv['ind_wep_id']);
             } else {
                 $invrow->addAttribute('characterID', $inv['plt_externalid']);
                 $invrow->addAttribute('characterName', $inv['plt_name']);
                 $invrow->addAttribute('weaponTypeID', $inv['ind_wep_id']);
                 $invrow->addAttribute('shipTypeID', $inv['ind_shp_id']);
             }
             $invrow->addAttribute('corporationID', $inv['crp_external_id']);
             $invrow->addAttribute('corporationName', $inv['crp_name']);
             $invAlliance = Alliance::getByID($inv['ind_all_id']);
             if ($invAlliance->isFaction()) {
                 $invrow->addAttribute('allianceID', 0);
                 $invrow->addAttribute('allianceName', '');
                 $invrow->addAttribute('factionID', $invAlliance->getFactionID());
                 $invrow->addAttribute('factionName', $invAlliance->getName());
             } else {
                 if (strcasecmp($invAlliance->getName(), "None") == 0) {
                     $invrow->addAttribute('allianceID', 0);
                     $invrow->addAttribute('allianceName', "");
                 } else {
                     $invrow->addAttribute('allianceID', $invAlliance->getExternalID());
                     $invrow->addAttribute('allianceName', $invAlliance->getName());
                 }
                 $invrow->addAttribute('factionID', 0);
                 $invrow->addAttribute('factionName', '');
             }
             $invrow->addAttribute('securityStatus', number_format($inv['ind_sec_status'], 1));
             $invrow->addAttribute('damageDone', $inv['ind_dmgdone']);
             if ($inv['plt_id'] == $kill->getFBPilotID()) {
                 $final = 1;
             } else {
                 $final = 0;
             }
             $invrow->addAttribute('finalBlow', $final);
         }
         $sql = "SELECT * FROM kb3_items_destroyed WHERE itd_kll_id = " . $kill->getID();
         $qry->execute($sql);
         $qry2 = DBFactory::getDBQuery();
         $sql = "SELECT * FROM kb3_items_dropped WHERE itd_kll_id = " . $kill->getID();
         $qry2->execute($sql);
         if ($qry->recordCount() || $qry2->recordCount()) {
             $items = $row->addChild('rowset');
             $items->addAttribute('name', 'items');
             $items->addAttribute('columns', 'typeID,flag,qtyDropped,qtyDestroyed, singleton');
             while ($iRow = $qry->getRow()) {
                 $itemRow = $items->addChild('row');
                 $itemRow->addAttribute('typeID', $iRow['itd_itm_id']);
                 $itemRow->addAttribute('flag', $iRow['itd_itl_id']);
                 if ($iRow['itd_itl_id'] == -1) {
                     $itemRow->addAttribute('singleton', 2);
                 } else {
                     $itemRow->addAttribute('singleton', 0);
                 }
                 $itemRow->addAttribute('qtyDropped', 0);
                 $itemRow->addAttribute('qtyDestroyed', $iRow['itd_quantity']);
             }
             while ($iRow = $qry2->getRow()) {
                 $itemRow = $items->addChild('row');
                 $itemRow->addAttribute('typeID', $iRow['itd_itm_id']);
                 $itemRow->addAttribute('flag', $iRow['itd_itl_id']);
                 if ($iRow['itd_itl_id'] == -1) {
                     $itemRow->addAttribute('singleton', 2);
                 } else {
                     $itemRow->addAttribute('singleton', 0);
                 }
                 $itemRow->addAttribute('qtyDropped', $iRow['itd_quantity']);
                 $itemRow->addAttribute('qtyDestroyed', 0);
             }
         }
         if (config::get('km_cache_enabled')) {
             CacheHandler::put($kill->getID() . ".xml", $row->asXML(), 'mails');
         }
         $timing .= $kill->getID() . ": " . (microtime(true) - $starttime) . "<br />";
     }
     $sxe->addChild('cachedUntil', $date);
     return $sxe->asXML();
 }
예제 #4
0
     if ($typ == 'a') {
         $klist->addInvolvedAlliance(new Alliance($id));
         $llist->addVictimAlliance(new Alliance($id));
     } elseif ($typ == 'c') {
         $klist->addInvolvedCorp(new Corporation($id));
         $llist->addVictimCorp(new Corporation($id));
     } elseif ($typ == 'p') {
         $klist->addInvolvedPilot(new Pilot($id));
         $llist->addVictimPilot(new Pilot($id));
     }
 }
 $kills = array();
 while ($kill = $klist->getKill()) {
     $kills[$kill->getID()] = $kill->getTimestamp();
 }
 while ($kill = $llist->getKill()) {
     $kills[$kill->getID()] = $kill->getTimestamp();
 }
 asort($kills);
 $cnt = 0;
 foreach ($kills as $id => $timestamp) {
     $kill = new Kill($id);
     $cnt++;
     $file = $_SESSION['admin_kill_export']['dir'] . $cnt . $_SESSION['admin_kill_export']['ext'];
     $fp = fopen($file, 'w');
     fwrite($fp, $kill->getRawMail());
     fclose($fp);
 }
 $html .= $cnt . ' mails exported<br/>';
 $html .= '<a href="' . edkURI::page("admin_kill_export") . '">Ok</a>';
 unset($_SESSION['admin_kill_export']);
 function generate()
 {
     global $smarty;
     $prevdate = "";
     $this->kill_list_->rewind();
     $smarty->assign('daybreak', $this->daybreak_);
     $smarty->assign('comments_count', config::get('comments_count'));
     // evil hardcode-hack, don't do this at home kids ! ;)
     if (config::get('style_name') == 'revelations') {
         $smarty->assign('comment_white', '_white');
     }
     $c = 0;
     $kdpage = array('a', 'kill_detail', true);
     $krpage = array('a', 'kill_related', true);
     $kills = array();
     while ($kill = $this->kill_list_->getKill()) {
         if ($this->limit_ && $c >= $this->limit_) {
             break;
         } else {
             $c++;
         }
         $curdate = substr($kill->getTimeStamp(), 0, 10);
         if ($curdate != $prevdate) {
             if (count($kills) && $this->daybreak_) {
                 $kl[] = array('kills' => $kills, 'date' => strtotime($prevdate));
                 $kills = array();
             }
             $prevdate = $curdate;
         }
         $kll = array();
         $kll['id'] = $kill->getID();
         $kll['victimshipimage'] = $kill->getVictimShipImage(32);
         $kll['victimshipname'] = $kill->getVictimShipName();
         $kll['victimshipclass'] = $kill->getVictimShipClassName();
         $kll['victim'] = $kill->getVictimName();
         $kll['victimiskloss'] = $kill->getISKLoss();
         if ($kll['victimiskloss'] > 1000000000) {
             $kll['victimiskloss'] = sprintf("%.01fb", $kll['victimiskloss'] / 1000000000);
         } elseif ($kll['victimiskloss'] > 1000000) {
             $kll['victimiskloss'] = sprintf("%.01fm", $kll['victimiskloss'] / 1000000);
         } elseif ($kll['victimiskloss'] > 1000) {
             $kll['victimiskloss'] = sprintf("%.0fk", $kll['victimiskloss'] / 1000);
         }
         $kll['victimcorp'] = $kill->getVictimCorpName();
         $kll['victimalliancename'] = $kill->getVictimAllianceName();
         $kll['fb'] = $kill->getFBPilotName();
         $kll['fbcorp'] = $kill->getFBCorpName();
         if ($kill->isClassified() && !Session::isAdmin()) {
             if (config::get('killlist_regionnames')) {
                 $kll['region'] = Language::get("classified");
             }
             $kll['systemsecurity'] = "-";
             $kll['system'] = Language::get("classified");
         } else {
             if (config::get('killlist_regionnames')) {
                 $kll['region'] = $kill->getSystem()->getRegionName();
             }
             $kll['systemsecurity'] = $kill->getSolarSystemSecurity();
             $kll['system'] = $kill->getSolarSystemName();
         }
         $kll['victimid'] = $kill->getVictimID();
         $kll['victimcorpid'] = $kill->getVictimCorpID();
         $kll['victimallianceid'] = $kill->getVictimAllianceID();
         $kll['victimshipid'] = $kill->getVictimShipExternalID();
         $kll['fbid'] = $kill->getFBPilotID();
         $kll['fbcorpid'] = $kill->getFBCorpID();
         $kll['inv'] = 0;
         if (config::get('killlist_involved')) {
             $kll['inv'] = $kill->getInvolvedPartyCount();
         }
         $kll['timestamp'] = $kill->getTimeStamp();
         if (config::get('killlist_alogo')) {
             // Need to return yet another value from killlists.
             $all = new Alliance($kill->getVictimAllianceID());
             if (strcasecmp($all->getName(), "None") != 0) {
                 $kll['allianceexists'] = true;
                 $kll['victimallianceicon'] = $all->getPortraitURL(32);
             } else {
                 $kll['allianceexists'] = true;
                 $crp = new Corporation($kill->getVictimCorpID());
                 $kll['victimallianceicon'] = $crp->getPortraitURL(32);
             }
         }
         if (isset($kill->_tag)) {
             $kll['tag'] = $kill->_tag;
         }
         $kll['fbplext'] = $kill->getFBPilotExternalID();
         $kll['plext'] = $kill->getFBPilotExternalID();
         if (config::get('comments_count')) {
             $kll['commentcount'] = $kill->countComment();
         }
         $kll['loss'] = false;
         $kll['kill'] = false;
         if ($this->combined_) {
             if (config::get('cfg_allianceid') && in_array($kill->getVictimAllianceID(), config::get('cfg_allianceid'))) {
                 $kll['loss'] = true;
             } else {
                 if (config::get('cfg_corpid') && in_array($kill->getVictimCorpID(), config::get('cfg_corpid'))) {
                     $kll['loss'] = true;
                 } else {
                     if (config::get('cfg_pilotid') && in_array($kill->getVictimID(), config::get('cfg_pilotid'))) {
                         $kll['loss'] = true;
                     }
                 }
             }
             $kll['kill'] = !$kll['loss'];
         }
         $kll['urldetail'] = edkURI::build($kdpage, array('kll_id', $kll['id'], true));
         if (!$kill->isClassified()) {
             $kll['urlrelated'] = edkURI::build($krpage, array('kll_id', $kll['id'], true));
         }
         $kll['victimextid'] = $kill->getVictimExternalID();
         $kll['urlvictim'] = edkURI::page('pilot_detail', $kll['victimextid'] ? $kll['victimextid'] : $kll['victimid'], $kll['victimextid'] ? 'plt_ext_id' : 'plt_id');
         $kll['urlfb'] = edkURI::page('pilot_detail', $kll['fbplext'] ? $kll['fbplext'] : $kll['fbid'], $kll['fbplext'] ? 'plt_ext_id' : 'plt_id');
         if ($kll['allianceexists']) {
             $kll['urlvictimall'] = edkURI::page('alliance_detail', $kll['victimallianceid'], 'all_id');
         }
         $kll['urlvictimcorp'] = edkURI::page('corp_detail', $kll['victimcorpid'], 'crp_id');
         $kll['urlfbcorp'] = edkURI::page('corp_detail', $kll['fbcorpid'], 'crp_id');
         event::call('killlist_table_kill', $kll);
         $kills[] = $kll;
     }
     event::call('killlist_table_kills', $kills);
     if (count($kills)) {
         $kl[] = array('kills' => $kills, 'date' => strtotime($prevdate));
     }
     $smarty->assignByRef('killlist', $kl);
     $smarty->assign('killlist_iskloss', config::get('killlist_iskloss'));
     return $smarty->fetch(getcwd() . "/mods/highlight_capitals/templates/killlisttable.tpl");
 }
예제 #6
0
 /**
  * gets all the dropped loot int $dest_array
  * @param KillList $killList
  * @param array $droppedLoot
  * @return string 
  */
 protected static function getDroppedLoot($killList, &$droppedLoot)
 {
     $killList->rewind();
     $totalValue = 0;
     $qry = DBFactory::getDBQuery();
     while ($kill = $killList->getKill()) {
         $query = "SELECT kb3_items_dropped.itd_itm_id AS 'ID', kb3_invtypes.typeName AS 'Name', SUM( kb3_items_dropped.itd_quantity ) AS 'Quantity', AVG( kb3_item_price.price ) AS Price\n                FROM kb3_items_dropped, kb3_invtypes, kb3_item_price\n                WHERE \n                (\n                    (\n                        kb3_items_dropped.itd_itm_id = kb3_invtypes.typeID\n                    )\n                    AND \n                    (\n                        kb3_items_dropped.itd_itm_id = kb3_item_price.typeID\n                    )\n                    AND \n                    (\n                        kb3_items_dropped.itd_kll_id = " . $kill->getID() . ")\n                )\n                GROUP BY kb3_items_dropped.itd_itm_id";
         $qry->execute($query);
         while ($row = $qry->getRow()) {
             if (isset($droppedLoot[$row['Name']]['Quantity']) && is_numeric($droppedLoot[$row['Name']]['Quantity'])) {
                 $droppedLoot[$row['Name']]['Quantity'] += $row['Quantity'];
             } else {
                 $droppedLoot[$row['Name']]['Quantity'] = $row['Quantity'];
             }
             if (config::get('item_values')) {
                 $droppedLoot[$row['Name']]['TValue'] = self::formatIskValue($row['Price'] * $droppedLoot[$row['Name']]['Quantity']);
                 $droppedLoot[$row['Name']]['Value'] = self::formatIskValue($row['Price']);
                 $droppedLoot[$row['Name']]['RawValue'] = $row['Price'];
                 if (!isset($droppedLoot[$row['Name']]['Icon'])) {
                     $item = Cacheable::factory('Item', $row['ID']);
                     $droppedLoot[$row['Name']]['Icon'] = $item->getIcon(24, false);
                 }
                 $totalValue += $row['Quantity'] * $row['Price'];
             }
         }
     }
     return self::formatIskValue($totalValue);
 }