Thread: Gmap Generator
View Single Post
  #11  
Old 06-06-2012, 08:13 AM
Devil_Lord2 Devil_Lord2 is offline
David K?
Devil_Lord2's Avatar
Join Date: Apr 2011
Location: PA, MD.
Posts: 643
Devil_Lord2 can only hope to improve
Quote:
Originally Posted by Deas_Voice View Post
don't say people when you are talking about yourself
I'm pretty confused.
Just because you get it as well as other programmers does not mean everyone without knowledge in the field will.
There is no reason to put him down.

I won't ask here however, eventually I'll find a tutorial that is helpful.

PHP Code:
function onCreated() {
  
GmapGenerator.createGmap("nalik_caverns", {44});
  
this.template "levels/nalik_caves.nw"// "levels/template_default.nw";
  
this.savepath "levels/nalik_caverns/"// "levels/";

  /* DON'T EDIT ANYTHING BELOW HERE =) */
  
this.ALPHABET = {
    
"a""b""c""d""e",
    
"f""g""h""i""j",
    
"k""l""m""n""o",
    
"p""q""r""s""t",
    
"u""v""w""x""y""z"
  
};
}
public function 
createGmap(prefixdimension) {
  
temp.type dimension.type();
  if (
type != 3) {
    if (
type == 1) {
      if (
dimension.starts("sqrt")) {
        
temp.float(dimension.substring(4));
        
int(n^0.5);
        
dimension = {n,n};
      }
      else return 
false;
    }
    else if (
type == 0) {
      
dimension = {int(dimension), int(dimension)};
    }
  }
  else {
    
dimension = {int(dimension[0]), int(dimension[1])};
  }
  
temp.gmap = {
    
"GRMAP001",
    
"WIDTH "dimension[0],
    
"HEIGHT "dimension[1],
    
"LEVELNAMES"
  
};

  
this.numbers dimension[1].length();
  
this.letters int(dimension[0]/26);
  
temp.levels 0;
  for(
temp.0dimension[1]; ++) {
    
temp.line "";
    for(
temp.0dimension[0]; ++) {
      
temp.data = {getletter(j), getnumber(i+1)};
      
line @= stringify(prefix "_" data[0] @ data[1] @ ".nw") @",";
      
levels.add({(data[0]@data[1]), ji});
    }
    
gmap.add(line.substring(0line.length()-1));
  }
  
gmap.add("LEVELNAMESEND");

  
gmap.savelines(this.savepath@prefix@".gmap"0);

  
// lets generate the levels for the gmap

  
temp._template.loadlines(this.template);
  
this.maxlooplimit 0x7fffffff// =) we do want bigger gmaps then 100x100

  
for(temp.lvl levels) {
    
temp.links findlinks(prefixlvldimension);
    for(
temp.links) {
      
_template.add(l);
    }

    
_template.savelines(this.savepath@prefix@"_"@lvl[0]@".nw"0);
    
_template _template.subarray(0_template.size()-links.size());
  }
}

function 
getletter(n) {
  
temp.this.letters;
  
temp.times 0;
  while(
0) { times ++; --; }
  
temp.out "";
  
int(n);
  for(
temp.times0--) {
    
temp.index n;
    for(
temp.0i++) {
      
index /= 26;
    }
    
index int(index);
    
out @= this.ALPHABET[index];
  }
  
out @= this.ALPHABET[n%26];
  return 
out;
}

function 
getnumber(n) {
  
temp.n;
  while(
i.length() < this.numbers) {
    
"0"@i;
  }
  return 
i;
}

function 
stringify(foo) {
  return 
"\"" foo "\"";
}

function 
findlinks(prefixmatrixdimension) {
  
temp.lvl matrix;
  
temp.out 0;
  if (
lvl[1] == 0) {
    if (
lvl[2]+== 1) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
    else if (
lvl[2]+== dimension[1]) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
    }
    else {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
  }
  else if (
lvl[1] == dimension[0]-1) {
    if (
lvl[2]+== 1) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
    else if (
lvl[2]+== dimension[1]) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
    }
    else {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
  }
  else {
    if (
lvl[2]+== 1) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
    else if (
lvl[2]+== dimension[1]) {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
    }
    else {
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]-1)@getnumber(lvl[2]+1)@".nw 0 0 1 64 61 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1]+1)@getnumber(lvl[2]+1)@".nw 63 0 1 64 0 playery");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2])@".nw 0 0 64 1 playerx 61");
      
out.add("LINK "@prefix@"_"@getletter(lvl[1])@getnumber(lvl[2]+2)@".nw 0 63 64 1 playerx 0");
    }
  }
  return 
out;

Three year bump? Yes I did, negative rep me. ;D


-EDIT-
Actually it doesn't seem possible for a Mac user to do this...
.exes... youtube videos talking about the level editor.. its all a bunch of voodoo
witchcraft us cool cats can't use or something. :[
__________________

Digital Media Artist - David K? </3 (UnLoved)
www.davidkrout.com
www.twitch.com/DavidKkz




Last edited by Devil_Lord2; 06-06-2012 at 10:10 AM..
Reply With Quote