Thread Tools Display Modes
12-09-14, 06:41 AM   #701
nelegalno2
A Flamescale Wyrmkin
Join Date: Dec 2014
Posts: 132
Originally Posted by ircdirk View Post
For me that are Zones:

Nx.Zones = {

I dont know WoW API, in there they may be subzones... But in Carb i see them as Zones and they match Wowhead Zones.
I stated that Outland (466) and Draenor (962) zones are not used in Zones.lua, I never mentioned anything about Ashran, Frostfire Ridge, Frostwall, Gorgrond, Lunarfall, Nagrand, Shadowmoon Valley, Spires of Arak, Stormshield, Talador, Tanaan Jungle or Warspear.

UPDATED list of id's+zone names: zones.txt (might contain errors)

Last edited by nelegalno2 : 12-11-14 at 02:04 AM.
 
12-09-14, 08:18 AM   #702
ircdirk
A Molten Giant
 
ircdirk's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2014
Posts: 823
Originally Posted by ircdirk View Post
Shouldnt Shattrath City be twice in Zones.lua? Like its in Outland and Draenor...
Missunderstanding ... my english is bad apparently

"Like its in Outland and Draenor..." i mean "Like Shattrath City is in Outland and Draenor..."
 
12-09-14, 08:42 AM   #703
Goranth
An Aku'mai Servant
Join Date: Jun 2010
Posts: 31
Hadn't seen this come up yet, not sure if I'm missing something needed from datastore or ace or if those are conflicting somehow, not terribly good with the errors LOL. Progress counter is working tho

Date: 2014-12-09 09:19:59
ID: 2
Error occured in: Global
Count: 1
Message: AceLocale-3.0: Carbonite.Quest: Missing entry for 'Progress: '
Debug:
Carbonite.Quests\NxQuest.lua:8700: UpdateList()
Carbonite.Quests\NxQuest.lua:8481: func()
...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:55:
...\AddOns\DataStore\libs\AceTimer-3.0\AceTimer-3.0.lua:48
Locals:
None
AddOns:
Swatter, v5.21c.5521 (SanctimoniousSwamprat)
WowheadLooter, v60005
Altoholic, v5.4.008
Archy, v1.8.56
AskMrRobot, v19
AucAdvanced, v5.21c.5521 (SanctimoniousSwamprat)
AucFilterBasic, v5.21c.5521 (SanctimoniousSwamprat)
AucFilterOutlier, v5.21c.5521.5459(5.21c/embedded)
AucMatchUndercut, v5.21c.5521.5507(5.21c/embedded)
AucScanData, v5.21c.5521 (SanctimoniousSwamprat)
AucStatHistogram, v5.21c.5521 (SanctimoniousSwamprat)
AucStatiLevel, v5.21c.5521 (SanctimoniousSwamprat)
AucStatPurchased, v5.21c.5521 (SanctimoniousSwamprat)
AucStatSales, v5.21c.5521.5476(5.21c/embedded)
AucStatSimple, v5.21c.5521 (SanctimoniousSwamprat)
AucStatStdDev, v5.21c.5521 (SanctimoniousSwamprat)
AucStatWOWEcon, v5.21c.5521.5323(5.21c/embedded)
AucUtilAHWindowControl, v5.21c.5521.5347(5.21c/embedded)
AucUtilAppraiser, v5.21c.5521.5495(5.21c/embedded)
AucUtilAskPrice, v5.21c.5521.5447(5.21c/embedded)
AucUtilAutoMagic, v5.21c.5521.5443(5.21c/embedded)
AucUtilCompactUI, v5.21c.5521.5496(5.21c/embedded)
AucUtilEasyBuyout, v5.21c.5521.5507(5.21c/embedded)
AucUtilFixAH, v5.21c.5521 (SanctimoniousSwamprat)
AucUtilItemSuggest, v5.21c.5521.5417(5.21c/embedded)
AucUtilPriceLevel, v5.21c.5521.5458(5.21c/embedded)
AucUtilScanButton, v5.21c.5521.5403(5.21c/embedded)
AucUtilScanFinish, v5.21c.5521.5515(5.21c/embedded)
AucUtilScanProgress, v5.21c.5521.4979(5.21c/embedded)
AucUtilScanStart, v5.21c.5521.5347(5.21c/embedded)
AucUtilSearchUI, v5.21c.5521.5515(5.21c/embedded)
AucUtilSimpleAuction, v5.21c.5521.5514(5.21c/embedded)
AucUtilVendMarkup, v5.21c.5521.4828(5.21c/embedded)
Babylonian, v5.1.DEV.332(/embedded)
BagBrother, v6.0.16
Bagnon, v6.0.16
Bartender4, v4.6.5
BeanCounter, v5.21c.5521 (SanctimoniousSwamprat)
BrokerEquipment, v60000.25-Release
BrokerProfessions, v
BrokerMounts, v6.03
Carbonite, v6.0
CarboniteInfo, v1.0
CarboniteNotes, v1.1
CarboniteNotesSample, v1.0
CarboniteQuests, v1.0
CarboniteSocial, v1.0
CarboniteWarehouse, v1.0
CarboniteWeekly, v1.0
Configator, v5.1.DEV.376(/embedded)
DataStore, v6.0.001
DataStoreAchievements, v6.0.001
DataStoreAgenda, v6.0.001
DataStoreAuctions, v6.0.001
DataStoreCharacters, v6.0.001
DataStoreContainers, v6.0.001
DataStoreCrafts, v6.0.001
DataStoreCurrencies, v6.0.001
DataStoreInventory, v6.0.001
DataStoreMails, v6.0.001
DataStorePets, v6.0.001
DataStoreQuests, v6.0.001
DataStoreReputations, v6.0.001
DataStoreSpells, v6.0.001
DataStoreStats, v6.0.001
DataStoreTalents, v6.0.001
DBMCore, v
DBMDefaultSkin, v
DBMSpellTimers, v
DBMStatusBarTimers, v
DebugLib, v5.1.DEV.337(/embedded)
Enchantrix, v5.21c.5521 (SanctimoniousSwamprat)
EnchantrixBarker, v5.21c.5521 (SanctimoniousSwamprat)
Gatherer, v5.0.0
Glamour, v1.4.4
icebox, v0.1.1
IceHUD, v1.9.6-2-g560e067
Informant, v5.21c.5521 (SanctimoniousSwamprat)
LibExtraTip, v5.12.DEV.363(/embedded)
LibSharedMedia30, v3.0-89
MogIt, vv3.3.4
MoveAnything, v15.0.6
Omen, v3.1.9
OmniCC, v6.0.10
Postal, v3.5.1
Recount, vr1283
SlideBar, v5.21c.5521 (SanctimoniousSwamprat)
Stubby, v5.21c.5521 (SanctimoniousSwamprat)
TipHelper, v5.12.DEV.351(/embedded)
Titan, v5.4.1.60000
TitanBag, v5.4.1.60000
TitanClock, v5.4.1.60000
TitanCurrency, v6.0
TitanGold, v5.4.1.60000
TitanLocation, v5.4.1.60000
TitanLogout, v1.3.0
TitanLootType, v5.4.1.60000
TitanPerformance, v5.4.1.60000
TitanRepair, v5.4.1.60000
TitanReputation, v3.8.6
TitanSpec, v4.0
TitanTrashCan, vv4.0.0
TitanVolume, v5.4.1.60000
TitanXP, v5.4.1.60000
Viewporter, v
WIM, v3.6.21
WoWDBProfiler, v
XLoot10, vz35-beta
XLootGroup, vz15-repack-release
BlizRuntimeLib_enUS v6.0.3.60000 <none>
(ck=ea2)
 
12-09-14, 08:44 AM   #704
atl77
A Chromatic Dragonspawn
Join Date: Oct 2014
Posts: 179
New algorithm for quest objective area

@ircdirk, I have created a new algorithm that worked quite well for the test data that I collected. I expand every coordinate with a circle using a bresenham algorithm and reduce the area with a game-of-life-like algorithm (the code in JS, but I can probably easily port it in any language you want):

Code:
function newgrid() {
	var grid = [];
	for (var x = 0; x < 100; x++) {
		grid[x] = [];
		for (var y = 0; y < 100; y++) {
			grid[x][y] = false;
		}
	}
	return grid;
}

function coords2grid(coords, radius, shrink) {

	// initialize grids
	var grid = newgrid();

	// set reasonable default radius
	radius = radius || 5;

	// fill/expand all coords circularly (using a modified Bresenham algorithm)
	for (var c = 0; c < coords.length; c++) {
		var cx = coords[c][0] | 0,
			cy = coords[c][1] | 0,
			rx = radius, 
			ry = 0,
			dx,
			dy,
			ln,
			rerr = radius;
		for (ln = rx; ln > 0 ; ln--) {
			(grid[cx+rx-ln] || [])[cy+ry] = true;
			(grid[cx-rx+ln] || [])[cy+ry] = true;
			(grid[cx-ry] || [])[cy-rx+ln] = true;
			(grid[cx+ry] || [])[cy-rx+ln] = true;
		}
		while (ry < rx) {
			dy = (ry++ << 1) + 1;
			rerr -= dy;
			if (rerr < 0) {
				dx = 1 - (rx-- << 1)
				rerr -= dx;
			}
			for (ln = rx; ln > 0 ; ln--) {
				(grid[cx+rx-ln] || [])[cy+ry] = true;
				(grid[cx-rx+ln] || [])[cy+ry] = true;
				(grid[cx-ry] || [])[cy-rx+ln] = true;
				(grid[cx+ry] || [])[cy-rx+ln] = true;
			}
		}
	}

	shrink = shrink || radius - 1;
	// reduce the shape based on a simple "game of life"-like algorithm in multiple steps
	var s, grid2;
	for (var s = shrink; s >= 0; s--) {
		grid2 = newgrid();
		for (x = 1; x < 99; x++) {
			for (y = 1; y < 99; y++) {
				grid2[x][y] = grid[x][y] && (grid[x+1][y-1] + grid[x+1][y] + grid[x+1][y+1] + grid[x][y-1] + grid[x][y+1] + grid[x-1][y-1] + grid[x-1][y] + grid[x-1][y+1]) > 4
			}
		}
		grid = grid2;
	}

	return grid;
}

function grid2boxes(grid) {
	var output = [], currentbox;
	for (var y = 0; y < 100; y++) {
		for (var x = 0; x < 100; x++) {
			if (currentbox) {
				if (grid[x][y]) {
					currentbox.width++;
				} else {
					output.push(currentbox);
					currentbox = false;
				}
			} else {
				if (grid[x][y]) {
					currentbox = {
						x: x,
						y: y,
						width: 1,
						height: 1
					}
				}
			}
		}
	}
	return output;
}

function showgrid(grid) {
	var output = '';
	for (var y = 0; y < 100; y++) {
		for (var x = 0; x < 100; x++) {
			output += grid[x][y] ? 'X' : ' ';
		}
		output += '\n';
	}
	return output;
}

// Usage: grid2boxes(coords2grid(coords[, radius][, shrink]))
// will return an array of box definitions (x, y, height, width)
Maybe you'll need to play a bit around with radius / shrink to get better results. Maybe I'll have to add another part to the algorithm to determine what radius / shrink values will yield optimal results.

Last edited by atl77 : 12-09-14 at 08:51 AM.
 
12-09-14, 08:50 AM   #705
atl77
A Chromatic Dragonspawn
Join Date: Oct 2014
Posts: 179
Originally Posted by Goranth View Post
Message: AceLocale-3.0: Carbonite.Quest: Missing entry for 'Progress: '
I guess that's my fault, I probably have forgotten a language in my last patch. What language do you use Carbonite with?
 
12-09-14, 08:55 AM   #706
ircdirk
A Molten Giant
 
ircdirk's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2014
Posts: 823
Originally Posted by atl77 View Post
@ircdirk, I have created a new algorithm that worked quite well for the test data that I collected. I expand every coordinate with a circle using a bresenham algorithm and reduce the area with a game-of-life-like algorithm (the code in JS, but I can probably easily port it in any language you want):

Code:
function newgrid() {
	var grid = [];
	for (var x = 0; x < 100; x++) {
		grid[x] = [];
		for (var y = 0; y < 100; y++) {
			grid[x][y] = false;
		}
	}
	return grid;
}

function coords2grid(coords, radius, shrink) {

	// initialize grids
	var grid = newgrid();

	// set reasonable default radius
	radius = radius || 5;

	// fill/expand all coords circularly (with an adapted Bresenham)
	for (var c = 0; c < coords.length; c++) {
		var cx = coords[c][0] | 0,
			cy = coords[c][1] | 0,
			rx = radius, 
			ry = 0,
			dx,
			dy,
			ln,
			rerr = radius;
		for (ln = rx; ln > 0 ; ln--) {
			(grid[cx+rx-ln] || [])[cy+ry] = true;
			(grid[cx-rx+ln] || [])[cy+ry] = true;
			(grid[cx-ry] || [])[cy-rx+ln] = true;
			(grid[cx+ry] || [])[cy-rx+ln] = true;
		}
		while (ry < rx) {
			dy = (ry++ << 1) + 1;
			rerr -= dy;
			if (rerr < 0) {
				dx = 1 - (rx-- << 1)
				rerr -= dx;
			}
			for (ln = rx; ln > 0 ; ln--) {
				(grid[cx+rx-ln] || [])[cy+ry] = true;
				(grid[cx-rx+ln] || [])[cy+ry] = true;
				(grid[cx-ry] || [])[cy-rx+ln] = true;
				(grid[cx+ry] || [])[cy-rx+ln] = true;
			}
		}
	}

	shrink = shrink || radius - 1;
	// reduce the shape based on a simple "game of life"-like algorithm in multiple steps
	var s, grid2;
	for (var s = shrink; s >= 0; s--) {
		grid2 = newgrid();
		for (x = 1; x < 99; x++) {
			for (y = 1; y < 99; y++) {
				grid2[x][y] = grid[x][y] && (grid[x+1][y-1] + grid[x+1][y] + grid[x+1][y+1] + grid[x][y-1] + grid[x][y+1] + grid[x-1][y-1] + grid[x-1][y] + grid[x-1][y+1]) > 4
			}
		}
		grid = grid2;
	}

	return grid;
}

function grid2boxes(grid) {
	var output = [], currentbox;
	for (var y = 0; y < 100; y++) {
		for (var x = 0; x < 100; x++) {
			if (currentbox) {
				if (grid[x][y]) {
					currentbox.width++;
				} else {
					output.push(currentbox);
					currentbox = false;
				}
			} else {
				if (grid[x][y]) {
					currentbox = {
						x: x,
						y: y,
						width: 1,
						height: 1
					}
				}
			}
		}
	}
	return output;
}

function showgrid(grid) {
	var output = '';
	for (var y = 0; y < 100; y++) {
		for (var x = 0; x < 100; x++) {
			output += grid[x][y] ? 'X' : ' ';
		}
		output += '\n';
	}
	return output;
}

// Usage: grid2boxes(coords2grid(coords[, radius][, shrink]))
// will return an array of box definitions (x, y, height, width)
Maybe you'll need to play a bit around with radius / shrink to get better results. Maybe I'll have to add another part to the algorithm to determine what radius / shrink values will yield optimal results.
WOW thats great... Can u convert it to PHP? I would do it my self but if u have time it will be very helpfull.

coords2grid should accept PHP array of cords like:

array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 33.0, 'y' => 33.0), ... )

