Sublime Self-Sacrifice(баг) - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 29.06.2014, 11:44   #1
Аватар для Laguerro
Пользователь

Автор темы (Топик Стартер) Sublime Self-Sacrifice(баг)

Сборка "ребеллион" - овер
Хроники High Five

Скил Sublime Self-Sacrifice - Принесение себя в жертву(расходует 4000хп), благодаря чему восстанавливает все HP\CP\MP союзников. А также придает эффект неуязвимости. Время действия 15 сек.

Проблема заключается в следующем. Тип таргета в оверах стоит как правило: "TARGET_AURA" В следствии чего появляется баг, можно ресать фул статы мобам, варам и даже рейд боссам.
Поставил таргет "TARGET_PARTY" , теперь эффект распространяется на пати ну и на самого биша, т.е дает уд на 15 сек и ресает статы.
На лыжах же это сделано так "PARTY_NOTME"
А на овере я не вижу никакой альтернативы этому типу таргета.

В общем как мне сделать, чтобы скил распространялся только на пати, но не действовал на самого бишопа?

Код скила:
PHP код:
<skill id="1505" levels="1" name="Sublime Self-Sacrifice">
        <!--
            
Last modify:    23.08.2009

            Description
Sacrifices oneself to fully recover the HP/MP/CP of party members excluding oneself and to become invincible for 15 seconds.
        -->
        <
set name="magicType" val="MAGIC"/>
        <
set name="icon" val="icon.skill1505"/>
        <
set name="reuseDelay" val="3600000"/>
        <
set name="magicLevel" val="81"/>
        <
set name="hitTime" val="4000"/>
        <
set name="hitCancelTime" val="500"/>
        <
set name="hpConsume" val="4000"/>
        <
set name="mpConsume1" val="44"/>
        <
set name="mpConsume2" val="174"/>
        <
set name="target" val="TARGET_PARTY"/>
        <
set name="skillType" val="BUFF"/>
        <
set name="skillRadius" val="1000"/>
        <
set name="operateType" val="OP_ACTIVE"/>
        <for>
            <
effect count="1" name="HealPercent" time="0" val="100"/>
            <
effect count="1" name="ManaHealPercent" time="0" val="100"/>
            <
effect count="1" name="HealCPPercent" time="0" val="100"/>
            <
effect abnormal="invul2" count="1" name="Invulnerable" stackOrder="-1" stackType="Invulnerable" time="15" val="0" cancelOnAction="true"/>
        </for>
    </
skill
Laguerro вне форума Ответить с цитированием
Непрочитано 29.06.2014, 11:46   #2
Изгнанные

По умолчанию Re: Sublime Self-Sacrifice(баг)

applyOnCaster="false" попробуйте
TonsFun вне форума Ответить с цитированием
Непрочитано 29.06.2014, 11:48   #3
Аватар для Laguerro
Пользователь

Автор темы (Топик Стартер) Re: Sublime Self-Sacrifice(баг)

Также интересует скил Torumba's Constraint - скил рейд босса, который запрещает воскрешение.
У меня он просто напросто не реализован, нет эффекта.
Вот мой код:
PHP код:
<skill id="6407" levels="1" name="Torumba's Constraint">
        <
set name="magicType" val="MAGIC" />
        <
set name="icon" val="icon.skill5919" />
        <
set name="castRange" val="300" />
        <
set name="hitCancelTime" val="500" />
        <
set name="mpConsume1" val="15" />
        <
set name="mpConsume2" val="60" />
        <
set name="target" val="TARGET_ONE" />
        <
set name="skillType" val="DEBUFF" />
        <
set name="operateType" val="OP_ACTIVE" />
        <for>
            <
effect count="1" name="Debuff" time="300" val="0" />
        </for>
    </
skill
На лыжах же он реализован и написан следующим образом.
PHP код:
<skill id="6407" levels="1" name="Torumba's Constraint">
        <!-- 
Confirmed CT2.5 -->
        <
set name="abnormalLvl" val="1" />
        <
set name="abnormalTime" val="300" />
        <
set name="abnormalType" val="block_resurrection" />
        <
set name="castRange" val="300" />
        <
set name="effectRange" val="600" />
        <
set name="isDebuff" val="true" />
        <
set name="isMagic" val="1" /> <!-- Magic Skill -->
        <
set name="mpConsume" val="60" />
        <
set name="mpInitialConsume" val="15" />
        <
set name="operateType" val="A2" />
        <
set name="power" val="-1" /> <!-- Land Always -->
        <
set name="pvp" val="true" />
        <
set name="skillType" val="DEBUFF" />
        <
set name="stayAfterDeath" val="true" />
        <
set name="targetType" val="ONE" />
        <for>
            <
effect name="BlockResurrection" abnormalTime="300" val="0" abnormalLvl="1" abnormalType="block_resurrection" />
        </for>
    </
