|
You last visited: Today at 14:22
Advertisement
XENA: Server Source-Code Project
Discussion on XENA: Server Source-Code Project within the EO PServer Hosting forum part of the Eudemons Online category.
07/24/2014, 15:16
|
#16
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
Quote:
Originally Posted by hio77
first thing i note, are you sure your not overextending some fields there?
mainly being Hair and power?
ild double check your power constitution, dexterity, speed, health and soul order too. by all respects mine could be off (i haven't double checked it as the bulk of the packet i already had sorted a good few years ago now..)
you PK points looks to be wrong, i have it noted as an offset of 72.
tokenpoints(uint) are at offset 88, directly followed by egghatch(ubyte)
vip level, once again, overextended values could be bad. (in saying this, i have noticed i may have stretched my wood values!)
this has struck me to double check my findings while i have ida oly and notes scattered across screens however..
when i looked at this packet, it was by capture and logic rather than tracing. so i have about 200MB of recorded packets for it... - yeah, i over did it a tad!
|
Actually I tested vip level like a month ago and unless I did something wrong, I'm pretty sure its length is right and yeah PK points was wrong just didn't update that in my excel table. :P Besides the other ones that look overstretched yeah some are, I think that came from laziness and excitement of wanting to test my packet writer lmao But as for like the order, I think most of it is accurate besides a few. Like I went into cq_user and just filled in all the parameters with random numbers so I can search and eliminate them in the packet.
Anyways is a ubyte a byte or a ushort? I'm still noob in some areas particularly data types but I got my ushort ulong uint and byte down packed  And ty for tokenpoints and egghatch. I think a big struggle after I get the packets done will be maps and map boundaries, I guess I'll have to find a way for the server to read DMaps like the old bins do.
|
|
|
07/24/2014, 16:29
|
#17
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
it really depends.. on who you ask, and what context..
i usually talk in terms of the write functions in the sources i learnt from back in my conquer days.. which is actually a tad wrong compared to logical stance on it.
reading the DMaps isnt hard, theres plenty of content out there to look at with it already complete too - gotta love TQs Lazyness eh.
overextending is fine, till you have an error, and send say 65553 to a client instead of a byte, and then you release the third arm from their body or something!
im in the process of hunting down the packet in the dissembler to confirm - semi smart move would be to look at the msg server, however some are emulations, and i forget which are actual legiment sources.. dont wanna be coping already dodgy code!
trial an error is indeed my preferred way of doing it, simply because, its idiot proof.. change one value, relog. compare output.. oh look that byte changed, clearly thats that!
also probably because reading assembly is SO easy to mess up.. oh you have been calculating edx the whole time? yeah, was meant to be looking at ecx.... back to the start >.>
what does intrigue me the most, you speak of this `packet writer` and yet your doing things manually
oh and pls epvp your not ****** spam stop going to spam dammit!
|
|
|
07/24/2014, 18:16
|
#18
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
Quote:
Originally Posted by hio77
it really depends.. on who you ask, and what context..
i usually talk in terms of the write functions in the sources i learnt from back in my conquer days.. which is actually a tad wrong compared to logical stance on it.
reading the DMaps isnt hard, theres plenty of content out there to look at with it already complete too - gotta love TQs Lazyness eh.
overextending is fine, till you have an error, and send say 65553 to a client instead of a byte, and then you release the third arm from their body or something!
im in the process of hunting down the packet in the dissembler to confirm - semi smart move would be to look at the msg server, however some are emulations, and i forget which are actual legiment sources.. dont wanna be coping already dodgy code!
trial an error is indeed my preferred way of doing it, simply because, its idiot proof.. change one value, relog. compare output.. oh look that byte changed, clearly thats that!
also probably because reading assembly is SO easy to mess up.. oh you have been calculating edx the whole time? yeah, was meant to be looking at ecx.... back to the start >.>
what does intrigue me the most, you speak of this `packet writer` and yet your doing things manually
oh and pls epvp your not bloody spam stop going to spam dammit!
|
Like when I started I literally just studied your code and ended up writing all my packets with your 'PacketProcessor.String_To_Byte("001010");' and made up a string like 'string packet = "00"; Convert.ToInt(Character.Level) to hex etc' and literally had a packet compile from a string. Because at that time I had no idea how else to do it. Then after struggling to make packet after packet taking a ridiculos amount of time and learning after everything was finished, that it wasn't even going to work because the packet length did not equal to the actual length... Yeah I like rage quit for a week. Came back and studied more on arrays, started writing bytes the correct way, which I started doing for awhile converting strings to hex strings and then into the byte, which still didn't work out for me because I just wasn't happy with the amount of time it was taking just to write 1 packet structure... So I kept studying more and more about combine bytes and all this crazy other stuff and finally wrote a packet writer.
So as basic as it probably is to you, I now have a Packet.WriteUShort(), Packet.WriteUInt(), Packet.WriteString(), Packet.WriteStringPlusLength(), class going on. Its like walking to 3 hours to school every day and then you realize you can catch the bus. But the struggle was worth it because now that its so easy, its like fuck yeah catching the bus every day.
And about the overextending, like with the hair etc, it wont like fuck up the packet entirely, its more like theres hair as a ushort and then theres an unknown ushort right next to it, so even if it overextends into it, the packet offsets are unaffected. So I didn't totally fuck up.. yet!
Anyways why look for the packet in the disassembler? Is it easier than reading it and like deciphering it with a packet sniffer?
|
|
|
07/24/2014, 18:32
|
#19
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
oh... OH..
you were.... statically attacking it? ouch..
yeah.. debug code, very debug when im looking at static allocation..
you spent how long doing it that way? chalkboard pls...
there are a few fields that dont make themselves easily known, some relics and some hidden goodies!
the thing to remember about how packets are allocated in EO is its all stuctured then that is chomped into a packet.
its not until you reassemble them that you notice the gaps that are actually there.
for example, hair, length and fat.
fat is a value thats arcane, AFAIK it does not get touched calculated upon or anything.. however..
Code:
m_pInfo->usHair = pInfo->dwHair;
m_pInfo->cLength = pInfo->cLength;
m_pInfo->cFat = pInfo->cFat;
defined as
Code:
USHORT usHair; // 头发 //Hair
char cLength; // 高度 -- zlong 2004-02-03 //Height
char cFat; // 胖瘦 -- zlong 2004-02-03 //Fat
i suppose, there you are, theres hair resolved too
or to a point...
see, this is where it gets tricky...
the server itself writes the short at 0xC (hair) then skips to 0x10 (Gold)
in my testing/tracing, the client itself does still have legacy code existing for height and fat however... its use, i wouldnt know..
|
|
|
07/25/2014, 05:47
|
#20
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
Quote:
Originally Posted by hio77
oh... OH..
you were.... statically attacking it? ouch..
yeah.. debug code, very debug when im looking at static allocation..
you spent how long doing it that way? chalkboard pls...
there are a few fields that dont make themselves easily known, some relics and some hidden goodies!
the thing to remember about how packets are allocated in EO is its all stuctured then that is chomped into a packet.
its not until you reassemble them that you notice the gaps that are actually there.
for example, hair, length and fat.
fat is a value thats arcane, AFAIK it does not get touched calculated upon or anything.. however..
Code:
m_pInfo->usHair = pInfo->dwHair;
m_pInfo->cLength = pInfo->cLength;
m_pInfo->cFat = pInfo->cFat;
defined as
Code:
USHORT usHair; // 头发 //Hair
char cLength; // 高度 -- zlong 2004-02-03 //Height
char cFat; // 胖瘦 -- zlong 2004-02-03 //Fat
i suppose, there you are, theres hair resolved too
or to a point...
see, this is where it gets tricky...
the server itself writes the short at 0xC (hair) then skips to 0x10 (Gold)
in my testing/tracing, the client itself does still have legacy code existing for height and fat however... its use, i wouldnt know..
|
Hmmm who knows what it could mean, like they had the weapon_r and weapon_l thing in the client forever unused but then brought out vampires that use weapons on both. Maybe fat means a future food comsumption expansion
Anyways I looked through some conquer sources and it looks like DMap reading wont be too difficult for the project. But yeah like I said earlier I'm just gonna work through all the packet structures and then get to piecing it all together. I'm still beyond excited to be writing my own AI for monsters and action types, and skills and omg the list goes on but yeah keeping focused lolol
|
|
|
07/25/2014, 07:39
|
#21
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by cruey
Hmmm who knows what it could mean, like they had the weapon_r and weapon_l thing in the client forever unused but then brought out vampires that use weapons on both. Maybe fat means a future food comsumption expansion
Anyways I looked through some conquer sources and it looks like DMap reading wont be too difficult for the project. But yeah like I said earlier I'm just gonna work through all the packet structures and then get to piecing it all together. I'm still beyond excited to be writing my own AI for monsters and action types, and skills and omg the list goes on but yeah keeping focused lolol
|
now now... dont be getting too egar, thats when you make mistakes
forgot to post this up for you before.
im still not happy with the gaps, as i know theres something due there but what is the hard part... while TQ do sometimes leave gaps, its not all THAT common..
its enough to work however...
i note a couple of figures you seem to have which i do not, it would seem in all my testing it does not budge. so i cant confirm forsure...
|
|
|
07/28/2014, 11:20
|
#22
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
Hmm yeah well I think we found the most important information, I guess the rest can come as required. Anyway I was thinking, after we have all the packet structures for EO, I thought.. wouldn't it be a big shortcut to just integrate it with a conquer source? And then add the additional functions like composing etc. I'm thinking it would save alot of time. Though, because I'm still learning C# I think I might go the long way just to know that I have been thorough.
|
|
|
07/28/2014, 11:26
|
#23
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Generic stuff ... You could look too, but ild recommend rewriting in details you understand.
Will help leaps and bounds for tracing issues.
|
|
|
11/11/2014, 05:34
|
#24
|
elite*gold: 0
Join Date: Feb 2013
Posts: 2
Received Thanks: 0
|
Theres lot of secret thing in the msg server, like mount effects ? more level than 255 ?
|
|
|
11/11/2014, 05:40
|
#25
|
elite*gold: 20
Join Date: Jun 2006
Posts: 1,759
Received Thanks: 827
|
Quote:
Originally Posted by Fixtheways
Theres lot of secret thing in the msg server, like mount effects ? more level than 255 ?
|
level cant go above 255, its stored as a byte.
this is not a thread to be talking about things like this in, ild leave it to cures development.
|
|
|
11/12/2014, 11:14
|
#26
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
The mount effects you`re talking about like the fiery glow on the wings of the phoenix mount or the blue flame on the soul steed. The effects are attached in the client, close to none of the visuals are done on the server side.
While I was playing with monsters I made it to where you can now attach an effect to a monster using the a new column in the mostertype table, but as for effects on mounts, that is done client-side and due to how outdated it is with private servers, it just can't be done. However when this project is complete, it will open the possibilities of reworking the server to fit the newer version clients. I remember seeing somewhere that someone already cracked the encryption, so in future it's more than a possibility!
-----------
And just to release and update of the projects progress. I've been working diligently while learning a whole bunch of crazy programming, it makes my head explode alot of the time but I've got about 75% of all the known-packet structures and almost all of the games elements/objects are ready (characters, monsters, pets, items, npc's, etc), I just have to finish up some stuff to do with legions and families, but besides that the growth rates and star calculations are done along with a whole bunch of other stuff. Right now I'm working on the action type functions and I'm already through about 80 of them.
I get a little bored sometimes and end up playing with different elements of the game like for instance the new day/night lighting function I made. I don`t update it too frequently because I`m more focused on the actual work but you can check all the progress on the facebook page:
Anyway besides all that, I know some are losing hope in the future development of private servers, but just hang in there, I'm still working on it! And though alot of you might not be so familiar with programming, I could sure use some ideas. Like for instance designing artificial intelligence`s for monsters, new functions and especially tell me if theres any function that you wish you could use, but can't due to the boundaries of our current server software.
|
|
|
11/14/2014, 01:24
|
#27
|
elite*gold: 0
Join Date: Jan 2014
Posts: 203
Received Thanks: 30
|
Quote:
Originally Posted by cruey
The mount effects you`re talking about like the fiery glow on the wings of the phoenix mount or the blue flame on the soul steed. The effects are attached in the client, close to none of the visuals are done on the server side.
While I was playing with monsters I made it to where you can now attach an effect to a monster using the a new column in the mostertype table, but as for effects on mounts, that is done client-side and due to how outdated it is with private servers, it just can't be done. However when this project is complete, it will open the possibilities of reworking the server to fit the newer version clients. I remember seeing somewhere that someone already cracked the encryption, so in future it's more than a possibility!
-----------
And just to release and update of the projects progress. I've been working diligently while learning a whole bunch of crazy programming, it makes my head explode alot of the time but I've got about 75% of all the known-packet structures and almost all of the games elements/objects are ready (characters, monsters, pets, items, npc's, etc), I just have to finish up some stuff to do with legions and families, but besides that the growth rates and star calculations are done along with a whole bunch of other stuff. Right now I'm working on the action type functions and I'm already through about 80 of them.
I get a little bored sometimes and end up playing with different elements of the game like for instance the new day/night lighting function I made. I don`t update it too frequently because I`m more focused on the actual work but you can check all the progress on the facebook page:
Anyway besides all that, I know some are losing hope in the future development of private servers, but just hang in there, I'm still working on it! And though alot of you might not be so familiar with programming, I could sure use some ideas. Like for instance designing artificial intelligence`s for monsters, new functions and especially tell me if theres any function that you wish you could use, but can't due to the boundaries of our current server software.
|
Nice Crue  Maybe some system like Eudemon Online Official ?
|
|
|
12/14/2014, 09:30
|
#28
|
elite*gold: 0
Join Date: Nov 2008
Posts: 145
Received Thanks: 13
|
Is this still going? any new progress happening at all?
really looking forward to this! cant really give you anything besides moral support though haha
|
|
|
12/17/2014, 19:53
|
#29
|
elite*gold: 90
Join Date: Feb 2008
Posts: 1,112
Received Thanks: 642
|
Nice progressing
my offer also still counts
I can provide the hosting for this project
Greets from powerchaos
Ps: fb link sends me to homepage of fb
|
|
|
09/07/2015, 08:04
|
#30
|
elite*gold: 0
Join Date: Oct 2007
Posts: 698
Received Thanks: 857
|
Hey guys,
So I`m not really sure why I`m posting this because I`m pretty sure the section is dead but I`m going to do it anyway and maybe those of you who are hiding out there will see a glimse of hope still left beneath all the toxic, whining, begging and pretty much just all the people who totally turned this section into a terrible place to be ;D
Anyways so heres the latest update;
I`ve been working on the source project on and off, I end up hitting a wall sometimes and get stuck on certain packet structures like for instance my last struggle has been with pets. It had so many different packet structures that confused me to death and when I refer to the outdated 2005 source, it didn`t help infact it just confused me to the point I gave up. But I got back to work on it because I seem to have this cycle where... I want a source code and so I start developing mine, then I get angry frustrated and overwhelmed by the lack of pay off and wasted time it will probably be doing so much work for nothing so I quit and go back to the outdated programs everyone uses, then I continue scripting in the database and hit a wall there because something I will want to do like a new type of skill, just wont be possible with the boundaries we sit in as developers, so then I revert back to doing the source code project and that is the cycle.
Currently I am in the cycle of the source code again! And I have had a breakthrough with pets! I finally um, decrypted I guess is the word, the packet structures and now I have pretty much total control over pets, their attributes, everything! Also fun fact just to mention: In one of the packet structures, defined is the monster.dat ID, so when it`s done I`ll have a new parameter in the database for monster DAT ID, that way we can easily just make a couple of IDs in the monster.dat and then easily we can change the size of pets through the database! Woo~ Okay moving on.
It doesn`t sound like much really, I mean wow, you made the pet function... But it actually is a breakthrough. I believe the most difficult parts are finding the structures and making the systems behind the main objects of the game, such as the NPCs, characters, monsters, other players and pets. And what was actually very confusing for me was the walking packets, the walking function was a total nightmare for me at one point but I have officially completed that too! Walking is also done for pets! So the whole breakthrough is not just with the pets, it`s that I have now finished all the essential objects for the game. NPCs, monsters, players and finally pets!
Although as you can see in the above picture my name is black, that is because I have a problem with the byte that controls status flags, I am still working on that but it`s a minor issue for the moment.
Oh and also, I think I`m missing a certain packet that makes monsters disappear on their own... My system despawns objects once you leave the view range but currently they don`t disappear after death. Yay corpses!
Oh and don`t forget items and equipment, I have also finished the basics for items! I`m still having some small issues with the equipments, apparently it disarms the weapon from visibility when you equipt the armor, so I still have a few things yet to be worked out.
So far so good everyone! The last most important things will be testing other players who are connected will also receive the packets for when a pet is summoned and when a pet moves. Then converging a pet and after that it`s onto the fun and easy stuff. Interface work like composing window, npc interfaces and shops and your other basics like friends list (chat is already done), legion window, trades, monster behaivour, and etc.
But I think the most difficult work has come and gone now. So it`s just a matter of interface packet exchages and working on the content so it should be pretty easy from here on! Yay source code
|
|
|
Similar Threads
|
[Source Code]Darkorbit Login Project [VB.Net]
01/05/2013 - DarkOrbit - 9 Replies
Darkorbit Login/Proxy Project :)
Darkorbit Site Login Project :D :D :D
"What is this ??"
Screen Shot:
http://a1301.hizliresim.com/15/5/hp2m1.jpg
VIRUSTOTAL:
DarkLogin.rar - Jotti's malware scan
|
[DEV] Open-Source project... Which language can YOU code?
09/25/2012 - DarkOrbit - 0 Replies
Please Vote which language/-s you can code...
EDIT: This is a packetbot project
This Project will never coding in AutoIt, because AutoIt is too laggy...
Please give feedback for this project
please #close
You will find this project in this form
|
[Source Code Project] Dev Expansion Discussion
01/24/2012 - EO PServer Hosting - 21 Replies
http://i44.tinypic.com/nwaejc.png
So the word on the street is that it's not too difficult to make your own server source code. So where to we begin? This project could potentially bring the epvp section back to life.
|
All times are GMT +1. The time now is 14:23.
|
|