w0w, hello MxC. Today while i was searching in L2J Forums i found something freaking cool.
- I am not sure if is working - I haven't tested it.
That's how it works:
<a action="bypass -h npc_%objectId%_GiveBuffs SkilldId SkillLvl PriceItemId Priceammount">get buff XXXX</a>
See ?? You write after GiveBuffs(space)SkillId(space)SkillLvl(space)PriceItemId(space)Priceammount.
Here is a real Example.
<a action="bypass -h npc_%objectId%_GiveBuffs 1204 2 57 5000000">get buff XXXX</a>
1204 ( The id of the skill ), 2 ( Skill level or buff level ), 57 ( Is adena, id of adena ), 500000 ( The ammount of adena, for this buff )
^^ is windwalk Buff, level 2. And you get this for xxxxx adena.
This is the simple diff, for this function:
Index: D:/Workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java
===================================================================
--- /java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java (revision 2501)
+++ /java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java (working copy)
@@ -890,6 +891,27 @@
html.replace("%playername%", player.getName());
player.sendPacket(html);
}
+ else if(command.startsWith("GiveBuff")){
+ String[] params = command.split(" ");
+ int SkillId = Integer.parseInt(params[1]);
+ int SkillLvl = Integer.parseInt(params[2]);
+ int ItemId = Integer.parseInt(params[3]);
+ int ItemAmmount = Integer.parseInt(params[4]);
+ int Ammount = player.getInventory().getItemByItemId(ItemId).getCount();
+ L2Item item = ItemTable.getInstance().getTemplate(ItemId);
+
+ if(Ammount < ItemAmmount)
+ {
+ player.sendMessage("You don't have enough " + item.getName() + " to get this buff." );
+ player.sendMessage("You need " + ItemAmmount + " " + item.getName() + " to be able to get this buff.");
+ }
+ else
+ {
+ player.getInventory().destroyItemByItemId("getting buffs", ItemId, ItemAmmount, player, null);
+ L2Skill skill = SkillTable.getInstance().getInfo(SkillId, SkillLvl);
+ skill.getEffects(this, L2Character.class.cast(player));
+ }
+ }
else if (command.equalsIgnoreCase("TerritoryStatus"))
{
NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
Credits: L2JForum