- Хроники
- Interlude
- Сборка
- Pain-Team
Здравствуйте, суть проблемы такова, имеется скрипт "Surprise" который при клике по итему рандомно выдает итемы прописанные в скрипте.
Редактировал скрипт под себя, по итогу из всех итемов нормально выдается только 1, остальные же итемы нет, хотя в чате пишется что выдано.
Что по итогу сделал не так не пойму, прошу "обьяснить" без негатива.
Редактировал скрипт под себя, по итогу из всех итемов нормально выдается только 1, остальные же итемы нет, хотя в чате пишется что выдано.
[20:27:55] ERROR Client: IN_GAME IP: 127.0.0.1 Account: root Player: Excellent[268476467] - Failed running: [C] UseItem
java.lang.IllegalArgumentException
at l2p.gameserver.model.instances.L2ItemInstance.<init>(L2ItemInstance.java:209)
at l2p.gameserver.model.instances.L2ItemInstance.<init>(L2ItemInstance.java:195)
at l2p.gameserver.tables.ItemTable.createItem(ItemTable.java:557)
at l2p.gameserver.model.items.Inventory.addItem(Inventory.java:192)
at l2p.gameserver.model.items.Inventory.addItem(Inventory.java:187)
at items.HeroChest.useItem(HeroChest.java:58)
at l2p.gameserver.clientpackets.UseItem.runImpl(UseItem.java:258)
at l2p.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:53)
at l2p.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:55)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
java.lang.IllegalArgumentException
at l2p.gameserver.model.instances.L2ItemInstance.<init>(L2ItemInstance.java:209)
at l2p.gameserver.model.instances.L2ItemInstance.<init>(L2ItemInstance.java:195)
at l2p.gameserver.tables.ItemTable.createItem(ItemTable.java:557)
at l2p.gameserver.model.items.Inventory.addItem(Inventory.java:192)
at l2p.gameserver.model.items.Inventory.addItem(Inventory.java:187)
at items.HeroChest.useItem(HeroChest.java:58)
at l2p.gameserver.clientpackets.UseItem.runImpl(UseItem.java:258)
at l2p.gameserver.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:53)
at l2p.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:55)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Java:
package items;
import l2p.commons.util.Rnd;
import l2p.gameserver.handler.IItemHandler;
import l2p.gameserver.handler.ItemHandler;
import l2p.gameserver.model.L2Playable;
import l2p.gameserver.model.L2Player;
import l2p.gameserver.model.instances.L2ItemInstance;
import l2p.gameserver.scripts.ScriptFile;
import l2p.gameserver.serverpackets.ItemList;
import l2p.gameserver.serverpackets.SystemMessage;
/**
* @author: PaiN
*/
public class HeroChest implements IItemHandler, ScriptFile
{
private static final int[] _itemIds = { 9210 };
private static final int[] WeaponChest = {9211};
private static final int[] JewelryChest = {9212};
private static final int[] CostumeChest = {9213};
private static final int[] item1 = {6651};
@Override
public boolean useItem(L2Playable playable, L2ItemInstance item, Boolean ctrl)
{
if(playable == null || !playable.isPlayer())
return false;
L2Player player = (L2Player) playable;
if(player.isActionsDisabled() || player.isSitting())
{
player.sendActionFailed();
return false;
}
int itemId = 0;
int count = 0;
if(Rnd.chance(5))
itemId = 10579;
else if(Rnd.chance(15))
itemId = Rnd.get(WeaponChest);
else if(Rnd.chance(20))
itemId = Rnd.get(JewelryChest);
else if(Rnd.chance(25))
itemId = Rnd.get(CostumeChest);
else if(Rnd.chance(35))
itemId = Rnd.get(item1);
if(itemId == 6651)
count = Rnd.get(500, 2500);
player.getInventory().destroyItem(item, 1, false);
player.getInventory().addItem(itemId, count, "<OpenHeroChest>");
player.sendPacket(new ItemList(player, false));
player.sendPacket(SystemMessage.obtainItems(itemId, count, 0));
return true;
}
public final int[] getItemIds()
{
return _itemIds;
}
public void onLoad()
{
ItemHandler.getInstance().registerItemHandler(this);
}
public void onReload()
{}
public void onShutdown()
{}
}
Что по итогу сделал не так не пойму, прошу "обьяснить" без негатива.
Последнее редактирование модератором: