-
Ask me anything regarding Aion Development
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!
-
Re: Ask me anything regarding Aion Development
Which version of Aion were you thinking of developing an emulator for?
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
Kreeate
Which version of Aion were you thinking of developing an emulator for?
That's a great question, I'm currently building for Aion 4.3
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
StingerOne
That's a great question, I'm currently building for Aion 4.3
Good luck to you.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
Robson26
There is a good 4.3 on the forum, you can try it.
Please read my post again, the aim is to answer questions regarding development, not to compile an aion core.
-
Re: Ask me anything regarding Aion Development
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.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
quasaralpha
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.
-
Re: Ask me anything regarding Aion Development
That's awesome.
Thank you for the information.
-
Re: Ask me anything regarding Aion Development
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?
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
qw19860616
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?
-
Re: Ask me anything regarding Aion Development
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
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
qw19860616
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:
https://i.imgur.com/5t0tCjo.png
You would do the same thing for the loginserver side but you'd edit `LoginConnection.java` like so:
https://i.imgur.com/LEPVfs8.png
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?
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
qw19860616
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.
- - - Updated - - -
Quote:
Originally Posted by
qw19860616
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.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
StingerOne
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:
https://i.imgur.com/5t0tCjo.png
You would do the same thing for the loginserver side but you'd edit
`LoginConnection.java` like so:
https://i.imgur.com/LEPVfs8.png
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! !
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
qw19860616
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.
-
Re: Ask me anything regarding Aion Development
Add a dummy system that simulates game characters, which has been implemented in World of Warcraft.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
arloleo
添加一个模拟游戏角色的虚拟系统,该系统已在魔兽世界中实现。
Yes! ! If you know how to achieve him?
-
Re: Ask me anything regarding Aion Development
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?
- - - Updated - - -
我遇到了问题!!小概率远程职业攻击怪物!!怪物在被杀死之前将无法移动。近战课没有问题!!你能告诉我问题出在哪里吗?
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
qw19860616
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?
- - - Updated - - -
我遇到了问题!!小概率远程职业攻击怪物!!怪物在被杀死之前将无法移动。近战课没有问题!!你能告诉我问题出在哪里吗?
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. https://mega.nz/file/Y9wSUb7a#lrrhdm...VTP9QueVdNZJZg
-
Re: Ask me anything regarding Aion Development
@StingerOne can you take a look?
- - - Updated - - -
Quote:
Originally Posted by
dezalmado
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.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
dezalmado
@
StingerOne can you take a look?
- - - Updated - - -
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.
I think you missed the point of this thread.
-
Re: Ask me anything regarding Aion Development
can we make a new npc with our code and build it to the engine source, so we can have our new npc for something like event or something like that xD
-
Re: Ask me anything regarding Aion Development
Hey,
Would it be possible to implement the improved graphics and new char creation from 5.x+ patches to older patches?
https://forum.ragezone.com/image/png...AASUVORK5CYII=
-
Re: Ask me anything regarding Aion Development
Hello, I have a problem! ! Try to check the source code, but can't find out what the problem is! ! ! If you know, please tell me, thank you very much.
2022-02-12 21:42:02,659 WARN [PacketProcessor:1] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 2 npcId: 10786 player: 1293082022-02-12 21:43:07,604 WARN [PacketProcessor:3] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 3 npcId: 10800 player: 1293082022-02-12 21:43:24,404 WARN [PacketProcessor:0] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 3 npcId: 10802 player: 129308
DropService only has warnings! ! ! But he keeps taking up memory! ! !
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
deligentkid
can we make a new npc with our code and build it to the engine source, so we can have our new npc for something like event or something like that xD
it's possible, although a little complicated. That's beyond the scope of this forum post.
- - - Updated - - -
Quote:
Originally Posted by
BadCoder
Typically not, if you want older character creation, you go down to an older version of the client. Unless you understand how the client works and can hack something together, I haven't tried it.
In regards to the friend list question, check the packets and debug by printing things to the prompt, cross checking other emulators packets for differences etc.. without the source code and seeing it to debug, I can't really help.
- - - Updated - - -
Quote:
Originally Posted by
qw19860616
Hello, I have a problem! ! Try to check the source code, but can't find out what the problem is! ! ! If you know, please tell me, thank you very much.
2022-02-12 21:42:02,659 WARN [PacketProcessor:1] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 2 npcId: 10786 player: 1293082022-02-12 21:43:07,604 WARN [PacketProcessor:3] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 3 npcId: 10800 player: 1293082022-02-12 21:43:24,404 WARN [PacketProcessor:0] com.aionemu.gameserver.services.drop.DropService [DropService.java:336] Null requested index itemIndex: 3 npcId: 10802 player: 129308
DropService only has warnings! ! ! But he keeps taking up memory! ! !
That's just warnings, check the code at line 336 and everything before it in the function. memory issues are hard to diagnose so you'll just need to do some digging and follow the trail.
https://i.imgur.com/98xMjmN.png
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
StingerOne
Typically not, if you want older character creation, you go down to an older version of the client. Unless you understand how the client works and can hack something together, I haven't tried it.
In regards to the friend list question, check the packets and debug by printing things to the prompt, cross checking other emulators packets for differences etc.. without the source code and seeing it to debug, I can't really help.
- - - Updated - - -
Well I did check the server packet files and I tried to log the friend's list, the server was feeding in the correct names. However, it wasn't being read correctly and I thought this issue was due to the fact that my server and game files are different versions but they match.
I attached copies of my src code for server and client packets. I would greatly appreciate it if you can have a look and let me know if you spot anything alarming because I couldn't.
Thank you :)
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
BadCoder
Well I did check the server packet files and I tried to log the friend's list, the server was feeding in the correct names. However, it wasn't being read correctly and I thought this issue was due to the fact that my server and game files are different versions but they match.
I attached copies of my src code for server and client packets. I would greatly appreciate it if you can have a look and let me know if you spot anything alarming because I couldn't.
Thank you :)
Clientpackets: https://mega.nz/folder/YUAGFBpB#hVGZqPPbkZMux4EDnXnGxg
Serverpackets: https://mega.nz/folder/sYRC3LhS#ag6rCEQJG7NmxAlODxnqgw
There is a big chance the packets you're using are for another version of the game, hence why you're having issues adding or messaging another player on your friends list. I'm going to take a guess and say the packets you're sending to the client are malformed and aren't correct. I have an emulator here that I can test with to maybe give some pointers on what could be changed by replicating the packets you have, but I need to know a few things first.
1) What game version are you running? You can check this in the client directory, it's called version.ini or something.
2) What emulator are you using?
3) What version is the emulator built for?
-
Re: Ask me anything regarding Aion Development
Hey Stinger,
So I don't exactly have a version.ini file but here is how I set it up so I used the downgrade 4.7 client files from the link below and for the emulator I used Gigatroon's emulator linked below as well. This may sound confusing but as I tested it more here is what I found out, it seems that the first friend I add is good and looks just fine in the friends list but if I try to add more than one friend that's when it gets all jumbled up. So the first friend's name, level looks fine but the rest look all crazy and the data is jumbled up.
I wouldn't think the core files (textures, shaders, etc..) would affect this? What do you think?
Thank you
update: The core files also belong to a 4.7 client
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
BadCoder
Hey Stinger,
So I don't exactly have a version.ini file but here is how I set it up so I used the downgrade 4.7 client files from the link below and for the emulator I used Gigatroon's emulator linked below as well. This may sound confusing but as I tested it more here is what I found out, it seems that the first friend I add is good and looks just fine in the friends list but if I try to add more than one friend that's when it gets all jumbled up. So the first friend's name, level looks fine but the rest look all crazy and the data is jumbled up.
I wouldn't think the core files (textures, shaders, etc..) would affect this? What do you think?
Thank you
update: The core files also belong to a 4.7 client
https://mega.nz/#F!a9MEEZQK!LYoGwk09cn5URMfFfVyQeA
https://mega.nz/#!qt5yAYzL!Ul_18Su7j...-tkTq0XMacF-e4
I fixed the bug. I also did my own testing and noticed the same bug in the emulator I'm using to test.
Here is what it looked like before, we can see on the left the packet data is correct, but if we look at the friend list, it's malformed like yours which led me to believe it's a packet problem as I described earlier(that was a guess, but looks like I was correct with that assumption).
https://i.imgur.com/i9Ld4I2.png
This is what the friend list looks like now that it is fixed. You may also notice something odd with the image (another bug I noticed).
https://i.imgur.com/nkR9mEX.jpg
Most emulators haven't bothered to fix this friend list bug.
https://i.imgur.com/YoZeZdl.png
https://i.imgur.com/5Xi7TXf.png
I haven't included the fix, I'm sure it's simple enough to figure out. Of course if you stumble across any issues, let me know :) Happy coding.
-
Re: Ask me anything regarding Aion Development
Quote:
Originally Posted by
pix123
What if I want to play version 4.7, but the magic attack isn't flexible and only deals fixed damage? Help TT
Lots of info in the packets :)
SM_ATTACK is for swords, polearms etc
https://i.imgur.com/GJ7fhMN.png
I think what you're interested in is the SM_CASTSPELL and SM_CASTSPELL_RESULT packets.
SM_CLASTSPELL_RESULT looks like this.
https://i.imgur.com/dcUIOfg.png
Modify them and you will get the damage you require. If you don't want to modify the packet directly, look at the source code and modify within that.
Let me know how you go :)
-
Re: Ask me anything regarding Aion Development
-
Re: Ask me anything regarding Aion Development
Hello @StingerOne I am learning about collisions and pathfinding algorithms to try to improve the monsters pursue behavior. All emus share the same problem: Mobs ignore obstacles or even fly to reach the player. In some gives up the pursue when the player hides behind any obstacle.
My question is: how this pursue system works? Is it a shared logic or each boss or mobs has its own?
-
Re: Ask me anything regarding Aion Development
Hello, I would like to have a beginning of track to carry out a conversion, for example we all know the emulator 2.7 under java 6, is it possible to upgrade without rebuilding it from A to Z? In addition, do you recommend learning javascript and php to be able to modify the server/client files more easily as well as to create a site linked to the server?
-
Re: Ask me anything regarding Aion Development
Im on the same Problem, im trying a lot at the moment, but nothing is working and no one can help with this issue. Gameplay makes no fun with Instances rushing :(
Quote:
Originally Posted by
victorcor
Hello @
StingerOne I am learning about collisions and pathfinding algorithms to try to improve the monsters pursue behavior. All emus share the same problem: Mobs ignore obstacles or even fly to reach the player. In some gives up the pursue when the player hides behind any obstacle.
My question is: how this pursue system works? Is it a shared logic or each boss or mobs has its own?
-
Re: Ask me anything regarding Aion Development
-
Re: Ask me anything regarding Aion Development
What is the difference between an emulator of aion and aion classic?
-
Hello, Is anyone knows about how to enabling the speech bubble title on additional settings? or let me know on which data should I go in order to enabling it
-
Speech Bubble Title has no setting in Aion 4.9 Emu
-
Quote:
Originally Posted by
StingerOne
I will not be taking conversations to PM's, please keep them strictly within this thread for others to view and learn.
For the love of all that is holy, thank you for doing this. You have no idea how many times I've dug through RZ and Google for a solution to an issue, and found a post with my exact issue, only for the last two posts to be "PM me on skype/discord" and "It worked. Thank you"
Drives me batshit insane.
-
Quote:
Originally Posted by
Pagefault404
For the love of all that is holy, thank you for doing this. You have no idea how many times I've dug through RZ and Google for a solution to an issue, and found a post with my exact issue, only for the last two posts to be "PM me on skype/discord" and "It worked. Thank you"
Drives me batshit insane.
Me too bud, me too :/ Drives me nuts.
-
How to add higher remodels? example remodels from version 7.7 and add it to version 4.3
-
Quote:
Originally Posted by
nbision
How to add higher remodels? example remodels from version 7.7 and add it to version 4.3
I would assume this COULD work by simply copy/pasting the image assets from a newer client onto an older one. You're only replacing images and other assets related to textures, and if you add anything the client doesn't use, it SHOULD disregard those file and function normally. This is only conjecture, and I only mention it because I have done it with a different MMO and it worked. Doesn't mean it will here, though. I would wait for a definitive answer though.
-
Quote:
Originally Posted by
Pagefault404
I would assume this COULD work by simply copy/pasting the image assets from a newer client onto an older one. You're only replacing images and other assets related to textures, and if you add anything the client doesn't use, it SHOULD disregard those file and function normally. This is only conjecture, and I only mention it because I have done it with a different MMO and it worked. Doesn't mean it will here, though. I would wait for a definitive answer though.
You are kinda right, but there is one caveat! The player models differ between 4.3 and 4.5+ or maybe it was 4.7.5+ but the player models won't fit older models.
I guess the only way to find out is to try it, but I see more questions about modifying clients than I do about aion emulation. If you want to use a specific weapon or candy, play a version that naturally supports it, it's less of a headache than trying to modify a client to cater to the changes.
in WoW things are a lot different as the models stay the same and you can do a lot of funky editing of maps and models but for Aion... meh, not worth the struggle tbh.
-
Hello StingerOne.
I'm kinda struggling with "Speech Bubble Title". May I have tutorial or explanation about how to enabling it or which data I supposed to go in order to enabling.
Current aion project that I'm developing is 4.9
Thank's in advance for any explanation/help!
-
Why almost every emulators written in java? Why nobody use C#? Is c# unable to use to create emualtor for aion? I also checked your Aion Online Emulation Development Theory, and have some questions:
1 Encryption is needed from game directly, like without it game will not understand packets?
2 If game directly needed encryption does it mean anyone can send packets to server and controls it?
3 Is there any list describes packets name and also how to determine what is this packet do & what opcode belong what packet?
-
I tried it but im getting an error "replace me" the read thingy :(