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

Junior Spellweaver
Joined
Sep 12, 2022
Messages
175
Reaction score
210
this one has been discontinued look "level 999" quest id="1056" name="Lepharist Poison Research" nameId="1102105" minlevel_permitted="999"
It will be discontinued but even so the npc has the arrow above his head saying "take me", and he has it in the list of available missions, I don't know how to proceed with this fix, any way to make it not show the 999 missions then as " take me"?
 
Newbie Spellweaver
Joined
Sep 6, 2015
Messages
61
Reaction score
113
For the quest when you are on the Steel Rake, there is nothing in Haorunerk's bag. Adding a will allow you to continue, but I haven't figured out to put one in the bag.

Change from:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="quest_use_item" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

to:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="chest" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

Add to chest_templates.xml
XML:
    <chest npcid="700522">
        <keyitem id="1" itemid="0" quantity="1"/>
    </chest>

and this code in quest_data.xml ensures that the scroll really drops if you have the quest and loot the chest / bag

XML:
<quest_drop npc_id="700522" item_id="182209082" drop_each_member="1" collecting_step="2"/>

Thats how you get the scroll in to the bag

I am trying to do this campaign quest called A Krall-ing suspicion [14024] But I can't collect my reward from Mabangtah. 😟

Maybe this Quest Code can help you (untestet because i don't use encom files)

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.mission;

import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestDialog;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;
import com.aionemu.gameserver.services.teleport.TeleportService2;

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

public class _14024A_Kralling_Suspicion extends QuestHandler
{
    private final static int questId = 14024;
    private final static int[] npc_ids = {203904, 204045, 204004, 204020};
    public _14024A_Kralling_Suspicion() {
        super(questId);
    }
    
    @Override
    public void register() {
        for (int npc_id: npc_ids) {
            qe.registerQuestNpc(npc_id).addOnTalkEvent(questId);
        }
        qe.registerOnLevelUp(questId);
        qe.registerOnEnterZoneMissionEnd(questId);
    }
    
    @Override
    public boolean onZoneMissionEndEvent(QuestEnv env) {
        return defaultOnZoneMissionEndEvent(env);
    }
    
    @Override
    public boolean onLvlUpEvent(QuestEnv env) {
        return defaultOnLvlUpEvent(env, 14023);
    }
    
    @Override
    public boolean onDialogEvent(QuestEnv env) {
        final Player player = env.getPlayer();
        final QuestState qs = player.getQuestStateList().getQuestState(questId);
        if (qs == null) {
            return false;
        }
        int targetId = env.getTargetId();
        if (qs.getStatus() == QuestStatus.START) {
            int var = qs.getQuestVarById(0);
            if (targetId == 203904) {
                switch (env.getDialog()) {
                    if (var == 0) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1011);
                        }
                        case SELECT_ACTION_1012: {
                            return sendQuestDialog(env, 1012);
                        }
                        case STEP_TO_1: {
                            changeQuestStep(env, 0, 1, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204045) {
                switch (env.getDialog()) {
                    if (var == 1) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1352);
                        }
                        case SELECT_ACTION_1353: {
                            return sendQuestDialog(env, 1353);
                        }
                        case STEP_TO_2: {
                            changeQuestStep(env, 1, 2, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204004) {
                switch (env.getDialog()) {
                    case START_DIALOG: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2034);
                        }
                    }
                    case SELECT_ACTION_2035: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2035);
                        }
                    }
                    case CHECK_COLLECTED_ITEMS: {
                        return checkQuestItems(env, 2, 3, false, 2120, 2035);
                    }
                    case STEP_TO_4: {
                        TeleportService2.teleportTo(player, 210020000, 1605.3418f, 1528.9393f, 318.0651f, (byte) 117);
                        changeQuestStep(env, 3, 3, true);
                        return true;
                    }
                    case FINISH_DIALOG: {
                        return closeDialogWindow(env);
                    }
                    default:
                        break;
                }
            }
        } else if (qs.getStatus() == QuestStatus.REWARD) {
            if (targetId == 204020) {
                if (env.getDialog() == QuestDialog.USE_OBJECT) {
                    return sendQuestDialog(env, 2375);
                }
                return sendQuestEndDialog(env);
            }
        }
        return false;
    }
}
 
