Перейти к содержанию
Авторизация  
lotos

Скрипт На Скилы

Рекомендуемые сообщения

Добрый день!

У меня возникла проблема.

Смысл скрипта, чтобы он кидал скил на противника, после того как игрок кинет первый скил, то есть я нажал скил КАРТЫ и после него на противника кинулся другой скил автоматически.

Пытался сделать через СВИТЧ, но не фига не выходит.

Заранее спасибо )

 

private static final int SKILL_UP = 11;

public String onSkillSee(L2Npc npc, L2PcInstance player, L2PcInstance caster, L2Skill skill, L2Object[] targets, boolean isPet)
{
    if (contains(targets,player) && (skill.getId() == SKILL_UP))
    {
	 switch(skill.getId() )
	 {
   case 1011:
   break;
	 }		
    }
    return super.onSkillSee(npc,caster,skill,targets,isPet);
}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как бы тут case скила пустой. В case нужно заряжать действие происходящее при юзе скила 1011 причем смотреть, как в принципе используется данный метод.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 07.07.2013 в 12:34, BrainEater сказал:

Как бы тут case скила пустой. В case нужно заряжать действие происходящее при юзе скила 1011 причем смотреть, как в принципе используется данный метод.

Можешь кинуть образец, пожалуйста ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В твоем конкретном случае нет, ибо не знаю, по какому принципу он используется.

 

Но допустим, сделать эффект скилу на подобии:

 

int[] skillIds = getTemplate().getParam().getIntegerArray("skillIds");
 int[] skillLevels = getTemplate().getParam().getIntegerArray("skillLevels");
 for(int i = 0; i < skillIds.length; i++)
 {
  Skill skill = SkillTable.getInstance().getInfo(skillIds[i], skillLevels[i]);
  if(skill == null)
  {
   continue;
  }
  for(Creature cha : skill.getTargets(getEffector(), getEffected(), false))
  {
   getEffector().broadcastPacket(new MagicSkillUse(getEffector(), cha, skillIds[i], skillLevels[i], 0, 0));
  }
  getEffector().callSkill(skill, skill.getTargets(getEffector(), getEffected(), false), false);
 }

 

skillIds и skillLevels должны считываться из параметра скилов, либо с конкретным указанием в эффекте.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 07.07.2013 в 13:06, BrainEater сказал:

В твоем конкретном случае нет, ибо не знаю, по какому принципу он используется.

 

Но допустим, сделать эффект скилу на подобии:

 

int[] skillIds = getTemplate().getParam().getIntegerArray("skillIds");
int[] skillLevels = getTemplate().getParam().getIntegerArray("skillLevels");
for(int i = 0; i < skillIds.length; i++)
{
Skill skill = SkillTable.getInstance().getInfo(skillIds[i], skillLevels[i]);
if(skill == null)
{
continue;
}
for(Creature cha : skill.getTargets(getEffector(), getEffected(), false))
{
getEffector().broadcastPacket(new MagicSkillUse(getEffector(), cha, skillIds[i], skillLevels[i], 0, 0));
}
getEffector().callSkill(skill, skill.getTargets(getEffector(), getEffected(), false), false);
}

 

skillIds и skillLevels должны считываться из параметра скилов, либо с конкретным указанием в эффекте.

ого, спасибо )) только вот я нереально запутался )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как бы там ни было, это надо будет переделать под твою основу сборки.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может у кого-то еще есть предложения как это реализовать ?? Я бы не отказался от помощи )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Во-первых, я не понимаю зачем ты в условии сравниваешь скилл_ап (ид 11), а потом через case пытаешься найти 1011 ид? Во-вторых, скилл должен скатоваться или просто еффект накладываться? Опиши более конкретно все, а потом я тебе скажу как действовать дальше, можно и в личку.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 07.07.2013 в 14:46, Naik сказал:

Во-первых, я не понимаю зачем ты в условии сравниваешь скилл_ап (ид 11), а потом через case пытаешься найти 1011 ид? Во-вторых, скилл должен скатоваться или просто еффект накладываться? Опиши более конкретно все, а потом я тебе скажу как действовать дальше, можно и в личку.

После того как игрок использовал скил (ид которого я указал в скрипте) сразу будет кастоваться другой скил (который будет указан в скрипте).

Я просто новичок, вот поэтому в верхнем скрипте столько фигни )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может через XML можно как-то ??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если скилы в xml, то возможно в ядре реализован эффект вызова скила, соответственно его можно будет прикрутить, например:

<for>
<effect count="0x7fffffff" name="CallSkills" time="5" val="0">
 <def name="skillIds" val="ID" />
 <def name="skillLevels" val="LEVEL" />
</effect>
</for>

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  В 07.07.2013 в 16:28, BrainEater сказал:

Если скилы в xml, то возможно в ядре реализован эффект вызова скила, соответственно его можно будет прикрутить, например:

<for>
<effect count="0x7fffffff" name="CallSkills" time="5" val="0">
<def name="skillIds" val="ID" />
<def name="skillLevels" val="LEVEL" />
</effect>
</for>

Спасибо )) НО я не уверен что там такое есть ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А взять декомпилятор и глянуть эффекты в ядре кто не позволяет?

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...