U3Games

Games | Desarrollo & Soporte => L2 | Sección de Servidores => Lineage => L2 | Apartado de Soporte => Mensaje iniciado por: juankirm en Oct 23, 2025, 03:34 PM

Título: Bonus de adena
Publicado por: juankirm en Oct 23, 2025, 03:34 PM
Buenas, quiero implementar en mi servidor un bonus de adena ya sea bien por item o por buff, algo parecido como la Rune of experience y necesito un poco de ayuda, alguien me echa una manito? >.<  ;D ;D ;D
Título: Re:Bonus de adena
Publicado por: Swarlog en Nov 05, 2025, 11:35 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Buenas, quiero implementar en mi servidor un bonus de adena ya sea bien por item o por buff, algo parecido como la Rune of experience y necesito un poco de ayuda, alguien me echa una manito? >.<  ;D ;D ;D

Ahora en L2j-Server High Five, esta el sistema de drop mucho más optimizado y los cambios son mínimos. Eso si, tienes muchas formas de hacerlo, te comento algunas de ellas:

1.- CORE:

Solo debes de fijarte en el documento rate.properties, el valor utilizado es el indicado aqui debajo. Solo debes de añadir los cambios necesarios para que haga el efecto deseado.

https://github.com/L2J/L2J_Server/search?utf8=%E2%9C%93&q=RATE_DROP_AMOUNT_MULTIPLIER
Un ejemplo:

// Updates database
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.getOrDefault(Inventory.ADENA_ID, 1f);
float adenaRateVip = Config.RATE_DROP_AMOUNT_MULTIPLIER_VIP.getOrDefault(Inventory.ADENA_ID, 1f);

if (Config.RATE_DROP_AMOUNT_MULTIPLIER_VIP_ENABLED)
{
if ((item.getId() == Inventory.ADENA_ID) && (count < (10000 * adenaRateVip)))
{
// Small adena changes won't be saved to database all the time
if ((GameTimeController.getInstance().getGameTicks() % 5) == 0)
{
item.updateDatabase();
}
}
else
{
item.updateDatabase();
}
}
else
{
if ((item.getId() == Inventory.ADENA_ID) && (count < (10000 * adenaRate)))
{
// Small adena changes won't be saved to database all the time
if ((GameTimeController.getInstance().getGameTicks() % 5) == 0)
{
item.updateDatabase();
}
}
else
{
item.updateDatabase();
}
}



2.- DATA:

Puedes crear una nueva clase que registre todos los mobs o los deseados y que cuando los mates, si cumples X pues el rate sea aumentado. Este método es mucho más sencillo y tienes mucho menos que tocar.

Ejemplo:

@Override
    public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
    {
        long _adenaVip = npc.getAdena() / (1 - (BONUS_RATE_ADENA / 100));
killer.addAdena("BONUS", _adenaVip, npc, true);
killer.sendMessage("Bonus Adena:" + _adenaVip + "!");
        return null;
    }