Welcome!

Join our community of MMORPG enthusiasts and private server developers! By registering, you'll gain access to in-depth discussions on source codes, binaries, and the latest developments in MMORPG server files. Collaborate with like-minded individuals, explore tutorials, and share insights on building and optimizing private servers. Join us today and unlock the full potential of MMORPG server development!

Join Today!

RF Offline Grenade Launcher (Ammo)

Newbie Spellweaver
Joined
Jul 17, 2024
Messages
18
Reaction score
2
Hello guys, can you guys provide some help on how to edit the Grenade Launcher ammo effects on the RF Ofline game.

I want to change the ammo count (i.e. 100 Shot > 5000 shot or something) etc
I want to change the effect count (i.e. Shockwave ammo only remove 1 force buff > remove full force buff) etc
I want to change the debuff duration count (i.e. 20 Seconds debuff > 90 seconds debuff) etc
I want to change the ammo grading (Grenade launcher A>B>C>D) etc

I already gain some little knowledge on STRS thing, but for some reason i can't seem to edit this Grenade Launcher ammo thing. It's either crashed or the server just doesn't work at the beginning, so is is really possible to change this Grenade Launcher ammo?

Thanks a lot for your help~
 
I will be refrencing using the excel parser by TriRozhka as it makes explaining far easier.. but you can do the same with strs files

* I want to change the ammo count
Possible, BulletItem.xlsx -> DurUnit (value used to set ammo count)

* I want to change the effect count
Partly Possible, BulletItem.xlsx -> EffectIndex You can edit which effect is used - but not edit the effect completely

*I want to change the debuff duration count
Possible, First find the effect index (BulletItem.xlsx -> EffectIndex) then in BulletItemEffect.xlsx -> ContEffSec1 to set duration

* I want to change the ammo grading
Possible, BulletItem.xlsx -> BulletType sets the grade of grenade launcher that can use the ammo "LMNO" means all glaunchers can use it.
 
Upvote 0
I will be refrencing using the excel parser by TriRozhka as it makes explaining far easier.. but you can do the same with strs files

* I want to change the ammo count
Possible, BulletItem.xlsx -> DurUnit (value used to set ammo count)

* I want to change the effect count
Partly Possible, BulletItem.xlsx -> EffectIndex You can edit which effect is used - but not edit the effect completely

*I want to change the debuff duration count
Possible, First find the effect index (BulletItem.xlsx -> EffectIndex) then in BulletItemEffect.xlsx -> ContEffSec1 to set duration

* I want to change the ammo grading
Possible, BulletItem.xlsx -> BulletType sets the grade of grenade launcher that can use the ammo "LMNO" means all glaunchers can use it.
Thanks for the reply,

- Change ammo count, clear explanation thanks. But i can't seems to change the DurUnit without the game getting crashed or server crashed (error from Server side, i forgot what the name of error is)

- Change effect count, clear explanation thanks. But i have some little information that if i want to change the effects then i have to mess with the BulletEffectItem.dat at the Server side. But the thing is i can't open this BulletEffectItem.dat with STRS apps, it'll just pops up a random words unlike what i do with the ClassSkills.dat thing.

- Debuff duration, clear explanation will try later thanks.

- Change the ammo grading, clear explanation but still getting error just like the first case. Crashed.

Is there any way to open the BulletItemEffect.dat (server side) with STRS without it popping up some random notepad words? I've been asking here and there but it seems like no one can mess around with the BulletItemEffect.dat without getting errors...

Thanks a lot!
 
Last edited:
Upvote 0
So it's been a couple days since i posted this, seems like no one able to help me on this one? Is it impossible to mess around with the bullet effect of Grenade Launcher?
 
Upvote 0
All the info you queried was posted before.. other than dealing with incomplete strs files. Most use the excel parser by TriRozhka for editing data files.. as you just edit the cells and export the changes. Already handles reading/writing all the data files.

Otherwise you have to learn to use a hex editor and how data is stored in the .dat files
 
Upvote 0
So it's been a couple days since i posted this, seems like no one able to help me on this one? Is it impossible to mess around with the bullet effect of Grenade Launcher?
BulletItemEffect use skill.strs from server side, and SkillForce.edf on client side
 
Upvote 0
BulletItemEffect use skill.strs from server side, and SkillForce.edf on client side

Below is the "BulletItemEffect.edf" from Server Side :
1722513945487 - RF Offline Grenade Launcher (Ammo) - RaGEZONE Forums

