Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Guard
#11
Добавлено через 6 минут
вот например у гвадра с исходников overworld: GuardInstance
Код:
@Override
    public boolean isAutoAttackable(Creature attacker)
    {
        return attacker.isMonster() && ((MonsterInstance)attacker).isAggressive() || attacker.isPlayable() && attacker.getKarma() > 0;
    }

что бы бил другие расы нужно сделать так:
Код:
@Override
    public boolean isAutoAttackable(Creature attacker)
    {
        return attacker.isPlayer() && attacker.getRace() != getRace();
    }

Словесно, атакует тех кто персонаж и чья раса отличается от нашей. Всем гвардам добавлен скил принадлежности к нужной расе.

Вот АИ гварда:
Код:
public boolean canAttackCharacter(Creature target)
    {
        NpcInstance actor = getActor();
        if(getIntention() == CtrlIntention.AI_INTENTION_ATTACK)
        {
            AggroInfo ai = actor.getAggroList().get(target);
            return ai != null && ai.hate > 0;
        }
        return target.isMonster() || target.isPlayable();
    }
    
    public boolean checkAggression(Creature target)
    {
        NpcInstance actor = getActor();
        if(getIntention() != CtrlIntention.AI_INTENTION_ACTIVE || !isGlobalAggro())
            return false;

        if(target.isPlayable())
        {
            if(target.getKarma() == 0 || (actor.getParameter("evilGuard", false) && target.getPvpFlag() > 0))
                return false;
        }
        if(target.isMonster())
        {
            if(!((MonsterInstance)target).isAggressive())
                return false;
        }

        return super.checkAggression(target);
    }
Код:
public boolean canAttackCharacter(Creature target)
    {
        NpcInstance actor = getActor();
        if(getIntention() == CtrlIntention.AI_INTENTION_ATTACK)
        {
            AggroInfo ai = actor.getAggroList().get(target);
            return ai != null && ai.hate > 0;
        }
        return target.isPlayer();
    }
    
    public boolean checkAggression(Creature target)
    {
        NpcInstance actor = getActor();
        
        if(getIntention() != CtrlIntention.AI_INTENTION_ACTIVE || !isGlobalAggro())
            return false;

        if(target.isPlayer() && actor().getRace() == target.isRace())
            return false;

        return super.checkAggression(target);
    }
Ответ
#12
я кинул Гвардов Фортов! Если я не ошибаюсь гвардов фортов легче запилить под рассы...
L2FortSiegeGuardAI
Ответ
#13
разве? легче запилить гвардов которые убивают ПКшников и монстров.
Ответ
#14
та да Извини туплю!!! спасибо большое за помощь щя буду пробовать (отпишусь)

Добавлено через 14 минут
блин я в етих фрозентах е****х не могу найти нифига жееесть!!!
Ответ
#15
Найди id гварда, и посмотри какой у него тип и АИ.
Ответ
#16
я так понял в моем случии ето?
L2GuardInstance

Добавлено через 1 минуту
АИ

Добавлено через 23 минуты
не получается... в фрозенах всьо по другому....(((((((((((( ппц

по другому public boolean isAutoAttackable(L2Character attacker)
{
return attacker instanceof L2PlayableInstance;
}
Ответ
#17
вот оно в АИ:
Код:
if(_actor instanceof L2GuardInstance)
{

// Check if the L2PcInstance target has karma (=PK)
if(target instanceof L2PcInstance && ((L2PcInstance) target).getKarma() > 0)
// Los Check
return GeoData.getInstance().canSeeTarget(me, target);

//if (target instanceof L2Summon)
// return ((L2Summon)target).getKarma() > 0;
// Check if the L2MonsterInstance target is aggressive
if(target instanceof L2MonsterInstance)
return ((L2MonsterInstance) target).isAggressive() && GeoData.getInstance().canSeeTarget(me, target);

return false;
}

необходимо переделать на:
Код:
if(_actor instanceof L2GuardInstance)
{

// Check if the L2PcInstance target has karma (=PK)
[color=Red]if(target instanceof L2PcInstance && _actor.getRace() != target.getRace())[/color]
// Los Check
return GeoData.getInstance().canSeeTarget(me, target);

//if (target instanceof L2Summon)
// return ((L2Summon)target).getKarma() > 0;
// Check if the L2MonsterInstance target is aggressive
if(target instanceof L2MonsterInstance)
return ((L2MonsterInstance) target).isAggressive() && GeoData.getInstance().canSeeTarget(me, target);

return false;
}

Гвард будет атаковать тех чья раса отличается от собственной.
Ответ
#18
не работает но спасибо!!! надо норм исходники искать!!!
Ответ
#19
smy55 Написал:не работает но спасибо!!! надо норм исходники искать!!!

http://forum.zone-game.info/showthread.php?t=22945
СЕО Оптимизация сайтов
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  GuardInstance & AI Guard Enjoooy 3 2,036 03-22-2017, 12:36 AM
Последний пост: Enjoooy
  Guard L2J 11 17,877 04-11-2014, 05:18 PM
Последний пост: moveton

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


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