Last edited:
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
Change from:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="quest_use_item" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

to:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="chest" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

Add to chest_templates.xml
XML:
    <chest npcid="700522">
        <keyitem id="1" itemid="0" quantity="1"/>
    </chest>

and this code in quest_data.xml ensures that the scroll really drops if you have the quest and loot the chest / bag

XML:
<quest_drop npc_id="700522" item_id="182209082" drop_each_member="1" collecting_step="2"/>

Thats how you get the scroll in to the bag



Maybe this Quest Code can help you (untestet because i don't use encom files)

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.mission;

import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestDialog;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;
import com.aionemu.gameserver.services.teleport.TeleportService2;

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

public class _14024A_Kralling_Suspicion extends QuestHandler
{
    private final static int questId = 14024;
    private final static int[] npc_ids = {203904, 204045, 204004, 204020};
    public _14024A_Kralling_Suspicion() {
        super(questId);
    }
 
    @Override
    public void register() {
        for (int npc_id: npc_ids) {
            qe.registerQuestNpc(npc_id).addOnTalkEvent(questId);
        }
        qe.registerOnLevelUp(questId);
        qe.registerOnEnterZoneMissionEnd(questId);
    }
 
    @Override
    public boolean onZoneMissionEndEvent(QuestEnv env) {
        return defaultOnZoneMissionEndEvent(env);
    }
 
    @Override
    public boolean onLvlUpEvent(QuestEnv env) {
        return defaultOnLvlUpEvent(env, 14023);
    }
 
    @Override
    public boolean onDialogEvent(QuestEnv env) {
        final Player player = env.getPlayer();
        final QuestState qs = player.getQuestStateList().getQuestState(questId);
        if (qs == null) {
            return false;
        }
        int targetId = env.getTargetId();
        if (qs.getStatus() == QuestStatus.START) {
            int var = qs.getQuestVarById(0);
            if (targetId == 203904) {
                switch (env.getDialog()) {
                    if (var == 0) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1011);
                        }
                        case SELECT_ACTION_1012: {
                            return sendQuestDialog(env, 1012);
                        }
                        case STEP_TO_1: {
                            changeQuestStep(env, 0, 1, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204045) {
                switch (env.getDialog()) {
                    if (var == 1) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1352);
                        }
                        case SELECT_ACTION_1353: {
                            return sendQuestDialog(env, 1353);
                        }
                        case STEP_TO_2: {
                            changeQuestStep(env, 1, 2, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204004) {
                switch (env.getDialog()) {
                    case START_DIALOG: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2034);
                        }
                    }
                    case SELECT_ACTION_2035: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2035);
                        }
                    }
                    case CHECK_COLLECTED_ITEMS: {
                        return checkQuestItems(env, 2, 3, false, 2120, 2035);
                    }
                    case STEP_TO_4: {
                        TeleportService2.teleportTo(player, 210020000, 1605.3418f, 1528.9393f, 318.0651f, (byte) 117);
                        changeQuestStep(env, 3, 3, true);
                        return true;
                    }
                    case FINISH_DIALOG: {
                        return closeDialogWindow(env);
                    }
                    default:
                        break;
                }
            }
        } else if (qs.getStatus() == QuestStatus.REWARD) {
            if (targetId == 204020) {
                if (env.getDialog() == QuestDialog.USE_OBJECT) {
                    return sendQuestDialog(env, 2375);
                }
                return sendQuestEndDialog(env);
            }
        }
        return false;
    }
}
FrozenKiller thank you so much bro it worked now you can add it to "github" working for everyone. "Price of Goodwill" ID: 3200 and another thing that helped me a lot was Robyson version 4.3 code I had to create a character to understand how it works.

this mission requires you to be level 35 to deliver. ID: 14024
The Krall-ing Suspicion is just like that because I noticed that the NPC "Mabangtah" has level 35 and the mission is level 28, it only releases to deliver at level 35, I can't say if it's supposed to be like that, its functioning is right nothing is wrong, but even so, I'm going to put the writing that FrozenKiller sent us on "github", with some changes due to incompatibility with encom.
 
Last edited:
Skilled Illusionist
Joined
Nov 8, 2019
Messages
312
Reaction score
304
Change from:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="quest_use_item" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