Can you help me, which one should i mess around in the "BulletItemEffect.edf"? Thank you...



Below is the "SkillForce.edf" from Server Side :

1722513827544 - RF Offline Grenade Launcher (Ammo) - RaGEZONE Forums


Can you help me, which one should i mess around in the "SkillForce.edf"? Thank you...

All the info you queried was posted before.. other than dealing with incomplete strs files. Most use the excel parser by TriRozhka for editing data files.. as you just edit the cells and export the changes. Already handles reading/writing all the data files.

Otherwise you have to learn to use a hex editor and how data is stored in the .dat files
Oh it's been posted before? How can i look for it? What's the keyword? Or if you can link me the post please? Thank you
 

Attachments

  • 1722513931122 - RF Offline Grenade Launcher (Ammo) - RaGEZONE Forums
    1722513931122.webp
    158.8 KB · Views: 20
Last edited:
Upvote 0
Below is the "BulletItemEffect.edf" from Server Side :
View attachment 264660
Can you help me, which one should i mess around in the "BulletItemEffect.edf"? Thank you...



Below is the "SkillForce.edf" from Server Side :

View attachment 264655

Can you help me, which one should i mess around in the "SkillForce.edf"? Thank you...


Oh it's been posted before? How can i look for it? What's the keyword? Or if you can link me the post please? Thank you
In 99% of cases .strs files are incomplete or the data dosen't match between versions (GU/AoP) plus there is a metric ton of files that all require their own .strs files for client (usually most broken) and server (usually 95% complete as the header exists)

Uploaded the docs for the parser should give you an idea how it works (no zip password)
 

Attachments

Upvote 0
Below is the "BulletItemEffect.edf" from Server Side :
View attachment 264660
Can you help me, which one should i mess around in the "BulletItemEffect.edf"? Thank you...



Below is the "SkillForce.edf" from Server Side :

View attachment 264655

Can you help me, which one should i mess around in the "SkillForce.edf"? Thank you...


Oh it's been posted before? How can i look for it? What's the keyword? Or if you can link me the post please? Thank you
You need to load skill.strs then open bulletitemeffect you know 🤦🏻‍♂️
As for skillforce.edf your strs might be wrong, probably textdesc is the bullet
 
Upvote 0
You need to load skill.strs then open bulletitemeffect you know 🤦🏻‍♂️
As for skillforce.edf your strs might be wrong, probably textdesc is the bullet

How to find this "skill.strs" thing to load before i load the "BulletItemEffect.edf"?

So the "skillforce.edf" thing is wrong? How to find a correct one please?

Thank you

Th
In 99% of cases .strs files are incomplete or the data dosen't match between versions (GU/AoP) plus there is a metric ton of files that all require their own .strs files for client (usually most broken) and server (usually 95% complete as the header exists)

Uploaded the docs for the parser should give you an idea how it works (no zip password)
Thanks i'll check it out
 
Last edited:
Upvote 0
Try this one for server side ClassSkill.dat, Skill.dat, PotionItem.dat, BulletItemEffect.dat
just copy paste to your notepad save as File name.strs

Code:
[filemask="ClassSkill.dat;Skill.dat;PotionItemEffect.dat;BulletItemEffect.dat"]

//-------------------------------------Structure From Header.Decompiler By Novanakal----------------------------\\
struct SkillFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child SkillBlock [count=nBlocks];
}

struct SkillBlock [preload=1, tableview=1]
{
  u32 Index;
  cstr [len=64] SkillCode;
  i32 Class;
  i32 Icon;
  i32 MastIndex;
  cstr [len=64] MastKorName;
  cstr [len=64] MastEngName;
  cstr [len=64] KoreaName;
  cstr [len=64] EnglishName;
  i32 Level;
  i32 Activate;
  i32 Enable;
  cstr [len=64] UsableRace;
  cstr [len=64] ActableDst;
  cstr [len=64] GradeLimit;
  i32 NeedMastIndex;
  cstr [len=64] FixWeapon;
  i32 Fixshield;
  i32 SpecialType;
  i32 NeedSpecialType;
  i32 NeedHP;
  i32 NeedFP;
  i32 NeedSP;
repeat 3
{
  cstr [len=8] NeedItemCode;
  i32 NeedItemCount;
}
  float fActDelay;
  i32 CumulType;
  i32 CumulCounter;
  i32 NewEffCount;
  cstr [len=64] EffectCode;
  i32 Attackable;
repeat 7
{
i32 AttType;
}
repeat 7
{
i32 AttConstant;
}
float AttFormulaConstant;
i32 AttNeedBt;
i32 BonusDistance;
cstr [len=64] RangeEffCode;
i32 TempEffectType;
i32 TempParamCode;
repeat 7
{
float TempValue;
}
i32 ContEffectType;
i32 EffLimType;
i32 EffLimType2;
i32 ContAreaType;
repeat 5
{
i32 ContParamCode;
i32 ContParamIndex;
repeat 7
{
float ContValue;
}
}
repeat 7
{
i32 ContEffectSec;
}
i32 Etc;
float f1_2speed;
float f1_2distance;
float f2_3speed;
float f2_3distance;
i32 EffectClass;
}

