Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Bonus de adena

Iniciado por juankirm, Oct 23, 2025, 03:34 PM

Tema anterior - Siguiente tema

juankirm

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

Swarlog

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 No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate., el valor utilizado es el indicado aqui debajo. Solo debes de añadir los cambios necesarios para que haga el efecto deseado.

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.
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;
    }