Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Каст спела, проверка таргета (https://forum.zone-game.info/showthread.php?t=38727)

Empatic 23.06.2015 15:32

Каст спела, проверка таргета
 
Код:

@Override
public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) {       
for (L2Object obj : targets)
{
L2Character target = (L2Character) obj;

if (target != null && (activeChar.checkEffect(397) || activeChar.checkEffect(398) || activeChar.checkEffect(399))) {
activeChar.doCast(SkillTable.getInstance().getInfo (1237,6));
} else {
target.sendMessage("Нет баффа");
}
}

Получается при юзе скила сначала проверяет персонажа на наличие бафа а потом он должен кастануть скилл, но проблема в том что вот этот скил который он должен кастануть (doCast), от кастует только на себя... ни на моба, ни на нпса, ни на перснажа...

Ковырял таргет чет так у меня и ничего не получилось...

Подскажите где ковырять буду очень благодарен!

DrHolmes 23.06.2015 17:01

Re: Каст спела, проверка таргета
 
Цитата:

Сообщение от Empatic (Сообщение 396728)
Код:

@Override
public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets) {       
for (L2Object obj : targets)
{
L2Character target = (L2Character) obj;

if (target != null && (activeChar.checkEffect(397) || activeChar.checkEffect(398) || activeChar.checkEffect(399))) {
activeChar.doCast(SkillTable.getInstance().getInfo (1237,6));
} else {
target.sendMessage("Нет баффа");
}
}

Получается при юзе скила сначала проверяет персонажа на наличие бафа а потом он должен кастануть скилл, но проблема в том что вот этот скил который он должен кастануть (doCast), от кастует только на себя... ни на моба, ни на нпса, ни на перснажа...

Ковырял таргет чет так у меня и ничего не получилось...

Подскажите где ковырять буду очень благодарен!

=), У вас не правильно составлена логика - каста,да и вообще у вас в коде какой то бред, если у вас задача кастануть скилл на себя либо на кого-то, зачем вы кастуйте его внутри проверки через DoCast ? Как это в игре отражается, исходя из той логики - если на любом персонаже имеются бафы 387,389,399(и он кого-то выделил) - он будет кастовать 1237 - Infinity сколько раз ,причем именно на себя ?

P.S>
Опишите внятно - какова ваша задача, как она должно отражаться в игре.

n3k0nation 23.06.2015 21:50

Re: Каст спела, проверка таргета
 
Код:

for(...) {
    if(!(activeChar.checkEffect(397) || activeChar.checkEffect(398) || activeChar.checkEffect(399)))
        continue;
    L2Skill skill = SkillTable.getInstance().getInfo(1237,6);
    if(skill != null)
        skill.getEffects(target, target);
}


Visor 23.06.2015 22:38

Re: Каст спела, проверка таргета
 
Эпическая дурь конечно у ТС. Насчет чего а себя кастует скил? А вы скил 1237 посмотрите - там видимо TARGET_SELF

Empatic 23.06.2015 23:35

Re: Каст спела, проверка таргета
 
Цитата:

Сообщение от Visor (Сообщение 396736)
Эпическая дурь конечно у ТС. Насчет чего а себя кастует скил? А вы скил 1237 посмотрите - там видимо TARGET_SELF


Пусть даже и "эпическая дурь", первым делом поменял на TARGET_ONE


Текущее время: 02:10. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot