• Unfortunately, we have experienced significant hard drive damage that requires urgent maintenance and rebuilding. The forum will be a state of read only until we install our new drives and rebuild all the configurations needed. Please follow our Facebook page for updates, we will be back up shortly! (The forum could go offline at any given time due to the nature of the failed drives whilst awaiting the upgrades.) When you see an Incapsula error, you know we are in the process of migration.

[Releases]QuestData.shn Structure

Newbie Spellweaver
Joined
Dec 23, 2009
Messages
11
Reaction score
3
Hello Guys,

Here is the structure for a questdata.shn can use make QuestEditors and more :)

Shn version 4

Code:
using(ScriptAPI)
{
count = AddUShort("QuestCount");
for(i=0; i<count; i++)
{
QuestLenght = AddUShort("QuestLenght");
	
StartNode("QuestInfo");
AddShort("unk");
AddShort("QuestID");
AddShort("TitleID");
AddShort("DecryptionID");
AddField("unk",7);	
AddByte("MinLevel");
AddByte("MaxLevel");
AddByte("unk");
AddShort("StartingNPC");
AddField("unk",24);
AddShort("PreQuest");
AddField("unk",2);
AddByte("MultiQuest");
AddByte("NeedClass");
AddField("unk",15);
AddByte("NeedLevel");
AddField("unk",6);
EndNode(0);
		

StartNode("MobInfo");
for (inxMob = 0; inxMob < 5; inxMob++)
{
StartNode("mob"+inxMob);
AddByte("IsEnable");
AddByte("IsNpc");
AddUShort("MobID");
AddByte("IsToKill");
AddByte("Amount");
EndNode(0);
}
EndNode(0);
StartNode("ItemInfo");
for (inxItem = 0; inxItem < 10; inxItem++)
{
StartNode("Item"+inxItem);
AddByte("IsEnabled");
AddByte("ItemType");
AddUShort("ItemID");
AddUShort("Ammount");
EndNode(0);
	}
	AddField("ItemData",284);	
EndNode(0);
StartNode("RewardInfo");
rewardlenght = 0;
for (inxReward = 0; inxReward < 12; inxReward++)
{
StartNode("Reward"+inxReward);
AddByte("RewardMethod");
RewardType = AddByte("RewardType");
if(RewardType == 2)
{
AddUShort("ItemID");
AddUShort("Amount");
AddField("unk",4);
}
else
{
AddLong("Exp/Fame");
}
	
EndNode(0);      
}  
AddField("RewardData",24);
EndNode(0);
EndNode(0);			
	
StartScriptLenght = AddShort("StartScpLenght");
FinishScriptLenght = AddShort("FinishScriptLenght");
ActionLenght = AddShort("ActionLenght");
	AddField("StartScriptLenght",StartScriptLenght);
	AddField("FinishScriptLenght",FinishScriptLenght);
	AddField("ActionLenght",ActionLenght);
	}
}

Actualy version 6 is now unfinished anlysed
Code:
using(ScriptAPI)
{
count = AddUShort("QuestCount");
for(i=0; i< count; i++)
{
QuestLenght = AddUInt("QuestLenght");
	
StartNode("QuestInfo");
AddInt("QuestID");
AddInt("TitleID");
AddInt("DecryptionID");
AddField("unk",10);
AddByte("IsLevelBase");
AddByte("MinLevel");
AddByte("MaxLevel");
AddByte("IsEnable");
AddShort("StartNPC");
AddField("QuestData",26);
AddShort("PreQuest");
AddField("unk",2);
AddByte("IsMulti");
AddByte("CLass");
AddField("QuestData",22);

EndNode(0);
		

StartNode("MobInfo");
for (inxMob = 0; inxMob < 5; inxMob++)
{
StartNode("mob"+inxMob);
AddByte("IsEnable");
AddByte("IsNpc");
AddUShort("MobID");
AddByte("IsToKill");
AddByte("Amount");
EndNode(0);
}
EndNode(0);
StartNode("ItemInfo");
for (inxItem = 0; inxItem < 10; inxItem++)
{
StartNode("Item"+inxItem);
AddByte("Itemype");
AddByte("IsEnabled");
AddUShort("ItemID");
AddUShort("Ammount");			
EndNode(0);
	}
	AddField("ItemData",284);	
EndNode(0);
StartNode("RewardInfo");
rewardlenght = 0;
for (inxReward = 0; inxReward < 12; inxReward++)
{
StartNode("Reward"+inxReward);
AddByte("RewardMethod");
RewardType = AddByte("RewardType");
AddUShort("Unk2");
if(RewardType == 2)
{
AddUShort("ItemID");
AddUShort("Amount");
AddField("unk",4);
}
else
{
AddLong("Exp/Fame");
}
	
EndNode(0);      
}  
AddField("RewardData",76);
EndNode(0);
EndNode(0);			
	

StartScriptLenght = AddShort("StartScpLenght");
FinishScriptLenght = AddShort("FinishScriptLenght");
ActionLenght = AddShort("ActionLenght");
	AddNulledString("StartScrript");
	AddNulledString("FinishScript");
	AddNulledString("ActionKrebs");
	
	}
}

i haved using my QuestData Analyser tool from my svn
https://github.com/DragonFiestaTeam/DragonFiesta_Tools
have fun :)

Mathias1000
 
Experienced Elementalist
Joined
Oct 31, 2010
Messages
202
Reaction score
36
It is an honor to see that the Quest editor I have developed is part of your DragonFiesta_Tools repository. But also that it is being taken advantage of and further developed and improved. Very nice
 
Skilled Illusionist
Joined
Jan 24, 2012
Messages
364
Reaction score
169
Similar to mine:

Code:
header 	= r.ReadUInt16();
count 	= r.ReadUInt16();

for (uint i = 0; i < count; i++)
{
	length 	= r.ReadInt32();
	data 	= r.ReadBytes(length - 4);
}
 
Back
Top