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
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;
}