and try this for client side SkillForce.dat
Code:
[filemask="SkillForce.dat"]


struct SkillForceFile
{
i32 ForceBlocks;
i32 ForceSize;
child Force [group="Force Spells", count=ForceBlocks];
seek (ForceBlocks*ForceSize+8);
i32 SkillBlocks;
i32 SkillSize;
child Skill [group="Skills", offset=(ForceBlocks*ForceSize+16), count=SkillBlocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+16);
i32 Skill2Blocks;
i32 Skill2Size;
child Skill [group="Class skill", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+24), count=Skill2Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+24);
i32 Skill3Blocks;
i32 Skill3Size;
child Skill [group="BulletEffect", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+32), count=Skill3Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+32);
i32 Skill4Blocks;
i32 Skill4Size;
child Skill [group="PotionEffects", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+40), count=Skill4Blocks];
}

struct Force [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;
i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i8 [tag="18"] DWORD;
i16 [tag="19"] DWORD;
i32 [tag="20"] DWORD;
i32 [tag="21"] DWORD;
i32 [tag="22"] DWORD;
i32 [tag="23"] DWORD;
i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;
x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27"] DWORD;
i32 [tag="28"] DWORD;
i32 [tag="29"] DWORD;
i32 [tag="30"] DWORD;
i32 [tag="31"] DWORD;
i8 [tag="-----"] DWORD;
i8 [tag="-----"] DWORD;
i16 [tag="-----"] DWORD;
}

struct Skill [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;

i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i [size=3,tag="18",hidden=1] DWORD;
i32 [tag="20",hidden=1] DWORD;
i32 [tag="21",hidden=1] DWORD;
i32 [tag="22",hidden=1] DWORD;
i32 [tag="23",hidden=1] DWORD;

i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;

x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27",hidden=1] DWORD;
i32 [tag="28",hidden=1] DWORD;
i32 [tag="29",hidden=1] DWORD;
i32 [tag="30",hidden=1] DWORD;
i32 [tag="31",hidden=1] DWORD;
i8 [tag="Ammo type"] DWORD;
i [size = 3,tag="31",hidden=1] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel speed 1"] DWORD;
float [tag="attack travel speed 2"] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel distance 1"] DWORD;
float [tag="attack travel distance 2"] DWORD;
}
 
Last edited:
Upvote 0
Try this one for server side ClassSkill.dat, Skill.dat, PotionItem.dat, BulletItemEffect.dat
just copy paste to your notepad save as File name.strs

Code:
[filemask="ClassSkill.dat;Skill.dat;PotionItemEffect.dat;BulletItemEffect.dat"]

//-------------------------------------Structure From Header.Decompiler By Novanakal----------------------------\\
struct SkillFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child SkillBlock [count=nBlocks];
}

