<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Circle Automapper</title> <meta name="viewport" content="width=device-width; initial-scale=0.44; maximum-scale=1.0"/> <script> var refresh_rate = '600'; var version=1; var load = 0; var classes = [ "Wizard", "Cleric", "Thief", "Warrior", "Social", "Knight", "Ranger", "Berzerker", "Rogue", "Assassin", "Healer", "Crusader", "Sorcerer", "Necromancer", "Enchanter" ]; var sector_types = [ "inside", "city", "field", "forest", "hills", "mountains", "water-swim", "water-noswim", "underwater", "inflight" ]; var road = [ "road", "path", "street", "avenue", "boulevard", "alley", "trail" ] var rnum = 0; function isIn(a, b) { for (var i = 0; i < b.length; i++) if (a.toLowerCase().indexOf(b[i]) != -1) return true; return false } function removeElement(a) { a = document.getElementById(a); a.parentNode.removeChild(a) } function getPos(a) { obj = document.getElementById(a); var curleft = curtop = 0; if (obj.offsetParent) { do { curleft += obj.offsetLeft; curtop += obj.offsetTop; } while (obj = obj.offsetParent); } return [curleft,curtop]; } function id(a) {return document.getElementById(a)}; function getRoomNum(a) { return rooms[a][0].split(':')[1]; } function getRoomName(a) { return rooms[a][0].split(':')[2]; } function getRoomSect(a) { return sector_types[parseInt(rooms[a][0].split(':')[3])]; } function drawPlayer(a) { document.body.innerHTML += '<img class="xp" src="players/'+a+'" onclick="showRoomContents(\'x\');">';} function drawV(x, y) { document.body.innerHTML += '<img class="vl" src="line.gif" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function drawSV(x, y) { document.body.innerHTML += '<img class="svl" src="line.gif" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function drawH(x, y) { document.body.innerHTML += '<img class="hl" src="line.gif" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function drawSU(x, y) { document.body.innerHTML += '<img class="s" src="stairsup.png" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function drawSD(x, y) { document.body.innerHTML += '<img class="s" src="stairsdown.png" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function drawSR(x, y, z) { document.body.innerHTML += '<img class="s" src="smallroom.png" title="' + z + '" style="top: ' + y + 'px; left:' + x + 'px"/>\n'; } function connectRooms() { if (rooms['nnn']) { drawV(357,76); drawV(357,76+32);} if (rooms['nn']) { drawV(357,76+100); drawV(357,176+32);} if (rooms['n']) { drawV(357,76+200); } if (rooms['s']) { drawV(357,411); } if (rooms['ss']) { drawV(357,411+66); drawV(357,411+66+32); } if (rooms['sss']) { drawV(357,411+166); drawV(357,411+166+32); } if (rooms['www']) { drawH (76,357); drawH (76+32,357);} if (rooms['ww']) { drawH (76+100,357); drawH (76+100+32,357); } if (rooms['w']) { drawH (76+200,357); } if (rooms['e']) { drawH(409,357); } if (rooms['ee']) { drawH(409+100,357); drawH(409+100-32,357);} if (rooms['eee']) { drawH(409+200,357); drawH(409+200-32,357);} if (rooms['ne']) { drawH(409,357-100); drawH(409-32,357-100);} if (rooms['nee']) { drawH(409+100,357-100); drawH(409+100-32,357-100);} if (rooms['nne']) { drawH(409,357-200); drawH(409-32,357-200);} if (rooms['se']) { drawH(409,357+100); drawH(409-32,357+100);} if (rooms['see']) { drawH(409+100,357+100); drawH(409+100-32,357+100);} if (rooms['sse']) { drawH(409,357+200); drawH(409-32,357+200);} if (rooms['sw']) { drawH(76+200,357+100); drawH(76+200+32,357+100);} if (rooms['sww']) { drawH(76+100,357+100); drawH(76+100+32,357+100);} if (rooms['ssw']) { drawH(76+200,357+200); drawH(76+200+32,357+200);} if (rooms['nw']) { drawH(76+200,357-100); drawH(76+200+32,357-100);} if (rooms['nww']) { drawH(76+100,357-100); drawH(76+100+32,357-100);} if (rooms['nnw']) { drawH(76+200,357-200); drawH(76+200+32,357-200);} if (rooms['u']) { drawSU(373,341); } if (rooms['d']) { drawSD(373,371); } if (rooms['nu']) { drawSU(372,306-100); } if (rooms['nd']) { drawSD(372,372-100); } if (rooms['nnu']) { drawSU(372,306-200); } if (rooms['nnd']) { drawSD(372,372-200); } if (rooms['su']) { drawSU(372,306+100); } if (rooms['sd']) { drawSD(372,372+100); } if (rooms['ssu']) { drawSU(372,306+200); } if (rooms['ssd']) { drawSD(372,372+200); } if (rooms['eu']) { drawSU(372+100,306); } if (rooms['ed']) { drawSD(372+100,372); } if (rooms['eeu']) { drawSU(372+200,306); } if (rooms['eed']) { drawSD(372+200,372); } if (rooms['wu']) { drawSU(372-100,306); } if (rooms['wd']) { drawSD(372-100,372); } if (rooms['wwu']) { drawSU(372-200,306); } if (rooms['wwd']) { drawSD(372-200,372); } if (rooms['ne'] && rooms['en']) { if (getRoomNum('ne') == getRoomNum('en')) { drawV(357+100,76+200); drawV(357+100,76+200+32); } else { drawSR(357+100-10,76+200+33, getRoomName('en')); drawSV(357+100,76+200+55); if (rooms['nes']) { drawSR(357+100-10,76+200+10, getRoomName('nes')); drawSV(357+100,76+200); } } } if (rooms['een'] && rooms['nee']) { if (getRoomNum('een') == getRoomNum('nee')) { drawV(357+200,76+200); drawV(357+200,76+200+32); } else { drawSR(357+200-10,76+200+32, getRoomName('een')); drawSV(357+200,76+200+55); } } if (rooms['nw'] && rooms['wn']) { if (getRoomNum('nw') == getRoomNum('wn')) { drawV(357-100,76+200); drawV(357-100,76+200+32); } else { drawSR(357-100-10,76+200+33, getRoomName('wn')); drawSV(357-100,76+200+55); if (rooms['nws']) { drawSR(357-100-10,76+200+10, getRoomName('nws')); drawSV(357-100,76+200); } } } if (rooms['nww'] && rooms['wwn']) { if (getRoomNum('nww') == getRoomNum('wwn')) { drawV(357-200,76+200); drawV(357-200,76+200+32); } else { drawSR(357-200-10,76+200+32, getRoomName('wwn')); drawSV(357-200,76+200+55); } } if (rooms['nne'] && rooms['nen']) { if (getRoomNum('nne') == getRoomNum('nen')) { drawV(357+100,76+100); drawV(357+100,76+100+32); } else { drawSR(357+100-10,76+100+32, getRoomName('nen')); drawSV(357+100,76+100+54); } } if (rooms['nnw'] && rooms['nwn']) { if (getRoomNum('nnw') == getRoomNum('nwn')) { drawV(357-100,76+100); drawV(357-100,76+100+32); } else { drawSR(357-100-10,76+100+32, getRoomName('nwn')); drawSV(357-100,76+100+54); } } if (rooms['se'] && rooms['es']) { if (getRoomNum('se') == getRoomNum('es')) { drawV(357+100,76+300); drawV(357+100,76+300+32); } else { drawSR(357+100-10,76+300+10, getRoomName('es')); drawSV(357+100,76+300); if (rooms['sen']) { drawSR(357+100-10,76+300+32, getRoomName('sen')); drawSV(357+100,76+300+55); } } } if (rooms['see'] && rooms['ees']) { if (getRoomNum('see') == getRoomNum('ees')) { drawV(357+200,76+300); drawV(357+200,76+300+32); } else { drawSR(357+200-10,76+300+10, getRoomName('ees')); drawSV(357+200,76+300); } } if (rooms['sw'] && rooms['ws']) { if (getRoomNum('sw') == getRoomNum('ws')) { drawV(357-100,76+300); drawV(357-100,76+300+32); } else { drawSR(357-100-10,76+300+10, getRoomName('ws')); drawSV(357-100,76+300); if (rooms['swn']) { drawSR(357-100-10,76+300+32, getRoomName('swn')); drawSV(357-100,76+300+55); } } } if (rooms['sww'] && rooms['wws']) { if (getRoomNum('sww') == getRoomNum('wws')) { drawV(357-200,76+300); drawV(357-200,76+300+32); } else { drawSR(357-200-10,76+300+10, getRoomName('wws')); drawSV(357-200,76+300); if (rooms['swn']) { drawSR(357-100-10,76+300+32, getRoomName('swn')); drawSV(357-100,76+300+55); } } } if (rooms['ssw'] && rooms['sws']) { if (getRoomNum('ssw') == getRoomNum('sws')) { drawV(357-100,76+400); drawV(357-100,76+400+32); } else { drawSR(357-100-10,76+400+10, getRoomName('sws')); drawSV(357-100,76+400); } } if (rooms['sse'] && rooms['ses']) { if (getRoomNum('sse') == getRoomNum('ses')) { drawV(357+100,76+400); drawV(357+100,76+400+32); } else { drawSR(357+100-10,76+400+10, getRoomName('ses')); drawSV(357+100,76+400); } } } function drawRooms(room) { for (room in rooms) { if (id('r'+room)) { if (rooms[room] == 'closed') id('r'+room).innerHTML = '<img src="closed.png" title="Closed">'; else if (rooms[room] == 'locked') id('r'+room).innerHTML = '<img src="locked.png" title="Locked">'; else if (rooms[room] == 'death') id('r'+room).innerHTML = '<img src="death.png" title="Death Trap">'; else if (getRoomName(room) == 'dark') id('r'+room).innerHTML = '<img src="dark.png" title="Dark">'; else if (isIn(getRoomName(room), road)) id('r'+room).innerHTML = '<img src="road.png" title="' + getRoomName(room) + '" onclick="showRoomContents(\'' + room + '\');">'; else if (room != 'x') id('r'+room).innerHTML = '<img src="' + getRoomSect(room) + '.png" title="' + getRoomName(room) + '" onclick="showRoomContents(\'' + room + '\');">'; } } for (var i=0; i < rooms.x.length; i++) { var line = rooms.x[i].split(':'); if (line[0] == 'xp') { var player = {}; player.name = line[1]; player.cl = classes[parseInt(line[2])]; player.level = parseInt(line[3]); if (parseInt(line[4]) == 0) player.sex = 'Neutral'; else if (parseInt(line[4]) == 1) player.sex = 'Male'; else player.sex = 'Female'; //id('player').innerHTML = player.name + '<br>Level ' + player.level + '<br>' + player.sex + ' ' + player.cl ; id('room').innerHTML = '<strong>' + getRoomName('x') + '</strong>'; if (player.sex == 'Male' || player.sex == 'Neutral') sex = '-he'; else sex = '-she'; if (player.level > 60) player.cl = 'Immortal'; drawPlayer(player.cl.toLowerCase() + sex + '.png'); } } } function showRoomContents(a) { rnum++; var c = "<strong>" + getRoomName(a) + "</strong><br>"; for (var i=1; i < rooms[a].length; i++) { var line = rooms[a][i].split(':'); if (line[0] == 'xp') continue; if (line[1]) c += line[1] + '<br>'; } pos = getPos('r'+a); document.body.innerHTML += '<div class="co" id="co' + rnum + '" style="left:' + pos[0] + '; top:' + pos[1] + '" onclick="removeElement(\'co' + rnum + '\')">' + c + '</div>'; return; } function getXMLHttp() { var xmlHttp; try { xmlHttp = new XMLHttpRequest(); } catch(e) { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { alert("Your browser does not support AJAX!") return false; } } } return xmlHttp; } function HandleResponse(response) { if (response.length) { rnum=0; eval(response); drawMap(); drawRooms(room); connectRooms(); load++; } else if (!load) { document.body.innerHTML = "Tracking <?php echo $_POST['c']?>. Make a move."; load = 1;} setTimeout('getData()', refresh_rate); //alert(document.body.innerHTML); } function getData() { var xmlHttp = getXMLHttp(); xmlHttp.onreadystatechange = function() { if(xmlHttp.readyState == 4) { HandleResponse(xmlHttp.responseText); } } if (!load) { <?php $c = $_POST['c']?$_POST['c']:$_GET['c']; $p = $_POST['p']?$_POST['p']:$_GET['p']; ?> xmlHttp.open("GET", "mapper.php?c=<?php echo $c ?>&p=<?php echo $p ?>&v=" + version, true); } else { xmlHttp.open("GET", "mapper.php", true); } xmlHttp.send(null); } function drawMap() { document.body.innerHTML = "\n<table cellpadding='0' cellspacing='0'>\n" + "<tr><td><div id='emp'></div></td> <td><div id='player'></div></td> <td><div id='emp'></div></td> <td><div id='rnnn'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td> <td><div id='emp'><!--<a href=\'javascript:history.back(-1)\'>back</a>--></div></td>\n" + "</tr><tr><td><div id='emp'></div></td> <td><div id='room'></div></td> <td><div id='rnnw'></div></td> <td><div id='rnn'></div></td> <td><div id='rnne'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td>\n" + "</tr><tr><td><div id='emp'></div></td> <td><div id='rnww'></div></td> <td><div id='rnw'></div></td> <td><div id='rn'></div></td> <td><div id='rne'></div></td> <td><div id='rnee'></div></td> <td><div id='emp'></div></td>\n" + "</tr><tr><td><div id='rwww'></div></td> <td><div id='rww'></div></td> <td><div id='rw'></div></td> <td><div id='emp'></div></td> <td><div id='re'></div></td> <td><div id='ree'></td> <td><div id='reee'></div></td>\n" + "</tr><tr><td><div id='emp'></div></td> <td><div id='rsww'></div></td> <td><div id='rsw'></div></td> <td><div id='rs'></div></td> <td><div id='rse'></div></td> <td><div id='rsee'></div></td> <td><div id='emp'></div></td>\n" + "</tr><tr><td><div id='emp'></div></td> <td><div id='emp'></div></td> <td><div id='rssw'></div></td> <td><div id='rss'></div></td> <td><div id='rsse'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td>\n" + "</tr><tr><td><div id='emp'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td> <td><div id='rsss'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td> <td><div id='emp'></div></td>\n" + "</tr></table>\n"; } </script> <style> body { width: 700px; height: 700px; background: transparent; color: #5e574e; font-family: Helvetica, Tahoma; } #emp, #player, #room, #rwww, #reee, #rsss, #rnnn { min-height: 100px; min-width: 100px; max-height: 100px; max-width: 100px; } #player, #room { font-size: 14px; color: #eeeeee; } .vl { position: absolute; z-index: 1; width: 2px; height: 32px; } .svl { position: absolute; z-index: 1; width: 2px; height: 10px; } .hl { position: absolute; z-index: 1; height: 2px; width: 32px; } .s { position: absolute; z-index: 2; } .xp { position: absolute; z-index: 1; top: 309px; left: 308px; border: 1px solid #5e574e; } .co { position: absolute; z-index: 3; background: #ccc; border: 1px solid #5e574e; width: auto; height: auto; padding: 4px 4px 4px 4px; font-size: 11px; -moz-border-radius: 4px; border-radius: 4px; cursor: default} </style> </head> <body onload="getData(); if(!navigator.userAgent.match(/(iPod|iPhone|iPad)/)) document.body.style.backgroundColor = '#000000'"> </body> </html>