to:
XML:
<npc_template npc_id="700522" level="1" name="haorunerk's bag" name_id="371261" npc_type="NON_ATTACKABLE" height="2" rank="DISCIPLINED" rating="NORMAL" tribe="FIELD_OBJECT_ALL" type="GENERAL" ai="chest" attack_delay="2000" hpgauge_level="3">
        <stats maxHp="172" maxXp="100" main_hand_attack="20" main_hand_accuracy="187" pdef="100" mresist="187" power="23" evasion="187" accuracy="93"/>
        <bound_radius front="0.25" side="0.35" upper="2"/>
        <talk_info distance="5" delay="3"/>
    </npc_template>

Add to chest_templates.xml
XML:
    <chest npcid="700522">
        <keyitem id="1" itemid="0" quantity="1"/>
    </chest>

and this code in quest_data.xml ensures that the scroll really drops if you have the quest and loot the chest / bag

XML:
<quest_drop npc_id="700522" item_id="182209082" drop_each_member="1" collecting_step="2"/>

Thats how you get the scroll in to the bag



Maybe this Quest Code can help you (untestet because i don't use encom files)

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.mission;

import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
import com.aionemu.gameserver.questEngine.model.QuestDialog;
import com.aionemu.gameserver.questEngine.model.QuestEnv;
import com.aionemu.gameserver.questEngine.model.QuestState;
import com.aionemu.gameserver.questEngine.model.QuestStatus;
import com.aionemu.gameserver.services.teleport.TeleportService2;

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

public class _14024A_Kralling_Suspicion extends QuestHandler
{
    private final static int questId = 14024;
    private final static int[] npc_ids = {203904, 204045, 204004, 204020};
    public _14024A_Kralling_Suspicion() {
        super(questId);
    }
   
    @Override
    public void register() {
        for (int npc_id: npc_ids) {
            qe.registerQuestNpc(npc_id).addOnTalkEvent(questId);
        }
        qe.registerOnLevelUp(questId);
        qe.registerOnEnterZoneMissionEnd(questId);
    }
   
    @Override
    public boolean onZoneMissionEndEvent(QuestEnv env) {
        return defaultOnZoneMissionEndEvent(env);
    }
   
    @Override
    public boolean onLvlUpEvent(QuestEnv env) {
        return defaultOnLvlUpEvent(env, 14023);
    }
   
    @Override
    public boolean onDialogEvent(QuestEnv env) {
        final Player player = env.getPlayer();
        final QuestState qs = player.getQuestStateList().getQuestState(questId);
        if (qs == null) {
            return false;
        }
        int targetId = env.getTargetId();
        if (qs.getStatus() == QuestStatus.START) {
            int var = qs.getQuestVarById(0);
            if (targetId == 203904) {
                switch (env.getDialog()) {
                    if (var == 0) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1011);
                        }
                        case SELECT_ACTION_1012: {
                            return sendQuestDialog(env, 1012);
                        }
                        case STEP_TO_1: {
                            changeQuestStep(env, 0, 1, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204045) {
                switch (env.getDialog()) {
                    if (var == 1) {
                        case START_DIALOG: {
                            return sendQuestDialog(env, 1352);
                        }
                        case SELECT_ACTION_1353: {
                            return sendQuestDialog(env, 1353);
                        }
                        case STEP_TO_2: {
                            changeQuestStep(env, 1, 2, false);
                            return closeDialogWindow(env);
                        }
                        default:
                            break;
                    }
                }
            } if (targetId == 204004) {
                switch (env.getDialog()) {
                    case START_DIALOG: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2034);
                        }
                    }
                    case SELECT_ACTION_2035: {
                        if (var == 2) {
                            return sendQuestDialog(env, 2035);
                        }
                    }
                    case CHECK_COLLECTED_ITEMS: {
                        return checkQuestItems(env, 2, 3, false, 2120, 2035);
                    }
                    case STEP_TO_4: {
                        TeleportService2.teleportTo(player, 210020000, 1605.3418f, 1528.9393f, 318.0651f, (byte) 117);
                        changeQuestStep(env, 3, 3, true);
                        return true;
                    }
                    case FINISH_DIALOG: {
                        return closeDialogWindow(env);
                    }
                    default:
                        break;
                }
            }
        } else if (qs.getStatus() == QuestStatus.REWARD) {
            if (targetId == 204020) {
                if (env.getDialog() == QuestDialog.USE_OBJECT) {
                    return sendQuestDialog(env, 2375);
                }
                return sendQuestEndDialog(env);
            }
        }
        return false;
    }
}
Thank you FrozenKiller, but where should I put this Java code? Bit confused, sorry.
 
