[Request] Updated Engine/Server/Client
Sorry, may have posted this in the wrong section! I can't find where to delete it, so feel free to move this to the appropriate section mod.
Hi All,
I played RF online back in '06 and I'm back again to relive some of my favourite MMO moments.
To contribute to one of my favourite games, I'm currently building a guide website.
The aim of the website is to help new and experienced players alike understand the game much better on a technical level, something that has been severely lacking.
My hope is that this information will aid them in strategy creation and forming a plan for how to build their characters, and hopefully ensure that players ultimately don't quit so fast.
To begin some of my research, I recently downloaded the package from here posted by KillerStefan, which contained Engine/Server/Client files:
[Release] RF Online Sourcecode (Client + Server + Engine) - RaGEZONE - MMO development community
It's been a superb help understanding how the game was put together, however it is very old and outdated. Since I am coming from a web development background (html, css, javascript, php) I have a limited understanding of C++. I wasn't able to find information for a few things on my list that I really wanted to put on my website.
I would be very grateful if anybody is able to help me with more up to date c++ files.
Alternatively, if you can help me with the following information:
- What is the formula for accuracy/dodge, what variables does it take?
- What is the formula for block rate?
- What is the formula for elemental resistance, how much does it affect your defense?
- How is defense calculated versus attack? (i.e, why would a person with 4k attack deal 1k damage to someone with 4k defense)
- What is the formula for upgrading, what variables does it take?
- What happens when you level up a force from level 1 to level 2 (Percentage/fixed increase on damage? Percentage/fixed increase on debuff/buff time?)
- Is there a damage increase when using attack skill/forces? What is the specific damage increase of each skill/force?
To further explain what I mean when I say formula, an example would be if I have 150 dodge. how does that work in relation to monster accuracy, character distance, weapon type, RAND, and any other variables relevant to dodge? I am looking for some sort of formula or algorithm I can use to determine the amount of dodge required for each monster. Same goes for block rate and similar properties.
I scoured the c++ files above by couldn't find any information in the dot points listed. Perhaps it's there and I missed it! If so could someone point me in the right direction?
If you have any suggestions of what else I should put on the guide website, I'd love to hear them. I'll also be posting monster data, item data, map data etc.
I understand these values might change from private servers because people may have changed how they worked, which is why i'm mostly building it for the official gamescampus users (sorry private servers!)
That's all for now. If anybody is able to help me out it would be much appreciated! :)
Re: [Request] Updated Engine/Server/Client
Quote:
What happens when you level up a force from level 1 to level 2 (Percentage/fixed increase on damage? Percentage/fixed increase on debuff/buff time?)
Is there a damage increase when using attack skill/forces? What is the specific damage increase of each skill/force?
You could find out about that one on force.dat, skill.dat and classskill.dat serverside, there is percentage on each lv of force/skill.
Both damage or just effect
Re: [Request] Updated Engine/Server/Client
Thanks for the quick and helpful response likerturban! I'll take a look into those files you mentioned.
Re: [Request] Updated Engine/Server/Client
For defence bare in mind clean server files don't have proper defence and elemental resistance working. Your best bet is to find someone willing to take the time to use %hitme (part). By default when all armor is plus 0 it uses the players Upper. Don't know if the Gamecampus elemental resistance and defence is fixed or not. All I know is their customer support is shit.
For upgrading I don't remember which file to look at but upgrading works like this.There are 3 values for each upgrade plus the Gems you use, Chance of being Upgraded, chance of being destroyed, chance of being wiped. I know my copy of the .ini files for a zone server feature have been edited but there are a good chance the following values have not been changed. Ones marked could be wrong have about a 70% chance of being wrong other values may be off too.
Normal Grade
Safe from Wipes for the first 4 upgrades
Safe from Destruction for the first 4 upgrades
Intense
Safe from Wipes for the first 2 upgrades
Safe from Destruction for the first 2 upgrades
Violet
Safe from Wipes for the first 2 upgrades
Safe from Destruction for the first 2 upgrades
Orange
Safe from Wipes for the first 2 upgrades (could be wrong)
Safe from Destruction for the first 1 upgrade (could be wrong)
Relic
Safe from Wipes for the first 2 upgrades (could be wrong)
Not safe from Destruction
Re: [Request] Updated Engine/Server/Client
Hey HaterAids, thanks for the response and info :) I appreciate you giving the time to help out.
In terms of upgrades, I am more looking for what combinations give a certain probability, for example:
Type B 50 Staff +2 is being upgraded to +3 KEEN
Two T3 Gems and two T4 gems are being used to improve the probability.
(Weapon upgrade probability default + (GEM1 probability increase + GEM2 probability increase + GEM3 probability increase + GEM4 probability increase)) = 65% chance of upgrading.
Or something like that.
Re: [Request] Updated Engine/Server/Client
About defense.. no matter what you do to increase it you wont get the proper results.. to solve it instead you mess with the defense values, mess with the Defense Success Rate [DSR] in armors.. in the server and client files it should be the the column "DefFacing".. the values are based on percentage but in the client side it displays whole numbers.. the values in DefFacing has a reverse effect.. set the values to higher in your armors and you will get a lower DSR ingame.. however set the defFacing lower then you will get higher DSR in game.. play with it a little bit and youl know..
Re: [Request] Updated Engine/Server/Client
Hi all, thanks for your replies. Sorry I haven't responded for a bit. I'm really looking for concrete values.
An example of this would be the following: 220 defence, with a defence rate of 70 gives a 65.7% - 70.1% damage reduction when being hit by a character with an attack of 1024 - 1542.
Another example might be:
I have 200 dodge. The mob I am fighting has 610 accuracy. The mob has a 71.9% chance to hit me.
If anybody can help me find the algorithms, or formulas that dictate how these mechanics work I would be very grateful. Thanks a lot in advance!
Re: [Request] Updated Engine/Server/Client
You could find it in ida pro, it's pain in the ass tho', because you need to understand each value, each struct, etc.
As for how it happened in the simpliest way, i dont think it would be so accurate
Re: [Request] Updated Engine/Server/Client
So I managed to get my hands on the source code for ZoneServer 2.2.1 after some scouring of google. (If anybody thinks thats useful to them, I can post it in the release section).
I've managed to deduce what variables are in PVP combat, however monster combat is different!
As you can see from the following code function, player dodge isn't even part of the equation:
float CMonster::GetAttackProb()
{
if (IsValidPlayer())
{
float res = ((_monster_fld*)m_pRecordSet)->m_fAttSklUnit -
float( m_pPlayerTarget->GetLevel() * 10.f+m_pPlayerTarget->GetDefSkill())/4.0 + 70.f;
if(res < 5) res = 5;
else if(res > 95) res = 95;
return res;
}
return 0;
}
If there's anybody who can help me understand these files, I would really appreciate it.
Re: [Request] Updated Engine/Server/Client
Quote:
Originally Posted by
tjdal0827c
So I managed to get my hands on the source code for ZoneServer 2.2.1 after some scouring of google. (If anybody thinks thats useful to them, I can post it in the release section).
I've managed to deduce what variables are in PVP combat, however monster combat is different!
As you can see from the following code function, player dodge isn't even part of the equation:
float CMonster::GetAttackProb()
{
if (IsValidPlayer())
{
float res = ((_monster_fld*)m_pRecordSet)->m_fAttSklUnit -
float( m_pPlayerTarget->GetLevel() * 10.f+m_pPlayerTarget->GetDefSkill())/4.0 + 70.f;
if(res < 5) res = 5;
else if(res > 95) res = 95;
return res;
}
return 0;
}
If there's anybody who can help me understand these files, I would really appreciate it.
are you sure it's 2.2.1? because as far as i know, it's an old version beta version, and not compilable...
and i'm not even sure if you look in the correct function, i doubt it's that function which calculating the attack...
Re: [Request] Updated Engine/Server/Client
That is identical to what the beta zoneserver has for it. If you put up the "2.2.1" in the release i'll at least check to see if there is ANY difference between the "2.2.1" and the known beta. Your best bet would to use the PVP combat as the base for PVE Combat and update it as differences are actually found via testing. PS check if SET BONUSES factor into the PVP combat. If they don't pretty sure that its a Beta ZoneServer and the uploader lied.
Re: [Request] Updated Engine/Server/Client
Yes I think you're both correct. The uploaded had labelled it 2.2.1 and has misled me. I used IDAPro and decompile the actual 2.2.3 zone server and it's completely different (despite being decompiled c++ vs actual source, it has the dodge variable I was looking for in the equation.)
Thanks for the help so far guys, I'll continue with IDAPro and hopefully it will answer all my questions.