My scrapper works and in this moment its collecting quests data for lvl 86-90... after this i will generate QuestX-X.lua file and test it.
 
12-09-14, 08:57 AM   #707
nelegalno2
A Flamescale Wyrmkin
Join Date: Dec 2014
Posts: 132
Originally Posted by atl77 View Post
I guess that's my fault, I probably have forgotten a language in my last patch. What language do you use Carbonite with?
It's probably the error in Carbonite/Locales/zhTW/Options.lua, there is a fix for it in may pull request.

P.S. The easiest way to get MapID is to go there and enter "/dump GetCurrentMapAreaID()".

Last edited by nelegalno2 : 12-09-14 at 09:01 AM.
 
12-09-14, 09:00 AM   #708
atl77
A Chromatic Dragonspawn
Join Date: Oct 2014
Posts: 179
Originally Posted by nelegalno2 View Post
It's probably the error in Carbonite/Locales/zhTW/Options.lua, there is a fix for it in may pull request.
No, I added the language key L['Progress: '] to localize it while I introduced the ability to display either a text or a simple yet imprecise progress bar.
 
12-09-14, 09:53 AM   #709
atl77
A Chromatic Dragonspawn
Join Date: Oct 2014
Posts: 179
Originally Posted by ircdirk View Post
WOW thats great... Can u convert it to PHP? I would do it my self but if u have time it will be very helpfull.

