function get_mapAreaData($areaId, $pointsList = 0)
{
    global $gAreaCoord;
    $area = getRenderAreaData($areaId);
    if (empty($area)) {
        echo "{$lang['map_no_found']}&nbsp;{$areaId}<br>";
        return;
    }
    $map = array();
    // Данные карты
    $mapId = $area[0];
    $areaY1 = $area[2];
    $areaY2 = $area[3];
    $areaX1 = $area[4];
    $areaX2 = $area[5];
    $map['header'] = $area[1] == 0 ? getMapName($mapId) : getAreaName($area[1]);
    $map['width'] = 1002;
    $map['height'] = 668;
    $map['coord'] = 0;
    $map['image'] = "images/map_image/areas/" . $area[6];
    if ($pointsList) {
        foreach ($pointsList as &$point) {
            $posMap = $point['map'];
            $posX = $point['position_x'];
            $posY = $point['position_y'];
            if ($area[1] == 0) {
                transformAreaCoordinates($posMap, $posX, $posY);
            }
            if ($mapId == $posMap and $areaY1 >= $posY and $areaY2 <= $posY and $areaX1 >= $posX and $areaX2 <= $posX) {
                $x = ($posX - $areaX1) / ($areaX2 - $areaX1);
                // 0-1 on image
                $y = ($posY - $areaY1) / ($areaY2 - $areaY1);
                // 0-1 on image
                $map['points'][] = getPointData($areaId, $point, $x, $y);
            }
        }
    }
    return $map;
}
<?php

include_once 'include/map_data.php';
$areaId = intval(@$_REQUEST['jsarea']);
$area_data = getRenderAreaData($areaId);
$list = $dDB->select('SELECT
   \'n\' AS `type`,
   `guid`,
   `id`,
   `map`,
   `spawnMask`,
   `phaseMask`,
   `modelid`,
   `equipment_id`,
   `position_x`,
   `position_y`,
   `position_z`,
   `orientation`,
   `spawntimesecs`,
   `spawndist`,
   `currentwaypoint`,
   `curhealth`,
   `curmana`,
   `DeathState`,
   `MovementType`
FROM `creature`
WHERE `map` = ?d AND `position_x` > ?d AND `position_x` < ?d AND `position_y` > ?d AND `position_y` < ?d', $area_data[0], $area_data[5], $area_data[4], $area_data[3], $area_data[2]);
$data = get_mapAreaData($areaId, $list);
echo php2js($data);
Exemple #3
0
<?php

include_once "include/map_data.php";
$text = '';
$ajaxptr = '';
$map = @$_REQUEST['map'] == '' ? -1 : intval(@$_REQUEST['map']);
$area = intval(@$_REQUEST['area']);
$width = intval(@$_REQUEST['width']) ? intval(@$_REQUEST['width']) : 900;
if ($area) {
    $a = getRenderAreaData($area);
    $map = $a[0];
}
//*****************************************************************************
// Create points list
//*****************************************************************************
$pointsList = new mapPoints();
if ($npc_id = intval(@$_REQUEST['npc'])) {
    $ajaxptr .= "&npc={$npc_id}";
    $pointsList->addNpc($npc_id, $map);
    $text = '<center>' . getCreatureName($npc_id) . '</center>';
}
if ($obj_id = intval(@$_REQUEST['obj'])) {
    $ajaxptr .= "&obj={$obj_id}";
    $pointsList->addGo($obj_id, $map);
    $text = '<center>' . getGameobjectName($obj_id) . '</center>';
}
if ($point = @$_REQUEST['point']) {
    $ajaxptr .= '&point=' . $point;
    $p = split(':', $point);
    $pointsList->addPoint(@$p[0], @$p[1], @$p[2], @$p[3]);
    $text = '<br>';
    RenderError($lang['area_not_found']);
} else {
    $baseLink = '?zone=' . $entry;
    if (@$_REQUEST['npc']) {
        $baseLink .= "&npc={$npc_id}";
    }
    if (@$_REQUEST['obj']) {
        $baseLink .= "&obj={$obj_id}";
    }
    if (@$_REQUEST['width']) {
        $baseLink .= "&width={$width}";
    }
    $zentry = $area['zone_id'] ? $area['zone_id'] : $entry;
    $map = $area['map_id'];
    $zone = getArea($zentry);
    $area_data = @getRenderAreaData($gZoneToAreaImage[$zentry]);
    if ($area_data && !isset($_REQUEST['mark'])) {
        if ($ajaxmode == 0) {
            if ($lang['www_zone']) {
                echo "<a href=\"" . sprintf($lang['www_zone'], $entry) . "\" target=\"_blank\"\">" . sprintf($lang['www_zone'], $entry) . "</a><br>";
            }
            if ($zentry != $entry) {
                echo $area['name'] . '<br>';
            }
            echo "<div id=mapper>";
        }
        $pointsList = new mapPoints();
        if ($npc_id) {
            $pointsList->addNpc($npc_id, $map);
        }
        if ($obj_id) {