skill
Добавлено через 10 минут
Цитата:
Сообщение от TonsFun Посмотреть сообщение
applyOnCaster="false" попробуйте
не помогло.

Последний раз редактировалось Laguerro; 29.06.2014 в 11:58. Причина: Добавлено сообщение
Laguerro вне форума Ответить с цитированием
Непрочитано 29.06.2014, 12:11   #4
Изгнанные

По умолчанию Re: Sublime Self-Sacrifice(баг)

собсно пробуйте, у меня это реализовано с помощью типа таргета
PHP код:
case TARGET_FRIEND:
            {
                if(
activeChar.isMonster() || activeChar.isSiegeGuard())
                {
                    
targets.add(activeChar);
                    for(
Creature c World.getAroundCharacters(activeChar_skillRadius900))
                    {
                        if(!
c.isDead() && (c.isMonster() || c.isSiegeGuard()))
                            
targets.add(c);
                    }
                    break;
                }
                
Player player activeChar.getPlayer();
                for(
Player target World.getAroundPlayers(player_skillRadius600))
                {
                    
boolean check false;
                    if(
check player.getParty() != null && (player.getParty() == target.getParty() 
                        || 
player.getClanId() != && target.getClanId() == player.getClanId() 
                        || 
player.getAllyId() != && target.getAllyId() == player.getAllyId()))
                        
check true;

                    if(
target == player)
                        continue;
                    if(!
check)
                        continue;
                    if(
checkTarget(playertargetaimingTargetforceUsefalse) != null)
                        continue;
                    
addTargetAndPetToList(targetsplayertarget);
                }
                
addTargetAndPetToList(targetsplayerplayer);
                break;
            } 
PHP код:
private void addTargetAndPetToList(List<CreaturetargetsPlayer actorPlayer target)
    {
        if((
actor == target || actor.isInRange(target_skillRadius)) && target.isDead() == _isCorpse)
            
targets.add(target);
        
Summon pet target.getPet();
        if(
pet != null && actor.isInRange(pet_skillRadius) && pet.isDead() == _isCorpse)
            
targets.add(pet);
    } 

По второму скилу(не знаю как на овере, беру пример с лыжи. адаптировать думаю будет не проблема):
Сам эффект:
PHP код:
public final class BlockResurrection extends AbstractEffect
{
    public 
BlockResurrection(Condition attachCondCondition applyCondStatsSet setStatsSet params)
    {
        
super(attachCondapplyCondsetparams);
    }
    
    @
Override
    
public int getEffectFlags()
    {
        return 
EffectFlag.BLOCK_RESURRECTION.getMask();
    }

EffectFlag.BLOCK_RESURRECTION
PHP код:
public enum EffectFlag
{
    
NONE,
    
CHARM_OF_COURAGE,
    
CHARM_OF_LUCK,
    
PHOENIX_BLESSING,
    
NOBLESS_BLESSING,
    
SILENT_MOVE,
    
PROTECTION_BLESSING,
    
RELAXING,
    
FEAR,
    
CONFUSED,
    
MUTED,
    
PSYCHICAL_MUTED,
    
PSYCHICAL_ATTACK_MUTED,
    
DISARMED,
    
ROOTED,
    
SLEEP,
    
STUNNED,
    
BETRAYED,
    
INVUL,
    
PARALYZED,
    [
COLOR="Red"]BLOCK_RESURRECTION[/COLOR],
    
SERVITOR_SHARE;
    
    public 
int getMask()
    {
        return 
<< ordinal();
    }

L2Character функция beginCast добавить:
После:
PHP код:
if (skill.hasEffectType(L2EffectType.RESURRECTION))
        { 
это
PHP код:
if (isResurrectionBlocked() || target.isResurrectionBlocked())
            {
                
sendPacket(SystemMessageId.REJECT_RESURRECTION); // Reject resurrection
                
target.sendPacket(SystemMessageId.REJECT_RESURRECTION); 
функция isResurrectionBlocked
PHP код:
public boolean isResurrectionBlocked()
    {
        return 
isAffected(EffectFlag.BLOCK_RESURRECTION);
    } 
Добавить в енум AbnormalTypes
PHP код:
BLOCK_RESURRECTION 
Поправьте если где-то ошибся
TonsFun вне форума Ответить с цитированием
Непрочитано 29.06.2014, 17:18   #5
Аватар для Laguerro
Пользователь

Автор темы (Топик Стартер) Re: Sublime Self-Sacrifice(баг)

<set name="target" val="TARGET_SELF" />
<set name="skillType" val="SELF_SACRIFICE" />
Ответ был прост без вмешательства в сурсы.
Laguerro вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
sublime build devillord Курилка / Yak floor 0 16.12.2013 18:18


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

Вверх