coords2grid should accept PHP array of cords like:

array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 33.0, 'y' => 33.0), ... )

My scrapper works and in this moment its collecting quests data for lvl 86-90... after this i will generate QuestX-X.lua file and test it.
Sure thing!

Code:
<?php
function newgrid() {
	$grid = array();
	for ($x = 0; $x < 100; $x++) {
		$grid[$x] = array();
		for ($y = 0; $y < 100; $y++) {
			$grid[$x][$y] = 0;
		}
	}
	return $grid;
}

function coords2grid($coords, $radius = 5, $shrink) {
	$grid = newgrid();

	for ($c = 0; $c < count($coords); $c++) {
		$cx = round($coords[$c]['x']);
		$cy = round($coords[$c]['y']);
		$rx = $radius;
		$ry = 0;
		$rerr = $radius;

		for ($ln = $rx; $ln > 0; $ln--) {
			if ($cx+$rx-$ln >= 0 and $cx+$rx-$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx+$rx-$ln][$cy+$ry] = 1; }
			if ($cx-$rx+$ln >= 0 and $cx-$rx+$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx-$rx+$ln][$cy+$ry] = 1; }
			if ($cx-$ry >= 0 and $cx-$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx-$ry][$cy-$rx+$ln] = 1; }
			if ($cx+$ry >= 0 and $cx+$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx+$ry][$cy-$rx+$ln] = 1; }
		}

		while ($ry < $rx) {
			$dy = $ry * 2 + 1;
			$ry++;
			$rerr = $rerr - $dy;
			if ($rerr < 0) {
				$dx = 1 - $rx * 2;
				$rx--;
				$rerr = $rerr - $dx;
			}
			for ($ln = $rx; $ln > 0; $ln--) {
				if ($cx+$rx-$ln >= 0 and $cx+$rx-$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx+$rx-$ln][$cy+$ry] = 1; }
				if ($cx-$rx+$ln >= 0 and $cx-$rx+$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx-$rx+$ln][$cy+$ry] = 1; }
				if ($cx-$ry >= 0 and $cx-$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx-$ry][$cy-$rx+$ln] = 1; }
				if ($cx+$ry >= 0 and $cx+$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx+$ry][$cy-$rx+$ln] = 1; }
			}
		}
	}

	if (!isset($shrink)) { $shrink = $radius - 1; }
	for ($s = $shrink; $s >= 0; $s--) {
		$grid2 = newgrid();
		for ($x = 1; $x < 99; $x++) {
			for ($y = 1; $y < 99; $y++) {
				$grid2[$x][$y] = ($grid[$x][$y] and ($grid[$x+1][$y-1] + $grid[$x+1][$y] + $grid[$x+1][$y+1] + $grid[$x][$y-1] + $grid[$x][$y+1] + $grid[$x-1][$y-1] + $grid[$x-1][$y] + $grid[$x-1][$y+1]) > 4) ? 1 : 0;
			}
		}
		$grid = $grid2;
	}

	return $grid;
}

