<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://graalonline.net/index.php?action=history&amp;feed=atom&amp;title=Creation%2FDev%2FDungeon_Generator%2FCave_Fix</id>
	<title>Creation/Dev/Dungeon Generator/Cave Fix - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://graalonline.net/index.php?action=history&amp;feed=atom&amp;title=Creation%2FDev%2FDungeon_Generator%2FCave_Fix"/>
	<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Dungeon_Generator/Cave_Fix&amp;action=history"/>
	<updated>2026-04-09T20:51:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.4</generator>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Dungeon_Generator/Cave_Fix&amp;diff=18181&amp;oldid=prev</id>
		<title>Cbk1994: +categories</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Dungeon_Generator/Cave_Fix&amp;diff=18181&amp;oldid=prev"/>
		<updated>2011-04-17T00:17:30Z</updated>

		<summary type="html">&lt;p&gt;+categories&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:17, 16 April 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Graal Kingdoms Development]][[Category:Scripting Reference]][[Category:Levels]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you use the [[Creation/Dev/Dungeon Generator|dungeon generator]] to generate caves for [[Worlds/Graal Kingdoms|Graal Kingdoms]], you will find that it is possible for fast players to glitch on top of the non-walkable space and then walk around on it.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you use the [[Creation/Dev/Dungeon Generator|dungeon generator]] to generate caves for [[Worlds/Graal Kingdoms|Graal Kingdoms]], you will find that it is possible for fast players to glitch on top of the non-walkable space and then walk around on it.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key graalnet_wikidb:diff::1.12:old-18180:rev-18181 --&gt;
&lt;/table&gt;</summary>
		<author><name>Cbk1994</name></author>
	</entry>
	<entry>
		<id>https://graalonline.net/index.php?title=Creation/Dev/Dungeon_Generator/Cave_Fix&amp;diff=18180&amp;oldid=prev</id>
		<title>Cbk1994: Created page with 'If you use the dungeon generator to generate caves for Graal Kingdoms, you will find that it is possible for fast pla…'</title>
		<link rel="alternate" type="text/html" href="https://graalonline.net/index.php?title=Creation/Dev/Dungeon_Generator/Cave_Fix&amp;diff=18180&amp;oldid=prev"/>
		<updated>2011-04-17T00:16:08Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;#039;If you use the &lt;a href=&quot;/Creation/Dev/Dungeon_Generator&quot; title=&quot;Creation/Dev/Dungeon Generator&quot;&gt;dungeon generator&lt;/a&gt; to generate caves for &lt;a href=&quot;/Worlds/Graal_Kingdoms&quot; title=&quot;Worlds/Graal Kingdoms&quot;&gt;Graal Kingdoms&lt;/a&gt;, you will find that it is possible for fast pla…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If you use the [[Creation/Dev/Dungeon Generator|dungeon generator]] to generate caves for [[Worlds/Graal Kingdoms|Graal Kingdoms]], you will find that it is possible for fast players to glitch on top of the non-walkable space and then walk around on it.&lt;br /&gt;
&lt;br /&gt;
The problem is that the tile definitions used for caves use a non-blocking selection of tiles for outside of the path.&lt;br /&gt;
&lt;br /&gt;
To fix that, place this script in an NPC on your server and run it, being sure to change the GMAP name near the top:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function onCreated() {&lt;br /&gt;
  // you can use a level or a GMAP here, just make sure to&lt;br /&gt;
  // use the proper extension&lt;br /&gt;
  temp.levelToFix = findLevel(&amp;quot;mycave.gmap&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  // don't change this&lt;br /&gt;
  if (levelToFix == null) {&lt;br /&gt;
    return echo(&amp;quot;Error: Level doesn't exist!&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  temp.tilesToChange = {&lt;br /&gt;
    {2560, 2818},&lt;br /&gt;
    {2561, 2819},&lt;br /&gt;
    {2562, 2820},&lt;br /&gt;
    {2563, 2821},&lt;br /&gt;
    {2576, 2834},&lt;br /&gt;
    {2577, 2835},&lt;br /&gt;
    {2578, 2836},&lt;br /&gt;
    {2579, 2837},&lt;br /&gt;
    {2592, 2850},&lt;br /&gt;
    {2593, 2851},&lt;br /&gt;
    {2594, 2852},&lt;br /&gt;
    {2595, 2853},&lt;br /&gt;
    {2608, 2866},&lt;br /&gt;
    {2609, 2867},&lt;br /&gt;
    {2610, 2868},&lt;br /&gt;
    {2611, 2869}&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
  // create simple arrays&lt;br /&gt;
  temp.changeFrom = null;&lt;br /&gt;
  temp.changeTo = null;&lt;br /&gt;
  &lt;br /&gt;
  // avoid max loop limit&lt;br /&gt;
  temp.i = 0;&lt;br /&gt;
  this.avoidLimit = function(i) {&lt;br /&gt;
    if (i &amp;gt;= (this.maxlooplimit - 1)) {&lt;br /&gt;
      sleep(0.1);&lt;br /&gt;
      return 0;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    return (++ i);&lt;br /&gt;
  };&lt;br /&gt;
  &lt;br /&gt;
  for (temp.tile : tilesToChange) {&lt;br /&gt;
    changeFrom.add(tile[0]);&lt;br /&gt;
    changeTo.add(tile[1]);&lt;br /&gt;
    &lt;br /&gt;
    i = this.avoidLimit(i);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // make changes&lt;br /&gt;
  for (temp.x = 0; x &amp;lt; levelToFix.width; x ++) {&lt;br /&gt;
    for (temp.y = 0; y &amp;lt; levelToFix.height; y ++) {&lt;br /&gt;
      temp.currentTile = levelToFix.tiles[x, y];&lt;br /&gt;
      temp.fixIndex = changeFrom.index(@ currentTile);&lt;br /&gt;
      &lt;br /&gt;
      if (fixIndex &amp;gt; (- 1)) {&lt;br /&gt;
        temp.newTile = changeTo[fixIndex];&lt;br /&gt;
        levelToFix.tiles[x, y] = newTile;&lt;br /&gt;
      }&lt;br /&gt;
      &lt;br /&gt;
      i = this.avoidLimit(i);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    i = this.avoidLimit(i);&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  // save changes&lt;br /&gt;
  levelToFix.updateBoard2(0, 0, levelToFix.width, levelToFix.height);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Keep in mind that some players will see the old levels until the modified date is changed. To change the modified date so that all players see the fixed levels, download and reupload the modified levels.&lt;/div&gt;</summary>
		<author><name>Cbk1994</name></author>
	</entry>
</feed>