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

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

Ответ
Опции темы
Непрочитано 04.10.2012, 14:28   #1
Аватар для kloni1
Пользователь

Автор темы (Топик Стартер) EffectGiantForceAura

Есть ефект, который я так понял, должен при нажатии на один скилл включать другой

PHP код:
package l2p.gameserver.skills.effects;

import l2p.commons.collections.GArray;
import l2p.commons.threading.RunnableImpl;
import l2p.commons.util.Rnd;
import l2p.gameserver.ThreadPoolManager;
import l2p.gameserver.model.Creature;
import l2p.gameserver.model.Effect;
import l2p.gameserver.model.Player;
import l2p.gameserver.model.Skill;
import l2p.gameserver.stats.Env;
import l2p.gameserver.tables.SkillTable;

import java.util.concurrent.ScheduledFuture;

/**
 * Created with IntelliJ IDEA.
 * User: Darvin
 * Date: 30.06.12
 * Time: 9:26
 */
public class EffectGiantForceAura extends Effect {
    private int forceSkillId;
    private int auraSkillId;
    private ScheduledFuture<?startEffectTask;

    public 
EffectGiantForceAura(Env envEffectTemplate template) {
        
super(envtemplate);
        
forceSkillId template.getParam().getInteger("forceSkillId", -1);
        
auraSkillId template.getParam().getInteger("auraSkillId", -1);

    }

    @
Override
    
public void onStart() {
        
super.onStart();

        
// Контроллирующий скилл
        
if (forceSkillId 0) {
            
startEffectTask ThreadPoolManager.getInstance().schedule(new RunnableImpl() {
                @
Override
                
public void runImpl() throws Exception {
                    
updateAura();
                }
            }, 
500 Rnd.get(4000));
        }
    }

    @
Override
    
public void onExit() {
        
super.onExit();

        if (
startEffectTask != null)
            
startEffectTask.cancel(false);
    }

    private 
void updateAura() {
        
Player effector = (PlayergetEffector();
        
Skill forceSkill SkillTable.getInstance().getInfo(forceSkillId1);
        
Skill auraSkill getSkill();

        if (
effector == null || forceSkill == null || auraSkill == null)
            return;
        
GArray<Creaturetargets forceSkill.getTargets(effectorgetEffected(), false);
        for (
Creature target targets) {
            if (
target.getEffectList().getEffectsBySkillId(forceSkillId) == null) {
                
forceSkill.getEffects(effectortargetfalsefalse);
            }
        }
    }

    @
Override
    
public boolean onActionTime() {
        if (
getEffected().isDead())
            return 
false;
        
// Контроллирующий скилл
        
if (forceSkillId 0) {
            
updateAura();
        } else if (
auraSkillId 0) {
            
Player effector = (PlayergetEffector();

            if (
effector == null || effector.getEffectList().getEffectsBySkillId(auraSkillId) == null)
                return 
false;
        }
        return 
true;
    }
}
вот пример в датапаке но он не работает

PHP код:
<skill id="1937" levels="1" name="Wynn Aura">
        <
table name="#magicLevel">85</table>
        <
set name="effectPoint" val="467"/>
        <
set name="magicLevel" val="#magicLevel"/>
        <
set name="target" val="TARGET_SELF"/>
        <
set name="skillType" val="CONT"/>
        <
set name="skillRadius" val="1000"/>
        <
set name="reuseDelay" val="5000"/>
        <
set name="operateType" val="OP_TOGGLE"/>
        <for>
            <
effect count="0x7fffffff" name="GiantForceAura" time="5" val="10">
                <
def name="forceSkillId" val="1938"/>
            </
effect>
        </for>
    </
skill>
    <
skill id="1938" levels="1" name="Wynn Force">
        <
table name="#magicLevel">85</table>
        <
set name="magicLevel" val="#magicLevel"/>
        <
set name="target" val="TARGET_PARTY_WITHOUT_ME"/>
        <
set name="skillType" val="CONT"/>
        <
set name="operateType" val="OP_TOGGLE"/>
        <
set name="skillRadius" val="1000"/>
        <for>
            <
effect count="0x7fffffff" name="GiantForceAura" time="5" val="10">
                <
def name="auraSkillId" val="1937"/>
            </
effect>
            <
effect count="0x7fffffff" name="Buff" time="5" val="10">
                <
mul order="0x30" stat="pReuse" val="1.05"/>
                <
mul order="0x30" stat="mReuse" val="1.05"/>
                <
mul order="0x30" stat="mpConsum" val="0.97"/>
            </
effect>
        </for>
    </
skill
Хотелось бы узнать в чем проблема
__________________
Помог не забудь "Спасибо"
kloni1 вне форума Отправить сообщение для kloni1 с помощью ICQ Ответить с цитированием
Непрочитано 04.10.2012, 15:31   #2
Новичок

По умолчанию Re: EffectGiantForceAura

Он не включает,а просто передает из одного в другой некоторую информацию
jokit91 вне форума Ответить с цитированием
Непрочитано 04.10.2012, 15:54   #3
Аватар для kloni1
Пользователь

Автор темы (Топик Стартер) Re: EffectGiantForceAura

ясн, а можно сделать так что бы один скилл включал другой?
__________________
Помог не забудь "Спасибо"
kloni1 вне форума Отправить сообщение для kloni1 с помощью ICQ Ответить с цитированием
Непрочитано 05.10.2012, 16:35   #4
Аватар для Yorie

По умолчанию Re: EffectGiantForceAura

Как раз-таки updateAura отвечает за использование forceSkill. getEffects() - это применение эффектов умения к цели. Вы уверены, что у Вас работает скилл 1938? Замететь, что TARGET_TYPE у этого умения - TARGET_PARTY_WITHOUT_ME, что значит, что эффекты будут накладываться на всех членов группы, кроме кастера. В Glory Days, кстати, этот тип таргета на силы уже не актуален )
__________________
// aka Deft
Yorie вне форума Ответить с цитированием
Непрочитано 05.10.2012, 22:36   #5
Аватар для kloni1
Пользователь

Автор темы (Топик Стартер) Re: EffectGiantForceAura

TARGET_PARTY_WITHOUT_ME можно поменять но он не включается в игре
__________________
Помог не забудь "Спасибо"
kloni1 вне форума Отправить сообщение для kloni1 с помощью ICQ Ответить с цитированием
Ответ


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

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

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

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


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

Вверх