function grid2boxes($grid) {
	$boxes = array();
	$currentbox = false;
	for ($y = 0; $y < 100; $y++) {
		for ($x = 0; $x < 100; $x++) {
			if ($currentbox != false) {
				if ($grid[$x][$y] == 1) {
					$currentbox['width']++;
				} else {
					array_push($boxes, $currentbox);
					$currentbox = false;
				}
			} else {
				if ($grid[$x][$y] == 1) {
					$currentbox = array("x" => $x, "y" => $y, "width" => 1, "height" => 1);
				}
			}
		}		
	}
	return $boxes;
}

function showgrid($grid) {
	$output = "";
	for ($y = 0; $y < 100; $y++) {
		for ($x = 0; $x < 100; $x++) {
			$output .= $grid[$x][$y] == 0 ? ' ' : 'X';
		}
		$output .= "\n";
	}
	return $output;
}

// var_dump(grid2boxes(coords2grid(array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 35.0, 'y' => 36.0)))));
print showgrid(coords2grid(array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 35.0, 'y' => 36.0))));
?>
 
12-09-14, 10:53 AM   #710
ircdirk
A Molten Giant
 
ircdirk's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2014
Posts: 823
Originally Posted by atl77 View Post
Sure thing!

Code:
<?php
function newgrid() {
	$grid = array();
	for ($x = 0; $x < 100; $x++) {
		$grid[$x] = array();
		for ($y = 0; $y < 100; $y++) {
			$grid[$x][$y] = 0;
		}
	}
	return $grid;
}

