An example of an item that gives a random buff when the item is used.
Пример предмета который выдает случайный бафф при использовании предмета.
Пример предмета который выдает случайный бафф при использовании предмета.
Java:
package handler.items;
import l2.commons.util.Rnd;
import l2.gameserver.model.Player;
import l2.gameserver.model.items.ItemInstance;
import l2.gameserver.network.l2.components.SystemMsg;
import l2.gameserver.network.l2.s2c.MagicSkillUse;
import l2.gameserver.network.l2.s2c.SystemMessage;
import l2.gameserver.tables.SkillTable;
public class RandomBuffItem extends SimpleItemHandler
{
private static final int[] ITEM_IDS = new int[] { 50001 }; // Item ID
private static final int[] BUFF_LIST = {
2404, // Might
2406, // Wind Walk
2407, // Focus
2409, // Guidance
2412 // Haste
};
@Override
public int[] getItemIds()
{
return ITEM_IDS;
}
@Override
protected boolean useItemImpl(Player player, ItemInstance item, boolean ctrl)
{
int itemId = item.getItemId();
if (player.isOlyParticipant())
{
player.sendPacket(new SystemMessage(SystemMsg.S1_CANNOT_BE_USED_DUE_TO_UNSUITABLE_TERMS).addItemName(itemId));
return false;
}
if (!useItem(player, item, 1))
return false;
// Select random buff | Рандомим случайный бафф
int selectedSkill = Rnd.get(BUFF_LIST);
// Applying the buff | Применение баффа
player.broadcastPacket(new MagicSkillUse(player, player, selectedSkill, 1, 0, 0));
player.altOnMagicUseTimer(player, SkillTable.getInstance().getInfo(selectedSkill, 1));
return true;
}
}