- 0
[HELP] Sell buff MOD
-
Posts
-
By ScRaB4ever · Posted
cRazy??? If i just say good job its not even fair.... -
By `NeverMore · Posted
τι εκανες εκει παλι ρε τρελάρα; 🤣 welcome back mate, happy seeing you online again, well thats beyond l2 needs for sure and It’s rare to see anyone pushing Interlude this far technically anymore without trying to monetize it. definitely interested in seeing the source whenever you're ready to share it! keep it up! -
By MiaCodeWEB · Posted
Hello everyone How are you all doing? I'd like to share with the community an open-source project I've been working on intensely: the **L2 Phantom AI Manager**. Tired of those static bots that just stand still in the city or sink into the map because of Geodata? Me too! That's why I developed a modular Phantom system with real Artificial Intelligence, initially designed for **L2J Mobius Essence (RoseVain)**, but which can be adapted to other chronicles. Main Features Modular architecture: the system is split into focused files such as PhantomAI, PhantomEngine, PhantomFactory, PhantomEquipment, PhantomHuntingSpots, PhantomGeo, PhantomMenu, and more. Automatic creation: create 10 or 50 phantoms from the menu or commands. XML persistence: automatically created phantoms are saved into PhantomPlayers.xml, so they keep loading after server restarts. Batch startup: .pstart and Start 10 load only 10 phantoms at a time. Batch disconnect: disconnect 10 active phantoms without shutting down the whole system. Origin towns: new phantoms spawn using PlayerTemplate.getCreationPoint(), respecting race and class. Geodata-safe spawning: spawn points use NPC-like coordinate validation to avoid under-map or floating characters. Real datapack spots: reads data/stats/npcs and data/spawns to build level-based hunting locations. Bad target filtering: ignores Training Dummy, tutorial objects, chests, and fake farm targets. Smart relocation: if a phantom cannot find useful mobs, it relocates to another spot for its level. Level goals: phantoms receive leveling goals, return to town, recover resources, and go back to farming. Mage MP rest mode: mages rest until MP is recovered; in PvP they try to escape when out of mana. Skills and buffs: phantoms try to use offensive skills and self buffs such as Might, Shield, Focus, Haste, Empower, Acumen, Wind Walk, Chant, Song, and Dance. Varied gear packs: gear packs by grade for mages and fighters, with multiple variants to avoid visual clones. Automatic shots: randomized Soulshot and Spiritshot restocking by class and grade. Inventory cleanup: unnecessary items are removed automatically while preserving Adena, shots, and equipped gear. PvP and PK behavior: some phantoms are aggressive, may become PK, and attacked phantoms try to defend themselves. Optional AI chat: optional Google Gemini integration for short social replies. TXT logs: the menu displays log state and can enable/disable logging. GM Menu Use .pmenu to open the control panel. Current options: Start 10 Disconnect 10 Create 10 Create 50 Reload XML Stop All Enable Log / Disable Log The menu also shows: active phantom count; XML ID count; current TXT log state. Commands .pmenu - opens the control panel. .pstart - starts 10 phantoms from XML. .pstop - removes all active phantoms. .pstop10 - disconnects 10 active phantoms. .pload - reloads PhantomPlayers.xml. .pcreate 10 - creates, starts, and saves 10 phantoms to XML. .pcreate 50 - creates, starts, and saves 50 phantoms to XML. .pm Name Message - sends a private message to a phantom. .pdebug - toggles TXT logging. Logs Logs are created in the GameServer log/ folder: log/PhantomManager.txt - global historical log. log/PhantomManager-yyyyMMdd-HHmmss.txt - separate log for each session. Useful logged events include: new level goals; travel to hunting spots; town rest; mob attacks; PvP defense; shot restocking; inventory cleanup; AI exceptions with stacktrace. Main Files PhantomManager.java - commands, logs, and bootstrap. PhantomEngine.java - start, stop, spawn, respawn, batches, and AI loop. PhantomAI.java - farm, PvP, PK, rest, targeting, and movement decisions. PhantomConfig.java - routes, gear, shots, and XML persistence. PhantomFactory.java - automatic character creation. PhantomEquipment.java - buffs, progression, shots, and inventory cleanup. PhantomHuntingSpots.java - real datapack NPC/spawn loader. PhantomGeo.java - geodata-safe coordinate handling. PhantomState.java - temporary phantom memory. PhantomMenu.java - GM HTML panel. PhantomBypass.java - menu button handling. PhantomChat.java - messages and optional Gemini integration. Copy custom/PhantomManager into: dist/game/data/scripts/custom/PhantomManager/ Place PhantomPlayers.xml in: game/config/Custom/PhantomPlayers.xml Compile scripts or restart the GameServer. Use .pmenu to create, start, and manage phantoms. https://github.com/miacodeweb/L2-Phantom-AI
-
Topics

Question
SkySkase
[gr]Geia xara
Geia xara
Loipon xrisimopoio l2jServer Epilogue kai evala to java code tou iRat ^^Sell buff mod^^
(http://maxcheaters.com/forum/index.php?topic=238116.0)
Ola mia xara mexri pou....
Otan pataw .sellbuffs
1on epilego poso ta poulaw
2o kathomai katw (aftomata)
To problima einai oti prepei na kanw target allou aftou parw ena buff kai meta apli ston buffer gia to defter
na kai o code
### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 5263) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -31,6 +31,7 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; +import javolution.text.TextBuilder; import javolution.util.FastList; import javolution.util.FastMap; import net.sf.l2j.Config; @@ -451,6 +452,8 @@ private boolean _noble = false; private boolean _hero = false; + private boolean _sellbuff = false; + private int _buffprize = 0; /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */ private L2FolkInstance _lastFolkNpc = null; @@ -2375,6 +2378,9 @@ */ public void standUp() { + if(isSellBuff()) + return; + if (L2Event.active && eventSitForced) { sendMessage("A dark force beyond your mortal understanding makes your knees to shake when you try to stand up ..."); @@ -3945,6 +3951,42 @@ // Target the new L2Object (add the target to the L2PcInstance _target, _knownObject and L2PcInstance to _KnownObject of the L2Object) super.setTarget(newTarget); + + L2PcInstance t = null; + if(newTarget instanceof L2PcInstance) + t = (L2PcInstance) newTarget; + + if(t != null){ + if(t.isSellBuff() && t != this){ + TextBuilder tb = new TextBuilder(); + NpcHtmlMessage n = new NpcHtmlMessage(0); + + tb.append("<html><body>"); + tb.append("<br><br>"); + tb.append("<center>Hi, I am "+t.getName()+" and i sell my buffs</center>"); + tb.append("<br><center>Buffs Prize:"+t.getBuffPrize()+"</center>"); + + L2Skill[] skills = t.getAllSkills(); + FastList<L2Skill> ba = new FastList<L2Skill>(); + + for(L2Skill s : skills){ + if(s == null) + continue; + + if(s.getSkillType() == SkillType.BUFF && s.isActive()) + ba.add(s); + } + + for(L2Skill p : ba){ + tb.append("<center><button value=\""+p.getName()+"\" action=\"bypass -h buff"+p.getId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"></center>"); + } + + tb.append("</body></html>"); + + n.setHtml(tb.toString()); + sendPacket(n); + } + } } /** @@ -8214,7 +8256,23 @@ } return true; } + + public boolean isSellBuff(){ + return _sellbuff; + } + + public void setSellBuff(boolean j){ + _sellbuff = j; + } + public int getBuffPrize(){ + return _buffprize; + } + + public void setBuffPrize(int x){ + _buffprize = x; + } + public boolean isNoble() { return _noble; Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java (revision 0) @@ -0,0 +1,76 @@ + +package net.sf.l2j.gameserver.handler.voicedcommandhandlers; + +import javolution.text.TextBuilder; +import javolution.util.FastList; +import net.sf.l2j.gameserver.Olympiad; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.L2Skill; +import net.sf.l2j.gameserver.model.L2Skill.SkillType; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; + +/** + * + * @author Iratus + */ +public class sellbuff implements IVoicedCommandHandler +{ + + private static final String[] VOICED_COMMANDS = {"sellbuffs"}; + + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) + { + if(activeChar == null) + return false; + + + if(activeChar.isDead() || activeChar.isAlikeDead()){ + activeChar.sendMessage("You are dead , you can't sell at the moment"); + return false; + } + else if(activeChar.isInOlympiadMode() || Olympiad.getInstance().isRegistered(activeChar)){ + activeChar.sendMessage("You are in olympiad , you can't sell at the moment"); + return false; + } + else if(activeChar.atEvent){ + activeChar.sendMessage("You are in event , you can't sell at the moment"); + return false; + } + else if(!activeChar.isInsideZone(L2PcInstance.ZONE_PEACE)){ + activeChar.sendMessage("You are not in peacefull zone , you can sell only in peacefull zones"); + return false; + } + else if(activeChar.getPvpFlag() > 0 || activeChar.isInCombat() || activeChar.getKarma() > 0){ + activeChar.sendMessage("You are in combat mode , you can't sell at the moment"); + return false; + } + else if(activeChar.getClassId().getId() != 98){ + activeChar.sendMessage("You must be a buffer class to sell buffs"); + return false; + } + + TextBuilder tb = new TextBuilder(0); + tb.append("<html><body>"); + tb.append("Hello , by completing this form you will be able to sell buffs."); + tb.append("<br>Players will be able , targeting you to take your buff services<br>"); + tb.append("<br>You will be rewarded with adenas for each buff a player takes."); + tb.append("<br><center>Now choose the prize:</center><br>"); + tb.append("<edit var=\"pri\" width=120 height=15>"); + tb.append("<center><button value=\"Confirm\" action=\"bypass -h actr $pri\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">"); + tb.append("</body></html>"); + NpcHtmlMessage n = new NpcHtmlMessage(0); + n.setHtml(tb.toString()); + activeChar.sendPacket(n); + + return true; + } + + + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } + +} Index: java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (working copy) @@ -18,16 +18,20 @@ */ package net.sf.l2j.gameserver.clientpackets; +import java.util.NoSuchElementException; +import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.communitybbs.CommunityBoard; +import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2CharPosition; import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; @@ -85,6 +89,57 @@ { comeHere(activeChar); } + else if(_command.startsWith("buff")){ + String x = _command.substring(4); + int id = Integer.parseInt(x); + L2PcInstance target = null; + + if(activeChar.getTarget() instanceof L2PcInstance) + target = (L2PcInstance) activeChar.getTarget(); + + if(target == null) + return; + + if(activeChar.getInventory().getItemByItemId(57).getCount() < ((L2PcInstance) activeChar.getTarget()).getBuffPrize()){ + activeChar.sendMessage("not enought adena"); + } + + + try{ + L2Skill s = SkillTable.getInstance().getInfo(id, 3); + s.getEffects(activeChar, activeChar); + activeChar.sendMessage("You buyed: "+s.getName()); + activeChar.getInventory().destroyItemByItemId("", 57, target.getBuffPrize(), activeChar, null); + target.getInventory().addItem("", 57, target.getBuffPrize(), target, null); + } + catch(Exception e){ + e.printStackTrace(); + } + } + else if(_command.startsWith("actr")){ + String l = _command.substring(5); + + int p = 0; + + p = Integer.parseInt(l); + + + if(p == 0) + return; + + if(p > 2000000000){ + activeChar.sendMessage("Too big prize"); + return; + } + + activeChar.setBuffPrize(p); + activeChar.sitDown(); + activeChar.setSellBuff(true); + activeChar.getAppearance().setNameColor(0x1111); + activeChar.setTitle("=SELL BUFFS="); + activeChar.broadcastUserInfo(); + activeChar.broadcastTitleInfo(); + } else if (_command.startsWith("player_help ")) { playerHelp(activeChar, _command.substring(12)); Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -199,6 +199,7 @@ import net.sf.l2j.gameserver.handler.usercommandhandlers.PartyInfo; import net.sf.l2j.gameserver.handler.usercommandhandlers.Time; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Wedding; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.sellbuff; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.stats; import net.sf.l2j.gameserver.idfactory.IdFactory; import net.sf.l2j.gameserver.instancemanager.AuctionManager; @@ -592,6 +593,7 @@ _voicedCommandHandler = VoicedCommandHandler.getInstance(); _voicedCommandHandler.registerVoicedCommandHandler(new stats()); + _voicedCommandHandler.registerVoicedCommandHandler(new sellbuff()); if(Config.L2JMOD_ALLOW_WEDDING) _voicedCommandHandler.registerVoicedCommandHandler(new Wedding());[eng]Hello
Hello
So i am using l2jServer Epilogue and i wanted to ad ^^sell buff mode ^^ of iRat
(http://maxcheaters.com/forum/index.php?topic=238116.0)
So Everything went good but .....
When i press .sellbuffs
1st step i put price
2nd i sit
But when someone klik on me to buy he dont see anything no window with buffs....
### Eclipse Workspace Patch 1.0 #P Chr.6GMS Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 5263) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -31,6 +31,7 @@ import java.util.concurrent.locks.ReentrantLock; import java.util.logging.Level; +import javolution.text.TextBuilder; import javolution.util.FastList; import javolution.util.FastMap; import net.sf.l2j.Config; @@ -451,6 +452,8 @@ private boolean _noble = false; private boolean _hero = false; + private boolean _sellbuff = false; + private int _buffprize = 0; /** The L2FolkInstance corresponding to the last Folk wich one the player talked. */ private L2FolkInstance _lastFolkNpc = null; @@ -2375,6 +2378,9 @@ */ public void standUp() { + if(isSellBuff()) + return; + if (L2Event.active && eventSitForced) { sendMessage("A dark force beyond your mortal understanding makes your knees to shake when you try to stand up ..."); @@ -3945,6 +3951,42 @@ // Target the new L2Object (add the target to the L2PcInstance _target, _knownObject and L2PcInstance to _KnownObject of the L2Object) super.setTarget(newTarget); + + L2PcInstance t = null; + if(newTarget instanceof L2PcInstance) + t = (L2PcInstance) newTarget; + + if(t != null){ + if(t.isSellBuff() && t != this){ + TextBuilder tb = new TextBuilder(); + NpcHtmlMessage n = new NpcHtmlMessage(0); + + tb.append("<html><body>"); + tb.append("<br><br>"); + tb.append("<center>Hi, I am "+t.getName()+" and i sell my buffs</center>"); + tb.append("<br><center>Buffs Prize:"+t.getBuffPrize()+"</center>"); + + L2Skill[] skills = t.getAllSkills(); + FastList<L2Skill> ba = new FastList<L2Skill>(); + + for(L2Skill s : skills){ + if(s == null) + continue; + + if(s.getSkillType() == SkillType.BUFF && s.isActive()) + ba.add(s); + } + + for(L2Skill p : ba){ + tb.append("<center><button value=\""+p.getName()+"\" action=\"bypass -h buff"+p.getId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"></center>"); + } + + tb.append("</body></html>"); + + n.setHtml(tb.toString()); + sendPacket(n); + } + } } /** @@ -8214,7 +8256,23 @@ } return true; } + + public boolean isSellBuff(){ + return _sellbuff; + } + + public void setSellBuff(boolean j){ + _sellbuff = j; + } + public int getBuffPrize(){ + return _buffprize; + } + + public void setBuffPrize(int x){ + _buffprize = x; + } + public boolean isNoble() { return _noble; Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java =================================================================== --- java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/sellbuff.java (revision 0) @@ -0,0 +1,76 @@ + +package net.sf.l2j.gameserver.handler.voicedcommandhandlers; + +import javolution.text.TextBuilder; +import javolution.util.FastList; +import net.sf.l2j.gameserver.Olympiad; +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; +import net.sf.l2j.gameserver.model.L2Skill; +import net.sf.l2j.gameserver.model.L2Skill.SkillType; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; + +/** + * + * @author Iratus + */ +public class sellbuff implements IVoicedCommandHandler +{ + + private static final String[] VOICED_COMMANDS = {"sellbuffs"}; + + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) + { + if(activeChar == null) + return false; + + + if(activeChar.isDead() || activeChar.isAlikeDead()){ + activeChar.sendMessage("You are dead , you can't sell at the moment"); + return false; + } + else if(activeChar.isInOlympiadMode() || Olympiad.getInstance().isRegistered(activeChar)){ + activeChar.sendMessage("You are in olympiad , you can't sell at the moment"); + return false; + } + else if(activeChar.atEvent){ + activeChar.sendMessage("You are in event , you can't sell at the moment"); + return false; + } + else if(!activeChar.isInsideZone(L2PcInstance.ZONE_PEACE)){ + activeChar.sendMessage("You are not in peacefull zone , you can sell only in peacefull zones"); + return false; + } + else if(activeChar.getPvpFlag() > 0 || activeChar.isInCombat() || activeChar.getKarma() > 0){ + activeChar.sendMessage("You are in combat mode , you can't sell at the moment"); + return false; + } + else if(activeChar.getClassId().getId() != 98){ + activeChar.sendMessage("You must be a buffer class to sell buffs"); + return false; + } + + TextBuilder tb = new TextBuilder(0); + tb.append("<html><body>"); + tb.append("Hello , by completing this form you will be able to sell buffs."); + tb.append("<br>Players will be able , targeting you to take your buff services<br>"); + tb.append("<br>You will be rewarded with adenas for each buff a player takes."); + tb.append("<br><center>Now choose the prize:</center><br>"); + tb.append("<edit var=\"pri\" width=120 height=15>"); + tb.append("<center><button value=\"Confirm\" action=\"bypass -h actr $pri\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">"); + tb.append("</body></html>"); + NpcHtmlMessage n = new NpcHtmlMessage(0); + n.setHtml(tb.toString()); + activeChar.sendPacket(n); + + return true; + } + + + @Override + public String[] getVoicedCommandList() + { + return VOICED_COMMANDS; + } + +} Index: java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/clientpackets/RequestBypassToServer.java (working copy) @@ -18,16 +18,20 @@ */ package net.sf.l2j.gameserver.clientpackets; +import java.util.NoSuchElementException; +import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; import net.sf.l2j.Config; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.communitybbs.CommunityBoard; +import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2CharPosition; import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.L2Skill; import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; @@ -85,6 +89,57 @@ { comeHere(activeChar); } + else if(_command.startsWith("buff")){ + String x = _command.substring(4); + int id = Integer.parseInt(x); + L2PcInstance target = null; + + if(activeChar.getTarget() instanceof L2PcInstance) + target = (L2PcInstance) activeChar.getTarget(); + + if(target == null) + return; + + if(activeChar.getInventory().getItemByItemId(57).getCount() < ((L2PcInstance) activeChar.getTarget()).getBuffPrize()){ + activeChar.sendMessage("not enought adena"); + } + + + try{ + L2Skill s = SkillTable.getInstance().getInfo(id, 3); + s.getEffects(activeChar, activeChar); + activeChar.sendMessage("You buyed: "+s.getName()); + activeChar.getInventory().destroyItemByItemId("", 57, target.getBuffPrize(), activeChar, null); + target.getInventory().addItem("", 57, target.getBuffPrize(), target, null); + } + catch(Exception e){ + e.printStackTrace(); + } + } + else if(_command.startsWith("actr")){ + String l = _command.substring(5); + + int p = 0; + + p = Integer.parseInt(l); + + + if(p == 0) + return; + + if(p > 2000000000){ + activeChar.sendMessage("Too big prize"); + return; + } + + activeChar.setBuffPrize(p); + activeChar.sitDown(); + activeChar.setSellBuff(true); + activeChar.getAppearance().setNameColor(0x1111); + activeChar.setTitle("=SELL BUFFS="); + activeChar.broadcastUserInfo(); + activeChar.broadcastTitleInfo(); + } else if (_command.startsWith("player_help ")) { playerHelp(activeChar, _command.substring(12)); Index: java/net/sf/l2j/gameserver/GameServer.java =================================================================== --- java/net/sf/l2j/gameserver/GameServer.java (revision 5263) +++ java/net/sf/l2j/gameserver/GameServer.java (working copy) @@ -199,6 +199,7 @@ import net.sf.l2j.gameserver.handler.usercommandhandlers.PartyInfo; import net.sf.l2j.gameserver.handler.usercommandhandlers.Time; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Wedding; +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.sellbuff; import net.sf.l2j.gameserver.handler.voicedcommandhandlers.stats; import net.sf.l2j.gameserver.idfactory.IdFactory; import net.sf.l2j.gameserver.instancemanager.AuctionManager; @@ -592,6 +593,7 @@ _voicedCommandHandler = VoicedCommandHandler.getInstance(); _voicedCommandHandler.registerVoicedCommandHandler(new stats()); + _voicedCommandHandler.registerVoicedCommandHandler(new sellbuff()); if(Config.L2JMOD_ALLOW_WEDDING) _voicedCommandHandler.registerVoicedCommandHandler(new Wedding());7 answers to this question
Recommended Posts