function coords2grid($coords, $radius = 5, $shrink) {
	$grid = newgrid();

	for ($c = 0; $c < count($coords); $c++) {
		$cx = round($coords[$c]['x']);
		$cy = round($coords[$c]['y']);
		$rx = $radius;
		$ry = 0;
		$rerr = $radius;

		for ($ln = $rx; $ln > 0; $ln--) {
			if ($cx+$rx-$ln >= 0 and $cx+$rx-$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx+$rx-$ln][$cy+$ry] = 1; }
			if ($cx-$rx+$ln >= 0 and $cx-$rx+$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx-$rx+$ln][$cy+$ry] = 1; }
			if ($cx-$ry >= 0 and $cx-$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx-$ry][$cy-$rx+$ln] = 1; }
			if ($cx+$ry >= 0 and $cx+$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx+$ry][$cy-$rx+$ln] = 1; }
		}

		while ($ry < $rx) {
			$dy = $ry * 2 + 1;
			$ry++;
			$rerr = $rerr - $dy;
			if ($rerr < 0) {
				$dx = 1 - $rx * 2;
				$rx--;
				$rerr = $rerr - $dx;
			}
			for ($ln = $rx; $ln > 0; $ln--) {
				if ($cx+$rx-$ln >= 0 and $cx+$rx-$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx+$rx-$ln][$cy+$ry] = 1; }
				if ($cx-$rx+$ln >= 0 and $cx-$rx+$ln < 100 and $cy+$ry >= 0 and $cy+$ry < 100) { $grid[$cx-$rx+$ln][$cy+$ry] = 1; }
				if ($cx-$ry >= 0 and $cx-$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx-$ry][$cy-$rx+$ln] = 1; }
				if ($cx+$ry >= 0 and $cx+$ry < 100 and $cy-$rx+$ln >= 0 and $cy-$rx+$ln < 100) { $grid[$cx+$ry][$cy-$rx+$ln] = 1; }
			}
		}
	}

	if (!isset($shrink)) { $shrink = $radius - 1; }
	for ($s = $shrink; $s >= 0; $s--) {
		$grid2 = newgrid();
		for ($x = 1; $x < 99; $x++) {
			for ($y = 1; $y < 99; $y++) {
				$grid2[$x][$y] = ($grid[$x][$y] and ($grid[$x+1][$y-1] + $grid[$x+1][$y] + $grid[$x+1][$y+1] + $grid[$x][$y-1] + $grid[$x][$y+1] + $grid[$x-1][$y-1] + $grid[$x-1][$y] + $grid[$x-1][$y+1]) > 4) ? 1 : 0;
			}
		}
		$grid = $grid2;
	}

	return $grid;
}

function grid2boxes($grid) {
	$boxes = array();
	$currentbox = false;
	for ($y = 0; $y < 100; $y++) {
		for ($x = 0; $x < 100; $x++) {
			if ($currentbox != false) {
				if ($grid[$x][$y] == 1) {
					$currentbox['width']++;
				} else {
					array_push($boxes, $currentbox);
					$currentbox = false;
				}
			} else {
				if ($grid[$x][$y] == 1) {
					$currentbox = array("x" => $x, "y" => $y, "width" => 1, "height" => 1);
				}
			}
		}		
	}
	return $boxes;
}

function showgrid($grid) {
	$output = "";
	for ($y = 0; $y < 100; $y++) {
		for ($x = 0; $x < 100; $x++) {
			$output .= $grid[$x][$y] == 0 ? ' ' : 'X';
		}
		$output .= "\n";
	}
	return $output;
}

// var_dump(grid2boxes(coords2grid(array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 35.0, 'y' => 36.0)))));
print showgrid(coords2grid(array(0 => array('x' => 33.0, 'y' => 33.0), 1 => array('x' => 35.0, 'y' => 36.0))));
?>
GREAT!!! Ill implement this to my code today.
 
12-09-14, 11:19 AM   #711
yourkilla
A Fallenroot Satyr
 
yourkilla's Avatar
Join Date: Mar 2012
Posts: 20
Thank you SOOOO Very much everyone of you!!!!

Everything looks to be working great for me so far!
Only thing I've found as of yesterday is that the Deepwind Gorge map quit working on me again lol I have reinstalled the Git version this morning and will be trying again! As far as i can tell though everything else that I personally use is working Awesomely!

Is there any 'guestimate' as to when an actual alpha/beta will release at this point? Either way stay awesome programmers and keep up the insane work you have all undertaken!!!
__________________
I, dont have a problem with what you're saying, But, I'm pretty sure my Doom Guard will have something to say about it.
 
12-09-14, 02:19 PM   #712
atl77
A Chromatic Dragonspawn
Join Date: Oct 2014
Posts: 179
Originally Posted by yourkilla View Post
Is there any 'guestimate' as to when an actual alpha/beta will release at this point?
I'd say we'll maybe see an alpha version this year and a beta next year. This is only guesswork. It could be faster, but it'll probably be slower than predicted. So here's an appeal to all you users: please try not to distract the developers with things they already know (i.e. repeating known bugs or submitting incomplete informations about issues) and thus waste valuable time.
 
12-09-14, 02:20 PM   #713
Rythal
Featured Artist
Featured
Join Date: Aug 2012
Posts: 1,458
Shattrath was a main zone (city) in Outland with it's own zoneID (areaID), that's why it was there. In Draenor it is a subzone and doesn't have an ID.

