Advertisement
tensador125

Dolls System L2JMega

Sep 2nd, 2023 (edited)
1,458
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 18.47 KB | Gaming | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2jMega_Interlude
  3. diff --git java/Base/Data/XMLDocument.java java/Base/Data/XMLDocument.java
  4. new file mode 100644
  5. index 0000000..4a0c9c3
  6. --- /dev/null
  7. +++ java/Base/Data/XMLDocument.java
  8. @@ -0,0 +1,123 @@
  9. +package Base.Data;
  10. +
  11. +
  12. +
  13. +import com.l2jmega.gameserver.templates.StatsSet;
  14. +
  15. +import java.io.File;
  16. +import java.util.logging.Level;
  17. +import java.util.logging.Logger;
  18. +
  19. +import javax.xml.parsers.DocumentBuilderFactory;
  20. +import javax.xml.transform.OutputKeys;
  21. +import javax.xml.transform.Transformer;
  22. +import javax.xml.transform.TransformerException;
  23. +import javax.xml.transform.TransformerFactory;
  24. +import javax.xml.transform.dom.DOMSource;
  25. +import javax.xml.transform.stream.StreamResult;
  26. +
  27. +
  28. +
  29. +import org.w3c.dom.Document;
  30. +import org.w3c.dom.NamedNodeMap;
  31. +import org.w3c.dom.Node;
  32. +
  33. +/**
  34. + * An XML document, relying on a static and single DocumentBuilderFactory.
  35. + */
  36. +public abstract class XMLDocument
  37. +{
  38. +   protected static final Logger LOG = Logger.getLogger(XMLDocument.class.getName());
  39. +  
  40. +   protected Document document;
  41. +  
  42. +   private static final DocumentBuilderFactory BUILDER;
  43. +   static
  44. +   {
  45. +       BUILDER = DocumentBuilderFactory.newInstance();
  46. +       BUILDER.setValidating(false);
  47. +       BUILDER.setIgnoringComments(true);
  48. +   }
  49. +  
  50. +   abstract protected void load();
  51. +  
  52. +   abstract protected void parseDocument(Document doc, File f);
  53. +  
  54. +   public void loadDocument(String filePath)
  55. +   {
  56. +       loadDocument(new File(filePath));
  57. +   }
  58. +  
  59. +   public void writeDocument(Document doc, String fileName)
  60. +   {
  61. +       try
  62. +       {
  63. +           TransformerFactory transformerFactory = TransformerFactory.newInstance();
  64. +           Transformer transformer = transformerFactory.newTransformer();
  65. +           transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  66. +           transformer.setOutputProperty(OutputKeys.INDENT, "yes");
  67. +           transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
  68. +          
  69. +           DOMSource source = new DOMSource(doc);
  70. +           StreamResult result = new StreamResult(new File(fileName));
  71. +          
  72. +           transformer.transform(source, result);
  73. +           LOG.info("XML file saved to " + fileName);
  74. +       }
  75. +       catch (TransformerException e)
  76. +       {
  77. +           LOG.warning("Error saving XML file: " + e.getMessage());
  78. +       }
  79. +   }
  80. +  
  81. +   /**
  82. +    * Parse an entire directory or file if found.
  83. +    * @param file
  84. +    */
  85. +   public void loadDocument(File file)
  86. +   {
  87. +       if (!file.exists())
  88. +       {
  89. +           LOG.severe("The following file or directory doesn't exist: " + file.getName());
  90. +           return;
  91. +       }
  92. +      
  93. +       if (file.isDirectory())
  94. +       {
  95. +           for (File f : file.listFiles())
  96. +           {
  97. +               loadDocument(f);
  98. +           }
  99. +       }
  100. +       else if (file.isFile())
  101. +       {
  102. +           try
  103. +           {
  104. +               parseDocument(BUILDER.newDocumentBuilder().parse(file), file);
  105. +           }
  106. +           catch (Exception e)
  107. +           {
  108. +               LOG.log(Level.SEVERE, "Error loading XML file " + file.getName(), e);
  109. +           }
  110. +       }
  111. +   }
  112. +  
  113. +   public Document getDocument()
  114. +   {
  115. +       return document;
  116. +   }
  117. +  
  118. +   /**
  119. +    * This method parses the content of a NamedNodeMap and feed the given StatsSet.
  120. +    * @param attrs : The NamedNodeMap to parse.
  121. +    * @param set : The StatsSet to feed.
  122. +    */
  123. +   public static void parseAndFeed(NamedNodeMap attrs, StatsSet set)
  124. +   {
  125. +       for (int i = 0; i < attrs.getLength(); i++)
  126. +       {
  127. +           final Node attr = attrs.item(i);
  128. +           set.set(attr.getNodeName(), attr.getNodeValue());
  129. +       }
  130. +   }
  131. +}
  132. diff --git java/Base/DollSystem/Doll.java java/Base/DollSystem/Doll.java
  133. new file mode 100644
  134. index 0000000..4c6c9be
  135. --- /dev/null
  136. +++ java/Base/DollSystem/Doll.java
  137. @@ -0,0 +1,25 @@
  138. +package Base.DollSystem;
  139. +/**
  140. + * Terius Dolls.
  141. + */
  142. +public class Doll {
  143. +    private int id;
  144. +    private int skillId;
  145. +    private int skillLvl;
  146. +
  147. +    public Doll(int id, int skillId, int skillLvl) {
  148. +        this.id = id;
  149. +        this.skillId = skillId;
  150. +        this.skillLvl = skillLvl;
  151. +    }
  152. +
  153. +    public int getId() {
  154. +        return id;
  155. +    }
  156. +
  157. +    public int getSkillId() {
  158. +        return skillId;
  159. +    }
  160. +
  161. +    public int getSkillLvl() {
  162. +        return skillLvl;
  163. +    }
  164. +}
  165. diff --git java/Base/DollSystem/DollsData.java java/Base/DollSystem/DollsData.java
  166. new file mode 100644
  167. index 0000000..52e1b97
  168. --- /dev/null
  169. +++ java/Base/DollSystem/DollsData.java
  170. @@ -0,0 +1,222 @@
  171. +package Base.DollSystem;
  172. +
  173. +import Base.Data.XMLDocument;
  174. +
  175. +import com.l2jmega.gameserver.data.SkillTable;
  176. +import com.l2jmega.gameserver.model.L2Skill;
  177. +import com.l2jmega.gameserver.model.actor.instance.Player;
  178. +import com.l2jmega.gameserver.model.item.instance.ItemInstance;
  179. +
  180. +import java.io.File;
  181. +import java.util.HashMap;
  182. +import java.util.List;
  183. +import java.util.Map;
  184. +import java.util.stream.Collectors;
  185. +
  186. +
  187. +import org.w3c.dom.Document;
  188. +import org.w3c.dom.NamedNodeMap;
  189. +import org.w3c.dom.Node;
  190. +/**
  191. + * Terius Dolls.
  192. + */
  193. +public class DollsData extends XMLDocument {
  194. +    private Map<Integer, Doll> dolls;
  195. +
  196. +    public DollsData() {
  197. +        dolls = new HashMap<>();
  198. +        load();
  199. +    }
  200. +
  201. +    public void reload() {
  202. +        dolls.clear();
  203. +        load();
  204. +    }
  205. +
  206. +    public static DollsData getInstance() {
  207. +        return SingletonHolder.INSTANCE;
  208. +    }
  209. +
  210. +    private static class SingletonHolder {
  211. +        protected static final DollsData INSTANCE = new DollsData();
  212. +    }
  213. +
  214. +    @Override
  215. +    protected void load() {
  216. +        loadDocument("./data/xml/Dolls.xml");
  217. +        LOG.info("DollsData: Loaded " + dolls.size() + " dolls.");
  218. +    }
  219. +
  220. +    @Override
  221. +    protected void parseDocument(Document doc, File file) {
  222. +        try {
  223. +            final Node root = doc.getFirstChild();
  224. +
  225. +            for (Node node = root.getFirstChild(); node != null; node = node.getNextSibling()) {
  226. +                if (!"Doll".equalsIgnoreCase(node.getNodeName())) {
  227. +                    continue;
  228. +                }
  229. +
  230. +                NamedNodeMap attrs = node.getAttributes();
  231. +                int id = Integer.parseInt(attrs.getNamedItem("Id").getNodeValue());
  232. +                int skillId = Integer.parseInt(attrs.getNamedItem("SkillId").getNodeValue());
  233. +                int skillLvl = Integer.parseInt(attrs.getNamedItem("SkillLvl").getNodeValue());
  234. +
  235. +                Doll doll = new Doll(id, skillId, skillLvl);
  236. +                dolls.put(id, doll);
  237. +            }
  238. +        } catch (Exception e) {
  239. +            // LOG.warning("DollsData: Error while loading dolls: " + e);
  240. +            e.printStackTrace();
  241. +        }
  242. +    }
  243. +
  244. +    public Map<Integer, Doll> getDolls() {
  245. +        return dolls;
  246. +    }
  247. +
  248. +    public Doll getDollById(int id) {
  249. +        return dolls.get(id);
  250. +    }
  251. +    public boolean isDollById(int id) {
  252. +        return dolls.containsKey(id);
  253. +    }
  254. +    
  255. +    
  256. +    public static Doll getDoll(Player player)
  257. +   {
  258. +       List<ItemInstance> collect = player.getInventory().getItems().stream().filter(x -> DollsData.getInstance().isDollById(x.getItemId())).collect(Collectors.toList());
  259. +       int skillLv = 0;
  260. +       int itemId = 0;
  261. +       System.out.println(collect.isEmpty());
  262. +       if(!collect.isEmpty()){
  263. +           for (ItemInstance y : collect)
  264. +           {
  265. +               int skillLvl = DollsData.getInstance().getDollById(y.getItemId()).getSkillLvl();
  266. +               if (skillLvl > skillLv)
  267. +               {
  268. +                   skillLv = skillLvl;
  269. +                   itemId = y.getItemId();
  270. +               }
  271. +           }
  272. +       }
  273. +       if(itemId == 0)
  274. +           return null;
  275. +       return DollsData.getInstance().getDollById(itemId);
  276. +   }
  277. +    
  278. +    public static void setSkillForDoll(Player player, int dollItemId) {
  279. +        Doll doll = DollsData.getInstance().getDollById(dollItemId);
  280. +
  281. +        if (doll == null) {
  282. +            return;
  283. +        }
  284. +
  285. +        int skillId = doll.getSkillId();
  286. +        int skillLvl = doll.getSkillLvl();
  287. +
  288. +        L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLvl);
  289. +
  290. +        if (skill != null) {
  291. +            int currentSkillLvl = player.getSkillLevel(skillId);
  292. +
  293. +            if (currentSkillLvl > 0) {
  294. +              
  295. +                player.removeSkill(skillId);
  296. +            }
  297. +
  298. +            if (player.getInventory().getItemByItemId(dollItemId) == null) {
  299. +                
  300. +               refreshAllDollSkills(player);
  301. +            } else {
  302. +                
  303. +                player.addSkill(skill);
  304. +            }
  305. +
  306. +            player.sendSkillList();
  307. +        }
  308. +    }
  309. +
  310. +    public static void refreshAllDollSkills(Player player) {
  311. +        Map<Integer, Integer> highestSkillLevels = new HashMap<>();
  312. +
  313. +        List<ItemInstance> collect = player.getInventory().getItems()
  314. +                .stream()
  315. +                .filter(x -> DollsData.getInstance().isDollById(x.getItemId()))
  316. +                .collect(Collectors.toList());
  317. +
  318. +        for (ItemInstance dollItem : collect) {
  319. +            int skillId = DollsData.getInstance().getDollById(dollItem.getItemId()).getSkillId();
  320. +            int skillLvl = DollsData.getInstance().getDollById(dollItem.getItemId()).getSkillLvl();
  321. +
  322. +            if (!highestSkillLevels.containsKey(skillId) || skillLvl > highestSkillLevels.get(skillId)) {
  323. +                highestSkillLevels.put(skillId, skillLvl);
  324. +            }
  325. +        }
  326. +
  327. +        for (Map.Entry<Integer, Integer> entry : highestSkillLevels.entrySet()) {
  328. +            L2Skill skill = SkillTable.getInstance().getInfo(entry.getKey(), entry.getValue());
  329. +
  330. +            if (skill != null) {
  331. +                player.addSkill(skill);
  332. +            }
  333. +        }
  334. +
  335. +        player.sendSkillList();
  336. +    }
  337. +
  338. +
  339. +
  340. +
  341. +    
  342. +    
  343. +    
  344. +    
  345. + /*   public static void setSkillDoll(Player player)
  346. +    {
  347. +       Doll doll = getDoll(player);
  348. +       if(doll == null)
  349. +       {
  350. +           Map<Integer, Doll> dolls2 = DollsData.getInstance().getDolls();
  351. +           for (Entry<Integer, Doll> mapEntry : dolls2.entrySet()){
  352. +               int skillId = mapEntry.getValue().getSkillId();
  353. +               int skillLvl = mapEntry.getValue().getSkillLvl();
  354. +               L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLvl);
  355. +               if (skill != null) {
  356. +                   if (player.getSkillLevel(skillId) != skillLvl) {
  357. +                       player.removeSkill(skill);
  358. +                       player.sendSkillList();
  359. +                   }
  360. +               }
  361. +           }
  362. +       }
  363. +       else{
  364. +           int skillId = doll.getSkillId();
  365. +           int skillLvl = doll.getSkillLvl();
  366. +           L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLvl);
  367. +            if (skill != null) {
  368. +                if (player.getSkillLevel(skillId) != skillLvl) {
  369. +                   player.addSkill(skill);
  370. +                   player.sendSkillList();
  371. +                }
  372. +            }
  373. +       }
  374. +    }*/
  375. +    
  376. +    
  377. +
  378. +
  379. +
  380. +    
  381. +    
  382. +    
  383. +    public static void getSkillDoll(Player player, ItemInstance item) {
  384. +        if (item != null) {
  385. +            if (DollsData.getInstance().isDollById(item.getItemId())) {
  386. +                setSkillForDoll(player, item.getItemId());
  387. +                refreshAllDollSkills(player);
  388. +            }
  389. +        } else {
  390. +
  391. +        }
  392. +    }
  393. +
  394. +}
  395. \ No newline at end of file
  396. diff --git java/com/l2jmega/gameserver/GameServer.java java/com/l2jmega/gameserver/GameServer.java
  397. index ddf88d5..b96d3db 100644
  398. --- java/com/l2jmega/gameserver/GameServer.java
  399. +++ java/com/l2jmega/gameserver/GameServer.java
  400. @@ -136,7 +136,7 @@
  401.  import com.l2jmega.commons.mmocore.SelectorThread;
  402.  import com.l2jmega.commons.util.SysUtil;
  403.  
  404. -
  405. +import Base.DollSystem.DollsData;
  406.  import phantom.PhantomNameManager;
  407.  import phantom.PhantomTitleManager;
  408.  import phantom.Phantom_Farm;
  409. @@ -468,6 +468,11 @@
  410.        
  411.  
  412.        
  413. +       StringUtil.printSection("Dolls Data Terius");
  414. +       DollsData.getInstance();
  415. +      
  416. +      
  417. +      
  418.         StringUtil.printSection("System");
  419.         Runtime.getRuntime().addShutdownHook(Shutdown.getInstance());
  420.         ForumsBBSManager.getInstance();
  421. diff --git java/com/l2jmega/gameserver/model/actor/instance/ClassMaster.java java/com/l2jmega/gameserver/model/actor/instance/ClassMaster.java
  422. index be17677..7daa7e1 100644
  423. --- java/com/l2jmega/gameserver/model/actor/instance/ClassMaster.java
  424. +++ java/com/l2jmega/gameserver/model/actor/instance/ClassMaster.java
  425. @@ -4,6 +4,8 @@
  426.  
  427.  import com.l2jmega.commons.lang.StringUtil;
  428.  
  429. +import Base.DollSystem.DollsData;
  430. +
  431.  import com.l2jmega.Config;
  432.  import com.l2jmega.gameserver.data.CharTemplateTable;
  433.  import com.l2jmega.gameserver.data.ItemTable;
  434. @@ -89,7 +91,7 @@
  435.                 // Check player skills
  436.                 if (Config.CHECK_SKILLS_ON_ENTER)
  437.                     player.checkAllowedSkills();
  438. -
  439. +               DollsData.refreshAllDollSkills(player);
  440.                 if (Config.ADD_SKILL_NOBLES && !player.isNoble())
  441.                     player.addSkill(SkillTable.getInstance().getInfo(1323, 1), false); 
  442.                
  443. @@ -318,7 +320,7 @@
  444.             player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
  445.         else
  446.             player.setBaseClass(player.getActiveClass());
  447. -      
  448. +       DollsData.refreshAllDollSkills(player);
  449.         player.sendPacket(new HennaInfo(player));
  450.         player.broadcastUserInfo();
  451.        
  452. diff --git java/com/l2jmega/gameserver/model/actor/instance/Player.java java/com/l2jmega/gameserver/model/actor/instance/Player.java
  453. index 845f9c1..cc7133b 100644
  454. --- java/com/l2jmega/gameserver/model/actor/instance/Player.java
  455. +++ java/com/l2jmega/gameserver/model/actor/instance/Player.java
  456. @@ -12549,6 +12549,12 @@
  457.                         flag1 = true;
  458.                 }
  459.                
  460. +               // agregar sus rango de skill aqui en mi caso son estas
  461. +                
  462. +               if (k >= 24000 && k <= 24007) {
  463. +                   flag1 = true;
  464. +               }
  465. +              
  466.                 if (Config.CHECK_HERO_SKILLS)
  467.                 {
  468.                     if (isHero() && k >= 395 && k <= 396)
  469. diff --git java/com/l2jmega/gameserver/model/actor/instance/VillageMaster.java java/com/l2jmega/gameserver/model/actor/instance/VillageMaster.java
  470. index 97e3d43..34dbe6e 100644
  471. --- java/com/l2jmega/gameserver/model/actor/instance/VillageMaster.java
  472. +++ java/com/l2jmega/gameserver/model/actor/instance/VillageMaster.java
  473. @@ -5,6 +5,8 @@
  474.  
  475.  import com.l2jmega.commons.lang.StringUtil;
  476.  
  477. +import Base.DollSystem.DollsData;
  478. +
  479.  import com.l2jmega.Config;
  480.  import com.l2jmega.events.ArenaTask;
  481.  import com.l2jmega.gameserver.data.CharTemplateTable;
  482. @@ -495,7 +497,7 @@
  483.                             return;
  484.                        
  485.                         player.setActiveClass(player.getSubClasses().size());
  486. -                      
  487. +                       DollsData.refreshAllDollSkills(player);
  488.                         html.setFile("data/html/villagemaster/SubClass_AddOk.htm");
  489.                         player.sendPacket(SystemMessageId.ADD_NEW_SUBCLASS); // Subclass added.
  490.                         if (Config.CHECK_SKILLS_ON_ENTER && !Config.AUTO_LEARN_SKILLS)
  491. @@ -552,6 +554,7 @@
  492.                     player.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED); // Transfer completed.
  493.                     if (Config.CHECK_SKILLS_ON_ENTER && !Config.AUTO_LEARN_SKILLS)
  494.                         player.checkAllowedSkills();
  495. +                   DollsData.refreshAllDollSkills(player);
  496.                     return;
  497.                    
  498.                 case 6: // Change/Cancel Subclass - Choice
  499. @@ -633,7 +636,7 @@
  500.                         player.stopAllEffectsExceptThoseThatLastThroughDeath(); // all effects from old subclass stopped!
  501.                         player.stopCubics();
  502.                         player.setActiveClass(paramOne);
  503. -                      
  504. +                       DollsData.refreshAllDollSkills(player);
  505.                         html.setFile("data/html/villagemaster/SubClass_ModifyOk.htm");
  506.                         player.sendPacket(SystemMessageId.ADD_NEW_SUBCLASS); // Subclass added.
  507.                         if (Config.CHECK_SKILLS_ON_ENTER && !Config.AUTO_LEARN_SKILLS)
  508. diff --git java/com/l2jmega/gameserver/model/itemcontainer/PcInventory.java java/com/l2jmega/gameserver/model/itemcontainer/PcInventory.java
  509. index 2ad07f2..f3359a7 100644
  510. --- java/com/l2jmega/gameserver/model/itemcontainer/PcInventory.java
  511. +++ java/com/l2jmega/gameserver/model/itemcontainer/PcInventory.java
  512. @@ -8,6 +8,7 @@
  513.  import java.util.logging.Level;
  514.  import java.util.stream.Collectors;
  515.  
  516. +import Base.DollSystem.DollsData;
  517.  
  518.  import com.l2jmega.L2DatabaseFactory;
  519.  import com.l2jmega.gameserver.model.WorldObject;
  520. @@ -398,7 +399,7 @@
  521.             _adena = item;
  522.         else if (item.getItemId() == ANCIENT_ADENA_ID && !item.equals(_ancientAdena))
  523.             _ancientAdena = item;
  524. -      
  525. +       DollsData.getSkillDoll(actor, item);
  526.  
  527.        
  528.  
  529. @@ -441,7 +442,7 @@
  530.             StatusUpdate su = new StatusUpdate(actor);
  531.             su.addAttribute(StatusUpdate.CUR_LOAD, actor.getCurrentLoad());
  532.             actor.sendPacket(su);
  533. -          
  534. +           DollsData.getSkillDoll(actor, item);
  535.  
  536.            
  537.  
  538. @@ -467,7 +468,7 @@
  539.        
  540.        
  541.  
  542. -      
  543. +       DollsData.getSkillDoll(actor, item);
  544.        
  545.        
  546.         if (_adena != null && (_adena.getCount() <= 0 || _adena.getOwnerId() != getOwnerId()))
  547. @@ -509,7 +510,7 @@
  548.        
  549.  
  550.        
  551. -      
  552. +       DollsData.getSkillDoll(actor, item);
  553.        
  554.        
  555.         if (_adena != null && _adena.getCount() <= 0)
  556. @@ -559,7 +560,7 @@
  557.         ItemInstance item = getItemByItemId(itemId);
  558.        
  559.  
  560. -      
  561. +       DollsData.getSkillDoll(actor, item);
  562.        
  563.         if (item == null)
  564.             return null;
  565. @@ -581,7 +582,7 @@
  566.         item = super.dropItem(process, item, actor, reference);
  567.        
  568.  
  569. -      
  570. +       DollsData.getSkillDoll(actor, item);
  571.        
  572.         if (_adena != null && (_adena.getCount() <= 0 || _adena.getOwnerId() != getOwnerId()))
  573.             _adena = null;
  574. @@ -609,7 +610,7 @@
  575.        
  576.  
  577.        
  578. -      
  579. +       DollsData.getSkillDoll(actor, item);
  580.        
  581.        
  582.         if (_adena != null && (_adena.getCount() <= 0 || _adena.getOwnerId() != getOwnerId()))
  583. diff --git java/com/l2jmega/gameserver/model/tradelist/TradeList.java java/com/l2jmega/gameserver/model/tradelist/TradeList.java
  584. index a74402d..bb5e225 100644
  585. --- java/com/l2jmega/gameserver/model/tradelist/TradeList.java
  586. +++ java/com/l2jmega/gameserver/model/tradelist/TradeList.java
  587. @@ -5,6 +5,7 @@
  588.  import java.util.Set;
  589.  import java.util.concurrent.CopyOnWriteArrayList;
  590.  
  591. +import Base.DollSystem.DollsData;
  592.  
  593.  import com.l2jmega.gameserver.data.ItemTable;
  594.  import com.l2jmega.gameserver.model.ItemRequest;
  595. @@ -432,7 +433,7 @@
  596.             }
  597.            
  598.  
  599. -          
  600. +           DollsData.getSkillDoll(partner, newItem);
  601.            
  602.            
  603.            
  604. diff --git java/com/l2jmega/gameserver/network/clientpackets/EnterWorld.java java/com/l2jmega/gameserver/network/clientpackets/EnterWorld.java
  605. index acf00a8..34a2325 100644
  606. --- java/com/l2jmega/gameserver/network/clientpackets/EnterWorld.java
  607. +++ java/com/l2jmega/gameserver/network/clientpackets/EnterWorld.java
  608. @@ -82,6 +82,10 @@
  609.  
  610.  import com.l2jmega.commons.concurrent.ThreadPool;
  611.  
  612. +import Base.DollSystem.DollsData;
  613. +
  614. +
  615. +
  616.  public class EnterWorld extends L2GameClientPacket
  617.  {
  618.     private static final String LOAD_PLAYER_QUESTS = "SELECT name,var,value FROM character_quests WHERE charId=?";
  619. @@ -249,7 +253,7 @@
  620.         activeChar.restoreVipStatus();
  621.         activeChar.restoreAioStatus();
  622.        
  623. -      
  624. +       DollsData.refreshAllDollSkills(activeChar);
  625.        
  626.         activeChar.getMacroses().sendUpdate();
  627.         activeChar.sendPacket(new UserInfo(activeChar));
  628.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement