sfxworks Posted August 12, 2011 Share Posted August 12, 2011 I've successfully decoded an NBT file. Now, I am trying to convert it to a bo2 file. I am...ofcourse...running into multible issues with this. So far, I have been able to print the entire nbt into text. I can convert this to a string relatively easy I assume. From there...how do I get certain values? I guess what im saying is, how would I get a string after another string? For instance, the Length, Width, and Height. I need those, and I need to be able to get the data values and put them into an array. Well, I don't really have to but it would make things a lot easier. In the types of NBT files I am working with, they are easy to find with my HANDY DANDY cntrl F. [3] => Array ( [type] => 2 [name] => Height [value] => 2 ) [11] => Array ( [type] => 2 [name] => Length [value] => 3 ) [12] => Array ( [type] => 2 [name] => Width [value] => 3 ) [8] => Array ( [type] => 7 [name] => Data [value] => Array ( [0] => 0 [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 5 [15] => 0 [16] => 0 [17] => 0 [13] => Array ( [type] => 7 [name] => Blocks [value] => Array ( [0] => 4 [1] => 4 [2] => 20 [3] => 4 [4] => 1 [5] => 57 [6] => 4 [7] => 4 [8] => 4 [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 76 [15] => 48 [16] => 0 [17] => 0 As you can see, they are always marked as [3],[8],[11],[12],and [13]. So what I am trying to do is get those datavalues and...basically, re arrange the text while getting rid of the rest. 11 contains the length, 12 contains the width, 3 contains the height, 13 contains the block data, and 8 contains additional data for the block data (if any). For that example, a bo2 would look something like this. [META] version=2.0 spawnOnBlockType=2 spawnSunlight=False spawnDarkness=True spawnWater=False spawnLava=False underFill=True randomRotation=True dig=True tree=False branch=False needsFoundation=False rarity=1 collisionPercentage=1 spawnElevationMin=0 spawnElevationMax=64 spawnInBiome=Forest,Plains,Rain Forest,Savanna,Seasonal Forest,Shrubland,Swampland,Taiga,Tundra //All of the variables above would be specified in an html form. [DATA] 1,0,0:4 1,1,0:4 0,1,0:4 -1,1,0:4 -1,0,0:4 -1,-1,0:4 0,-1,0:57 1,-1,0:20 0,0,0:1 -1,1,1:48 0,-1,1:76.1 //This is the important part. This is where the main data is stored. Format (X,Y,Z,:BlockData.AdditionalBlockData) Given the length, width, and height, I suppose setting up coordinates would be somewhat simple. Yet im still left with the issue on how to capture the data from the GIANT string. Any tips? Help? I am SO close to breaking this. I am using Php 5 with the GMP extension. Windows 7x64. Find what I have so far here http://mcserver1337.servegame.com/_usr/sfxworks/Sandbox/NBTDecodePHP/test.php. Quote Link to comment https://forums.phpfreaks.com/topic/244654-strings-and-nbts/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.