Master Summoner
Joined
May 25, 2020
Messages
543
Reaction score
240
While boring in free time I decided a bit test some quests and this one look like be a bit broken
Can't receive items after finish from Wanda.
Someone can check as well it's only gladiator problem or all classes.
Regarding.
 
Skilled Illusionist
Joined
Nov 8, 2019
Messages
312
Reaction score
304
Read the description window for Nimble. He is only around at a certain time.
I've done that quest many times before and I always managed to find Nimble. Thanks Pressure, I will check that out.
 
Joined
Dec 6, 2013
Messages
391
Reaction score
814
I've done that quest many times before and I always managed to find Nimble. Thanks Pressure, I will check that out.
Any time you are having trouble finding a mob, check their description window. Their appearance might be conditional. If that doesn't help, you can also check the spawn xml for the zone to ensure it's in there and if there are conditions:
Code:
        <!-- Nimble Aramis -->
        <spawn npc_id="213797" respawn_time="1800">
            <temporary_spawn spawn_time="21.*.*" despawn_time="4.*.*"/>
            <spot x="583.41" y="1723.98" z="238.09062" h="79" walker_id="5E214B2F2016FA251780B543B81E4B078D52E536"/>
        </spawn>
 
Joined
Oct 5, 2018
Messages
774
Reaction score
1,144
While boring in free time I decided a bit test some quests and this one look like be a bit broken
Can't receive items after finish from Wanda.
Someone can check as well it's only gladiator problem or all classes.
Regarding.
I was unable to complete quest ID: 10505, called 'Sneeze Attack', due to an issue preventing quest delivery. I need to resolve the previous quest to be able to move forward and investigate the issue in quest ID: 10521 titled 'Memories of Eternity'. However, I still don't understand why I had problems with the '10505' quest. And you?
 
Master Summoner
Joined
May 25, 2020
Messages
543
Reaction score
240
I was unable to complete quest ID: 10505, called 'Sneeze Attack', due to an issue preventing quest delivery. I need to resolve the previous quest to be able to move forward and investigate the issue in quest ID: 10521 titled 'Memories of Eternity'. However, I still don't understand why I had problems with the '10505' quest. And you?
same
 
Joined
Dec 6, 2013
Messages
391
Reaction score
814
This quest is shown but not obtainable. Is it because it doesn't have objectives?
Code:
    <quest id="1668" name="Draconute Weapon" nameId="1102859" minlevel_permitted="44" max_repeat_count="1" cannot_share="true" race_permitted="ELYOS" category="IMPORTANT">
        <rewards exp="5895626">
            <reward_item item_id="186000005" count="20"/>
        </rewards>
    </quest>


It is given by

-------------------------------------------------------------

Getting this in Sanctum when trying to teleport to Inggison:
1694104084583 - Aion 5.8 emulator improvement community project - RaGEZONE Forums


There is no file called teleporter_templates.xml, but here is the entry in teleport_location.xml:
Code:
    <teleloc_template loc_id="313" mapid="210130000" name="Outer Port Of Inggison" name_id="403989" posX="1369.6293" posY="360.29944" posZ="589.57605" heading="17"/>
 

Attachments

You must be registered for see attachments list
Last edited:
Skilled Illusionist
Joined
Nov 8, 2019
Messages
312
Reaction score
304
When my inventory gets full, I cannot attack. Is there a way to disable that?
 
Newbie Spellweaver
Joined
Sep 6, 2015
Messages
61
Reaction score
113
Getting this in Sanctum when trying to teleport to Inggison:
View attachment 241387

There is no file called teleporter_templates.xml, but here is the entry in teleport_location.xml:
Code:
    <teleloc_template loc_id="313" mapid="210130000" name="Outer Port Of Inggison" name_id="403989" posX="1369.6293" posY="360.29944" posZ="589.57605" heading="17"/>

data/static_data/npc_teleporter.xml
 
Back
Top