struct SkillBlock [preload=1, tableview=1]
{
  u32 Index;
  cstr [len=64] SkillCode;
  i32 Class;
  i32 Icon;
  i32 MastIndex;
  cstr [len=64] MastKorName;
  cstr [len=64] MastEngName;
  cstr [len=64] KoreaName;
  cstr [len=64] EnglishName;
  i32 Level;
  i32 Activate;
  i32 Enable;
  cstr [len=64] UsableRace;
  cstr [len=64] ActableDst;
  cstr [len=64] GradeLimit;
  i32 NeedMastIndex;
  cstr [len=64] FixWeapon;
  i32 Fixshield;
  i32 SpecialType;
  i32 NeedSpecialType;
  i32 NeedHP;
  i32 NeedFP;
  i32 NeedSP;
repeat 3
{
  cstr [len=8] NeedItemCode;
  i32 NeedItemCount;
}
  float fActDelay;
  i32 CumulType;
  i32 CumulCounter;
  i32 NewEffCount;
  cstr [len=64] EffectCode;
  i32 Attackable;
repeat 7
{
i32 AttType;
}
repeat 7
{
i32 AttConstant;
}
float AttFormulaConstant;
i32 AttNeedBt;
i32 BonusDistance;
cstr [len=64] RangeEffCode;
i32 TempEffectType;
i32 TempParamCode;
repeat 7
{
float TempValue;
}
i32 ContEffectType;
i32 EffLimType;
i32 EffLimType2;
i32 ContAreaType;
repeat 5
{
i32 ContParamCode;
i32 ContParamIndex;
repeat 7
{
float ContValue;
}
}
repeat 7
{
i32 ContEffectSec;
}
i32 Etc;
float f1_2speed;
float f1_2distance;
float f2_3speed;
float f2_3distance;
i32 EffectClass;
}

and try this for client side SkillForce.dat
Code:
[filemask="SkillForce.dat"]


struct SkillForceFile
{
i32 ForceBlocks;
i32 ForceSize;
child Force [group="Force Spells", count=ForceBlocks];
seek (ForceBlocks*ForceSize+8);
i32 SkillBlocks;
i32 SkillSize;
child Skill [group="Skills", offset=(ForceBlocks*ForceSize+16), count=SkillBlocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+16);
i32 Skill2Blocks;
i32 Skill2Size;
child Skill [group="Class skill", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+24), count=Skill2Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+24);
i32 Skill3Blocks;
i32 Skill3Size;
child Skill [group="BulletEffect", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+32), count=Skill3Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+32);
i32 Skill4Blocks;
i32 Skill4Size;
child Skill [group="PotionEffects", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+40), count=Skill4Blocks];
}

struct Force [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;
i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i8 [tag="18"] DWORD;
i16 [tag="19"] DWORD;
i32 [tag="20"] DWORD;
i32 [tag="21"] DWORD;
i32 [tag="22"] DWORD;
i32 [tag="23"] DWORD;
i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;
x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27"] DWORD;
i32 [tag="28"] DWORD;
i32 [tag="29"] DWORD;
i32 [tag="30"] DWORD;
i32 [tag="31"] DWORD;
i8 [tag="-----"] DWORD;
i8 [tag="-----"] DWORD;
i16 [tag="-----"] DWORD;
}

struct Skill [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;

i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i [size=3,tag="18",hidden=1] DWORD;
i32 [tag="20",hidden=1] DWORD;
i32 [tag="21",hidden=1] DWORD;
i32 [tag="22",hidden=1] DWORD;
i32 [tag="23",hidden=1] DWORD;

i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;

x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27",hidden=1] DWORD;
i32 [tag="28",hidden=1] DWORD;
i32 [tag="29",hidden=1] DWORD;
i32 [tag="30",hidden=1] DWORD;
i32 [tag="31",hidden=1] DWORD;
i8 [tag="Ammo type"] DWORD;
i [size = 3,tag="31",hidden=1] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel speed 1"] DWORD;
float [tag="attack travel speed 2"] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel distance 1"] DWORD;
float [tag="attack travel distance 2"] DWORD;
}
Error loading field Unknown: Child structure expression nBlocks produces 1818846811 children. Please verify that the expression is correct and the correct structure has been applied

yep it seems that the version is different, because its error when i try the BulletItemEffect.dat
 
Upvote 0
Error loading field Unknown: Child structure expression nBlocks produces 1818846811 children. Please verify that the expression is correct and the correct structure has been applied

yep it seems that the version is different, because its error when i try the BulletItemEffect.dat
what are you using for the version? upload your file and i'll check it
 
Upvote 0
what are you using for the version? upload your file and i'll check it
What filename did you need? The strs apps or client patch or? Can you specify the filename that i need to upload please? Because there's so many files in here...
 
Upvote 0
your file works fine using this strs.... i attach strs and your file again.
BulletItemEffect - RF Offline Grenade Launcher (Ammo) - RaGEZONE Forums
skill forc - RF Offline Grenade Launcher (Ammo) - RaGEZONE Forums

Try this one for server side ClassSkill.dat, Skill.dat, PotionItem.dat, BulletItemEffect.dat
just copy paste to your notepad save as File name.strs

