Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Guide] Make STRS from Header

Joined
Nov 1, 2009
Messages
842
Reaction score
276
how to create Structure form header file :

in case, we want to create Storelist.strs
open zoneserver.h ( GU Version )

Find = struct _StoreList_fld

and we will see like this
struct _StoreList_fld
{
_base_fld baseclass_0;
char m_strBinding_DummyName[64];
char m_strStore_NPCcode[64];
char m_strStore_NPCname[64];
char m_strStore_MAPcode[64];
int m_nStore_trade;
int m_bSet_NPCangle;
int m_nStore_NPCangle;
int m_nNpc_Class[10];
int m_nStore_LISTcount;
int m_nLimit_Listcount;
int m_nLimitItem_InitTime;
int m_nPriceSet;
int m_nItemUpCode;
char m_strItemlist[200][64];
sell_info m_sellLimitList[16];
};



if you have an open struct _StoreList_fld, maen is Storelist.dat from Zoneserver/RF_Bin/Script/

Ok, lets begin "How to make STRS"



1. Create new Document with .strs extention file like Storelist.strs

now, Open Storelist.strs with notepad.
and we make string file for strs to Storelist.dat

[filemask="StoreList.dat"]
struct StorelistFile
{
u32 StorelistBlocks;
u32 StorelistColumns;
u32 StorelistBlockSize;
Child Storelist [count=StorelistBlocks];
}




2. oke next,..
see struct _StoreList_fld again,..
look at _base_fld baseclass_0;
and find struct _base_fld in zoneserver header.

struct _base_fld
{
unsigned int m_dwIndex;
char m_strCode[64];
};
its mean
unsigned int = u32 m_dwIndex;
char m_strCode[64] = cstr[len=64] m_strCode;

now you have 2 line for your strs file and input that to your strs document like this

[filemask="StoreList.dat"]
struct StorelistFile
{
u32 StorelistBlocks;
u32 StorelistColumns;
u32 StorelistBlockSize;
Child Storelist [count=StorelistBlocks];
}

struct Storelist [preload=1]
{
u32 m_dwIndex;
cstr[len=64] m_strCode;




3. after that, you can add more line to strs document
char m_strBinding_DummyName[64];
char m_strStore_NPCcode[64];
char m_strStore_NPCname[64];
char m_strStore_MAPcode[64];
int m_nStore_trade;
int m_bSet_NPCangle;
int m_nStore_NPCangle;
int m_nNpc_Class[10];
int m_nStore_LISTcount;
int m_nLimit_Listcount;
int m_nLimitItem_InitTime;
int m_nPriceSet;
int m_nItemUpCode;
char m_strItemlist[200][64];
sell_info m_sellLimitList[16];


just follow the line in header file

[filemask="StoreList.dat"]
struct StorelistFile
{
u32 StorelistBlocks;
u32 StorelistColumns;
u32 StorelistBlockSize;
Child Storelist [count=StorelistBlocks];
}

struct Storelist [preload=1]
{
u32 m_dwIndex;
cstr[len=64] m_strCode;
cstr[len=64]m_strBinding_DummyName;
cstr [len=64] m_strStore_NPCcode;
cstr [len=64] m_strStore_NPCname;
cstr [len=64] m_strStore_MAPcode;
i32 m_nStore_trade;
i32 m_bSet_NPCangle;
i32 m_nStore_NPCangle;

repeat 10
{ i32 m_nNpc_Class; }

i32 m_nStore_LISTcount;
i32 m_nLimit_Listcount;
i32 m_nLimitItem_InitTime;
i32 m_nPriceSet;
i32 m_nItemUpCode;

repeat 200
{ cstr[len=64] m_strItemlist; }



4. and now we have 1 line again to input your strs document
sell_info m_sellLimitList[16];

you can find struct sell_info in your header,
and you'll see like this
struct sell_info
{
char m_strItemCode[64];
int m_nMaxCount;
};


now, put that line to your strs
[filemask="StoreList.dat"]
struct StorelistFile
{
u32 StorelistBlocks;
u32 StorelistColumns;
u32 StorelistBlockSize;
Child Storelist [count=StorelistBlocks];
}

struct Storelist [preload=1]
{
u32 m_dwIndex;
cstr[len=64] m_strCode;
cstr[len=64]m_strBinding_DummyName;
cstr [len=64] m_strStore_NPCcode;
cstr [len=64] m_strStore_NPCname;
cstr [len=64] m_strStore_MAPcode;
i32 m_nStore_trade;
i32 m_bSet_NPCangle;
i32 m_nStore_NPCangle;

repeat 10
{ i32 m_nNpc_Class; }

i32 m_nStore_LISTcount;
i32 m_nLimit_Listcount;
i32 m_nLimitItem_InitTime;
i32 m_nPriceSet;
i32 m_nItemUpCode;

repeat 200
{ cstr[len=64] m_strItemlist; }

repeat 16
{
cstr[len=64] m_strItemCode;
i32 m_nMaxCount;
}

}


You have finish your strs file..
now you can use it with DATEDITOR for open your Storelist.dat

here i attach 3 header from 2.1.5, 2.1.6, 2.2.3 and GU
View attachment ZoneServerGiga4.7z
View attachment ZoneServer_215.rar
View attachment ZoneServer_216.rar
Zoneserver_221
View attachment ZoneServer_223.rar
View attachment ZoneServer-GU.rar
RF Online v2.3 | Caravans Time and Space Version
RF Online v4.5 | Age of Patron Version



Header Line for Structure file

Header StructureFolderFile Structure
_monster_sp_fldScript/MonsterCharacterAI.dat
_skill_fldScript/Skill.dat
ClassSkill.dat
PotionItemEffect.dat
BulletItemEffect.dat
_force_fldScript/Force.dat
_portal_fldScript/
Map/
[NameMap]-portal.dat
[NameMap]-[portal].dat
_PotionItem_fldScript/PotionItem.dat
_monster_fldScript/MonsterCharacter.dat
_class_fldScript/Class.dat



_animus_fld




Script/
HecateCharacter.dat
HecateCharacter_S.dat
InannaCharacter.dat
InannaCharacter_S.dat
IsisCharacter.dat
IsisCharacter_S.dat
PaimonCharacter.dat
PaimonCharacter_S.dat
_CheckPotion_fldScript/CheckPotionEffect.dat
_ItemLooting_fldScript/ItemLooting.dat
_PcRoom_fldScript/PcRoom.dat
_Quest_fldScript/Quest.dat
HolyStoneKeepperQuest.dat
_SetItemEff_fldScript/SetItemEff.dat
_UnitKeyItem_fldScript/UnitKeyItem.dat
_AnimusItem_fldScript/AnimusItem.dat
_CashShop_fldScript/CashShop.dat
_WeaponItem_fldScript/WeaponItem.dat
_TimeItem_fldScript/TimerItem.dat
_npc_fldScript/NpCharacter.dat
_TrapItem_fldScript/TrapItem.dat
_StoreList_fldScript/StoreList.dat
_NameTxt_fldScript/_str.dat
_CashShop_str_fldScript/CashShop_str.dat




_QuestHappenEvent_fld





Script/
QuestDummyEvent.dat
QuestGainItemEvent.dat
QuestGradeEvent.dat
QuestKillOtherRaceEvent.dat
QuestLvLimitEvent.dat
QuestLvUpEvent.dat
QuestMasteryEvent.dat
QuestNPCEvent.dat
QuestPromoteEvent.dat
_mobmsg_fldScript/MobMessage_str.dat
_ItemCombine_exp_fldScript/CombineTable.dat
CombineTable2.dat
_ItemExchange_fldScript/BoxItemOut.dat
_ResourceItem_fldScript/ResourceItem.dat
_BulletItem_fldScript/BulletItem.dat



_UnitPart_fld



Script/
UnitArms.dat
UnitBack.dat
UnitHead.dat
UnitLower.dat
UnitShoulder.dat
UnitUpper.dat
_UnitBullet_fldScript/UnitBullet.dat
_ItemUpgrade_fldScript/ItemUpgrade.dat
_RadarItem_fldScript/RadarItem.dat
_GuardTowerItem_fldScript/GuardTowerItem.dat
_player_fldScript/PlayerCharacter.dat
_OreCutting_fldScript/OreCutting.dat
_OreItem_fldScript/OreItem.dat
_WorldSchedule_fldScript/Schedule.dat
_TicketItem_fldScript/TicketItem.dat
_CouponItem_fldScript/CouponItem.dat
_UNmannedminer_fldScript/UNmannedminer.dat
_BatteryItem_fldScript/BatteryItem.dat
_LinkItem_Result_fldScript/LinkedResult.dat
_LinkItem_Stuff_fldScript/LinkedStuff.dat
_BattleDungeonItem_fldScript/BattleDungeonItem.dat
_MakeToolItem_fldScript/MakeToolItem.dat


_DfnEquipItem_fld



Script/
GauntletItem.dat
HelmetItem.dat
LowerItem.dat
ShieldItem.dat
ShoeItem.dat
UpperItem.dat
_BagItem_fldScript/BagItem.dat
_CloakItem_fldScript/CloakItem.dat
_RingItem_fldScript/RingItem.dat
_AmuletItem_fldScript/AmuletItem.dat
_ForceItem_fldScript/ForceItem.dat
_BootyItem_fldScript/BootyItem.dat
_MapItem_fldScript/MapItem.dat
_TOWNItem_fldScript/TownItem.dat
_SiegeKitItem_fldScript/SiegeKitItem.dat
_EventItem_fldScript/EventItem.dat
_RecoveryItem_fldScript/RecoveryItem.dat
_BoxItem_fldScript/BoxItem.dat
_FIRECRACKER_fldScript/FIRECRACKER.dat
_NPCLink_fldScript/NpcLinkItem.dat
_UnitFrame_fldScript/UnitFrame.dat
_ItemMakeData_fldScript/ItemMakeData.dat
_EditData_fldScript/EditData.dat
_ItemCombine_fldScript/ItemCombine.dat
_exp_fldScript/Exp.dat
_grade_fldScript/Grade.dat


_MasteryLimit_fld


Script/
RangerMasteryLimit.dat
SpecialistMasteryLimit.dat
SpiritualistMasteryLimit.dat
WarriorMasteryLimit.dat
_mon_active_fldMap/<MonsterFiles>.dat
_mon_block_fldMap/<MapBlockFile>-[block].dat


Hope this Tutorial, can be use it for everyone.
 

Attachments

You must be registered for see attachments list
Last edited:
Newbie Spellweaver
Joined
Jan 14, 2011
Messages
57
Reaction score
7
i'm kinda new at this but it looks interessting.

Questions:
int = i32
string = cstr [len=XX] (XX=64 the most time)
float = ?

if i load some strs there is an Type=message Name=Unknown Value=Error loading
what does it mean did i something wrong?



i got error line 11 character 1 { wrong token
Edit: Solved with baItemBlock [preload=1]

PHP:
[filemask="bagItem.dat"]
struct StorelistFile
{
u32 bagItemBlocks;
u32 bagItemColumns;
u32 bagItemBlockSize;
Child bagItem [count=bagItemBlocks];
}

struct baItemBlock [preload=1]
{
u32 m_dwIndex;
cstr[len=64] m_strCode;
i32 m_bExist;
cstr [len=64] m_strModel;
i32 m_nIconIDX;
cstr [len=64] m_strName;
i32 m_nKindClt;
i32 m_nFixPart;
cstr [len=64] m_strCivil;
i32 m_nMoney; 
i32 m_nStdPrice;
i32 m_nStdPoint;
i32 m_nGoldPoint;
i32 m_nKillPoint;
i32 m_nProcPoint;
i32 m_nStoragePrice;
i32 m_bSell;
i32 m_bExchange;
i32 m_bGround;
i32 m_bStoragePossible;
i32 m_bUseableNormalAcc;
cstr [len=64] m_strTooltipIndex;
i32 m_bIsTime;
}
 
Last edited:
Newbie Spellweaver
Joined
Jan 14, 2011
Messages
57
Reaction score
7
well i just wont to spam thats why i edit my post.
thanks for the informations now i just need to know how i can solve this problem:

if i load some strs there is an Type=message Name=Unknown Value=Error loading

and btw the resault of your guide don't work for me i still get error if i try it with structorian.

error:
error line 11 character 1 { wrong token

i could solve this problem on a other .dat but not on StoreList

please tell me if it is right. that i know that i understand the syntex. thanks

ItemMakeData:

struct _ItemMakeData_fld::_output_list
{
char m_itmPdOutput[8];
unsigned int m_dwPdProp;
};


struct _ItemMakeData_fld
{
_base_fld baseclass_0;
int m_nMakeMastery;
char m_strCivil[64];
_ItemMakeData_fld::_material_list m_listMaterial[5];
_ItemMakeData_fld::_output_list m_listOutput[30];
};


resault:

[filemask="ItemMakeData.dat"]
struct ItemMakeDataFile
{
u32 ItemMakeDataBlocks;
u32 ItemMakeDataColumns;
u32 ItemMakeDataBlockSize;
Child ItemMakeData [count=ItemMakeDataBlocks];
}

struct ItemMakeDataBlock [preload=1]
{
u32 m_dwIndex;
cstr[len=64] m_strCode;
i32 m_nMakeMastery;
cstr[len=64] m_strCivil;

repeat 5
{
repeat 8
{
cstr[len=64] m_itmPdMat;
}
i32 m_nPdMatNum;
}

repeat 30
{
repeat 8
{
cstr[len=64] m_itmPdOutput;
}
u32 m_dwPdProp;
}
}
 
Junior Spellweaver
Joined
Jul 11, 2009
Messages
180
Reaction score
23
nova ur storelist.strs is incorrect

here is the fixed version


Code:
[filemask="StoreList.dat"]
struct StorelistFile
{
u32 StorelistBlocks;
u32 StorelistColumns;
u32 StorelistBlockSize;
Child Storelist [count=StorelistBlocks];
}

struct Storelist [preload=1]
{

u32 m_dwIndex;
cstr[len=64] m_strCode;
cstr[len=64] m_strBinding_DummyName;
cstr [len=64] m_strStore_NPCcode;
cstr [len=64] m_strStore_NPCname;
cstr [len=64] m_strStore_MAPcode;
i32 m_nStore_trade;
i32 m_bSet_NPCangle;
i32 m_nStore_NPCangle;

repeat 10
{ i32 m_nNpc_Class; }

i32 m_nStore_LISTcount;
i32 m_nLimit_Listcount;
i32 m_nLimitItem_InitTime;
i32 m_nPriceSet;
i32 m_nItemUpCode;

repeat 200
{ cstr[len=64] m_strItemlist; }

repeat 16
{ 
cstr[len=64] m_strItemCode;
i32 m_nMaxCount;
}

}
 
Junior Spellweaver
Joined
Jul 11, 2009
Messages
180
Reaction score
23
nova do u have any client side strs? and if not does anyone here have them or at least a header file from the client
 
Junior Spellweaver
Joined
Jul 11, 2009
Messages
180
Reaction score
23
for those wondering the client side header isnt in the bin file its in one of the dlls but im not gonnna say which one u have to figure that one out :)
 
Junior Spellweaver
Joined
Aug 25, 2011
Messages
125
Reaction score
22
how about this
{
_base_fld baseclass_0;
int m_nRaceCode;
int m_nClass;
int m_nIconIDX;
int m_nGrade;
int m_nUpGradeLv;
char m_strCh_Class[8][64];
char m_strTemp[64];
char m_strKorName[64];
char m_strEngName[64];
int m_nConLim;
char m_strLinkClassSkill[10][64];
int m_bUnitUsable;
int m_bAnimusUsable;
int m_bLauncherUsable;
int m_bWMKToolUsable;
int m_bDMKToolUnitUsable;
int m_bBMKToolUnitUsable;
int m_nMakeTrapMaxNum;
int m_nBnsForHP;
int m_nBnsForFP;
int m_nBnsForSP;
int m_nUpValueDefMastery;
_mastery_lim_data m_MasteryLim;
int m_bSelectRewardItem;
_class_fld::_bns_item m_DefaultItem[9];
};
? please ...i can ´t make work class.strs for 2.1.6 :/
 
Last edited:
Joined
Nov 1, 2009
Messages
842
Reaction score
276
how about this

? please ...i can ´t make work class.strs for 2.1.6 :/

find this, and you'll fix it your self



/* 1451 */
struct _mastery_lim_data
{
int m_nBnsMMastery[2];
int m_nBnsSMastery;
int m_nBnsDefMastery;
int m_nBnsPryMastery;
int m_nBnsMakeMastery[3];
int m_nBnsSkillMastery[8];
int m_nBnsForceMastery[24];
};

just read the instruction,.. becarefully
 
Junior Spellweaver
Joined
Jul 11, 2009
Messages
180
Reaction score
23
nova if i feel like fixing that strs for him then i can do so honestly stop QQ because i feel like doing the strs for ppl

and nova can u release the client side header or a few of the client side strs to me i need them asap
 
Junior Spellweaver
Joined
Jul 11, 2009
Messages
180
Reaction score
23
been learning the client side is way different. i mean its possible to use the 223 strs u just need to add colums either cstr[len=64] dword; or i32 dword;

but i cant figure out how many it needs or the ncount
 
Joined
Nov 1, 2009
Messages
842
Reaction score
276
i have a full strs for client with description and include config file, not dword or ncount...


you can see my map223.2.edf.strs sample here
novanakal - [Guide] Make STRS from Header - RaGEZONE Forums



use your a little brain
 

Attachments

You must be registered for see attachments list
Back
Top