Graal Forums  

Go Back   Graal Forums > Development Forums > NPC Scripting > Code Gallery
FAQ Members List Calendar Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 01-20-2007, 10:52 PM
Chandler Chandler is offline
Banned
Join Date: Jan 2007
Posts: 656
Chandler will become famous soon enough
Level copy

HTML Code:
function onCreated()
{
  this.searchid = 0;
  scheduleevent(0.25, "renameFiles", NULL, NULL);
}
function onrenameFiles() 
{ 
  temp.folderName = "levels/vs/currentworld/*.nw";
  temp.copyFolder = "levels/newleveltest/";
  temp.newName = "world2";
  temp.oldName = "illuminati2";  
  temp.levelList.loadfolder(temp.folderName, 0);
   
  if ((this.searchid * 50) >= temp.levelList.size()) 
  {   
    echo("All finished...");
    return true;
  }
  
  for (temp.s = (this.searchid * 50); temp.s < ((this.searchid + 1) * 50); temp.s++) 
  {    
      
    temp.curLinec = 0;
    temp.curLevel = temp.levelList[temp.s];
    if (!temp.curLevel.starts(temp.oldName))
    {
      continue;
    }
    temp.levelDetails.loadlines(temp.folderName.substring(0, (temp.folderName.length() - 4)) @ temp.curLevel);     
    for (temp.curLine: temp.levelDetails)
    {
      if (temp.curLine.starts("LINK " @ temp.oldName))
      {
        temp.newLine = "LINK" SPC temp.newName @ temp.curLine.substring(5 + temp.oldName.length());
        temp.levelDetails[temp.curLinec] = temp.newLine;
      }
      temp.curLinec++;
    }
    temp.levelName = temp.newName @ temp.curLevel.substring(temp.oldName.length());
    temp.levelDetails.savelines(temp.copyFolder @ temp.levelName, 0); 
    echo("NC: Copied" SPC temp.curLevel SPC "to" SPC temp.levelName);
  }
  
  this.searchid++; 
  scheduleevent(0.25, "renameFiles", NULL, NULL); 
}
Appreciation goes for Yen, for creating a way to stop the annoying loop error. Here's a level copy script, basically you just re-name the four main things
HTML Code:
  temp.folderName = "levels/vs/currentworld/*.nw"; //Folders to where they are
  temp.copyFolder = "levels/newleveltest/"; //New folder name
  temp.newName = "world2"; //New level names
  temp.oldName = "illuminati2"; //Old level names 
It'll then copy all of the scripts, and also links and paste the levels in the new folder location
Reply With Quote
  #2  
Old 01-21-2007, 02:15 AM
Gambet Gambet is offline
Registered User
Join Date: Oct 2003
Posts: 2,712
Gambet is on a distinguished road
You do know there is a built-in copylevel command right?

x-x
Reply With Quote
  #3  
Old 01-21-2007, 02:47 AM
Rapidwolve Rapidwolve is offline
Registered User
Join Date: Jul 2006
Posts: 1,241
Rapidwolve is an unknown quantity at this point
Quote:
Originally Posted by Gambet View Post
You do know there is a built-in copylevel command right?

x-x
*****

zaboomafoo.
Reply With Quote
  #4  
Old 01-21-2007, 03:01 AM
Riot Riot is offline
Delteria Management
Join Date: Nov 2003
Location: Seminole County, Florida
Posts: 280
Riot is on a distinguished road
Quote:
Originally Posted by Gambet View Post
You do know there is a built-in copylevel command right?

x-x
But does copylevel change the links to match those of the new filenames and do a mass amount of levels?
Reply With Quote
  #5  
Old 01-21-2007, 03:46 AM
Inverness Inverness is offline
Incubator
Inverness's Avatar
Join Date: Aug 2004
Location: Houston, Texas
Posts: 3,613
Inverness is a jewel in the roughInverness is a jewel in the rough
I don't know about automated link-changing. But if that is the case simply make the links scripted ones. Use this.level or level.name to get that and fine the ID of the instance from that and have the warp function executed appropriately. Or you could use database communication.
__________________
Reply With Quote
  #6  
Old 01-21-2007, 04:38 AM
Gambet Gambet is offline
Registered User
Join Date: Oct 2003
Posts: 2,712
Gambet is on a distinguished road
Quote:
Originally Posted by Riot View Post
But does copylevel change the links to match those of the new filenames and do a mass amount of levels?

It makes a copy of the level, and creates it in a new folder. I've never used it, but I'd assume that it would copy everything in the level, or at least the important stuff.
Reply With Quote
  #7  
Old 01-21-2007, 05:53 AM
Admins Admins is offline
Graal Administration
Join Date: Jan 2000
Location: Admins
Posts: 11,693
Admins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud ofAdmins has much to be proud of
The built-in command copies the file, but is not modifying levels. The built-in command currently has the advantage that the gserver is directly seeing the file, while with the scripted version you need to do /refreshfilelist, although that could be changed.
Reply With Quote
  #8  
Old 01-21-2007, 11:52 AM
Chandler Chandler is offline
Banned
Join Date: Jan 2007
Posts: 656
Chandler will become famous soon enough
Quote:
Originally Posted by Gambet View Post
You do know there is a built-in copylevel command right?

x-x
Doesn't edit the links. Feel free to try it.
Reply With Quote
Reply


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

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

Forum Jump


All times are GMT +2. The time now is 03:13 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions Inc.
Copyright (C) 1998-2019 Toonslab All Rights Reserved.