[4283] | 1 | <?php
|
---|
[1451] | 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 | ?>
|
---|