PDA

View Full Version : Creating Levels via Script


blackbeltben
06-08-2014, 10:28 PM
I have been searching the forums, but can't seem to find any codes on it.

I want to create a new level that adds to the file browser and what not through a weapon..


function onActionServerSide(){
if (params[0] == "create"){
//Make level with name set as params[1]
}
}


//#CLIENTSIDE
function onKeyPressed(code, key){
if (key == "p"){
triggerserver("weapon", this.name, "create", "level"@player.account@".nw");
}
}



Through my research, the only thing I could seem to find on this is the copylevel() function..

NOTE:
The NPC server has all folder rights so that shouldn't be an issue

Jakov_the_Jakovasaur
06-08-2014, 10:45 PM
hello!

yes you can use copylevel, the first parameter is the level file name and the second parameter is both the path (from within the 'levels/' folder) and filename:


//would create a copy of copytest.nw at 'levels/player/level_blackbeltben.nw'
copylevel("copytest.nw", "player/level_" @ temp.pl.communityname @ ".nw");


you can then use deletelevel("level_blackbeltben.nw"); to delete it

you should definitely avoid passing player.account and the level name prefix as a parameter from clientside to serverside, as a hacker could easily modify that to someone elses account, or even change the file name structure to over-write a different level or non level file. it would also be much better to use the players community name where it exists as all new account names follow the 'Graal######' format

blackbeltben
06-08-2014, 10:56 PM
hello!

yes you can use copylevel, the first parameter is the level file name and the second parameter is both the path (from within the 'levels/' folder) and filename:


//would create a copy of copytest.nw at 'levels/player/level_blackbeltben.nw'
copylevel("copytest.nw", "player/level_" @ temp.pl.communityname @ ".nw");


you can then use deletelevel("level_blackbeltben.nw"); to delete it

you should definitely avoid passing player.account and the level name prefix as a parameter from clientside to serverside, as a hacker could easily modify that to someone elses account, or even change the file name structure to over-write a different level or non level file. it would also be much better to use the players community name where it exists as all new account names follow the 'Graal######' format


I've messed around with it a lot but I can't get any level to create in my file browser. And when I try to warp to it, it "doesn't exist"

Jakov_the_Jakovasaur
06-08-2014, 11:05 PM
try creating the level file manually and then seeing if deletelevel("filename-no-path.nw"); actually deletes it, if it does then you will know for sure its not a npcserver rights issue

also are both the current and new filenames + paths configured correctly as a level in folderconfig?