Code:
[filemask="ClassSkill.dat;Skill.dat;PotionItemEffect.dat;BulletItemEffect.dat"]

//-------------------------------------Structure From Header.Decompiler By Novanakal----------------------------\\
struct SkillFile
{
u32 nBlocks;
u32 nColumns;
u32 nSize;
child SkillBlock [count=nBlocks];
}

struct SkillBlock [preload=1, tableview=1]
{
  u32 Index;
  cstr [len=64] SkillCode;
  i32 Class;
  i32 Icon;
  i32 MastIndex;
  cstr [len=64] MastKorName;
  cstr [len=64] MastEngName;
  cstr [len=64] KoreaName;
  cstr [len=64] EnglishName;
  i32 Level;
  i32 Activate;
  i32 Enable;
  cstr [len=64] UsableRace;
  cstr [len=64] ActableDst;
  cstr [len=64] GradeLimit;
  i32 NeedMastIndex;
  cstr [len=64] FixWeapon;
  i32 Fixshield;
  i32 SpecialType;
  i32 NeedSpecialType;
  i32 NeedHP;
  i32 NeedFP;
  i32 NeedSP;
repeat 3
{
  cstr [len=8] NeedItemCode;
  i32 NeedItemCount;
}
  float fActDelay;
  i32 CumulType;
  i32 CumulCounter;
  i32 NewEffCount;
  cstr [len=64] EffectCode;
  i32 Attackable;
repeat 7
{
i32 AttType;
}
repeat 7
{
i32 AttConstant;
}
float AttFormulaConstant;
i32 AttNeedBt;
i32 BonusDistance;
cstr [len=64] RangeEffCode;
i32 TempEffectType;
i32 TempParamCode;
repeat 7
{
float TempValue;
}
i32 ContEffectType;
i32 EffLimType;
i32 EffLimType2;
i32 ContAreaType;
repeat 5
{
i32 ContParamCode;
i32 ContParamIndex;
repeat 7
{
float ContValue;
}
}
repeat 7
{
i32 ContEffectSec;
}
i32 Etc;
float f1_2speed;
float f1_2distance;
float f2_3speed;
float f2_3distance;
i32 EffectClass;
}

and try this for client side SkillForce.dat
Code:
[filemask="SkillForce.dat"]


struct SkillForceFile
{
i32 ForceBlocks;
i32 ForceSize;
child Force [group="Force Spells", count=ForceBlocks];
seek (ForceBlocks*ForceSize+8);
i32 SkillBlocks;
i32 SkillSize;
child Skill [group="Skills", offset=(ForceBlocks*ForceSize+16), count=SkillBlocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+16);
i32 Skill2Blocks;
i32 Skill2Size;
child Skill [group="Class skill", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+24), count=Skill2Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+24);
i32 Skill3Blocks;
i32 Skill3Size;
child Skill [group="BulletEffect", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+32), count=Skill3Blocks];
seek (ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+32);
i32 Skill4Blocks;
i32 Skill4Size;
child Skill [group="PotionEffects", offset=(ForceBlocks*ForceSize+SkillBlocks*SkillSize+Skill2Blocks*Skill2Size+Skill3Blocks*Skill3Size+40), count=Skill4Blocks];
}

struct Force [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;
i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i8 [tag="18"] DWORD;
i16 [tag="19"] DWORD;
i32 [tag="20"] DWORD;
i32 [tag="21"] DWORD;
i32 [tag="22"] DWORD;
i32 [tag="23"] DWORD;
i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;
x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27"] DWORD;
i32 [tag="28"] DWORD;
i32 [tag="29"] DWORD;
i32 [tag="30"] DWORD;
i32 [tag="31"] DWORD;
i8 [tag="-----"] DWORD;
i8 [tag="-----"] DWORD;
i16 [tag="-----"] DWORD;
}

