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!

Aion 5.8 emulator improvement community project

Joined
Dec 6, 2013
Messages
391
Reaction score
814
So I stopped playing and fixing missions. I know there are a lot of broken quests, but for now, the priority is 'decomposable_select_items'. There are very important level 80 items in there, including manastones and other things that haven't been added yet and are sorely missed.
Dude, you work on whatever you like, it's definitely appreciated. Since quests and drops are things even I can usually fix, I am continuing on those.
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
Dude, you work on whatever you like, it's definitely appreciated. Since quests and drops are things even I can usually fix, I am continuing on those.
I definitely don't worry. I know that everyone is committed to correcting a little of everything. However, we cannot be in a hurry, because sometimes, by focusing only on a single issue to be corrected, we end up stressing ourselves out. Ultimately, someone else gets there and fixes it. We are building a strong community now.

Sometimes I revisit what I write and when I translate it, it seems so rude ahauahau. But it's the translation, folks, that does it. Sorry about that; If anyone thinks it's rude, it's the translator's fault. I know you also use the translator to put it in your language, so I don't know how bad it can get.
 
Last edited:
Junior Spellweaver
Joined
Mar 2, 2023
Messages
196
Reaction score
326
Yes, I spent a lot of time playing on different emulators before moving to the 5.8 emulator. Most of the improvements I implemented were possible thanks to the help of the Robyson 3.5 and 4.3 emulators, as well as another excellent emulator for mission corrections, "Aion_GER_5.8_rev279_Full". I also contributed the "quest_data" file, detailing each quest from start to finish, indicating which quest is unlocked after completing each one. I went through this process four times. The first two were just tests, while in the third, after some checks, I solved some problems.
Remember those situations where specific missions weren't displayed correctly? Yes, it was my mistake, but it has been corrected. Now I am performing the same procedure with each line of code in the "decomposable_select_items" file. I'm currently in part 1, filling in each empty box, and then I can move on to completing the entire file and performing the necessary tests.
I enjoy doing these activities, but for now, I'm focusing exclusively on this. I suspended my game to focus on mission corrections. I know there are a lot of broken quests, but for now my priority is the 'decomposable_select_items' file. There are level 80 essentials there, like manastones and other objects that haven't been added yet and are very necessary.
The huge problem is that most of the items from "decomposable_select_items" need to be moved to "decomposable items" :)
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
The huge problem is that most of the items from "decomposable_select_items" need to be moved to "decomposable items" :)
Yes, I also saw this with manastones and other things but that will be later but there is a flaw in the maximum and minimum code and the random one that doesn't work you have to look in SVN.
 
Joined
Dec 6, 2013
Messages
391
Reaction score
814
Is it possible to set the game so that you can fly from any flight point to any other within the same zone, instead of sometimes having to use 2 or 3 flight paths? I assume this would be a matter of editing npc_teleporter.xml and adding all the telelocation's in the same zone for each flight master. Would this break anything? Is anyone for or against me doing this?

Edit: Well, after a little testing it seems to be more than that.
 
Last edited:
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
Is it possible to set the game so that you can fly from any flight point to any other within the same zone, instead of sometimes having to use 2 or 3 flight paths? I assume this would be a matter of editing npc_teleporter.xml and adding all the telelocation's in the same zone for each flight master. Would this break anything? Is anyone for or against me doing this?

Edit: Well, after a little testing it seems to be more than that.
I believe that places where there is no native teleportation point on the client can cause errors. In this case, it is also necessary to make modifications to the Aion client.
 
Junior Spellweaver
Joined
Mar 2, 2023
Messages
196
Reaction score
326
Is it possible to set the game so that you can fly from any flight point to any other within the same zone, instead of sometimes having to use 2 or 3 flight paths? I assume this would be a matter of editing npc_teleporter.xml and adding all the telelocation's in the same zone for each flight master. Would this break anything? Is anyone for or against me doing this?

Edit: Well, after a little testing it seems to be more than that.
This is just my opinion, but I believe that the server should be made as close as possible to the original, to the way NCSOFT was originally
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
" " I managed to implement the new "decomposable_items" format. It's working fine, but there are some problems. It was based on another emulator, and I would like to pass SVN on to you, who understand programming, to check if everything is ok and correct the rest of the code in SVN. I've noticed a bit of a delay when opening packages and sometimes I have to click twice. Could anyone analyze what I did? and this is the emulator that I used to implement our emulator. " "

Then I can add items without any problems "decomposable_items"

Will it be possible to take advantage of this modification and is it very different from 5.8?
 
Last edited:
Joined
Dec 6, 2013
Messages
391
Reaction score
814
I have a quest that seems like it should be a simple fix, but it still won't work. Here is my edited _4205Smack_The_Shulack.java:

/*
* =====================================================================================*
* This file is part of Aion-Unique (Aion-Unique Home Software Development) *
* Aion-Unique Development is a closed Aion Project that use Old Aion Project Base *
* Like Aion-Lightning, Aion-Engine, Aion-Core, Aion-Extreme, Aion-NextGen, ArchSoft, *
* Aion-Ger, U3J, Encom And other Aion project, All Credit Content *
* That they make is belong to them/Copyright is belong to them. And All new Content *
* that Aion-Unique make the copyright is belong to Aion-Unique *
* You may have agreement with Aion-Unique Development, before use this Engine/Source *
* You have agree with all of Term of Services agreement with Aion-Unique Development *
* =====================================================================================*
*/
package quest.steel_rake;

import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;

/****/
/** Author Ghostfur & Unknown (Aion-Unique)
/****/

public class _4205Smack_The_Shulack extends QuestHandler
{
private final static int questId = 4205;
/** private final static int[] Petrahulk_Sentinel = {215049, 219024};
**/
private final static int[] Steel_Rake_Watcher = {218972, 218974, 218975, 218976, 218979};
public _4205Smack_The_Shulack() {
super(questId);
}

@Override
public boolean onLvlUpEvent(QuestEnv env) {
return defaultOnLvlUpEvent(env);
}

@Override
public void register() {
qe.registerOnLevelUp(questId);
qe.registerQuestNpc(205233).addOnTalkEvent(questId);
qe.registerQuestNpc(204792).addOnTalkEvent(questId);
qe.registerQuestNpc(805842).addOnTalkEvent(questId);
/** for (int mob: Petrahulk_Sentinel) {
qe.registerQuestNpc(mob).addOnKillEvent(questId);
}
**/
qe.registerQuestNpc(218972).addOnKillEvent(questId);
qe.registerQuestNpc(218974).addOnKillEvent(questId);
qe.registerQuestNpc(218975).addOnKillEvent(questId);
qe.registerQuestNpc(218976).addOnKillEvent(questId);
qe.registerQuestNpc(218979).addOnKillEvent(questId);
}

@Override
public boolean onDialogEvent(QuestEnv env) {
Player player = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
int var = qs.getQuestVarById(0);
int targetId = env.getTargetId();
if (env.getVisibleObject() instanceof Npc) {
targetId = ((Npc) env.getVisibleObject()).getNpcId();
} if (qs.getStatus() == QuestStatus.START) {
if (targetId == 205233) {
switch (env.getDialog()) {
case START_DIALOG: {
if (var == 15) {
return sendQuestDialog(env, 1352);
}
} case STEP_TO_2: {
changeQuestStep(env, 15, 16, false);
return closeDialogWindow(env);
}
}
} if (targetId == 204792) {
switch (env.getDialog()) {
case START_DIALOG: {
if (var == 16) {
return sendQuestDialog(env, 1694);
}
} case SET_REWARD: {
qs.setStatus(QuestStatus.REWARD);
updateQuestStatus(env);
return closeDialogWindow(env);
}
}
}
} else if (qs.getStatus() == QuestStatus.REWARD) {
if (targetId == 805842) {
return sendQuestEndDialog(env);
}
}
return false;
}

@Override
public boolean onKillEvent(QuestEnv env) {
final Player player = env.getPlayer();
final QuestState qs = player.getQuestStateList().getQuestState(questId);
if (qs != null && qs.getStatus() == QuestStatus.START) {
int var = qs.getQuestVarById(0);
if (var == 0) {
int var1 = qs.getQuestVarById(1);
if (var1 >= 0 && var1 < 14) {
return defaultOnKillEvent(env, Petrahulk_Sentinel, var1, var1 + 1, 1);
} else if (var1 == 14) {
qs.setQuestVar(15);
updateQuestStatus(env);
return true;
}
}
}
return false;
}
}

