Stein Posted September 29, 2013 Author Share Posted September 29, 2013 Hello there, since scripting has just been added to Eclipse Dawn 2.1.0, I figured I'd make a quick tutorial that shows you how easy it can be to add new functionality to your server by just changing a few files! Now, then.. Let's get started shall we?**Step 1: Your server.**Make sure your server is up to date, and running AT LEAST Eclipse Dawn 2.1.0, it will not work in lower versions or any other custom Eclipse Version. Please note that it does not matter whether your server is running or not, there's a method of reloading the scripts while the server runs.**Step 2: Making directories.**Since my script uses specific directories to store Data, let's make them!Head into your **Server Directory** and click on **Data**, once in there make a new folder called **ScriptData** and go inside it, in there make another folder called **Frankenstein** and enter it as well, then finaly in there make a new folder called **Chests**. If all went well, you should now have the following folder structure to get where you are: **\data\scriptdata\frankenstein\chests\**.Head back to your **Server Directory** and click the **Scripts** folder, once in there make a new folder called **User **and go inside it, in there make another called **Frankenstein**. If all went well, your folder structure should be as follows: **data\scripts\user**The reason I chose these names are simply to keep things organized in the future should I want to add more scripts of my own, or another user. But do bear in mind that it does not matter what folder structure you use, as long as you rewrite the script(s) to reflect the changes.**Step 3: Creating the file script file.**First, copy the following script:```Function GetPlayerChestState(Index, Chest)GetPlayerChestState = GetVar("data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), CSTR(Chest))' Error checking below, if the record is empty it returns a blank string.' And a blank string can't be converted to a Long, so that's why we need to check this manually.If GetPlayerChestState = "" ThenGetPlayerChestState = ChestStateFullElseGetPlayerChestState = CLNG(GetPlayerChestState)End IfEnd FunctionSub SetPlayerChestState(Index, Chest, State)PutVar "data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), CSTR(Chest), CSTR(State)End SubFunction GetChestMaxItems(Chest)GetChestMaxItems = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "MaxItems"))End FunctionFunction GetChestItemNum(Chest, Item)GetChestItemNum = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "Item" & CSTR(Item) & "Num"))End FunctionFunction GetChestItemVal(Chest, Item)GetChestItemVal = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "Item" & CSTR(Item) & "Val"))End FunctionSub OpenChest(Index, Chest, OpenMsg, EmptyMsg)Dim i, MaxItems, Item, Val, Name' Check if the chest is empty for this player before we begin.If GetPlayerChestState(Index, Chest) <> ChestStateEmpty Then' The chest seems to be alright for this guy, let's move on!' Retrieve the max amount of items in this chest.MaxItems = GetChestMaxItems(Chest)' And time to loop through this mess, we want to hand out the items to the player, after all.For i = 1 to MaxItems' Retrieve the item number and amounts.Item = GetChestItemNum(Chest, i)Val = GetChestItemVal(Chest, i)' Hand it outGivePlayerItem Index, Item, ValNext' Set the chest state to empty.SetPlayerChestState Index, Chest, ChestStateEmpty' Done! Let's notify our player of his opened chest!PlayerMsg Index, OpenMsg, BrightRedElse' Seems like this player's opened the chest before.' Let's notify them.PlayerMsg Index, EmptyMsg, BrightRedEnd IfEnd Sub``` Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now