Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Ask me anything regarding Aion Development

Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
I'm building an Aion core and thought it would be a great idea to open a thread to answer any questions regarding Aion Online Emulator Development.(mod, please move if it's not in the right forum. cheers)

I would love for more people to come onboard with building their own solutions and collaborating to keep the emulation development scene alive. I was going to build out a website with information but I figured collaborating like this would be better so we can meet other developers and learn together.

Please post any questions below and I will try my best to give you as much information as I can.

I will not be taking conversations to PM's, please keep them strictly within this thread for others to view and learn. Please don't post code blocks and ask me to help you fix it or recommend aion cores. Please keep it strictly Q&A regarding development. Thanks!
 
Last edited:
Newbie Spellweaver
Joined
Sep 28, 2015
Messages
21
Reaction score
7
Hi there.
It would be good to find more people who can work on collision detection ,most if not all server emulators have really poor NPC/Monster movements. Like...nothing to do with offi movement and even theirs is crappy. If you are wondering what the heck I am talking about ,it's mostly
monsters trying to chase you and failing to do so while passing through solid walls ,falling inside the ground (and no it's not geo files) , but then again ,even player movement is a bit poor.
You mentioned answering questions , I have one regarding the quest system and I am talking about the code itself ,a bit difficult to understand how does it work step by step.
I believe in Lineage 2 the server was accessing html files from the client and I assume it is the same with Aion , and then how does the server quest
engine do the whole thing ,loading ,scheduling tasks ,managing runnables for individual players ,it's a bit ambiguous ,I don't expect to find any documentation anywhere for an emulator of course ,that would be silly ... but would it not be nice to have such in the first place ? I know I am silly :D.

Anyhow ,nice of you to start such a thread btw ,cheers.
 
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
Hi there.
It would be good to find more people who can work on collision detection ,most if not all server emulators have really poor NPC/Monster movements. Like...nothing to do with offi movement and even theirs is crappy. If you are wondering what the heck I am talking about ,it's mostly
monsters trying to chase you and failing to do so while passing through solid walls ,falling inside the ground (and no it's not geo files) , but then again ,even player movement is a bit poor.
You mentioned answering questions , I have one regarding the quest system and I am talking about the code itself ,a bit difficult to understand how does it work step by step.
I believe in Lineage 2 the server was accessing html files from the client and I assume it is the same with Aion , and then how does the server quest
engine do the whole thing ,loading ,scheduling tasks ,managing runnables for individual players ,it's a bit ambiguous ,I don't expect to find any documentation anywhere for an emulator of course ,that would be silly ... but would it not be nice to have such in the first place ? I know I am silly :D.

Anyhow ,nice of you to start such a thread btw ,cheers.

For the monster movements, it's primarily the spawn engine located here: src\com\aionemu\gameserver\spawnengine\SpawnEngine.java that does most of the work in calculating the spawn points, walker points to move to etc..

Taking a look at that engine files, it's consists of a lot of movement in 3D space, the original developers got it working with some simple geometry to specify the next point to walk to which can't be good and results in the issues you described. I'm no mathematician, but when I get players into the world I will take a look more deeply into this and see if we can do something better to combat the weird anomalies.

Regarding the quests and how they work, The engine is located here: src\com\aionemu\gameserver\questEngine and really it's not very interesting to look at. Most of the static data is on the client, and the emulator uses packets mapped to functions on the client to run dialogs and initiate quests, it's a tightly coupled relationship where the client does most of the static work and the server is the moderator confirming that what you want to do is actually correct.

Some quest packets you might find interesting are below:
- SM_QUEST_LIST
- SM_QUEST_COMPLETED_LIST
- SM_NEARBY_QUESTS
- SM_QUEST_ACTION
- CM_QUEST_SHARE
- CM_DELETE_QUEST

The way the developer implements the quest engine or spawn engine is entirely up to them and how they want it to work. There are some things that definitely need to stay the same, for eg. the packet structures and responses, but how you design the system and how all the parts fit together is up to you.
 
Last edited:
Junior Spellweaver
Joined
Jun 8, 2013
Messages
153
Reaction score
6
Hello, I am also developing new features in 4.3 and am preparing to build a virtual character. I don’t know where to start. Can you give me a hint?
 
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
Hello, I am also developing new features in 4.3 and am preparing to build a virtual character. I don’t know where to start. Can you give me a hint?

Hi there, certainly, what specifically do you need help with? Are you building a new emulator or are you building on top of the AL core? What do you mean by virtual character?
 
Last edited:
Junior Spellweaver
Joined
Jun 8, 2013
Messages
153
Reaction score
6
I am based on Al, of course, it can use skills yourself, automatically run as a target, I see some source code in the SAO source code, if you want to tell me Skype, I will add you, so More convenient communication
 
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
I am based on Al, of course, it can use skills yourself, automatically run as a target, I see some source code in the SAO source code, if you want to tell me Skype, I will add you, so More convenient communication

Can you please be a bit more specific? Please update your previous comment with exact details of what you are trying to accomplish and what you have tried so far. I will update this comment with a solution.
Lets keep the replies in this thread, so others can learn as well. Cheers

I'm guessing you want to make a bot player walk, talk and attack?

Game client & server packets: `src\com\aionemu\gameserver\network\aion`
Login client & server packets: `src\com\aionemu\loginserver\network\aion`


More specifically, for the gameserver you want to open `AionConnection.java` and add a print statement to the `sendPacket()` function to see what packets are being sent to the client from the server like so:

5t0tCjo - Ask me anything regarding Aion Development - RaGEZONE Forums


You would do the same thing for the loginserver side but you'd edit `LoginConnection.java` like so:

LEPVfs8 - Ask me anything regarding Aion Development - RaGEZONE Forums


Once you know what packets are being sent, It's just a matter of creating a new class that reads and writes these packets internally to the emulator, but you also need to have a character in the database to login(maybe a clone of your character?). I think this is what you are wanting to do?
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Jun 8, 2013
Messages
153
Reaction score
6
I am based on Al, of course, it can use skills yourself, automatically run as a target, I see some source code in the SAO source code, if you want to tell me Skype, I will add you, so More convenient communication

I only have ideas, I haven't started implementation, so I want to ask if you are better ideas, I want to reflect the completely free robot, with the same consciousness as character operation.



I am based on Al, of course, it can use skills yourself, automatically run as a target, I see some source code in the SAO source code, if you want to tell me Skype, I will add you, so More convenient communication

I only have ideas, I haven't started implementation, so I want to ask if you are better ideas, I want to reflect the completely free robot, with the same consciousness as character operation.
 
Junior Spellweaver
Joined
Jun 8, 2013
Messages
153
Reaction score
6
Can you please be a bit more specific? Please update your previous comment with exact details of what you are trying to accomplish and what you have tried so far. I will update this comment with a solution.
Lets keep the replies in this thread, so others can learn as well. Cheers

I'm guessing you want to make a bot player walk, talk and attack?

Game client & server packets: `src\com\aionemu\gameserver\network\aion`
Login client & server packets: `src\com\aionemu\loginserver\network\aion`


More specifically, for the gameserver you want to open `AionConnection.java` and add a print statement to the `sendPacket()` function to see what packets are being sent to the client from the server like so:

5t0tCjo - Ask me anything regarding Aion Development - RaGEZONE Forums


You would do the same thing for the loginserver side but you'd edit `LoginConnection.java` like so:

LEPVfs8 - Ask me anything regarding Aion Development - RaGEZONE Forums


Once you know what packets are being sent, It's just a matter of creating a new class that reads and writes these packets internally to the emulator, but you also need to have a character in the database to login(maybe a clone of your character?). I think this is what you are wanting to do?


Yes! ! This is what I want to do! ! ! The data of the database has been realized! ! ! You can clone a character into the game normally! ! ! But it did not attack and walk as I wanted! ! I have compiled a list of skills! ! But I don't know where the problem is! !
 

Attachments

You must be registered for see attachments list
Experienced Elementalist
Joined
Aug 6, 2021
Messages
220
Reaction score
55
Yes! ! This is what I want to do! ! ! The data of the database has been realized! ! ! You can clone a character into the game normally! ! ! But it did not attack and walk as I wanted! ! I have compiled a list of skills! ! But I don't know where the problem is! !

Print the packets being sent to the server and received by the client, send those. All source code for how to accomplish this is in the packets themselves.
 
Newbie Spellweaver
Joined
Jul 18, 2021
Messages
66
Reaction score
6
Add a dummy system that simulates game characters, which has been implemented in World of Warcraft.
 
Junior Spellweaver
Joined
Jun 8, 2013
Messages
153
Reaction score
6
I met a problem! ! Small probability of long-range professional attacks on monsters! ! Monsters will not be able to move until they are killed. There is no problem with melee classes! ! Can you tell me where is the problem?



我遇到了问题!!小概率远程职业攻击怪物!!怪物在被杀死之前将无法移动。近战课没有问题!!你能告诉我问题出在哪里吗?
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,143
I met a problem! ! Small probability of long-range professional attacks on monsters! ! Monsters will not be able to move until they are killed. There is no problem with melee classes! ! Can you tell me where is the problem?



我遇到了问题!!小概率远程职业攻击怪物!!怪物在被杀死之前将无法移动。近战课没有问题!!你能告诉我问题出在哪里吗?

would someone know find the cause of this problemlook how strange this problem is and after you use the scroll to cool down the time in intacia you can no longer use any other scroll for any other instance all the scroll stops working. and the other problem is that you use the escrol to reset the stanza and it was to respawn the mobes and this is not happening.
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,143
@StingerOne can you take a look?



StingerOne can you take a look?

when I use the scroll it's cooling down the time on the instance but when you enter intacia again the spawn didn't update all mobes and the boss is still dead. this for all instances. Another problem that I come across is that since I use scrol to cool down the time of instances all scrol that has the same function in all intacia cannot be used.
 
Back
Top