From f04b70c9c12daf0e91c591a732566ab8e5b4752c Mon Sep 17 00:00:00 2001 From: BlueRaja Date: Sat, 8 Jun 2013 14:56:35 -0500 Subject: Prevent curse from crashing the server with the map editor --- includes/maps.php | 23 +++++++++++++---------- pages/mapeditor.php | 2 ++ 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/includes/maps.php b/includes/maps.php index 412068e..5ccb033 100644 --- a/includes/maps.php +++ b/includes/maps.php @@ -347,10 +347,13 @@ function DisplayMapThumbnail($map, $link = false) { //Generates map -function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp = -1, $mapName = '') { - +function GenerateMap($width, $height, $rockchance, $numBlocks = -1, $cp = -1, $tp = -1, $mapName = '') { + //Prevent server crash by limiting the number of rows/cols + $width = ($width <= 50 ? $width : 19); + $height = ($height <= 50 ? $height : 9); + if ($numBlocks == -1) - $numBlocks = Rand(7, (int)($rows * $cols) * .12); + $numBlocks = Rand(7, (int)($width * $height) * .12); //Checkpoints and teleports. if ($cp == -1) $cp = rand(0, 5); @@ -361,11 +364,11 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp = //== Possibility of inf loop here, if the map is too small. do { - $randvalue = rand(1, ($rows * $cols)); + $randvalue = rand(1, ($width * $height)); //As long as it isn't the first, or last column. //if ((($randvalue +1) % ($rows)) > 1) { //As long as it isn't in the first, 2nd, last and 2nd to last column. - if ((($randvalue +2) % ($rows)) > 3) { + if ((($randvalue +2) % ($width)) > 3) { $unique[] = $randvalue; $unique = array_unique($unique); $unique = array_values($unique); @@ -397,15 +400,15 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp = do { $p = -1; //Begin loop to populate grid. - for( $y = 1; $y <= $cols; $y++) { //Number of Columns - for( $x = 0; $x < $rows; $x++) { //Number of Rows + for( $y = 1; $y <= $height; $y++) { //Number of Rows + for( $x = 0; $x < $width; $x++) { //Number of Columns $p++; //Start and Finish squares. if ($x == 0) { //if ($x == 0 AND $y == 1) { //if ($x == 0 AND rand(1,3) == 1) { $grid[$y][$x] = "s"; - } elseif ($x == $rows - 1) { + } elseif ($x == $width - 1) { //} elseif ($x == $rows - 1 AND $y == intval(($cols + 1) * .5) ) { //} elseif ($x == $rows - 1 AND rand(1,3) == 1) { $grid[$y][$x] = "f"; @@ -433,8 +436,8 @@ function GenerateMap($rows, $cols, $rockchance, $numBlocks = -1, $cp = -1, $tp = } //Rows } //Cols //Fill $grid[0] with header information - $grid[0][0] = $rows; - $grid[0][1] = $cols; + $grid[0][0] = $width; + $grid[0][1] = $height; $grid[0][2] = count($checkpoint); $grid[0][3] = $rocks; $grid[0][4] = $numBlocks; diff --git a/pages/mapeditor.php b/pages/mapeditor.php index b86aa14..9e1e57c 100644 --- a/pages/mapeditor.php +++ b/pages/mapeditor.php @@ -180,6 +180,8 @@ function updateName() { } function changeDimensions(width, height) { + width = Math.Min(width, 50); + height = Math.Min(height, 50); testMap.tiles = constructTiles(width, height, testMap); //testMap.tiles[0][3] = Array('s'); -- cgit v1.2.3 From f4d221abc57c35a66e8e2c616f1029f86dec1f8e Mon Sep 17 00:00:00 2001 From: BlueRaja Date: Sat, 8 Jun 2013 15:05:14 -0500 Subject: question marks now work in chat --- pages/chat.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pages/chat.php b/pages/chat.php index 4a14a8d..a285d7d 100644 --- a/pages/chat.php +++ b/pages/chat.php @@ -179,9 +179,10 @@ function chatReplaceAndEncode(chat) { var URLexp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; chat = chat.replace(URLexp, "$1"); - //Replace # in the URL with %23 + //Replace # with %23, & with %26, ? with %3F chat = chat.replace(/ Date: Sat, 8 Jun 2013 15:14:57 -0500 Subject: BUGFIX: Clicking on links in chat is broken --- pages/chat.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/chat.php b/pages/chat.php index a285d7d..f55476f 100644 --- a/pages/chat.php +++ b/pages/chat.php @@ -177,7 +177,7 @@ function chatReplaceAndEncode(chat) { //Surround all URLs with a link var URLexp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig; - chat = chat.replace(URLexp, "$1"); + chat = chat.replace(URLexp, "$1"); //Replace # with %23, & with %26, ? with %3F chat = chat.replace(/