| [1451] | 1 | <?
 | 
|---|
 | 2 |     include("config.php");
 | 
|---|
 | 3 |     session_start(); // sessions to generate only one map / person / 20s
 | 
|---|
 | 4 |     if (isset($_SESSION['time']) && time()-$_SESSION['time'] < 20) {
 | 
|---|
 | 5 |         header("Location: maperror.png");
 | 
|---|
 | 6 |         exit(0);
 | 
|---|
 | 7 |     }
 | 
|---|
 | 8 |     $_SESSION['time']=time();
 | 
|---|
 | 9 |     $map = imageCreate(500,500);
 | 
|---|
 | 10 | 
 | 
|---|
 | 11 |     $user = substr($_GET['player'],0,30);
 | 
|---|
 | 12 | 
 | 
|---|
 | 13 |     $stringx=$stringy=-1;
 | 
|---|
 | 14 | 
 | 
|---|
 | 15 |     $file = file($irpg_db);
 | 
|---|
 | 16 |     unset($file[0]);
 | 
|---|
 | 17 | 
 | 
|---|
 | 18 |     foreach ($file as $line) {
 | 
|---|
 | 19 |         list($username,,,,,,,,,,$x,$y) = explode("\t",trim($line));
 | 
|---|
 | 20 |         if ($username == $user) {
 | 
|---|
 | 21 |             $stringx = $x;
 | 
|---|
 | 22 |             $stringy = $y;
 | 
|---|
 | 23 |             break;
 | 
|---|
 | 24 |         }
 | 
|---|
 | 25 |     }
 | 
|---|
 | 26 |     if ($stringx == $stringy && $stringx == -1) {
 | 
|---|
 | 27 |         imageString($map,5,200,245,"NO SUCH USER",imagecolorallocate($map,255,0,0));
 | 
|---|
 | 28 |     }
 | 
|---|
 | 29 |     else {
 | 
|---|
 | 30 |         $width = imageFontWidth(5);
 | 
|---|
 | 31 |         $height = imageFontHeight(5);
 | 
|---|
 | 32 |         if ($x+((strlen($user)+1)*$width) > 500) {
 | 
|---|
 | 33 |             $stringx = $x - ((strlen($user)+1)*$width)-12;
 | 
|---|
 | 34 |         }
 | 
|---|
 | 35 |         if ($y+$height > 500) {
 | 
|---|
 | 36 |             $stringy = $y - ($height/2)-2;
 | 
|---|
 | 37 |         }
 | 
|---|
 | 38 |         $magenta = imageColorAllocate($map,255,0,255);
 | 
|---|
 | 39 |         imageColorTransparent($map,$magenta);
 | 
|---|
 | 40 |         $brown = imagecolorallocate($map, 102, 51, 0);
 | 
|---|
 | 41 |         $parchment = imagecolorallocate($map, 255, 255, 204);
 | 
|---|
 | 42 | 
 | 
|---|
 | 43 |         // Avoid drawing a brown dot on a brown area
 | 
|---|
 | 44 |         $rgb = imageColorAt($map, $x, $y);
 | 
|---|
 | 45 |         if ($rgb > 0) { // $rgb is 0 on our parchment-colored areas
 | 
|---|
 | 46 |             $temp = $brown;
 | 
|---|
 | 47 |             $brown = $parchment;
 | 
|---|
 | 48 |             $parchment = $temp;
 | 
|---|
 | 49 |         }
 | 
|---|
 | 50 |         // YOU ARE HERE
 | 
|---|
 | 51 |         imageFilledEllipse($map, $x, $y, 6, 6, $brown);
 | 
|---|
 | 52 |         // background for text
 | 
|---|
 | 53 |         imageFilledRectangle($map,$stringx+6,$stringy-($height/2),$stringx+6+$width*(strlen($user)+1),$stringy+($height/2),$brown);
 | 
|---|
 | 54 |         // text itself
 | 
|---|
 | 55 |         imageString($map,5,$stringx+7+($width/2),$stringy-($height/2)-1,$user,$parchment);
 | 
|---|
 | 56 |     }
 | 
|---|
 | 57 |     header("Content-type: image/png");
 | 
|---|
 | 58 |     imagePNG($map);
 | 
|---|
 | 59 |     imageDestroy($map);
 | 
|---|
 | 60 | ?>
 | 
|---|