With this edit, some Watchers are marked and some aren't, but none give credit for the quest. I tried putting the Steel_Rake_Watcher variable set through the for loop, and when that didn't work (as I've seen before) I tried to do them indivually, which normally works.
 
Last edited:
Skilled Illusionist
Joined
Oct 13, 2023
Messages
316
Reaction score
675
I have a quest that seems like it should be a simple fix, but it still won't work. Here is my edited _4205Smack_The_Shulack.java:

/*
* =====================================================================================*
* This file is part of Aion-Unique (Aion-Unique Home Software Development) *
* Aion-Unique Development is a closed Aion Project that use Old Aion Project Base *
* Like Aion-Lightning, Aion-Engine, Aion-Core, Aion-Extreme, Aion-NextGen, ArchSoft, *
* Aion-Ger, U3J, Encom And other Aion project, All Credit Content *
* That they make is belong to them/Copyright is belong to them. And All new Content *
* that Aion-Unique make the copyright is belong to Aion-Unique *
* You may have agreement with Aion-Unique Development, before use this Engine/Source *
* You have agree with all of Term of Services agreement with Aion-Unique Development *
* =====================================================================================*
*/
package quest.steel_rake;

import com.aionemu.gameserver.model.gameobjects.Npc;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;

/****/
/** Author Ghostfur & Unknown (Aion-Unique)
/****/

public class _4205Smack_The_Shulack extends QuestHandler
{
private final static int questId = 4205;
/** private final static int[] Petrahulk_Sentinel = {215049, 219024};
**/
private final static int[] Steel_Rake_Watcher = {218972, 218974, 218975, 218976, 218979};
public _4205Smack_The_Shulack() {
супер (идентификатор квеста);
}

@Override
общедоступное логическое значение onLvlUpEvent (QuestEnv env) {
вернуть defaultOnLvlUpEvent(env);
}

@Override
публичный недействительный регистр() {
qe.registerOnLevelUp(questId);
qe.registerQuestNpc(205233).addOnTalkEvent(questId);
qe.registerQuestNpc(204792).addOnTalkEvent(questId);
qe.registerQuestNpc(805842).addOnTalkEvent(questId);
/** for (int mob: Petrahulk_Sentinel) {
qe.registerQuestNpc(mob).addOnKillEvent(questId);
}
**/
qe.registerQuestNpc(218972).addOnKillEvent(questId);
qe.registerQuestNpc(218974).addOnKillEvent(questId);
qe.registerQuestNpc(218975).addOnKillEvent(questId);
qe.registerQuestNpc(218976).addOnKillEvent(questId);
qe.registerQuestNpc(218979).addOnKillEvent(questId);
}

@Override
общедоступное логическое значение onDialogEvent (QuestEnv env) {
Игрок игрок = env.getPlayer();
QuestState qs = player.getQuestStateList().getQuestState(questId);
int var = qs.getQuestVarById(0);
int targetId = env.getTargetId();
if (env.getVisibleObject() экземпляр Npc) {
targetId = ((Npc) env.getVisibleObject()).getNpcId();
} if (qs.getStatus() == QuestStatus.START) {
если (targetId == 205233) {
переключатель (env.getDialog()) {
случай START_DIALOG: {
если (вар == 15) {
вернуть sendQuestDialog(env, 1352);
}
} случай STEP_TO_2: {
ChangeQuestStep (окр., 15, 16, ложь);
вернуть closeDialogWindow (окр);
}
}
} if (targetId == 204792) {
переключатель (env.getDialog()) {
случай START_DIALOG: {
если (вар == 16) {
вернуть sendQuestDialog(env, 1694);
}
} случай SET_REWARD: {
qs.setStatus(QuestStatus.REWARD);
updateQuestStatus (окр);
вернуть closeDialogWindow (окр);
}
}
}
} else if (qs.getStatus() == QuestStatus.REWARD) {
если (targetId == 805842) {
вернуть sendQuestEndDialog (окр);
}
}
вернуть ложь;
}

@Override
общедоступное логическое значение onKillEvent (QuestEnv env) {
финальный игрок player = env.getPlayer();
окончательный QuestState qs = player.getQuestStateList().getQuestState(questId);
if (qs != null && qs.getStatus() == QuestStatus.START) {
int var = qs.getQuestVarById(0);
если (вар == 0) {
int var1 = qs.getQuestVarById(1);
if (var1 >= 0 && var1 < 14) {
return defaultOnKillEvent(env, Petrahulk_Sentinel, var1, var1 + 1, 1);
} иначе если (var1 == 14) {
qs.setQuestVar(15);
updateQuestStatus (окр);
вернуть истину;
}
}
}
вернуть ложь;
}
}
[/СПОЙЛЕР]

Благодаря этому редактированию некоторые Наблюдатели отмечены, а некоторые нет, но ни один из них не учитывает выполнение квеста. Я попробовал поместить набор переменных Steel_Rake_Watcher в цикл for, и когда это не сработало (как я видел раньше), я попытался сделать их индивидуально, что обычно работает.

try, two mobs without a tag
 

Attachments

You must be registered for see attachments list
Newbie Spellweaver
Joined
Apr 30, 2015
Messages
21
Reaction score
18
Hello!

I made a 5.8 server a long time ago, which I wrote in C#. Right now I don't have time to continue, but maybe there is something in it that you can use.
Many client and server packages are fully mapped, including the complete stat list, complete cp, dice, minions, etc. system, and 1-2 other things that might be useful (skill, quest sys, test ai sys, geodata viewer and editor)



Sorry if what I write is strange, google helped :D
 
Joined
Dec 6, 2013
Messages
391
Reaction score
814
Hello!

I made a 5.8 server a long time ago, which I wrote in C#. Right now I don't have time to continue, but maybe there is something in it that you can use.
Many client and server packages are fully mapped, including the complete stat list, complete cp, dice, minions, etc. system, and 1-2 other things that might be useful (skill, quest sys, test ai sys, geodata viewer and editor)



Sorry if what I write is strange, google helped :D

Thank you!
 
Junior Spellweaver
Joined
Mar 11, 2015
Messages
154
Reaction score
85
Hello!

I made a 5.8 server a long time ago, which I wrote in C#. Right now I don't have time to continue, but maybe there is something in it that you can use.
Many client and server packages are fully mapped, including the complete stat list, complete cp, dice, minions, etc. system, and 1-2 other things that might be useful (skill, quest sys, test ai sys, geodata viewer and editor)



Sorry if what I write is strange, google helped :D

Need some explanation just how to start))
 
Back
Top