BBMAXI 14 Опубликовано 21 ноября, 2010 В этой теме покажу как сделать скилл Block Buff. Для начала добавим в какой-либо конфиг-файл такие строчки: # ID скилла, который блокирует наложение баффов - Block Buff IDBlockBuff=9999 Далее добавим этот же конфиг в ядро - Config.java: *объявляем public static int ID_BLOCK_BUFF; *инициализируем ID_BLOCK_BUFF = Integer.parseInt(Имя_конфига.getProperty("IDBlockBuff", "9999")); Далее, переходим в net\sf\l2j\gameserver\model\L2Character.java (net\sf\l2j может отличаться в зависимости от сборки). Находим кусок кода: public final void addEffect(L2Effect newEffect) { if(newEffect == null) return; и преобразовываем его так: public final void addEffect(L2Effect newEffect) { if(newEffect == null) return; if (this.getFirstEffect(Config.ID_BLOCK_BUFF) != null) { if (newEffect.getSkill().getSkillType() == L2Skill.SkillType.BUFF) { return; } } Сохраняем, компилируем. Осталось прикрутить скилл в датапаке. Как вариант, вместо скилла Lucky: <skill id="194" levels="1" name="BlockBuff"> <table name="#mpConsume_Init"> 0 </table> <set name="mpInitialConsume" val="#mpConsume_Init"/> <set name="power" val="0.0"/> <set name="target" val="TARGET_SELF"/> <set name="skillType" val="CONT"/> <set name="operateType" val="OP_TOGGLE"/> <set name="castRange" val="-1"/> <set name="effectRange" val="-1"/> <for> <effect count="0x7fffffff" name="ManaDamOverTime" time="1" val="#mpConsume_Init"> </effect> </for> </skill> Не забудьте только в конфиге поставить число 194 и изменить в клиенте сам скилл Lucky (сделать его аурой). Вот вроде бы и все. Хочу сказать, что это только один из способов создания блок баффа: можно его также реализовать непосредственно написав отдельный эффект, но это уже другая история Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты