SkillCreateItem fix and rework.
This commit is contained in:
@@ -16,81 +16,40 @@
|
||||
*/
|
||||
package org.l2jmobius.gameserver.model.skills.handlers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
import org.l2jmobius.gameserver.idfactory.IdFactory;
|
||||
import org.l2jmobius.gameserver.model.Skill;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ItemList;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
/**
|
||||
* @author Nemesiss
|
||||
* @author Nemesiss, Mobius
|
||||
*/
|
||||
public class SkillCreateItem extends Skill
|
||||
{
|
||||
private final List<Integer> _createItemId;
|
||||
private final int _createItemId;
|
||||
private final int _createItemCount;
|
||||
private final int _randomCount;
|
||||
private final int _createRandomCount;
|
||||
|
||||
public SkillCreateItem(StatSet set)
|
||||
{
|
||||
super(set);
|
||||
_createItemId = set.getList("create_item_id", Integer.class);
|
||||
_createItemCount = set.getInt("create_item_count", 0);
|
||||
_randomCount = set.getInt("random_count", 1);
|
||||
_createItemId = set.getInt("createItemId", 0);
|
||||
_createItemCount = set.getInt("createItemCount", 0);
|
||||
_createRandomCount = set.getInt("createRandomCount", 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void useSkill(Creature creature, WorldObject[] targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
if (creature.isAlikeDead() || (_createItemId == 0) || (_createItemCount == 0))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ((_createItemId == null) || (_createItemCount == 0))
|
||||
|
||||
if (creature.isPlayable())
|
||||
{
|
||||
// player.sendPacket(new SystemMessage(SystemMessageId.SKILL_NOT_AVAILABLE));
|
||||
return;
|
||||
creature.getActingPlayer().addItem("Create Item Skill", _createItemId, _createRandomCount > 1 ? _createItemCount * (Rnd.get(_createRandomCount) + 1) : _createItemCount, creature, true);
|
||||
}
|
||||
final PlayerInstance player = (PlayerInstance) creature;
|
||||
if (creature instanceof PlayerInstance)
|
||||
{
|
||||
final int count = _createItemCount * (Rnd.get(_randomCount) + 1);
|
||||
final int rndId = Rnd.get(_createItemId.size());
|
||||
giveItems(player, _createItemId.get(rndId), count);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param player
|
||||
* @param itemId
|
||||
* @param count
|
||||
*/
|
||||
public void giveItems(PlayerInstance player, int itemId, int count)
|
||||
{
|
||||
final ItemInstance item = new ItemInstance(IdFactory.getNextId(), itemId);
|
||||
item.setCount(count);
|
||||
player.getInventory().addItem("Skill", item, player, player);
|
||||
if (count > 1)
|
||||
{
|
||||
final SystemMessage smsg = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S2_S1_S);
|
||||
smsg.addItemName(item.getItemId());
|
||||
smsg.addNumber(count);
|
||||
player.sendPacket(smsg);
|
||||
}
|
||||
else
|
||||
{
|
||||
final SystemMessage smsg = new SystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
smsg.addItemName(item.getItemId());
|
||||
player.sendPacket(smsg);
|
||||
}
|
||||
player.sendPacket(new ItemList(player, false));
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user