function renderMap($mapId, $outSizeX = 0, $pointsList = 0, $render = 'defaultMapRenderCallback') { global $gMapCoord, $gmapName, $lang; $mapName = '<a href=?instance=' . $mapId . '>' . getMapName($mapId) . '</a>'; if (empty($mapName)) { echo "{$lang['map_no_found']} {$mapId}<br>"; return; } $map = getRenderMapData($mapId); if (empty($map)) { echo "{$lang['no_image']} {$mapName} ({$mapId})<br>"; return; } // Данные карты $areaX1 = $map[0]; $areaX2 = $map[1]; $areaY1 = $map[2]; $areaY2 = $map[3]; $imageY = $outSizeX == 0 ? $map[5] : $outSizeX; $imageX = $outSizeX == 0 ? $map[4] : intval($map[4] * $outSizeX / $map[5]); $image = "images/map_image/maps/" . $map[6]; $sizeX = $imageX + 4; $sizeY = $imageY; $tableBorder = 1; $tableWidth = $sizeY + $tableBorder * 2 + 8; echo "<table class=map border={$tableBorder} width={$tableWidth}px>"; echo "<tbody><tr><td id=mappername class=mapname>{$mapName}</td></tr>"; echo "<tr><td width={$sizeY}px height={$sizeX}px align=left valign=top>"; echo "<div id=mapperarea style=\"position: relative; border: 0px; left: 0px; top: 0px;\">"; echo "<img src={$image} width={$imageY}px height={$imageX}px>\n"; if ($pointsList) { foreach ($pointsList as $point) { $posMap = $point['map']; $posX = $point['position_x']; $posY = $point['position_y']; $posZ = $point['position_z']; transformWorldCoordinates($posMap, $posX, $posY, $posZ); if ($mapId == $posMap and $areaY1 >= $posY and $areaY2 <= $posY and $areaX1 >= $posX and $areaX2 <= $posX) { $x = $imageX * ($posX - $areaX1) / ($areaX2 - $areaX1); $y = $imageY * ($posY - $areaY1) / ($areaY2 - $areaY1); echo $render($point, $y, $x); } } } echo "</div>"; echo "</td></tr></tbody>"; echo "</table>"; }
if ($mapId == -1) { // Вывод таблицы со списком инстансов include "inst_list.php"; } else { $dungeon = isDungeon($mapId); // Вывод карты, мобов и ГО инстанса $baseLink = "?instance={$mapId}"; // Если это не ajax подгрузка данных if ($ajaxmode == 0) { //$config['lang'] $desc_file = 'lang/map_' . 'ru' . '/' . $mapId . '.html'; if (file_exists($desc_file)) { include $desc_file; } // Выводим карту если есть дляэтого данные if ($map = getRenderMapData($mapId)) { // Вывод карты делаетсяс помощью java script // Необходимо только записать данные для него в $mapdata echo "<script type=\"text/javascript\" src=\"js/mapper.js\"></script>"; $mapdata = array(); $mapdata['header'] = getMapName($mapId); $mapdata['imageX'] = $map[5]; $mapdata['imageY'] = $map[4]; $mapdata['image'] = "images/map_image/maps/" . $map[6]; $mapdata['defImg'] = "images/map_points/green.gif"; $mapdata['defImgX'] = 2; $mapdata['defImgY'] = 2; $mapdata['selImg'] = "images/map_points/gps_icon.png"; $mapdata['selImgX'] = 7; $mapdata['selImgY'] = 7; // Вспомогательные переменные