Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Баффер нпс
#1
l2jserver

Подскажите, как правильно прописать, чтобы нпс бафал сразу несколько скилов, а не 1 скил. Прописан скил id 1077 (Фокусировка), а как сделать, чтобы допустим бафал еще и id 1040 (Щит)?

Цитата:public class GiftOfVitality extends LongTimeEvent
{
// Reuse between buffs
private static final int HOURS = 1;
// NPC
private static final int JACK = 4306;

public GiftOfVitality(String name, String descr)
{
super(name, descr);
addStartNpc(JACK);
addFirstTalkId(JACK);
addTalkId(JACK);
}

@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = event;
QuestState st = player.getQuestState(getName());

if (event.equalsIgnoreCase("vitality"))
{
long _reuse = 0;
String _streuse = st.get("reuse");
if (_streuse != null)
{
_reuse = Long.parseLong(_streuse);
}
if (_reuse > System.currentTimeMillis())
{
long remainingTime = (_reuse - System.currentTimeMillis()) / 1000;
int hours = (int) (remainingTime / 3600);
int minutes = (int) ((remainingTime % 3600) / 60);
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.AVAILABLE_AFTER_S1_S2_HOURS_S3_MINUTES);
sm.addSkillName(1077);
sm.addNumber(hours);
sm.addNumber(minutes);
player.sendPacket(sm);
htmltext = "4306-notime.htm";
}
else
{
npc.setTarget(player);
// Gift of Vitality
npc.doCast(SkillTable.getInstance().getInfo(1077, 1));
st.setState(State.STARTED);
st.set("reuse", String.valueOf(System.currentTimeMillis() + (HOURS * 3600000)));
htmltext = "4306-okvitality.htm";


}
Ответ
#2
можно и логику включить, смотрим в скрипте есть строка
npc.doCast(SkillTable.getInstance().getInfo(1077, 1));

и проверяем что будет если добавить ету строку еще раз только с ид другого скила
Ответ
#3
Код:
// Gift of Vitality
npc.doCast(SkillTable.getInstance().getInfo(1077, 1));
[B][size=2]npc.doCast(SkillTable.getInstance().getInfo(ИД_СКИЛЛА, УРОВЕНЬ_СКИЛЛА));[/size][/B]
st.setState(State.STARTED);
st.set("reuse", String.valueOf(System.currentTimeMillis() + (HOURS * 3600000)));
htmltext = "4306-okvitality.htm";
Ответ
#4
Такой вариант пробовал, но бафает только один...
Возможно из за того, что инстанс?
Откат бафа 1 час стоит

// Reuse between buffs
private static final int HOURS = 1;
// NPC
private static final int JACK = 4306;

Как убрать правильно откат?
Ответ
#5
это откат не бафа, а возможности повторно бафнуть скил, насколько я понимаю. Время скила(бафа) менаем там где статы скилов.
Ответ
#6
APKO Написал:это откат не бафа, а возможности повторно бафнуть скил, насколько я понимаю. Время скила(бафа) менаем там где статы скилов.

ну, да, я имел ввиду откат повтора...
Вот как его убрать, подскажите...
Ответ
#7
[Elite];314414 Написал:ну, да, я имел ввиду откат повтора...
Вот как его убрать, подскажите...
Это не поможет. У вас не бафает второй скилл потому, что первый еще не докаставался. Нужно либо делать задержку, либо использовать другой метод, просто накладывать эффект без каста.
Ответ
#8
А как прописать, чтобы эффект без каста был, на несколько баффов?
Пример текста если можно

Добавлю:
Полный текст нпс вот, вот те баффы, которые накладываются без каста, другие бафы, ну допустим бафф Ускорение - Путешественника, а обычные там не пропишешь, пробовал...
Другой вопрос, как прописать, чтобы нпс накладывал сразу несколько эффектов без каста, или в первом случае (там где 1 баф, любой можно скил ставить), или там где во втором случае (там где несколько баффом, но Путешественника, и убрать ограничение, чтобы не Путешественника бафал, а обычный баф)

Цитата:}
else
{
npc.setTarget(player);
// Gift of Vitality
npc.doCast(SkillTable.getInstance().getInfo(23179, 1));
st.setState(State.STARTED);
st.set("reuse", String.valueOf(System.currentTimeMillis() + (HOURS * 3600000)));
htmltext = "4306-okvitality.htm";
}
}
else if (event.equalsIgnoreCase("memories_player"))
{
if (player.getLevel() < 1)
{
htmltext = "4306-nolevel.htm";
}
else
{
npc.setTarget(player);
npc.doCast(SkillTable.getInstance().getInfo(5627, 1)); // Wind Walk
npc.doCast(SkillTable.getInstance().getInfo(5628, 1)); // Shield
npc.doCast(SkillTable.getInstance().getInfo(5637, 1)); // Magic Barrier
if (player.isMageClass())
{
npc.doCast(SkillTable.getInstance().getInfo(5633, 1)); // Bless the Soul
npc.doCast(SkillTable.getInstance().getInfo(5634, 1)); // Acumen
npc.doCast(SkillTable.getInstance().getInfo(5635, 1)); // Concentration
npc.doCast(SkillTable.getInstance().getInfo(5636, 1)); // Empower
}
else
{
npc.doCast(SkillTable.getInstance().getInfo(5629, 1)); // Bless the Body
npc.doCast(SkillTable.getInstance().getInfo(5630, 1)); // Vampiric Rage
npc.doCast(SkillTable.getInstance().getInfo(5631, 1)); // Regeneration
npc.doCast(SkillTable.getInstance().getInfo(5632, 1)); // Haste
}
htmltext = "4306-okbuff.htm";
}
}
else if (event.equalsIgnoreCase("memories_summon"))
{
if (player.getLevel() < 1)
{
htmltext = "4306-nolevel.htm";
}
else if (!player.hasSummon() || !player.getSummon().isServitor())
{
htmltext = "4306-nosummon.htm";
}
else
{
npc.setTarget(player.getSummon());
npc.doCast(SkillTable.getInstance().getInfo(5627, 1)); // Wind Walk
npc.doCast(SkillTable.getInstance().getInfo(5628, 1)); // Shield
npc.doCast(SkillTable.getInstance().getInfo(5637, 1)); // Magic Barrier
npc.doCast(SkillTable.getInstance().getInfo(5629, 1)); // Bless the Body
npc.doCast(SkillTable.getInstance().getInfo(5633, 1)); // Bless the Soul
npc.doCast(SkillTable.getInstance().getInfo(5630, 1)); // Vampiric Rage
npc.doCast(SkillTable.getInstance().getInfo(5634, 1)); // Acumen
npc.doCast(SkillTable.getInstance().getInfo(5631, 1)); // Regeneration
npc.doCast(SkillTable.getInstance().getInfo(5635, 1)); // Concentration
npc.doCast(SkillTable.getInstance().getInfo(5632, 1)); // Haste
npc.doCast(SkillTable.getInstance().getInfo(5636, 1)); // Empower
htmltext = "4306-okbuff.htm";
Ответ
#9
[Elite];314416 Написал:(там где несколько баффом, но Путешественника, и убрать ограничение, чтобы не Путешественника бафал, а обычный баф)

А вставить Id бафов обычных, не путешественника, не пойдёт?
Ответ
#10
Пробовал, эффекты накладываются, но рандом, иногда кастует, и задержка мешает.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Баффер для Rebellion Kennedy 2 1,483 03-06-2015, 04:49 AM
Последний пост: Kennedy
  Баффер от Dev Kennedy 1 1,736 03-05-2015, 02:12 PM
Последний пост: GenCloud
  Ошибка (Баффер) Snowball1 0 1,164 01-03-2015, 07:01 AM
Последний пост: Snowball1
  Баффер l2jCrime CatsCanFly 0 1,411 12-04-2012, 06:40 PM
Последний пост: CatsCanFly
  Баффер в Community Board Fire 6 7,635 10-23-2011, 04:25 PM
Последний пост: BaBnik
  баффер настройка sadgod 0 1,763 07-23-2010, 08:21 PM
Последний пост: sadgod
  И снова баффер lanevo 2 2,642 11-11-2009, 04:24 PM
Последний пост: lanevo
  призывной баффер DeRoyal 3 2,932 11-08-2009, 01:36 PM
Последний пост: MaRiO
  баффер для l2j final DeRoyal 4 3,999 09-20-2009, 08:06 AM
Последний пост: User
  Newbie Helper(баффер) Shaigy 1 4,208 07-10-2009, 11:10 PM
Последний пост: Hybuk

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)