Код:
/**
* Бафает один бафф, снимает плату за бафф, отображает диалог с кнопкой возврата к списку бафов
* @param args массив строк: элемент 0 - id скида, элемент 1 - уровень скила
*/
public void doBuff(String[] args)
{
Player player = (Player) getSelf();
Summon pet = player.getSummonList().getPet();
NpcInstance npc = getNpc();
if(!checkCondition(player, npc))
return;
if(player.getAdena() < Config.SERVICES_BUFFER_PRICE)
{
player.sendPacket(Msg.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
return;
}
try
{
int skill_id = Integer.valueOf(args[0]);
int skill_lvl = Integer.valueOf(args[1]);
if(!contains(skill_id, skill_lvl))
{
// По желанию сообщение что игрок изменил байпас.
return;
}
int select_id = Integer.valueOf(args[2]);
Skill skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl);
if(select_id == 0)
ThreadPoolManager.getInstance().schedule(new BeginBuff(getNpc(), skill, player), 0);
if(select_id == 1)
{
if(pet == null)
return;
ThreadPoolManager.getInstance().schedule(new BeginPetBuff(getNpc(), skill, pet), 0);
}
player.reduceAdena(Config.SERVICES_BUFFER_PRICE, true);
}
catch(Exception e)
{
player.sendMessage("Такого баффа у меня нет!");
}
show("scripts/services/Buffer/buffschar1.htm", player);
}
pulic boolean contains(int skillId, int skillLevel)
{
for(int[] skill : buffs)
if(skill[0] == skillId && skill[0] == skillLevel)
return true;
return false;
}
примерно так.