Graal Forums

Graal Forums (https://forums.graalonline.com/forums/index.php)
-   NPC Scripting (https://forums.graalonline.com/forums/forumdisplay.php?f=8)
-   -   Creating Levels via Script (https://forums.graalonline.com/forums/showthread.php?t=134269288)

blackbeltben 06-08-2014 10:28 PM

Creating Levels via Script
 
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..

PHP Code:

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

//#CLIENTSIDE
function onKeyPressed(codekey){
 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:

PHP Code:

//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

Quote:

Originally Posted by Jakov_the_Jakovasaur (Post 1727946)
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:

PHP Code:

//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?


All times are GMT +2. The time now is 12:34 AM.

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