Праздничный Торт - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Описание темы:Помощь

Ответ
Опции темы
Непрочитано 28.06.2013, 15:14   #11
Аватар для Tr1v1um
Пользователь

Автор темы (Топик Стартер) Re: Праздничный Торт

Цитата:
Сообщение от Krasavella Посмотреть сообщение
Лучше через минуту для проверки.
В итоге:Торт спавнится нормально,баф не кидается.
__________________
Tr1v1um вне форума Отправить сообщение для Tr1v1um с помощью ICQ Ответить с цитированием
Непрочитано 28.06.2013, 15:19   #12
Аватар для Krasavella
ваще Красауэлла

По умолчанию Re: Праздничный Торт

Цитата:
Сообщение от Tr1v1um Посмотреть сообщение
В итоге:Торт спавнится нормально,баф не кидается.
AI создан? Id Npc и Buff'а верно указали?

 
	@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;
	}
 
Code: Java
Так же обратите внимание на условия.
__________________
Krasavella вне форума Ответить с цитированием
Непрочитано 28.06.2013, 15:24   #13
Аватар для Tr1v1um
Пользователь

Автор темы (Топик Стартер) Re: Праздничный Торт

Цитата:
Сообщение от Krasavella Посмотреть сообщение
AI создан? Id Npc и Buff'а верно указали?

 
	@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;
	}
 
Code: Java
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_N EARBY_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;
}
}

Если что-то не правильно то подскажите пожалуйста
__________________

Последний раз редактировалось Tr1v1um; 28.06.2013 в 15:27. Причина: Добавлено сообщение
Tr1v1um вне форума Отправить сообщение для Tr1v1um с помощью ICQ Ответить с цитированием
Непрочитано 28.06.2013, 18:02   #14
Аватар для Gaikotsu
Герой

По умолчанию Re: Праздничный Торт

после
npc.setAI(new cakeAI(npc));
Code: Java
добавь
npc.getAI().startAITask();
Code: Java
З.Ы. и пользуйся тэгами для показа кода, а то неформатированный код - та еще глазоломка.
Gaikotsu вне форума Ответить с цитированием
Непрочитано 28.06.2013, 18:49   #15
Аватар для Tr1v1um
Пользователь

Автор темы (Топик Стартер) Re: Праздничный Торт

Цитата:
Сообщение от Gaikotsu Посмотреть сообщение
после
npc.setAI(new cakeAI(npc));
Code: Java
добавь
npc.getAI().startAITask();
Code: Java
З.Ы. и пользуйся тэгами для показа кода, а то неформатированный код - та еще глазоломка.
Хорошо.
Нет,не помогло.Добавил ниже код который вы написали.Всё так же..

Добавлено через 26 минут
Проблему решил.В скилле вместо TARGET_PARTY изменил на TARGET_NONE
__________________

Последний раз редактировалось Tr1v1um; 28.06.2013 в 19:15. Причина: Добавлено сообщение
Tr1v1um вне форума Отправить сообщение для Tr1v1um с помощью ICQ Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
itamename-e.dat UFODriverr Lineage II 5 28.02.2021 18:17
ID предметов в 2.2.3 MMd Документация 1 28.12.2009 01:03


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 23:42. Часовой пояс GMT +3.

Вверх