struct Skill [preload=1]
{
i32 [tag="nCount"] DWORD;
x32 [tag="ID"] DWORD;
i32 [tag="Icon"] DWORD;
i8 [tag="Type"] DWORD;
i8 [tag="Active"] DWORD;
i8 [tag="Group"] DWORD;
i8 [tag="Group Type"] DWORD;
cstr [len=32] "KorGroup";
cstr [len=32] "EngGroup";
cstr [len=32] "KorName";
cstr [len=32] "EngName";
repeat 7
{
i8 [tag="type??"] DWORD; //3=self, 1=pvp,2=pvp/pve,0 attack,4... special attack????
i8 [tag="Effect code 1"] DWORD;
i8 [tag="Effect code 2"] DWORD;
i8 [tag="Effect code 3"] DWORD;
i8 [tag="Effect code 4"] DWORD;
i8 [tag="Effect code 5"] DWORD;
i8 [tag="Effect code 6"] DWORD;
i8 [tag="Effect code 7"] DWORD;
i32  [tag="Ability code set index"] DWORD;
float [tag="1lv"] DWORD;
float [tag="2lv"] DWORD;
float [tag="3lv"] DWORD;
float [tag="4lv"] DWORD;
float [tag="5lv"] DWORD;
float [tag="6lv"] DWORD;
float [tag="7lv"] DWORD;
}
i32 [tag="Time 1lv"] DWORD;
i32 [tag="Time 2lv"] DWORD;
i32 [tag="Time 3lv"] DWORD;
i32 [tag="Time 4lv"] DWORD;
i32 [tag="Time 5lv"] DWORD;
i32 [tag="Time 6lv"] DWORD;
i32 [tag="Time 7lv"] DWORD;

i8 [tag="BM"] DWORD;
i8 [tag="BF"] DWORD;
i8 [tag="CM"] DWORD;
i8 [tag="CF"] DWORD;
i32 [tag="A"] DWORD;
i8 [tag="---------------"] DWORD;
i8 [tag="Target Self"] DWORD;
i8 [tag="Target Race"] DWORD;
i8 [tag="Target PvP"] DWORD;
i8 [tag="Target PvE"] DWORD;
i32 [tag="Target Item?"] DWORD;

i8 [tag="---------------"] DWORD;
i8 [tag="Sword?"] DWORD;
i8 [tag="Spear?"] DWORD;
i8 [tag="Axe?"] DWORD;
i8 [tag="Mace"] DWORD;
i8 [tag="Knife?"] DWORD;
i8 [tag="Bow"] DWORD;
i8 [tag="Firearm"] DWORD;
i8 [tag="Launcher"] DWORD;
i8 [tag="Throwing"] DWORD;
i8 [tag="Staff"] DWORD;

i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="11"] DWORD;
i32 [tag="12"] DWORD;
i32 [tag="13"] DWORD;
i32 [tag="14"] DWORD;

i32 [tag="Shield Required"] DWORD;
i8 [tag="Special type"] DWORD;
i8 [tag="Need special type"] DWORD;
i16 [tag="HP"] DWORD;
i16 [tag="FP"] DWORD;
i16 [tag="SP"] DWORD;
float [tag="Cooldown"];
float [tag="Range"] DWORD;
cstr [len=512] Description;
i8 [tag="EffectClass"] DWORD;
i [size=3,tag="18",hidden=1] DWORD;
i32 [tag="20",hidden=1] DWORD;
i32 [tag="21",hidden=1] DWORD;
i32 [tag="22",hidden=1] DWORD;
i32 [tag="23",hidden=1] DWORD;

i8 [tag="effect Target 1"] DWORD; //self?
i8 [tag="effect Target 2"] DWORD;
i8 [tag="effect Target 3"] DWORD;
i8 [tag="effect Target 4"] DWORD;
i8 [tag="effect Target 5"] DWORD;
i8 [tag="effect Target 6"] DWORD;
i8 [tag="effect Target 7"] DWORD;
i8 [tag="effect Target 8"] DWORD;
i8 [tag="effect Target 9"] DWORD;
i8 [tag="effect Target 10"] DWORD;
i8 [tag="effect Target 11"] DWORD;
i8 [tag="effect Target 12"] DWORD;

x32 [tag="RangeEffCode"] DWORD;
i32 [tag="27",hidden=1] DWORD;
i32 [tag="28",hidden=1] DWORD;
i32 [tag="29",hidden=1] DWORD;
i32 [tag="30",hidden=1] DWORD;
i32 [tag="31",hidden=1] DWORD;
i8 [tag="Ammo type"] DWORD;
i [size = 3,tag="31",hidden=1] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel speed 1"] DWORD;
float [tag="attack travel speed 2"] DWORD;
i32 [tag="x",hidden=1] DWORD;
float [tag="attack travel distance 1"] DWORD;
float [tag="attack travel distance 2"] DWORD;
}
 

Attachments

Upvote 0
Last edited:
Upvote 0
Back