1. In
L2jserver T0:
net.sf.l2j.gameserver.clientpackets.RequestBypassToServer
L2jserver GF \ GE:
com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer
Add imports:
T0:
import java.util.StringTokenizer;
import net.sf.l2j.gameserver.cache.HtmCache;
import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUser;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.datatables.SkillTable;
GF\ GE:
import java.util.StringTokenizer;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.model.L2Skill;
import com.l2jserver.gameserver.network.serverpackets.MagicSkillUser;
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jserver.gameserver.datatables.SkillTable;
2.
In
L2jserver T0:
net.sf.l2j.gameserver.clientpackets.RequestBypassToServer
L2jserver GF \ GE:
com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer
Find:
else if (_command.startsWith("player_help "))
{
playerHelp(activeChar, _command.substring(12));
}
Add after
else if (_command.startsWith("menu_buff"))
{
menu_buff(activeChar, _command);
}
3. In
L2jserver T0:
net.sf.l2j.gameserver.clientpackets.RequestBypassToServer
L2jserver GF \ GE:
com.l2jserver.gameserver.network.clientpackets.RequestBypassToServer
Add (almost at the bottom):
private boolean menu_buff(L2PcInstance activeChar, String command)
{
if (activeChar.isMovementDisabled() || activeChar.isAlikeDead())
return false;
if (activeChar.isCursedWeaponEquiped())
{
activeChar.sendMessage("Вы не можете взять баф, пока вы носитель проклятого оружия.");
return false;
}
if (activeChar.isInDuel())
{
activeChar.sendMessage("Бафаться в дуели запрещено!");
return false;
}
if (activeChar.isInParty() && activeChar.getParty().isInDimensionalRift())
{
activeChar.sendMessage("Вы не можете взять баф, пока находитесь в дименшен рифте.");
return false;
}
if (activeChar.isInFunEvent())
{
activeChar.sendMessage("На евентах брать баф запрещено.");
return false;
}
if (activeChar.isInOlympiadMode() || activeChar.getOlympiadGameId() != -1)
{
activeChar.sendMessage("На олимпе брать баф запрещено!");
return false;
}
if (activeChar.inObserverMode())
{
activeChar.sendMessage("Вы не можете бафнуться в этот момент.");
return false;
}
String htmFile = "data/html/Buff.htm";
String htmContent = HtmCache.getInstance().getHtm(htmFile);
NpcHtmlMessage Html = new NpcHtmlMessage(1);
Html.setHtml(htmContent);
activeChar.sendPacket(Html);
StringTokenizer st = new StringTokenizer(command, " ");
st.nextToken();
int skillid=Integer.parseInt(st.nextToken());
int lvl=Integer.parseInt(st.nextToken());
L2Skill skill;
skill = SkillTable.getInstance().getInfo(skillid,lvl);
skill.getEffects(activeChar, activeChar);
activeChar.broadcastPacket(new MagicSkillUser(activeChar, activeChar, skillid, lvl, 1, 0));
return true;
}
4. Create Voiced handler:
package net.sf.l2j.gameserver.handler.voicedcommandhandlers;
import net.sf.l2j.gameserver.cache.HtmCache;
import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
//for GF\GE com.l2jserver
public class Buff implements IVoicedCommandHandler
{
private static String[] VOICED_COMMANDS = { "buff" };
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
{
String htmFile = "data/html/Buff.htm";
String htmContent = HtmCache.getInstance().getHtm(htmFile);
if (htmContent != null)
{
NpcHtmlMessage Html = new NpcHtmlMessage(1);
Html.setHtml(htmContent);
activeChar.sendPacket(Html);
}
else
{
activeChar.sendMessage("Missing " + htmFile + " !");
}
return true;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
5. Create HTML file in: data/html/Buff.html.
Example: bypass -h menu_buff [skillID] [skillLvL]
Thats all :).
Credits: unknown.