| [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 | ?> | 
|---|