Advertisement
Sarada-L2

Sell Buffs Adaptado para RusaCis 3.5

Mar 4th, 2023
466
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.13 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P aCis_gameserver
  3. diff --git java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java
  4. index e77f468..131c6d5 100644
  5. --- java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java
  6. +++ java/net/sf/l2j/gameserver/handler/VoicedCommandHandler.java
  7. @@ -1,44 +1,46 @@
  8. package net.sf.l2j.gameserver.handler;
  9.  
  10. import java.util.HashMap;
  11. import java.util.Map;
  12.  
  13. import net.sf.l2j.gameserver.handler.voicedcommandhandlers.EventCommand;
  14. import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Menu;
  15. import net.sf.l2j.gameserver.handler.voicedcommandhandlers.OfflinePlayer;
  16. import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Online;
  17. import net.sf.l2j.gameserver.handler.voicedcommandhandlers.PremiumStatus;
  18. +import net.sf.l2j.gameserver.handler.voicedcommandhandlers.SellBuff;
  19.  
  20. public class VoicedCommandHandler
  21. {
  22. private final Map<Integer, IVoicedCommandHandler> _entries = new HashMap<>();
  23.  
  24. protected VoicedCommandHandler()
  25. {
  26. registerHandler(new Online());
  27. registerHandler(new Menu());
  28. registerHandler(new OfflinePlayer());
  29. registerHandler(new PremiumStatus());
  30. registerHandler(new EventCommand());
  31. + registerHandler(new SellBuff());
  32. }
  33.  
  34. public void registerHandler(IVoicedCommandHandler handler)
  35. {
  36. String[] ids = handler.getVoicedCommandList();
  37.  
  38. for (int i = 0; i < ids.length; i++)
  39. _entries.put(ids[i].hashCode(), handler);
  40. }
  41.  
  42. public IVoicedCommandHandler getHandler(String voicedCommand)
  43. {
  44. String command = voicedCommand;
  45.  
  46. if (voicedCommand.indexOf(" ") != -1)
  47. command = voicedCommand.substring(0, voicedCommand.indexOf(" "));
  48.  
  49. return _entries.get(command.hashCode());
  50. }
  51.  
  52. public int size()
  53. {
  54. diff --git java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/SellBuff.java
  55. new file mode 100644
  56. index 0000000..36af6d8
  57. --- /dev/null
  58. +++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/SellBuff.java
  59. @@ -0,0 +1,74 @@
  60. +package net.sf.l2j.gameserver.handler.voicedcommandhandlers;
  61. +
  62. +import net.sf.l2j.gameserver.enums.ZoneId;
  63. +import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
  64. +import net.sf.l2j.gameserver.model.actor.Player;
  65. +import net.sf.l2j.gameserver.model.entity.events.capturetheflag.CTFEvent;
  66. +import net.sf.l2j.gameserver.model.entity.events.deathmatch.DMEvent;
  67. +import net.sf.l2j.gameserver.model.entity.events.lastman.LMEvent;
  68. +import net.sf.l2j.gameserver.model.entity.events.teamvsteam.TvTEvent;
  69. +import net.sf.l2j.gameserver.model.olympiad.OlympiadManager;
  70. +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
  71. +
  72. +/**
  73. + *
  74. + * @author Iratus
  75. + */
  76. +public class SellBuff implements IVoicedCommandHandler
  77. +{
  78. + private static final String[] VOICED_COMMANDS = {"sellbuffs"};
  79. +
  80. + @Override
  81. + public boolean useVoicedCommand(String command, Player activeChar, String target)
  82. + {
  83. + if(activeChar == null)
  84. + return false;
  85. +
  86. + if(activeChar.isDead() || activeChar.isAlikeDead())
  87. + {
  88. + activeChar.sendMessage("You are dead , you can't sell at the moment");
  89. + return false;
  90. + }
  91. + else if(activeChar.isInOlympiadMode() || OlympiadManager.getInstance().isRegistered(activeChar))
  92. + {
  93. + activeChar.sendMessage("You are in olympiad , you can't sell at the moment");
  94. + return false;
  95. + }
  96. + final int charId = activeChar.getObjectId();
  97. + if (CTFEvent.isPlayerParticipant(charId) || DMEvent.isPlayerParticipant(charId) || LMEvent.isPlayerParticipant(charId) || TvTEvent.isPlayerParticipant(charId))
  98. + {
  99. + activeChar.sendMessage("You can't join Start Buffs while participating on Event.");
  100. + return false;
  101. + }
  102. + else if(!activeChar.isInsideZone(ZoneId.PEACE))
  103. + {
  104. + activeChar.sendMessage("You are not in peacefull zone , you can sell only in peacefull zones");
  105. + return false;
  106. + }
  107. + else if(activeChar.getClassId().getId() != 98)
  108. + {
  109. + activeChar.sendMessage("You must be a buffer class to sell buffs");
  110. + return false;
  111. + }
  112. +
  113. + StringBuilder tb = new StringBuilder(0);
  114. + tb.append("<html><body>");
  115. + tb.append("Hello , by completing this form you will be able to sell buffs.");
  116. + tb.append("<br>Players will be able , targeting you to take your buff services<br>");
  117. + tb.append("<br>You will be rewarded with adenas for each buff a player takes.");
  118. + tb.append("<br><center>Now choose the prize:</center><br>");
  119. + tb.append("<edit var=\"pri\" width=120 height=15>");
  120. + tb.append("<center><button value=\"Confirm\" action=\"bypass -h actr $pri\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">");
  121. + tb.append("</body></html>");
  122. + NpcHtmlMessage n = new NpcHtmlMessage(0);
  123. + n.setHtml(tb.toString());
  124. + activeChar.sendPacket(n);
  125. + return true;
  126. + }
  127. + @Override
  128. + public String[] getVoicedCommandList()
  129. + {
  130. + return VOICED_COMMANDS;
  131. + }
  132. +
  133. +}
  134. \ No newline at end of file
  135. diff --git java/net/sf/l2j/gameserver/model/actor/Player.java
  136. index 588d728..9fa12d3 100644
  137. --- java/net/sf/l2j/gameserver/model/actor/Player.java
  138. +++ java/net/sf/l2j/gameserver/model/actor/Player.java
  139. @@ -68,44 +68,45 @@
  140. import net.sf.l2j.gameserver.enums.SpawnType;
  141. import net.sf.l2j.gameserver.enums.StatusType;
  142. import net.sf.l2j.gameserver.enums.TeamType;
  143. import net.sf.l2j.gameserver.enums.TeleportMode;
  144. import net.sf.l2j.gameserver.enums.ZoneId;
  145. import net.sf.l2j.gameserver.enums.actors.ClassId;
  146. import net.sf.l2j.gameserver.enums.actors.ClassRace;
  147. import net.sf.l2j.gameserver.enums.actors.ClassType;
  148. import net.sf.l2j.gameserver.enums.actors.MoveType;
  149. import net.sf.l2j.gameserver.enums.actors.OperateType;
  150. import net.sf.l2j.gameserver.enums.actors.Sex;
  151. import net.sf.l2j.gameserver.enums.actors.WeightPenalty;
  152. import net.sf.l2j.gameserver.enums.bbs.ForumAccess;
  153. import net.sf.l2j.gameserver.enums.bbs.ForumType;
  154. import net.sf.l2j.gameserver.enums.items.ActionType;
  155. import net.sf.l2j.gameserver.enums.items.EtcItemType;
  156. import net.sf.l2j.gameserver.enums.items.ItemLocation;
  157. import net.sf.l2j.gameserver.enums.items.ItemState;
  158. import net.sf.l2j.gameserver.enums.items.ShotType;
  159. import net.sf.l2j.gameserver.enums.items.WeaponType;
  160. import net.sf.l2j.gameserver.enums.skills.EffectFlag;
  161. import net.sf.l2j.gameserver.enums.skills.EffectType;
  162. +import net.sf.l2j.gameserver.enums.skills.SkillType;
  163. import net.sf.l2j.gameserver.enums.skills.Stats;
  164. import net.sf.l2j.gameserver.geoengine.GeoEngine;
  165. import net.sf.l2j.gameserver.handler.IItemHandler;
  166. import net.sf.l2j.gameserver.handler.ItemHandler;
  167. import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditChar;
  168. import net.sf.l2j.gameserver.handler.skillhandlers.SummonFriend;
  169. import net.sf.l2j.gameserver.model.AccessLevel;
  170. import net.sf.l2j.gameserver.model.PetDataEntry;
  171. import net.sf.l2j.gameserver.model.World;
  172. import net.sf.l2j.gameserver.model.WorldObject;
  173. import net.sf.l2j.gameserver.model.actor.ai.type.PlayerAI;
  174. import net.sf.l2j.gameserver.model.actor.attack.PlayerAttack;
  175. import net.sf.l2j.gameserver.model.actor.cast.PlayerCast;
  176. import net.sf.l2j.gameserver.model.actor.container.npc.RewardInfo;
  177. import net.sf.l2j.gameserver.model.actor.container.player.Appearance;
  178. import net.sf.l2j.gameserver.model.actor.container.player.BlockList;
  179. import net.sf.l2j.gameserver.model.actor.container.player.CubicList;
  180. import net.sf.l2j.gameserver.model.actor.container.player.FishingStance;
  181. import net.sf.l2j.gameserver.model.actor.container.player.HennaList;
  182. import net.sf.l2j.gameserver.model.actor.container.player.MacroList;
  183. import net.sf.l2j.gameserver.model.actor.container.player.Punishment;
  184. import net.sf.l2j.gameserver.model.actor.container.player.QuestList;
  185. @@ -282,44 +283,46 @@
  186. public static final int REQUEST_TIMEOUT = 15;
  187.  
  188. private static final Comparator<GeneralSkillNode> COMPARE_SKILLS_BY_MIN_LVL = Comparator.comparing(GeneralSkillNode::getMinLvl);
  189. private static final Comparator<GeneralSkillNode> COMPARE_SKILLS_BY_LVL = Comparator.comparing(GeneralSkillNode::getValue);
  190.  
  191. private long _offlineShopStart;
  192.  
  193. private GameClient _client;
  194. private final Map<Integer, String> _chars = new HashMap<>();
  195.  
  196. private final String _accountName;
  197. private long _deleteTimer;
  198.  
  199. private boolean _isOnline;
  200. private long _onlineTime;
  201. private long _onlineBeginTime;
  202. private long _lastAccess;
  203. private long _uptime;
  204.  
  205. protected int _baseClass;
  206. protected int _activeClass;
  207. protected int _classIndex;
  208. + private boolean _sellbuff = false;
  209. + private int _buffprize = 0;
  210.  
  211. private final Map<Integer, SubClass> _subClasses = new ConcurrentSkipListMap<>();
  212. private final ReentrantLock _subclassLock = new ReentrantLock();
  213.  
  214. private final Appearance _appearance;
  215.  
  216. private long _expBeforeDeath;
  217. private int _karma;
  218. private int _pvpKills;
  219. private int _pkKills;
  220. private byte _pvpFlag;
  221. private int _siegeState;
  222. private WeightPenalty _weightPenalty = WeightPenalty.NONE;
  223.  
  224. private int _lastCompassZone; // the last compass zone update send to the client
  225.  
  226. private boolean _isIn7sDungeon;
  227.  
  228. private final Punishment _punishment = new Punishment(this);
  229. private final RecipeBook _recipeBook = new RecipeBook(this);
  230.  
  231. private boolean _isInOlympiadMode;
  232. @@ -1552,44 +1555,47 @@
  233. }, 2500);
  234.  
  235. // Broadcast the packet.
  236. broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_SITTING));
  237.  
  238. // Tutorial
  239. final QuestState qs = _questList.getQuestState("Tutorial");
  240. if (qs != null)
  241. qs.getQuest().notifyEvent("CE8388608", null, this);
  242.  
  243. return true;
  244. }
  245.  
  246. /**
  247. * Stand the {@link Player} up. The player retrieves control after a 2.5s delay.
  248. * <ul>
  249. * <li>Schedules the STOOD_UP event</li>
  250. * <li>Broadcast {@link ChangeWaitType} packet</li>
  251. * </ul>
  252. */
  253. public void standUp()
  254. {
  255. + if(isSellBuff())
  256. + return;
  257. _isStandingNow = true;
  258. _isSitting = false;
  259.  
  260. // Schedule a stand up task to wait for the animation to finish
  261. ThreadPool.schedule(() ->
  262. {
  263. _isStandingNow = false;
  264. _isStanding = true;
  265.  
  266. getAI().notifyEvent(AiEventType.STOOD_UP, null, null);
  267.  
  268. }, 2500);
  269.  
  270. // Broadcast the packet.
  271. broadcastPacket(new ChangeWaitType(this, ChangeWaitType.WT_STANDING));
  272. }
  273.  
  274. /**
  275. * @return The PcWarehouse object of the Player.
  276. */
  277. public PcWarehouse getWarehouse()
  278. {
  279. @@ -2657,44 +2663,84 @@
  280. su.addAttribute(StatusType.MAX_HP, target.getStatus().getMaxHp());
  281. su.addAttribute(StatusType.CUR_HP, (int) target.getStatus().getHp());
  282. sendPacket(su);
  283.  
  284. broadcastPacket(new TargetSelected(getObjectId(), newTarget.getObjectId(), getX(), getY(), getZ()), false);
  285. }
  286.  
  287. if (newTarget instanceof Folk)
  288. setCurrentFolk((Folk) newTarget);
  289. else if (newTarget == null)
  290. {
  291. sendPacket(ActionFailed.STATIC_PACKET);
  292.  
  293. if (getTarget() != null)
  294. {
  295. broadcastPacket(new TargetUnselected(this));
  296. setCurrentFolk(null);
  297. }
  298. }
  299.  
  300. // Target the new WorldObject
  301. super.setTarget(newTarget);
  302. + Player t = null;
  303. + if(newTarget instanceof Player)
  304. + t = (Player) newTarget;
  305. +
  306. + if(t != null)
  307. + {
  308. + if(t.isSellBuff() && t != this)
  309. + {
  310. + StringBuilder tb = new StringBuilder();
  311. + NpcHtmlMessage n = new NpcHtmlMessage(0);
  312. +
  313. + tb.append("<html><body>");
  314. + tb.append("<br><br>");
  315. + tb.append("<center>Hi, I am "+t.getName()+" and i sell my buffs</center>");
  316. + tb.append("<br><center>Buffs Prize:"+t.getBuffPrize()+"</center>");
  317. +
  318. + Collection<L2Skill> skills = t.getSkills().values();
  319. + ArrayList<L2Skill> ba = new ArrayList<L2Skill>();
  320. +
  321. + for(L2Skill s : skills)
  322. + {
  323. + if(s == null)
  324. + continue;
  325. +
  326. + if(s.getSkillType() == SkillType.BUFF && s.isActive())
  327. + ba.add(s);
  328. + }
  329. +
  330. + for(L2Skill p : ba)
  331. + {
  332. + tb.append("<center><button value=\""+p.getName()+"\" action=\"bypass -h buff"+p.getId()+"\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\"></center>");
  333. + }
  334. +
  335. + tb.append("</body></html>");
  336. +
  337. + n.setHtml(tb.toString());
  338. + sendPacket(n);
  339. + }
  340. + }
  341. }
  342.  
  343. @Override
  344. public ItemInstance getActiveWeaponInstance()
  345. {
  346. return getInventory().getItemFrom(Paperdoll.RHAND);
  347. }
  348.  
  349. @Override
  350. public Weapon getActiveWeaponItem()
  351. {
  352. final ItemInstance item = getActiveWeaponInstance();
  353. return (item == null) ? getTemplate().getFists() : (Weapon) item.getItem();
  354. }
  355.  
  356. @Override
  357. public WeaponType getAttackType()
  358. {
  359. return getActiveWeaponItem().getItemType();
  360. }
  361.  
  362. @Override
  363. @@ -7969,36 +8015,54 @@
  364. }
  365.  
  366. var = _manufactureStoreList.get();
  367. if (var != null)
  368. {
  369. String[] items = var.split(";");
  370. for (String item : items)
  371. {
  372. if (item.equals(""))
  373. continue;
  374.  
  375. String[] values = item.split(",");
  376. if (values.length < 2)
  377. continue;
  378.  
  379. int recId = Integer.parseInt(values[0]);
  380. int price = Integer.parseInt(values[1]);
  381.  
  382. _manufactureList.add(new ManufactureItem(recId, price));
  383. }
  384. }
  385. }
  386. + public boolean isSellBuff()
  387. + {
  388. + return _sellbuff;
  389. + }
  390. +
  391. + public void setSellBuff(boolean j)
  392. + {
  393. + _sellbuff = j;
  394. + }
  395. +
  396. + public int getBuffPrize()
  397. + {
  398. + return _buffprize;
  399. + }
  400. +
  401. + public void setBuffPrize(int x)
  402. + {
  403. + _buffprize = x;
  404. + }
  405. /**
  406. * Added to other GMs, test also this {@link Player} instance. If GM, set it.
  407. */
  408. @Override
  409. public List<Player> getSurroundingGMs()
  410. {
  411. final List<Player> gms = super.getSurroundingGMs();
  412. if (isGM())
  413. gms.add(this);
  414.  
  415. return gms;
  416. }
  417. }
  418. \ No newline at end of file
  419. diff --git java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  420. index ccab125..b558d5b 100644
  421. --- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  422. +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
  423. @@ -1,39 +1,40 @@
  424. package net.sf.l2j.gameserver.network.clientpackets;
  425.  
  426. import java.text.DecimalFormat;
  427. import java.util.Arrays;
  428. import java.util.Comparator;
  429. import java.util.List;
  430. import java.util.Map;
  431. import java.util.StringTokenizer;
  432. import java.util.logging.Logger;
  433. import java.util.stream.Collectors;
  434.  
  435. import net.sf.l2j.commons.data.Pagination;
  436. import net.sf.l2j.commons.lang.StringUtil;
  437.  
  438. import net.sf.l2j.Config;
  439. import net.sf.l2j.gameserver.communitybbs.CommunityBoard;
  440. import net.sf.l2j.gameserver.data.DropCalc;
  441. +import net.sf.l2j.gameserver.data.SkillTable;
  442. import net.sf.l2j.gameserver.data.manager.BotsPreventionManager;
  443. import net.sf.l2j.gameserver.data.manager.HeroManager;
  444. import net.sf.l2j.gameserver.data.manager.SpawnManager;
  445. import net.sf.l2j.gameserver.data.xml.AdminData;
  446. import net.sf.l2j.gameserver.data.xml.ItemData;
  447. import net.sf.l2j.gameserver.enums.DropType;
  448. import net.sf.l2j.gameserver.enums.FloodProtector;
  449. import net.sf.l2j.gameserver.enums.actors.NpcSkillType;
  450. import net.sf.l2j.gameserver.enums.skills.ElementType;
  451. import net.sf.l2j.gameserver.enums.skills.SkillType;
  452. import net.sf.l2j.gameserver.handler.AdminCommandHandler;
  453. import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
  454. import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
  455. import net.sf.l2j.gameserver.handler.VoicedCommandHandler;
  456. import net.sf.l2j.gameserver.model.World;
  457. import net.sf.l2j.gameserver.model.WorldObject;
  458. import net.sf.l2j.gameserver.model.actor.Attackable;
  459. import net.sf.l2j.gameserver.model.actor.Npc;
  460. import net.sf.l2j.gameserver.model.actor.Player;
  461. import net.sf.l2j.gameserver.model.actor.container.attackable.AggroList;
  462. import net.sf.l2j.gameserver.model.actor.container.npc.AggroInfo;
  463. import net.sf.l2j.gameserver.model.actor.instance.GrandBoss;
  464. @@ -168,44 +169,102 @@
  465. }
  466. else if (_command.startsWith("Quest "))
  467. {
  468. if (!player.validateBypass(_command))
  469. return;
  470.  
  471. String[] str = _command.substring(6).trim().split(" ", 2);
  472. if (str.length == 1)
  473. player.getQuestList().processQuestEvent(str[0], "");
  474. else
  475. player.getQuestList().processQuestEvent(str[0], str[1]);
  476. }
  477. else if (_command.startsWith("_match"))
  478. {
  479. String params = _command.substring(_command.indexOf("?") + 1);
  480. StringTokenizer st = new StringTokenizer(params, "&");
  481. int heroclass = Integer.parseInt(st.nextToken().split("=")[1]);
  482. int heropage = Integer.parseInt(st.nextToken().split("=")[1]);
  483. int heroid = HeroManager.getInstance().getHeroByClass(heroclass);
  484. if (heroid > 0)
  485. HeroManager.getInstance().showHeroFights(player, heroclass, heroid, heropage);
  486. }
  487. + else if(_command.startsWith("buff"))
  488. + {
  489. + String x = _command.substring(4);
  490. + int id = Integer.parseInt(x);
  491. + Player target = null;
  492. +
  493. + if(player.getTarget() instanceof Player)
  494. + target = (Player) player.getTarget();
  495. +
  496. + if(target == null)
  497. + {
  498. + return;
  499. + }
  500. +
  501. + if(player.getInventory().getItemByItemId(57).getCount() < ((Player) player.getTarget()).getBuffPrize())
  502. + {
  503. + player.sendMessage("not enought adena");
  504. + }
  505. +
  506. + try
  507. + {
  508. + L2Skill s = SkillTable.getInstance().getInfo(id, 2);
  509. + s.getEffects(player, player);
  510. + player.sendMessage("You buyed: "+s.getName());
  511. + player.getInventory().destroyItemByItemId("", 57, target.getBuffPrize(), target, null);
  512. + target.getInventory().addItem("", 57, target.getBuffPrize(), target, null);
  513. + }
  514. + catch(Exception e)
  515. + {
  516. + e.printStackTrace();
  517. + }
  518. + }
  519. + else if(_command.startsWith("actr"))
  520. + {
  521. + String l = _command.substring(5);
  522. +
  523. + int p = 0;
  524. +
  525. + p = Integer.parseInt(l);
  526. +
  527. +
  528. + if(p == 0)
  529. + return;
  530. +
  531. + if(p > 2000000000)
  532. + {
  533. + player.sendMessage("Too big prize");
  534. + return;
  535. + }
  536. +
  537. + player.setBuffPrize(p);
  538. + player.sitDown();
  539. + player.setSellBuff(true);
  540. + player.getAppearance().setNameColor(0x1111);
  541. + player.setTitle("=SELL BUFFS=");
  542. + player.broadcastUserInfo();
  543. + player.broadcastTitleInfo();
  544. + }
  545. else if (_command.startsWith("_diary"))
  546. {
  547. String params = _command.substring(_command.indexOf("?") + 1);
  548. StringTokenizer st = new StringTokenizer(params, "&");
  549. int heroclass = Integer.parseInt(st.nextToken().split("=")[1]);
  550. int heropage = Integer.parseInt(st.nextToken().split("=")[1]);
  551. int heroid = HeroManager.getInstance().getHeroByClass(heroclass);
  552. if (heroid > 0)
  553. HeroManager.getInstance().showHeroDiary(player, heroclass, heroid, heropage);
  554. }
  555. else if (_command.startsWith("arenachange")) // change
  556. {
  557. final boolean isManager = player.getCurrentFolk() instanceof OlympiadManagerNpc;
  558. if (!isManager)
  559. {
  560. // Without npc, command can be used only in observer mode on arena
  561. if (!player.isInObserverMode() || player.isInOlympiadMode() || player.getOlympiadGameId() < 0)
  562. return;
  563. }
  564.  
  565. // Olympiad registration check.
  566. if (OlympiadManager.getInstance().isRegisteredInComp(player))
  567. @@ -303,44 +362,53 @@
  568. catch (Exception e)
  569. {
  570. showNpcInfoEffects(player, (Npc) wo, html, 1);
  571. }
  572. break;
  573. }
  574. }
  575. player.sendPacket(html);
  576. }
  577. }
  578. catch (Exception e)
  579. {
  580. LOGGER.error("bypass user_npc_info error", e);
  581. }
  582.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement