06-28-2013, 03:14 PM
Krasavella Написал:Лучше через минуту для проверки.В итоге:Торт спавнится нормально,баф не кидается.
Праздничный Торт
|
06-28-2013, 03:14 PM
Krasavella Написал:Лучше через минуту для проверки.В итоге:Торт спавнится нормально,баф не кидается.
06-28-2013, 03:19 PM
Tr1v1um Написал:В итоге:Торт спавнится нормально,баф не кидается.AI создан? Id Npc и Buff'а верно указали? [SRC="java"] @Override protected boolean thinkActive() { NpcInstance actor = getActor(); if(actor == null) return true; int skillId = 2139; for(Player player : World.getAroundPlayers(actor, 200, 200)) if(player != null && !player.isInZonePeace() && player.getEffectList().getEffectsBySkillId(skillId) == null) actor.doCast(SkillTable.getInstance().getInfo(skillId, 1), player, true); return false; } [/SRC] Так же обратите внимание на условия. Krasavella Написал:AI создан? Id Npc и Buff'а верно указали? AI создан.ID нпц указал правильно.Если бы не указал правильный ID то тогда тортик вообще не вылез бы) ID скилла указал. Хотя уже выявил проблему скорее всего "getEffectsBySkillId(skillId) == null)"У меня было вместо null , 1.Сейчас сделаю рестарт и посмотрим) Добавлено через 1 минуту Ошибся.Было в .getInfo(skillId, 1) Так и осталось. Вроде всё правильно указал. Добавлено через 2 минуты ackage events.Cake; import l2p.commons.threading.RunnableImpl; import l2p.gameserver.ThreadPoolManager; import l2p.gameserver.cache.Msg; import l2p.gameserver.data.xml.holder.NpcHolder; import l2p.gameserver.model.Playable; import l2p.gameserver.model.Player; import l2p.gameserver.model.SimpleSpawner; import l2p.gameserver.model.World; import l2p.gameserver.model.instances.NpcInstance; import l2p.gameserver.model.items.ItemInstance; import l2p.gameserver.serverpackets.components.SystemMsg; import l2p.gameserver.serverpackets.SystemMessage2; import l2p.gameserver.templates.npc.NpcTemplate; import handler.items.ScriptItemHandler; public class cake extends ScriptItemHandler { public class DeSpawnScheduleTimerTask extends RunnableImpl { SimpleSpawner spawnedTree = null; public DeSpawnScheduleTimerTask(SimpleSpawner spawn) { spawnedTree = spawn; } @Override public void runImpl() throws Exception { spawnedTree.deleteAll(); } } private static int[] _itemIds = { 20320 // Party Cake }; private static int[] _npcIds = { 147 // Party Cake }; private static final int DESPAWN_TIME = 3600000; //60 min @Override public boolean useItem(Playable playable, ItemInstance item, boolean ctrl) { Player activeChar = (Player) playable; NpcTemplate template = null; int itemId = item.getItemId(); for(int i = 0; i < _itemIds.length; i++) if(_itemIds[i] == itemId) { template = NpcHolder.getInstance().getTemplate(_npcIds[i]); break; } for(NpcInstance npc : World.getAroundNpc(activeChar, 300, 200)) if(npc.getNpcId() == _npcIds[0] || npc.getNpcId() == _npcIds[1]) { activeChar.sendPacket(new SystemMessage2(SystemMsg.SINCE_S1_ALREADY_EXISTS_NEARBY_YOU_CANNOT_SUMMON_IT_AGAIN).addName(npc)); return false; } // Запрет на саммон елок слищком близко к другим НПЦ if(World.getAroundNpc(activeChar, 100, 200).size() > 0) { activeChar.sendPacket(Msg.YOU_MAY_NOT_SUMMON_FROM_YOUR_CURRENT_LOCATION); return false; } if(template == null) return false; if (!activeChar.getInventory().destroyItem(item, 1L)) return false; SimpleSpawner spawn = new SimpleSpawner(template); spawn.setLoc(activeChar.getLoc()); NpcInstance npc = spawn.doSpawn(false); npc.setTitle(activeChar.getName()); //FIXME Почему-то не устанавливается spawn.respawnNpc(npc); // АИ вещающее бафф регена устанавливается только для большой елки if(itemId == 20320) npc.setAI(new cakeAI(npc)); ThreadPoolManager.getInstance().schedule(new DeSpawnScheduleTimerTask(spawn), (activeChar.isInPeaceZone() ? DESPAWN_TIME / 3 : DESPAWN_TIME)); return true; } @Override public int[] getItemIds() { return _itemIds; } } Если что-то не правильно то подскажите пожалуйста
06-28-2013, 06:02 PM
после
[SRC="java"]npc.setAI(new cakeAI(npc));[/SRC] добавь [SRC="java"]npc.getAI().startAITask();[/SRC] З.Ы. и пользуйся тэгами для показа кода, а то неформатированный код - та еще глазоломка. Gaikotsu Написал:после Хорошо. Нет,не помогло.Добавил ниже код который вы написали.Всё так же.. Добавлено через 26 минут Проблему решил.В скилле вместо TARGET_PARTY изменил на TARGET_NONE |
« Предыдущая | Следующая »
|