Добрый день. Прошу помощи кто знает java язык. Использую сборку Mmorpg-team, в этой сборке есть event который добавляет всем мобам Item, и дел в том-что дроп падает по формуле:
Как сделать что бы падало нормально 4-8 штук (min/max).
Вот сам код:
package events.other;
import l2m.gameserver.aConfig;
import l2m.gameserver.listener.actor.OnDeathListener;
import l2m.gameserver.model.Creature;
import l2m.gameserver.model.actor.listener.CharListenerList;
import l2m.gameserver.model.instances.MonsterInstance;
import l2m.gameserver.scripts.Functions;
import l2m.gameserver.scripts.ScriptFile;
import l2m.gameserver.utils.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map.Entry;
/**
* User: KASELUR
* Date: 29.02.2012
* Time: 19:08:42
*/
public class DropEvent extends Functions implements ScriptFile, OnDeathListener
{
private static final Logger _log = LoggerFactory.getLogger(DropEvent.class);
private static boolean isActive = aConfig.get("EventMonster", false) || aConfig.get("EventRaid", false);
@Override
public void onLoad()
{
CharListenerList.addGlobal(this);
if (isActive)
_log.info("Loaded Event: L2DropEvent [state: activated]");
else
_log.info("Loaded Event: L2DropEvent [state: deactivated]");
}
@Override
public void onReload() {
}
@Override
public void onShutdown() {
}
/**
* Обработчик смерти мобов, управляющий эвентовым дропом
*/
@Override
public void onDeath(Creature cha, Creature killer)
{
if(cha != null && killer != null && killer.getPlayer() != null && killer.getLevel() - cha.getLevel() < 9 && isActive)
if(cha.isMonster() && cha.getLevel() >= 70 && aConfig.get("EventMonster", false))
if(cha.isMonster() && cha.getLevel() <= 75 && aConfig.get("EventMonster", false))
{
for (Entry<Integer, Double> _item : aConfig.getID("EventDroup", new HashMap<Integer, Double>()).entrySet())
{
long count = Util.rollDrop(1, 2, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
if (count > 0)
addItem(killer.getPlayer(), _item.getKey(), count);
}
}
if(cha != null && killer != null && killer.getPlayer() != null && killer.getLevel() - cha.getLevel() < 9 && isActive)
if(cha.isMonster() && cha.getLevel() >= 76 && aConfig.get("EventMonster", false))
if(cha.isMonster() && cha.getLevel() <= 84 && aConfig.get("EventMonster", false))
{
for (Entry<Integer, Double> _item : aConfig.getID("EventDroup", new HashMap<Integer, Double>()).entrySet())
{
long count = Util.rollDrop(1, 3, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
if (count > 0)
addItem(killer.getPlayer(), _item.getKey(), count);
}
}
if(cha != null && killer != null && killer.getPlayer() != null && killer.getLevel() - cha.getLevel() < 9 && isActive)
if(cha.isMonster() && cha.getLevel() >= 85 && aConfig.get("EventMonster", false))
{
for (Entry<Integer, Double> _item : aConfig.getID("EventDroup", new HashMap<Integer, Double>()).entrySet())
{
long count = Util.rollDrop(1, 4, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
if (count > 0)
addItem(killer.getPlayer(), _item.getKey(), count);
}
}
if(cha.isRaid() && cha.getLevel() >= 60 && aConfig.get("EventRaid", false))
if(cha.isRaid() && cha.getLevel() <= 70 && aConfig.get("EventRaid", false))
{
for (Entry<Integer, Double> _item : aConfig.getID("EventRaidDroup", new HashMap<Integer, Double>()).entrySet())
{
long count = Util.rollDrop(1, 7, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
if (count > 0)
addItem(killer.getPlayer(), _item.getKey(), count);
}
}
if(cha.isRaid() && cha.getLevel() >= 71 && aConfig.get("EventRaid", false))
if(cha.isRaid() && cha.getLevel() <= 80 && aConfig.get("EventRaid", false))
{
for (Entry<Integer, Double> _item : aConfig.getID("EventRaidDroup2", new HashMap<Integer, Double>()).entrySet())
{
long count = Util.rollDrop(1, 1, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
if (count > 0)
addItem(killer.getPlayer(), _item.getKey(), count);
}
}
}
}
То есть нужно изменить вот эту строчку:
long count = Util.rollDrop(1, 1, _item.getValue() * killer.getPlayer().getRateItems() * ((MonsterInstance) cha).getTemplate().rateHp * 10000L, false);
Что-бы было (Min/Max)
Помогите пожалуйста очень сильно прошу(