really annoying shit which would vanish if the emulator project would progress faster
<outloud thought>
I agree, and I am thinking the same. Pretty strongly, I think and feel that the state we are currently in with the old server files that we have -- is either really close to a brick wall, or maybe even already at that brick wall (not including customization, but even that only goes so far)...! Which is another reason I decided to pop out my release. Most of the 'major' things that are 'missing' from this "ancient version" we'll supposedly never have (like the new races/classes genies autopathing -- and the list just goes on)... So until there is a fully functional 'emulator' developed, or unless someone/somehow figured out how to modify our existing server to be compatible with the newest clients -- what we have right now is pretty darn 'complete'... I really wish I could help with such a project but honestly I wouldn't be able to because so far I've done this as a hobby at my leisure (taking months and months "off"), and I would want to be able to dedicate myself; not to mention (honestly) I probably lack the requisite knowledge/skill to be of any use =\
But... that's what I think is the new dawn upon us. I think we are at or close to a brick wall. What we have aint gonna get much if any better. The only way to satisfy many peoples personal desires and or some of the small flaws in this old version we have will be to complete an emulator or to modify our existing server...
</outloud thought>
---------- Post added at 01:55 PM ---------- Previous post was at 01:51 PM ----------
Quote:
Originally Posted by ivanaivana
Strange for me, if other tags set correctly but this not, why developers set 133 for 1536 centerpoint :S
Correct me if I'm wrong, but if I am not mistaken; "Chrono World"/"OHT" didn't exist during 1.2.6(S)/1.3.1/6(C).
26-03-11
tbnanubis
Re: a33 problem explained
he searched for the jumptable in 1.4.3 client ;)
26-03-11
343
Re: a33 problem explained
Quote:
Originally Posted by tbnanubis
he searched for the jumptable in 1.4.3 client ;)
Has it been located ?
---------- Post added at 02:04 PM ---------- Previous post was at 01:59 PM ----------
I pretty much gave up on jump info when Das and I discovered that the world ID tag number did have something directly to do with which maps allow "big jump" and which maps only allow "small jump"... I also found out that it 'defaults' to "big jump" when I used world ID tags such as 400...
26-03-11
ivanaivana
Re: a33 problem explained
Quote:
Originally Posted by 343
Has it been located ?
---------- Post added at 02:04 PM ---------- Previous post was at 01:59 PM ----------
I pretty much gave up on jump info when Das and I discovered that the world ID tag number did have something directly to do with which maps allow "big jump" and which maps only allow "small jump"... I also found out that it 'defaults' to "big jump" when I used world ID tags such as 400...
Not table of jumps)
He said jumptable)
Jumps could be set maybe or serverside, maybe have its array in elementslient.exe too...
---------- Post added at 02:14 AM ---------- Previous post was at 01:19 AM ----------
a33.zip - tag 133 full maps and configs a33.zip - tag 132 *deleted by filehosting* and i dont have backups :D
100% stable and workin maps. Right move, water, height ~maps. Synched sev-clt.
All of 4 locations have its own respawn points.
1331 is -314.900000, 261.600000, 302.500000
1332 is 859.400000, 225.200000, 284.200000
1333 is -328.000000, 476.000000, -330.000000
1334 is 436.800000, 530.900000, -137.800000
You just need modify elementclient.exe like anubis showed (hope you won't ask do it for you also) and add your npcgen. I think you have one already.
Serverside maps works exellent with tags 132 and 133(fixed), just change tag 133=>132 or 132=>133. 132 tested 30-35 days ago fully and worked fine. 133 tested a hour ago and looks like have no bugs too.
26-03-11
Ozuru
Re: a33 problem explained
Yayyy i dont hate you anymore xD Posted via Mobile Device
26-03-11
das7002
Re: a33 problem explained
Quote:
Originally Posted by tbnanubis
ok i found the switch-case statement that checks for this stuff.
actually its sub_406020 and not sub_4060B0, which doesnt exist
This switch case statement uses a jump table which is stored hardcoded in the client exe.
here it is:
just count the bytes from 1 to 132 and each number describes the function to use when loading that map. (all bigger tags gets the default with 512 as center)
00 is for world (tag 1), size {-4096.0,-5632.0} , {4096.0,5632.0} if my gs.conf is correct
01 is used for tag 118-120, which are {-512.0,-512.0} , {512,512.0} (may be incorrect)
02 is used for tag 121,122 which are {-1024.0,-1024.0} , {1024,1024.0}
03 is used for tag 132, which is {-1536.0,-1536.0}, {1536,1536.0}
04 is used for most other maps, which is {-512.0,-512.0} , {512,512.0}
so, to make it work properly, you need to find a free tag between 1 and 132, and set the according value for its size in the elementclient, which should be 02 if i interpret the first post correctly.
I cant test this as i broke my a33 on server, but i think this will to the job. The only downside is that you have to fix all instance references to the new tag so that you can teleport there.
really annoying shit which would vanish if the emulator project would progress faster
update: its possible without changing the id of the instance :ott:
all you need is a hex editor:
Spoiler:
search
Code:
90 00 00 00 48 3D 83 00 00 00 0F 87 24 01 00 00
and replace it with
Code:
90 00 00 00 48 3D 84 00 00 00 0F 87 24 01 00 00
this does increase the number of switch/case statements to 133
thats all! :thumbup:
:mad:*trowing hatebombs at those who solved it and didn't share*:mad:
Nice bit of info you have there (now I feel jealous and want to find some little tidbit in elementclient that allows a long wanted modification like the one below)
Quote:
Originally Posted by ivanaivana
Not table of jumps)
He said jumptable)
Jumps could be set maybe or serverside, maybe have its array in elementslient.exe too...
Nope... me and 343 pretty much figured it out, the server doesn't care about the jumps at all (easily provable if you change the max jumps with cheatengine to something insanely high, see note below) and jumps are entirely client side enforced...
What actually controls it has to do with the world tag, and where that controller in elementclient is still remains a mystery
Note: When you do change the max jumps insanely high the 'ceiling' is not enforced anymore and you are able to pass right by the height limit of 79, to get back down though you can't 'fall' and you have to hop on some aerogear and attempt going 'up'
I believe this also works for 'wallhacking' the zones that are disabled in elementclient but I could be wrong...
27-03-11
HadesLis
Re: a33 problem explained
Lookin far for logic arrays i found massive of 02 ## ... ## 02 02 02 02 02 02 etc arrays near the end of code, which could be that parameters. If you know which arrays changes with CE, just get string addres from it and try to place to IDA to find out offset in hex -> right massive of jumptable for jumps ;D
27-03-11
loko9988
Re: a33 problem explained
why?
open elementclient.exe in IDA find verification for size tags
open elementclient.exe in hex edit and change code.
need return -1 to this verefication
and all work :)
27-03-11
HadesLis
Re: a33 problem explained
Quote:
Originally Posted by loko9988
why?
open elementclient.exe in IDA find verification for size tags
open elementclient.exe in hex edit and change code.
need return -1 to this verefication
and all work :)
Это касательно двойных прыжков в инстансах? Или ты все же про размеры карты, фикс которых тут расшарили после срача? хД
Are talkin about doublejumps or about map sizes?
27-03-11
Romulan
Re: a33 problem explained
Spoiler:
Quote:
Originally Posted by tbnanubis
ok i found the switch-case statement that checks for this stuff.
actually its sub_406020 and not sub_4060B0, which doesnt exist
This switch case statement uses a jump table which is stored hardcoded in the client exe.
here it is:
just count the bytes from 1 to 132 and each number describes the function to use when loading that map. (all bigger tags gets the default with 512 as center)
00 is for world (tag 1), size {-4096.0,-5632.0} , {4096.0,5632.0} if my gs.conf is correct
01 is used for tag 118-120, which are {-512.0,-512.0} , {512,512.0} (may be incorrect)
02 is used for tag 121,122 which are {-1024.0,-1024.0} , {1024,1024.0}
03 is used for tag 132, which is {-1536.0,-1536.0}, {1536,1536.0}
04 is used for most other maps, which is {-512.0,-512.0} , {512,512.0}
so, to make it work properly, you need to find a free tag between 1 and 132, and set the according value for its size in the elementclient, which should be 02 if i interpret the first post correctly.
I cant test this as i broke my a33 on server, but i think this will to the job. The only downside is that you have to fix all instance references to the new tag so that you can teleport there.
really annoying shit which would vanish if the emulator project would progress faster
update: its possible without changing the id of the instance :ott:
all you need is a hex editor:
Spoiler:
search
Code:
90 00 00 00 48 3D 83 00 00 00 0F 87 24 01 00 00
and replace it with
Code:
90 00 00 00 48 3D 84 00 00 00 0F 87 24 01 00 00
this does increase the number of switch/case statements to 133
thats all! :thumbup:
:mad:*trowing hatebombs at those who solved it and didn't share*:mad:
Ty for fix. Working well and no issue detected. :): And easier to understand than a thing like "find function char __cdecl sub_4060B0()" wich is wrong value btw :lol:
27-03-11
HadesLis
Re: a33 problem explained
Quote:
Originally Posted by Romulan
Ty for fix. Working well and no issue detected. :): And easier to understand than a thing like "find function char __cdecl sub_4060B0()" wich is wrong value btw :lol:
There is some dofferenses betwen Ru and Pwi elementclient.exe. No need to be sarcastik
27-03-11
loko9988
Re: a33 problem explained
romulan! a33 fixed in december 2010 :) on White-War
after fixed in Himera Crystal Storm and PwonlineUA
buy the way Axesass
27-03-11
343
Re: a33 problem explained
Quote:
Originally Posted by das7002
Nice bit of info you have there (now I feel jealous and want to find some little tidbit in elementclient that allows a long wanted modification like the one below)
Nope... me and 343 pretty much figured it out, the server doesn't care about the jumps at all (easily provable if you change the max jumps with cheatengine to something insanely high, see note below) and jumps are entirely client side enforced...
What actually controls it has to do with the world tag, and where that controller in elementclient is still remains a mystery
Note: When you do change the max jumps insanely high the 'ceiling' is not enforced anymore and you are able to pass right by the height limit of 79, to get back down though you can't 'fall' and you have to hop on some aerogear and attempt going 'up'
I believe this also works for 'wallhacking' the zones that are disabled in elementclient but I could be wrong...
Yea now would be the time to figure out how big/small jump is controlled; to "finalize" the OHT "fix"... Because if you use this fix and the WID:134 you may gain access to the entire map... But it's still not like official, because you're still limited to "small jump" with WID:134 (which is why in my release I changed the tag to WID:334 to permit "big jump")... That or ofc find out how to link this fix to tag 334 instead of 134...
Yea and I remember messing around with that "unlimited jump hack" utilizing cheat engine -- and I remember going to some insane height like 900 :)))))))
---------- Post added at 08:17 AM ---------- Previous post was at 08:11 AM ----------
.. ohh and to clarify -- or make sure we're on the same page; it's not actually Number as in Quantity of jumps that it permits, every map permits 2 jumps. The difference is some maps allow "BIG" jump like the world map, where you can jump ex. 50 feet in the air (with two jumps). But in almost all dungeons you are only allowed "SMALL" jump, you can still jump twice (but you have to do it really fast because of how small of a jump it is), and you only jump like 3 feet - 6 feet ex instead of 50.
27-03-11
hrace009
Re: a33 problem explained
Quote:
Originally Posted by Romulan
Ty for fix. Working well and no issue detected. :): And easier to understand than a thing like "find function char __cdecl sub_4060B0()" wich is wrong value btw :lol:
it was a value for PW Russia
27-03-11
Romulan
Re: a33 problem explained
Quote:
Originally Posted by hrace009
it was a value for PW Russia
Still wrong value for CN1.3.6 ... Strangely this fix is only good for russian haha ... :glare: