[Release] Tera on java last client rev

@Angelis86 here are the server client and Misc opcodes for the latest Tera Eu client version 25.06
also if you could update the opcode section in the java server to the main opcode names this would be easy to update the opcodes when they change in future client updates

im working on the c# version of the server but id thought id help out by uploading the opcodes that i have.

hope this helps you cheers evestu (Beta-max) :D:
 
Last edited:
@shinru2004
I think you did a little mess with the last 4 columns.
Are those stats without armor and bonus (i mean hp/mg regain) ?
evestu
Really thanks for this. This will really help me.
But i think i will not use the name stored in the client cause it's sucks.
I will keep a dictionnay on what in tera client mean what in my emulator.

Angelis.
 
@evestu
hi.. can i ask how you get on the opcodes
if you do it yourself could you maybe explain me how you do that..? maybe i can learn a bit?
 
After Working on Silkroad emus for over 5 years you sort of get the hang of unpacking clients :)
i spend most of my time in ollydb and creating tools to help with information on the subject im trying to emulate.

Thereis no abc to how I do it just lots of time spent in debuggers.

When a new version of client is released I will retrieve the Op-code Table from that and release.

cheers evestu
 
@shinru2004
I think you did a little mess with the last 4 columns.
Are those stats without armor and bonus (i mean hp/mg regain) ?
evestu
Really thanks for this. This will really help me.
But i think i will not use the name stored in the client cause it's sucks.
I will keep a dictionnay on what in tera client mean what in my emulator.

Angelis.

Yes the regen should be without armor, its more of a global value. i tested it with and without armor and its the same. same with the mp degen on slayer
 
Yes the regen should be without armor, its more of a global value. i tested it with and without armor and its the same. same with the mp degen on slayer
I mean there is 3 times the same column of MP regain.
I think 2 are correct and the last is for hp. So, which one is good ?

Angelis.
 
ah jeah i thaught that too^^
i got a bit into debugging but its not easy as it seems..^^
i done some time on disassembling... but like you said theres no abc..^^
so far i know the process. how programms loaded and they run with doing breakpoints...
but there are not much good tuts out there.... as you said you lot of time... hope i ll come to this step some time too...

but i thaught maybe you can give me some hints on what i can take my eyes.. to learn faster...(themida specially)
but thats okay ill go my way.. ^^

thanks for your great work with the opcodes
 
Hello! For this what is the solution? After the server, click the game freezes! The server and the client is not a machine.

Angelis86 - [Release] Tera on java last client rev - RaGEZONE Forums
 
there are three columns for mp, the first column is for out of combat mp regeneration, the next one is for out of combat mp loss for slayers. Slayer Lose MP when not in combat and gain MP for each attack they do in combat. and the last column is for mp gain while in combat. Hope that clarifies the mp columns

EDIT: Side not is there any other way to find out the stats for each level? would we be able to find the stats in the client or will i have to level up each character to get the stats?
 
You can try to get formula for it, but to do this you need to know these stats. The thing is, I do not think it is possible, because they are not linear function or anything like this.
For example:
Warrior on level 1 have 1544 hp. Level 2 have 1632 hp.
If we consider that 1544 is the base then the difference per level is 88.
So in that case level 3 should have 1720 hp and level 4 should have 1808.
In game level 3 have 1725 and level 4 have 1824, so it is not linear increase.

So lets try something different. I opened up Excel and after some testing it think the formula is: previous level hp + 5,7%.
LevelHealth points
11544
21544*1,057 = 1632,008
31632*1,057 = 1725,032
41725*1,057 = 1823,359
51823*1,057 = 1927,2908
61927*1,057 = 2037,1464
72037*1,057 = 2153,2637
82153*1,057 = 2275,9997
92275*1,057 = 2405,7317

And so:
Level 10 = 2453
20 = 4427
30 = 7706
40 = 13414
50 = 23352
60 = 40651

Although this formula is off. My 36 level warrior have 10364, where this formula gives ~10746.
Also as you can see, according to formula level 4 have ~1823 HP when on Tera EU it is 1824.

I think that this formula for level 60 may be off by few thousands. Still having tweakable formula is always better than hard coded data. If someone gets formulas for other classes (well, it may be the same but I do not have will to create another characters and get them to ~5 level) and mana.

Edit:
Tested with sorcerer, for level 33 formula is off by ~150 HP. I think that we can assume that Previous level hp * 1,057 is almost correct. Changing the 5,7% to smaller number would make first levels more off.

Can someone tell me how much this formula is off by the level 60?
Also base hp for all classes would also be nice. I know Warrior (1544) and Sorcerer (1316). Maybe later i will check this myself, but it would make work easier for me.
 
Last edited:
Here is the c# calculation for base stats

for (int i = 0; i < 8; i++)
{
PlayerStats.Add((PlayerClass) i, new Dictionary<int, CreatureBaseStats>());


CreatureBaseStats firstLevelStats = Data.Data.Stats;


for (int j = 1; j < 100; j++)
{
CreatureBaseStats stats = firstLevelStats.Clone();


stats.HpBase = (int) (stats.HpBase*(1 + (j - 1)*0.116));
stats.HpStamina = (int)(stats.HpStamina * (1 + (j - 1) * 0.14));



stats.MpBase = (int)(stats.MpBase * (1 + (j - 1) * 0.07));
stats.MpStamina = (int)(stats.MpStamina * (1 + (j - 1) * 0.12));


stats.Power += i - 1;
stats.Endurance += i - 1;


PlayerStats[stats.PlayerClass].Add(j, stats);
}

}

I am afraid that we should do each stats one by one to get something good.

BTW i updated first post.

Angelis.
 
If J is player level, then this script must be wrong.
Part that I tried to do is:
Code:
[COLOR=#333333]stats.HpBase = (int) ([/COLOR][COLOR=#333333]stats.HpBase[/COLOR][COLOR=#333333]*(1 + (j - 1) * 0.116));[/COLOR]
HpBase on Tera EU is 1544.
If j = 1 (first level) then for warrior:
Code:
[COLOR=#333333]stats.HpBase = (int) ([/COLOR][COLOR=#333333]1544[/COLOR][COLOR=#333333]*(1 + 0 * 0.116));[/COLOR]

So 1544 * 1 = 1544. It is okey. If j = 2 (second level):

Code:
[COLOR=#333333]stats.HpBase = (int) (1544*(1 + 1 * 0.116));[/COLOR]

So: 1544 * 1,116 = 1723
This is wrong, as level 2 warrior have 1632 hp.

If j = 3 (third level):
Code:
[COLOR=#333333]stats.HpBase = (int) (1723*(1 + 2 * 0.116));[/COLOR]

So: 1723* 1,232 = 2122
This is definitely to big, so i think that this formula is wrong.
 
Back