Example #1
0
function umc_read_markers_file($format = 'html', $world = 'empire', $user = false)
{
    XMPP_ERROR_trace(__FUNCTION__, func_get_args());
    /*   [0]=>
          object(stdClass)#1 (5) {
            ["timestamp"]=> string(19) "2011-01-31 14:14:47"
            ["z"]=> float(-319.54668819556)
            ["msg"]=> string(8) "Thegiant"
            ["y"]=> float(50)
            ["x"]=> float(448.69999998808)
        */
    global $UMC_SETTING, $UMC_PATH_MC;
    $file = "{$UMC_PATH_MC}/server/bin/data/markers.json";
    // $UMC_SETTING['markers_file'];
    $text = file_get_contents($file);
    if (!$file) {
        XMPP_ERROR_trigger("Could not read markers file (umc_read_markers_file)");
    }
    $m = json_decode($text);
    // no users
    if (!$m) {
        return '';
    }
    $out_arr = array();
    $map = $UMC_SETTING['world_img_dim'][$world];
    if (count($m) == 0) {
        return '';
    }
    if ($format == 'scrollto') {
        $out = "<div id=\"scroll_to_icons\">\n";
    } else {
        $out = "<div id=\"marker_list\">\n";
    }
    // check if we find the single user from the marker
    $foundplayer = false;
    // var_dump($format);
    foreach ($m as $marker) {
        $z = $marker->z;
        $x = $marker->x;
        $x_text = round($x);
        $z_text = round($z);
        $top = conv_z($marker->z, $map);
        // + $map['img_top_offset'];
        $left = conv_x($marker->x, $map);
        // + $map['img_left_offset'];
        $username = strtolower($marker->msg);
        $playerworld = $marker->world;
        if ($username == 'uncovery') {
            //continue;
        }
        $icon_url = umc_user_get_icon_url($username);
        if ($format == 'identify_user' && $username == $user) {
            $out .= '   <span class="marker" style="z-index:100; top:' . $top . 'px; left:' . $left . "px;\"><img src=\"{$icon_url}\" title=\"{$username}\" alt=\"{$username}\"> <input type=\"submit\" name=\"track_player\" value=\"That's me!\"></span>\n" . "\n";
            $foundplayer = true;
        } else {
            if ($format == 'track_user' && $username == $user) {
                $out .= '   <span class="marker"  id="' . $username . '_marker" style="z-index:100; top:' . $top . 'px; left:' . $left . "px;\"><img src=\"{$icon_url}\" title=\"{$username}\" alt=\"{$username}\"></span>\n" . "\n";
                $foundplayer = true;
            } else {
                if ($format == 'scrollto' && $marker->world == $world) {
                    $out .= "<img src=\"{$icon_url}\" title=\"{$username}\" alt=\"{$username}\" onclick=\"find_user({$left}, {$top}, '{$username}_marker')\">\n";
                } else {
                    if ($format == 'html' && $marker->world == $world) {
                        if ($world == 'hunger') {
                            $out .= '<div class="marker" style="position:relative">' . $username . '</div>' . "\n";
                        } else {
                            $out .= '   <img id="' . $username . '_marker" class="marker" style="z-index:100; top:' . $top . 'px; left:' . $left . "px;\" src=\"{$icon_url}\" title=\"{$username} (x:{$x_text} z:{$z_text})\" alt=\"{$username} (x:{$x_text} z:{$z_text})\">\n";
                        }
                    } else {
                        if ($format == 'json') {
                            $arr[] = array('name' => $username, 'url' => $icon_url, 'top' => $top, 'left' => $left);
                        } else {
                            if ($format == 'all_users') {
                                // list all users for website status
                                $out .= $username . " ";
                            } else {
                                if ($format == 'array') {
                                    $out_arr[$username] = array('name' => $username, 'url' => $icon_url, 'top' => $top, 'left' => $left, 'world' => $playerworld, 'x' => $x_text, 'z' => $z_text);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (($format == 'identify_user' || $format == 'track_user') && $foundplayer == false) {
        // umc_error_notify("Could not find single player $user in Json Data: \n" . var_export($m, true));
    }
    if ($format == 'json') {
        $out = json_encode($arr);
    } else {
        if ($format == 'array') {
            return $out_arr;
        }
    }
    if ($format == 'scrollto') {
        $out .= "</div>\n";
    } else {
        if ($format == 'html') {
            // no idea why this was here. it would duplicate the output.
            // $out .= umc_read_markers_file('scrollto', $world);
        }
        $out .= "</div>\n";
    }
    return $out;
}
Example #2
0
function umc_info_whereami()
{
    global $UMC_USER, $UMC_SETTING;
    $world = $UMC_USER['world'];
    $player = $UMC_USER['username'];
    $x = round($UMC_USER['coords']['x'], 1);
    $y = round($UMC_USER['coords']['y'], 1);
    $z = round($UMC_USER['coords']['z'], 1);
    // map coords
    $map_str = '';
    if (isset($UMC_SETTING['world_img_dim'][$world])) {
        $map = $UMC_SETTING['world_img_dim'][$world];
        $map_x = floor(conv_x($x, $map));
        $map_z = floor(conv_z($z, $map));
        $map_str = "{green}2D Map:{white} x: {$map_x}, z: {$map_z}";
    }
    $lot = umc_lot_get_from_coords($x, $z, $world);
    $lot_members = umc_get_lot_members($lot, false);
    $lot_owners = umc_get_lot_members($lot, true);
    if (!$lot) {
        $lot = 'No lot here';
    }
    // chunk
    $chunk_x = floor($x / 16);
    $chunk_z = floor($z / 16);
    // region
    $region_x = floor($x / 512);
    $region_z = floor($z / 512);
    // Yaw
    $yaw = round($UMC_USER['coords']['yaw'], 1);
    // -22.49969482421875 ?
    $yaw_arr = array(0 => 'South', 45 => 'SouthWest', 90 => 'West', 135 => 'NorthWest', 180 => 'North', 225 => 'NorthEast', 270 => 'East', 315 => 'SouthEast', 360 => 'South');
    $var = 22.5;
    $game_yaw = $yaw;
    if ($yaw < 0) {
        $yaw += 360;
    }
    $compass = false;
    foreach ($yaw_arr as $angle => $direction) {
        if ($yaw > $angle - $var && $yaw < $angle + $var) {
            $compass = $direction;
            break;
        }
    }
    // could not identify direction
    if (!$compass) {
        XMPP_ERROR_trigger("Could not idenfiy compass direction in /whereami");
        $compass = "******";
    }
    // time
    $date_today = umc_datetime();
    $today = $date_today->format('Y-m-d H:i:s');
    $world_str = ucwords($world);
    umc_header("Location for {$player}");
    umc_echo("{green}World:{white} {$world_str} {green}Lot:{white} {$lot} {green}Date:{white} {$today}");
    if ($lot_owners) {
        umc_echo("{green}Lot Owner:{white} " . implode(", ", $lot_owners));
        if ($lot_members) {
            umc_echo("{green}Lot Members:{white} " . implode(", ", $lot_members));
        }
    } else {
        umc_echo("{green}Lot Owner:{white} Unoccupied lot");
    }
    umc_echo("{green}Compass:{white} {$compass} {green}Yaw:{white} {$yaw} {green}Game-Yaw:{white} {$game_yaw}");
    umc_echo("{green}Coordinates:{white} x: {$x},  y: {$y},  z: {$z}");
    umc_echo("{green}Chunk:{white} x: {$chunk_x}, z: {$chunk_z} {green}Region:{white} x: {$region_x}, z: {$region_z} {$map_str}");
    umc_footer();
}