The continents are not in Zone.lua which is why you don't see Outland or Draenor as actual lines.
 
12-09-14, 04:29 PM   #714
Lumindeas
A Murloc Raider
 
Lumindeas's Avatar
Join Date: Dec 2006
Posts: 9
For starters, I can't possibly thank Rythal and all the contributors enough for picking up the torch on Carbonite. You guys are awesome!

I have a question about Carbonite retracking quests upon porting/hearthing into a different zone. IE - Leave garrison on flight with pertinent quests tracked. Forgot something. Hearth back and get the job completed audio and all quests in log rechecked for tracking.

I saw this mentioned a few pages back and have been following the thread since the beginning. Is this something fixable in the options panel on our end? If so, I haven't found that particular option to fix it . Or, is it in the coding? This particular quirk doesn't throw me an error for it so I have nothing else to refer to on how or why it happens other than my example above. I do get this error (see below), but that appears to be on NPC_Scan Overlay.

Again, thank you all!

Lua Code:
  1. Carbonite\NxMap.lua:9062: Usage: GetMapNameByID(mapID)
  2. [C]: in function `GetMapNameByID'
  3. Carbonite\NxMap.lua:9062: in function `GetWorldZoneInfo'
  4. Carbonite\NxMap.lua:7212: in function `ClipZoneFrm'
  5. _NPCScan.Overlay\Modules\Carbonite-6.0.lua:250: in function <_NPCScan.Overlay\Modules\Carbonite.lua:236>
  6. _NPCScan.Overlay\Modules\Carbonite-6.0.lua:289: in function <_NPCScan.Overlay\Modules\Carbonite.lua:280>
  7. [C]: ?
 
12-09-14, 04:38 PM   #715
KMJX
A Deviate Faerie Dragon
Join Date: Apr 2014
Posts: 11
Originally Posted by Lumindeas View Post
For starters, I can't possibly thank Rythal and all the contributors enough for picking up the torch on Carbonite. You guys are awesome!

I have a question about Carbonite retracking quests upon porting/hearthing into a different zone. IE - Leave garrison on flight with pertinent quests tracked. Forgot something. Hearth back and get the job completed audio and all quests in log rechecked for tracking.

I saw this mentioned a few pages back and have been following the thread since the beginning. Is this something fixable in the options panel on our end? If so, I haven't found that particular option to fix it . Or, is it in the coding? This particular quirk doesn't throw me an error for it so I have nothing else to refer to on how or why it happens other than my example above. I do get this error (see below), but that appears to be on NPC_Scan Overlay.

Again, thank you all!
The first issue appears not to be carbonite specific, so there is currently no fix for it.
The second issue is NPCScan_Overlay still using old carbonite map data, and isn't going to get fixed until an official update of carbonite goes live.
 
12-09-14, 06:05 PM   #716
Lumindeas
A Murloc Raider
 
Lumindeas's Avatar
Join Date: Dec 2006
Posts: 9
Thanks KMJX
 
12-09-14, 06:42 PM   #717
elals29
A Wyrmkin Dreamwalker
 
elals29's Avatar
Join Date: Mar 2008
Posts: 57
Is there even a download for 6.0? It's been a long time since I've used it and I went on the website and I can't find anything but for 5.4???
 
12-09-14, 08:31 PM   #718
Goranth
An Aku'mai Servant
Join Date: Jun 2010
Posts: 31
Originally Posted by atl77 View Post
I guess that's my fault, I probably have forgotten a language in my last patch. What language do you use Carbonite with?
English, US
 
12-09-14, 08:32 PM   #719
Goranth
An Aku'mai Servant
Join Date: Jun 2010
Posts: 31
Highmaul Entry, got this

Date: 2014-12-09 21:31:41
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Carbonite\NxMap.lua line 6422:
attempt to perform arithmetic on a nil value
Debug:
Carbonite\NxMap.lua:6422: UpdateOverlay()
Carbonite\NxMap.lua:6253: UpdateZones()
Carbonite\NxMap.lua:4501: Update()
Carbonite\NxMap.lua:3749:
Carbonite\NxMap.lua:3674
Locals:
self = <table> {
MiniBlks = 6
IconScale = 3
MenuIShowWorld = <table> {
}
GIconMenuITogInst = <table> {
}
TargetNextUniqueId = 1
MMScalesC = <table> {
}
LOpts = <table> {
}
TextFStrs = <table> {
}
PlyrLastDir = 129.37399082513
Scrolling = false
Menu = <table> {
}
EffScale = 0.64999997615814
Zone = 0
WorldAlpha = -1.#IND
StartupShown = true
ScaleDraw = 2.366865325444
BackgndAlphaFade = 1
MoveLastX = -2395.8795357827
PlyrDir = 129.37399082513
PlyrSpeedCalcTime = 370688.04
MapPosYDraw = -4473.9195323938
PlyrSpeed = 0
MapScale = 0.23621410433573
CurMapBG = false
PadX = 0
BGIncNum = 0
ViewSavedData = <table> {
}
MapW = 301.07690429688
MMGathererUpdateDelay = 1
MMAddonFrms = <table> {
}
LClickTime = 0
MouseEnabled = true
ButAutoScaleOn = <table> {
}
MapH = 250.30770874023
MMScales = <table> {
}
MMArrowName = ""
MapPosX = -2395.8795357827
BackgndAlphaTarget = 1
MapsDrawnOrder = <table> {
}
BGGrowBars = true
ArrowScroll = 0.09
H = 141
Tick = 43003
IconNIFrms = <table> {
}
LastDungeonLevel = 0
BaseScale = 1
ToolBar = <table> {
}
MoveLastY = -4473.9195323938
MenuIShowHerb = <table> {
}
DotPartyScale = 1
PlyrX = -2395.8795357827
QuestAlpha = 0.3
CurWorldUpdateOverlayNum = 1
MMFScale = 1.5779102169627
Scale = 2.366865325444
Targets = <table> {
}
BackgndAlpha = 1
ArrowPulse = 1
MenuIShowMine = <table> {
}
MapId = -1
UpdateMapID = -1
MMOwn = true
MMModels = <table> {
}
Size1 = 1.153846196169
ShowUnexplored = false
Arch = <unnamed> {
}
PIconMenu = <table> {
}
LocTipFrm = NxMapTip {
}
CurOverlaysTexFolder = "frostfireridge"
IconFrms = <table> {
}
StepTime = 0
PlyrSpeedX = -2395.8795357827
PlyrFrm = <unnamed> {
}
WorldHotspotTipStr = "Draenor, Frostfire Ridge (90-92)
"
DebugAdjustScale = 0.1
ScaleDrawW = 0.42249974650011
IconStaticFrms = <table> {
}
UpdateTrackingDelay = 0
IconNavScale = 1
MiniFrms = <table> {
}
InCombat = false
Win = <table> {
}
InstanceId = false
RealScale = 2.366865325444
Data = <table> {
}
TrackDir = false
TrackETA = false
MMMaskName = "textures\MinimapMask"
BGIconMenu = <table> {
}
CurOverlays = <table> {
}
MMZoomChanged = false
MMScale = 2.366865325444
LocTipFStrs = <table> {
}
TrackPlyrs = <table> {
}
MMZoomType = 1
Indoors = false
TextScFrm = <unnamed> {
}
MapPosY = -4473.9195323938
GIconMenuIFindNote = <table> {
}
TextFrm = <unnamed> {
}
QuestWin = <unnamed> {
}
WorldHotspotsCity = <table> {
}
RMapId = -1
PlyrY = -4473.9195323938
Cont = 90
Tracking = <table> {
}
Guide = <table> {
}
WorldHotspots = <table> {
}
Level = 26
PlyrRZY = 59.008198976517
W = 150
CurWorldUpdateMapId = 941
MapsDrawnFade = <table> {
}
DotRaidScale = 1
ContFrms = <table> {
}
PlyrSpeedY = -4473.9195323938
TileFrms = <table> {
}
ScaleW = 0.42249974650011
UpdateTargetDelay = 0
CurOpts = <table> {
}
MenuIPlyrFollow = <table> {
}
TitleH = 0
MMAlphaDelay = 0
MMOwnedFrms = <table> {
}
MMChkDelay = 4
ArchAlpha = 0.3
MapIndex = 1
MapPosXDraw = -2395.8795357827
PlyrRZX = 49.502211809158
KillShow = false
MenuIMonitorZone = <table> {
}
NeedWorldUpdate = true
TransMenu = <table> {
}
GIconMenu = <table> {
}
Frm = <unnamed> {
}
MoveDir = 180
DotZoneScale = 1
BackgndAlphaFull = 1
DotPalScale = 1
}
mapId = -1
bright = 1
noUnexplored = nil
wzone = <table> {
1 = 1
2 = 0
3 = 0
}
txFolder = "frostfireridge"
overlays = <table> {
nogarrison = "336,327,267,257"
bloodmaulstronghold = "311,4,258,217"
grimfrosthill = "597,210,178,203"
worgol = "72,292,317,233"
hordegarrison = "336,327,267,257"
ironwaystation = "641,304,199,335"
thecracklingplains = "439,137,266,293"
magnarok = "609,33,213,278"
grombolash = "483,33,217,239"
bonesofagurak = "729,319,273,349"
daggermawravine = "284,91,255,191"
stonefangoutpost = "306,281,251,191"
frostwinddunes = "121,0,274,214"
bladespirefortress = "38,117,356,303"
ironsiegeworks = "673,156,329,294"
gromgar = "505,323,282,341"
theboneslag = "290,192,256,210"
}
unex = true
bW = nil
bH = nil
txIndex = nil
txPixelW = nil
txFil
AddOns:
Swatter, v5.21c.5521 (SanctimoniousSwamprat)
WowheadLooter, v60005
Altoholic, v5.4.008
Archy, v1.8.56
AskMrRobot, v19
AucAdvanced, v5.21c.5521 (SanctimoniousSwamprat)
AucFilterBasic, v5.21c.5521 (SanctimoniousSwamprat)
AucFilterOutlier, v5.21c.5521.5459(5.21c/embedded)
AucMatchUndercut, v5.21c.5521.5507(5.21c/embedded)
AucScanData, v5.21c.5521 (SanctimoniousSwamprat)
AucStatHistogram, v5.21c.5521 (SanctimoniousSwamprat)
AucStatiLevel, v5.21c.5521 (SanctimoniousSwamprat)
AucStatPurchased, v5.21c.5521 (SanctimoniousSwamprat)
AucStatSales, v5.21c.5521.5476(5.21c/embedded)
AucStatSimple, v5.21c.5521 (SanctimoniousSwamprat)
AucStatStdDev, v5.21c.5521 (SanctimoniousSwamprat)
AucStatWOWEcon, v5.21c.5521.5323(5.21c/embedded)
AucUtilAHWindowControl, v5.21c.5521.5347(5.21c/embedded)
AucUtilAppraiser, v5.21c.5521.5495(5.21c/embedded)
AucUtilAskPrice, v5.21c.5521.5447(5.21c/embedded)
AucUtilAutoMagic, v5.21c.5521.5443(5.21c/embedded)
AucUtilCompactUI, v5.21c.5521.5496(5.21c/embedded)
AucUtilEasyBuyout, v5.21c.5521.5507(5.21c/embedded)
AucUtilFixAH, v5.21c.5521 (SanctimoniousSwamprat)
AucUtilItemSuggest, v5.21c.5521.5417(5.21c/embedded)
AucUtilPriceLevel, v5.21c.5521.5458(5.21c/embedded)
AucUtilScanButton, v5.21c.5521.5403(5.21c/embedded)
AucUtilScanFinish, v5.21c.5521.5515(5.21c/embedded)
AucUtilScanProgress, v5.21c.5521.4979(5.21c/embedded)
AucUtilScanStart, v5.21c.5521.5347(5.21c/embedded)
AucUtilSearchUI, v5.21c.5521.5515(5.21c/embedded)
AucUtilSimpleAuction, v5.21c.5521.5514(5.21c/embedded)
AucUtilVendMarkup, v5.21c.5521.4828(5.21c/embedded)
Babylonian, v5.1.DEV.332(/embedded)
BagBrother, v6.0.16
Bagnon, v6.0.16
Bartender4, v4.6.5
BeanCounter, v5.21c.5521 (SanctimoniousSwamprat)
BrokerEquipment, v60000.25-Release
BrokerProfessions, v
BrokerMounts, v6.03
Carbonite, v6.0
CarboniteInfo, v1.0
CarboniteNotes, v1.1
CarboniteNotesSample, v1.0
CarboniteQuests, v1.0
CarboniteSocial, v1.0
CarboniteWarehouse, v1.0
CarboniteWeekly, v1.0
Configator, v5.1.DEV.376(/embedded)
DataStore, v6.0.001
DataStoreAchievements, v6.0.001
DataStoreAgenda, v6.0.001
DataStoreAuctions, v6.0.001
DataStoreCharacters, v6.0.001
DataStoreContainers, v6.0.001
DataStoreCrafts, v6.0.001
DataStoreCurrencies, v6.0.001
DataStoreInventory, v6.0.001
DataStoreMails, v6.0.001
DataStorePets, v6.0.001
DataStoreQuests, v6.0.001
DataStoreReputations, v6.0.001
DataStoreSpells, v6.0.001
DataStoreStats, v6.0.001
DataStoreTalents, v6.0.001
DBMCore, v
DBMDefaultSkin, v
DBMHighmaul, v
DBMSpellTimers, v
DBMStatusBarTimers, v
DebugLib, v5.1.DEV.337(/embedded)
Enchantrix, v5.21c.5521 (SanctimoniousSwamprat)
EnchantrixBarker, v5.21c.5521 (SanctimoniousSwamprat)
Gatherer, v5.0.0
Glamour, v1.4.4
icebox, v0.1.1
IceHUD, v1.9.6-2-g560e067
Informant, v5.21c.5521 (SanctimoniousSwamprat)
LibExtraTip, v5.12.DEV.363(/embedded)
LibSharedMedia30, v3.0-89
MogIt, vv3.3.4
MoveAnything, v15.0.6
Omen, v3.1.9
OmniCC, v6.0.10
Postal, v3.5.1
Recount, vr1283
SlideBar, v5.21c.5521 (SanctimoniousSwamprat)
Stubby, v5.21c.5521 (SanctimoniousSwamprat)
TipHelper, v5.12.DEV.351(/embedded)
Titan, v5.4.1.60000
TitanBag, v5.4.1.60000
TitanClock, v5.4.1.60000
TitanCurrency, v6.0
TitanGold, v5.4.1.60000
TitanLocation, v5.4.1.60000
TitanLogout, v1.3.0
TitanLootType, v5.4.1.60000
TitanPerformance, v5.4.1.60000
TitanRepair, v5.4.1.60000
TitanReputation, v3.8.6
TitanSpec, v4.0
TitanTrashCan, vv4.0.0
TitanVolume, v5.4.1.60000
TitanXP, v5.4.1.60000
Viewporter, v
WIM, v3.6.21
WoWDBProfiler, v
XLoot, vz21a-release
XLootFrame, vz21a-release
XLootGroup, vz21a-release
XLootMaster, vz21a-release
XLootMonitor, vz21a-release
BlizRuntimeLib_enUS v6.0.3.60000 <none>
(ck=f06)
 
12-09-14, 08:59 PM   #720
Boggtroll
A Deviate Faerie Dragon
Join Date: Oct 2014
Posts: 12
Originally Posted by elals29 View Post
Is there even a download for 6.0? It's been a long time since I've used it and I went on the website and I can't find anything but for 5.4???
https://github.com/Rythal/Carbonite

It is in development. so far i find it fine to use, but if you find bugs i would suggest searching this thread first before posting to make sure you are not double posting a known issue.
 
 

WoWInterface » Featured Projects » Carbonite » Carbonite Archive » WOD/Pre-patch

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off