Advertisement
Guest User

[aCis] Newbie Helper Npc

a guest
Jan 7th, 2017
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 45.66 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2.  
  3. #P aCis_gameserver
  4.  
  5. Index: java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java
  6.  
  7. ===================================================================
  8.  
  9. --- java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java    (revision 88)
  10.  
  11. +++ java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java    (working copy)
  12.  
  13. @@ -115,7 +115,7 @@
  14.  
  15.              super.onBypassFeedback(player, command);
  16.  
  17.      }
  18.  
  19.      
  20.  
  21. -    private static final void showHtmlMenu(L2PcInstance player, int objectId, int level)
  22.  
  23. +    static final void showHtmlMenu(L2PcInstance player, int objectId, int level)
  24.  
  25.      {
  26.  
  27.          final NpcHtmlMessage html = new NpcHtmlMessage(objectId);
  28.  
  29.          
  30.  
  31. @@ -210,7 +210,7 @@
  32.  
  33.          player.sendPacket(html);
  34.  
  35.      }
  36.  
  37.      
  38.  
  39. -    private static final boolean checkAndChangeClass(L2PcInstance player, int val)
  40.  
  41. +    static final boolean checkAndChangeClass(L2PcInstance player, int val)
  42.  
  43.      {
  44.  
  45.          final ClassId currentClassId = player.getClassId();
  46.  
  47.          if (getMinLevel(currentClassId.level()) > player.getLevel() && !Config.ALLOW_ENTIRE_TREE)
  48.  
  49. Index: java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java
  50.  
  51. ===================================================================
  52.  
  53. --- java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java    (nonexistent)
  54.  
  55. +++ java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java    (working copy)
  56.  
  57. @@ -0,0 +1,324 @@
  58.  
  59. +/*
  60.  
  61. + * This program is free software: you can redistribute it and/or modify it under
  62.  
  63. + * the terms of the GNU General Public License as published by the Free Software
  64.  
  65. + * Foundation, either version 3 of the License, or (at your option) any later
  66.  
  67. + * version.
  68.  
  69. + *
  70.  
  71. + * This program is distributed in the hope that it will be useful, but WITHOUT
  72.  
  73. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  74.  
  75. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  76.  
  77. + * details.
  78.  
  79. + *
  80.  
  81. + * You should have received a copy of the GNU General Public License along with
  82.  
  83. + * this program. If not, see <http://www.gnu.org/licenses/>.
  84.  
  85. + */
  86.  
  87. +package net.sf.l2j.gameserver.NewbiesSystem;
  88.  
  89. +
  90.  
  91. +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  92.  
  93. +import net.sf.l2j.gameserver.model.base.ClassId;
  94.  
  95. +import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
  96.  
  97. +import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
  98.  
  99. +
  100.  
  101. +/**
  102.  
  103. + * @author Baggos
  104.  
  105. + */
  106.  
  107. +public class NewbiesNpc
  108.  
  109. +{
  110.  
  111. +    public static void giveItems(int Classes, L2PcInstance player)
  112.  
  113. +    {
  114.  
  115. +        final int[] DaggerArmors =
  116.  
  117. +        {
  118.  
  119. +            6590,
  120.  
  121. +            6379,
  122.  
  123. +            6380,
  124.  
  125. +            6381,
  126.  
  127. +            6382,
  128.  
  129. +            920,
  130.  
  131. +            893,
  132.  
  133. +            858,
  134.  
  135. +            862,
  136.  
  137. +            889
  138.  
  139. +        };
  140.  
  141. +        final int[] ArcherArmors =
  142.  
  143. +        {
  144.  
  145. +            7577,
  146.  
  147. +            6379,
  148.  
  149. +            6380,
  150.  
  151. +            6381,
  152.  
  153. +            6382,
  154.  
  155. +            920,
  156.  
  157. +            893,
  158.  
  159. +            858,
  160.  
  161. +            862,
  162.  
  163. +            889
  164.  
  165. +        };
  166.  
  167. +        final int[] MageArmors =
  168.  
  169. +        {
  170.  
  171. +            6608,
  172.  
  173. +            2407,
  174.  
  175. +            5767,
  176.  
  177. +            5779,
  178.  
  179. +            512,
  180.  
  181. +            920,
  182.  
  183. +            893,
  184.  
  185. +            858,
  186.  
  187. +            862,
  188.  
  189. +            889
  190.  
  191. +        };
  192.  
  193. +        final int[] DuelistArmor =
  194.  
  195. +        {
  196.  
  197. +            6580,
  198.  
  199. +            6373,
  200.  
  201. +            6374,
  202.  
  203. +            6375,
  204.  
  205. +            6376,
  206.  
  207. +            6378,
  208.  
  209. +            920,
  210.  
  211. +            893,
  212.  
  213. +            858,
  214.  
  215. +            862,
  216.  
  217. +            889
  218.  
  219. +        };
  220.  
  221. +        final int[] TitanArmor =
  222.  
  223. +        {
  224.  
  225. +            6605,
  226.  
  227. +            6373,
  228.  
  229. +            6374,
  230.  
  231. +            6375,
  232.  
  233. +            6376,
  234.  
  235. +            6378,
  236.  
  237. +            920,
  238.  
  239. +            893,
  240.  
  241. +            858,
  242.  
  243. +            862,
  244.  
  245. +            889
  246.  
  247. +        };
  248.  
  249. +        final int[] GrandKhaArmors =
  250.  
  251. +        {
  252.  
  253. +            6604,
  254.  
  255. +            6379,
  256.  
  257. +            6380,
  258.  
  259. +            6381,
  260.  
  261. +            6382,
  262.  
  263. +            920,
  264.  
  265. +            893,
  266.  
  267. +            858,
  268.  
  269. +            862,
  270.  
  271. +            889
  272.  
  273. +        };
  274.  
  275. +        final int[] TankArmors =
  276.  
  277. +        {
  278.  
  279. +            6581,
  280.  
  281. +            6373,
  282.  
  283. +            6374,
  284.  
  285. +            6375,
  286.  
  287. +            6376,
  288.  
  289. +            6377,
  290.  
  291. +            6378,
  292.  
  293. +            920,
  294.  
  295. +            893,
  296.  
  297. +            858,
  298.  
  299. +            862,
  300.  
  301. +            889
  302.  
  303. +        };
  304.  
  305. +        final int[] DwarfArmors =
  306.  
  307. +        {
  308.  
  309. +            6585,
  310.  
  311. +            6373,
  312.  
  313. +            6374,
  314.  
  315. +            6375,
  316.  
  317. +            6376,
  318.  
  319. +            6377,
  320.  
  321. +            6378,
  322.  
  323. +            920,
  324.  
  325. +            893,
  326.  
  327. +            858,
  328.  
  329. +            862,
  330.  
  331. +            889
  332.  
  333. +        };
  334.  
  335. +        final int[] DreadArmors =
  336.  
  337. +        {
  338.  
  339. +            6601,
  340.  
  341. +            6373,
  342.  
  343. +            6374,
  344.  
  345. +            6375,
  346.  
  347. +            6376,
  348.  
  349. +            6378,
  350.  
  351. +            920,
  352.  
  353. +            893,
  354.  
  355. +            858,
  356.  
  357. +            862,
  358.  
  359. +            889
  360.  
  361. +        };
  362.  
  363. +        final int[] DancerArmors =
  364.  
  365. +        {
  366.  
  367. +            6580,
  368.  
  369. +            6379,
  370.  
  371. +            6380,
  372.  
  373. +            6381,
  374.  
  375. +            6382,
  376.  
  377. +            920,
  378.  
  379. +            893,
  380.  
  381. +            858,
  382.  
  383. +            862,
  384.  
  385. +            889
  386.  
  387. +        };
  388.  
  389. +        
  390.  
  391. +        ClassId classes = player.getClassId();
  392.  
  393. +        switch (classes)
  394.  
  395. +        {
  396.  
  397. +            case ADVENTURER:
  398.  
  399. +            case WIND_RIDER:
  400.  
  401. +            case GHOST_HUNTER:
  402.  
  403. +                if (DaggerArmors.length == 0)
  404.  
  405. +                    return;
  406.  
  407. +                ItemInstance items = null;
  408.  
  409. +                for (int id : DaggerArmors)
  410.  
  411. +                {
  412.  
  413. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  414.  
  415. +                    items = player.getInventory().getItemByItemId(id);
  416.  
  417. +                    player.getInventory().equipItemAndRecord(items);
  418.  
  419. +                    player.getInventory().reloadEquippedItems();
  420.  
  421. +                    player.broadcastCharInfo();
  422.  
  423. +                    new InventoryUpdate();
  424.  
  425. +                }
  426.  
  427. +                break;
  428.  
  429. +            case SAGGITARIUS:
  430.  
  431. +            case GHOST_SENTINEL:
  432.  
  433. +            case MOONLIGHT_SENTINEL:
  434.  
  435. +                if (ArcherArmors.length == 0)
  436.  
  437. +                    return;
  438.  
  439. +                for (int id : ArcherArmors)
  440.  
  441. +                {
  442.  
  443. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  444.  
  445. +                    items = player.getInventory().getItemByItemId(id);
  446.  
  447. +                    player.getInventory().equipItemAndRecord(items);
  448.  
  449. +                    player.getInventory().reloadEquippedItems();
  450.  
  451. +                    player.broadcastCharInfo();
  452.  
  453. +                    new InventoryUpdate();
  454.  
  455. +                }
  456.  
  457. +                break;
  458.  
  459. +            case SOULTAKER:
  460.  
  461. +            case MYSTIC_MUSE:
  462.  
  463. +            case ARCHMAGE:
  464.  
  465. +            case ARCANA_LORD:
  466.  
  467. +            case ELEMENTAL_MASTER:
  468.  
  469. +            case CARDINAL:
  470.  
  471. +            case STORM_SCREAMER:
  472.  
  473. +            case SPECTRAL_MASTER:
  474.  
  475. +            case SHILLIEN_SAINT:
  476.  
  477. +            case DOMINATOR:
  478.  
  479. +            case DOOMCRYER:
  480.  
  481. +                if (MageArmors.length == 0)
  482.  
  483. +                    return;
  484.  
  485. +                for (int id : MageArmors)
  486.  
  487. +                {
  488.  
  489. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  490.  
  491. +                    items = player.getInventory().getItemByItemId(id);
  492.  
  493. +                    player.getInventory().equipItemAndRecord(items);
  494.  
  495. +                    player.getInventory().reloadEquippedItems();
  496.  
  497. +                    player.broadcastCharInfo();
  498.  
  499. +                    new InventoryUpdate();
  500.  
  501. +                }
  502.  
  503. +                break;
  504.  
  505. +            case DUELIST:
  506.  
  507. +                if (DuelistArmor.length == 0)
  508.  
  509. +                    return;
  510.  
  511. +                for (int id : DuelistArmor)
  512.  
  513. +                {
  514.  
  515. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  516.  
  517. +                    items = player.getInventory().getItemByItemId(id);
  518.  
  519. +                    player.getInventory().equipItemAndRecord(items);
  520.  
  521. +                    player.getInventory().reloadEquippedItems();
  522.  
  523. +                    player.broadcastCharInfo();
  524.  
  525. +                    new InventoryUpdate();
  526.  
  527. +                }
  528.  
  529. +                break;
  530.  
  531. +            case TITAN:
  532.  
  533. +                if (TitanArmor.length == 0)
  534.  
  535. +                    return;
  536.  
  537. +                for (int id : TitanArmor)
  538.  
  539. +                {
  540.  
  541. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  542.  
  543. +                    items = player.getInventory().getItemByItemId(id);
  544.  
  545. +                    player.getInventory().equipItemAndRecord(items);
  546.  
  547. +                    player.getInventory().reloadEquippedItems();
  548.  
  549. +                    player.broadcastCharInfo();
  550.  
  551. +                    new InventoryUpdate();
  552.  
  553. +                }
  554.  
  555. +                break;
  556.  
  557. +            case GRAND_KHAVATARI:
  558.  
  559. +                if (GrandKhaArmors.length == 0)
  560.  
  561. +                    return;
  562.  
  563. +                for (int id : GrandKhaArmors)
  564.  
  565. +                {
  566.  
  567. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  568.  
  569. +                    items = player.getInventory().getItemByItemId(id);
  570.  
  571. +                    player.getInventory().equipItemAndRecord(items);
  572.  
  573. +                    player.getInventory().reloadEquippedItems();
  574.  
  575. +                    player.broadcastCharInfo();
  576.  
  577. +                    new InventoryUpdate();
  578.  
  579. +                }
  580.  
  581. +                break;
  582.  
  583. +            case PHOENIX_KNIGHT:
  584.  
  585. +            case HELL_KNIGHT:
  586.  
  587. +            case EVAS_TEMPLAR:
  588.  
  589. +            case SHILLIEN_TEMPLAR:
  590.  
  591. +                if (TankArmors.length == 0)
  592.  
  593. +                    return;
  594.  
  595. +                for (int id : TankArmors)
  596.  
  597. +                {
  598.  
  599. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  600.  
  601. +                    items = player.getInventory().getItemByItemId(id);
  602.  
  603. +                    player.getInventory().equipItemAndRecord(items);
  604.  
  605. +                    player.getInventory().reloadEquippedItems();
  606.  
  607. +                    player.broadcastCharInfo();
  608.  
  609. +                    new InventoryUpdate();
  610.  
  611. +                }
  612.  
  613. +                break;
  614.  
  615. +            case FORTUNE_SEEKER:
  616.  
  617. +            case MAESTRO:
  618.  
  619. +                if (DwarfArmors.length == 0)
  620.  
  621. +                    return;
  622.  
  623. +                for (int id : DwarfArmors)
  624.  
  625. +                {
  626.  
  627. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  628.  
  629. +                    items = player.getInventory().getItemByItemId(id);
  630.  
  631. +                    player.getInventory().equipItemAndRecord(items);
  632.  
  633. +                    player.getInventory().reloadEquippedItems();
  634.  
  635. +                    player.broadcastCharInfo();
  636.  
  637. +                    new InventoryUpdate();
  638.  
  639. +                }
  640.  
  641. +                break;
  642.  
  643. +            case DREADNOUGHT:
  644.  
  645. +                if (DreadArmors.length == 0)
  646.  
  647. +                    return;
  648.  
  649. +                for (int id : DreadArmors)
  650.  
  651. +                {
  652.  
  653. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  654.  
  655. +                    items = player.getInventory().getItemByItemId(id);
  656.  
  657. +                    player.getInventory().equipItemAndRecord(items);
  658.  
  659. +                    player.getInventory().reloadEquippedItems();
  660.  
  661. +                    player.broadcastCharInfo();
  662.  
  663. +                    new InventoryUpdate();
  664.  
  665. +                }
  666.  
  667. +                break;
  668.  
  669. +            case SPECTRAL_DANCER:
  670.  
  671. +            case SWORD_MUSE:
  672.  
  673. +                if (DancerArmors.length == 0)
  674.  
  675. +                    return;
  676.  
  677. +                for (int id : DancerArmors)
  678.  
  679. +                {
  680.  
  681. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  682.  
  683. +                    items = player.getInventory().getItemByItemId(id);
  684.  
  685. +                    player.getInventory().equipItemAndRecord(items);
  686.  
  687. +                    player.getInventory().reloadEquippedItems();
  688.  
  689. +                    player.broadcastCharInfo();
  690.  
  691. +                    new InventoryUpdate();
  692.  
  693. +                }
  694.  
  695. +                break;
  696.  
  697. +        }
  698.  
  699. +        
  700.  
  701. +    }
  702.  
  703. +    
  704.  
  705. +}
  706.  
  707. \ No newline at end of file
  708.  
  709. Index: java/net/sf/l2j/Config.java
  710.  
  711. ===================================================================
  712.  
  713. --- java/net/sf/l2j/Config.java    (revision 91)
  714.  
  715. +++ java/net/sf/l2j/Config.java    (working copy)
  716.  
  717. @@ -480,6 +480,16 @@
  718.  
  719.      public static boolean STORE_SKILL_COOLTIME;
  720.  
  721.      public static int BUFFS_MAX_AMOUNT;
  722.  
  723.      
  724.  
  725. +     /** Newbie System */
  726.  
  727. +    public static int NEWBIE_LVL;
  728.  
  729. +    public static String NEWBIE_MAGE_SET;
  730.  
  731. +    public static int[] NEWBIE_MAGE_BUFFS;
  732.  
  733. +    public static String NEWBIE_FIGHTER_SET;
  734.  
  735. +    public static int[] NEWBIE_FIGHTER_BUFFS;
  736.  
  737. +    public static int SETX;
  738.  
  739. +    public static int SETY;
  740.  
  741. +    public static int SETZ;
  742.  
  743. +    
  744.  
  745.      // --------------------------------------------------
  746.  
  747.      // Sieges
  748.  
  749.      // --------------------------------------------------
  750.  
  751. @@ -1179,6 +1189,25 @@
  752.  
  753.          
  754.  
  755.          BUFFS_MAX_AMOUNT = players.getProperty("MaxBuffsAmount", 20);
  756.  
  757.          STORE_SKILL_COOLTIME = players.getProperty("StoreSkillCooltime", true);
  758.  
  759. +        
  760.  
  761. +        NEWBIE_LVL = Integer.parseInt(players.getProperty("NewbiesLevel", "80"));
  762.  
  763. +        NEWBIE_FIGHTER_SET = players.getProperty("FighterSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
  764.  
  765. +        NEWBIE_MAGE_SET = players.getProperty("MageSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
  766.  
  767. +        
  768.  
  769. +        String[] NewFighterList = NEWBIE_FIGHTER_SET.split(",");
  770.  
  771. +        NEWBIE_FIGHTER_BUFFS = new int[NewFighterList.length];
  772.  
  773. +        for (int i = 0; i < NewFighterList.length; i++)
  774.  
  775. +            NEWBIE_FIGHTER_BUFFS[i] = Integer.parseInt(NewFighterList[i]);
  776.  
  777. +        
  778.  
  779. +        String[] NewMageList = NEWBIE_MAGE_SET.split(",");
  780.  
  781. +        NEWBIE_MAGE_BUFFS = new int[NewMageList.length];
  782.  
  783. +        for (int i = 0; i < NewMageList.length; i++)
  784.  
  785. +            NEWBIE_MAGE_BUFFS[i] = Integer.parseInt(NewMageList[i]);
  786.  
  787. +        
  788.  
  789. +        SETX = players.getProperty("LocX", 83278);
  790.  
  791. +        SETY = players.getProperty("LocY", 148273);
  792.  
  793. +        SETZ = players.getProperty("LocZ", -3407);
  794.  
  795. +    
  796.  
  797.      }
  798.  
  799.      
  800.  
  801.      /**
  802.  
  803. Index: java/net/sf/l2j/gameserver/model/actor/instance/L2NewbieNpcInstance.java
  804.  
  805. ===================================================================
  806.  
  807. --- java/net/sf/l2j/gameserver/model/actor/instance/L2NewbieNpcInstance.java    (nonexistent)
  808.  
  809. +++ java/net/sf/l2j/gameserver/model/actor/instance/L2NewbieNpcInstance.java    (working copy)
  810.  
  811. @@ -0,0 +1,172 @@
  812.  
  813. +package net.sf.l2j.gameserver.model.actor.instance;
  814.  
  815. +
  816.  
  817. +import net.sf.l2j.Config;
  818.  
  819. +import net.sf.l2j.gameserver.NewbiesSystem.NewbiesNpc;
  820.  
  821. +import net.sf.l2j.gameserver.datatables.CharTemplateTable;
  822.  
  823. +import net.sf.l2j.gameserver.datatables.SkillTable;
  824.  
  825. +import net.sf.l2j.gameserver.model.L2Skill;
  826.  
  827. +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate;
  828.  
  829. +import net.sf.l2j.gameserver.model.base.ClassId;
  830.  
  831. +import net.sf.l2j.gameserver.model.base.Experience;
  832.  
  833. +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
  834.  
  835. +import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
  836.  
  837. +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
  838.  
  839. +
  840.  
  841. +/**
  842.  
  843. + * @author Baggos
  844.  
  845. + */
  846.  
  847. +public class L2NewbieNpcInstance extends L2NpcInstance
  848.  
  849. +{
  850.  
  851. +    public L2NewbieNpcInstance(int objectId, NpcTemplate template)
  852.  
  853. +    {
  854.  
  855. +        super(objectId, template);
  856.  
  857. +    }
  858.  
  859. +    
  860.  
  861. +    @Override
  862.  
  863. +    public void onBypassFeedback(L2PcInstance player, String command)
  864.  
  865. +    {
  866.  
  867. +        
  868.  
  869. +        if (player == null)
  870.  
  871. +            return;
  872.  
  873. +        
  874.  
  875. +        if (!Config.ALLOW_CLASS_MASTERS)
  876.  
  877. +            return;
  878.  
  879. +        
  880.  
  881. +        if (command.equalsIgnoreCase("change"))
  882.  
  883. +        {
  884.  
  885. +            String filename = "data/html/mods/NewbieNpc/changeclass.htm";
  886.  
  887. +            
  888.  
  889. +            if (Config.ALLOW_CLASS_MASTERS)
  890.  
  891. +                filename = "data/html/mods/NewbieNpc/changeclass.htm";
  892.  
  893. +            
  894.  
  895. +            final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  896.  
  897. +            html.setFile(filename);
  898.  
  899. +            html.replace("%objectId%", getObjectId());
  900.  
  901. +            player.sendPacket(html);
  902.  
  903. +        }
  904.  
  905. +        if (command.startsWith("1stClass"))
  906.  
  907. +            L2ClassMasterInstance.showHtmlMenu(player, getObjectId(), 1);
  908.  
  909. +        else if (command.startsWith("2ndClass"))
  910.  
  911. +            L2ClassMasterInstance.showHtmlMenu(player, getObjectId(), 2);
  912.  
  913. +        else if (command.startsWith("3rdClass"))
  914.  
  915. +            L2ClassMasterInstance.showHtmlMenu(player, getObjectId(), 3);
  916.  
  917. +        else if (command.startsWith("change_class"))
  918.  
  919. +        {
  920.  
  921. +            int val = Integer.parseInt(command.substring(13));
  922.  
  923. +            
  924.  
  925. +            if (L2ClassMasterInstance.checkAndChangeClass(player, val))
  926.  
  927. +            {
  928.  
  929. +                final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
  930.  
  931. +                html.setFile("data/html/classmaster/ok.htm");
  932.  
  933. +                html.replace("%name%", CharTemplateTable.getInstance().getClassNameById(val));
  934.  
  935. +                player.sendPacket(html);
  936.  
  937. +            }
  938.  
  939. +        }
  940.  
  941. +        else if (command.equalsIgnoreCase("LevelUp"))
  942.  
  943. +        {
  944.  
  945. +            player.addExpAndSp(Experience.LEVEL[Config.NEWBIE_LVL], 0);
  946.  
  947. +        }
  948.  
  949. +        
  950.  
  951. +        else if (command.equalsIgnoreCase("items"))
  952.  
  953. +        {
  954.  
  955. +            final ClassId currentClassId = player.getClassId();
  956.  
  957. +            if (currentClassId.level() < 3)
  958.  
  959. +            {
  960.  
  961. +                player.sendMessage("First Complete Your Third Class!");
  962.  
  963. +                return;
  964.  
  965. +            }
  966.  
  967. +            
  968.  
  969. +            ClassId classes = player.getClassId();
  970.  
  971. +            switch (classes)
  972.  
  973. +            {
  974.  
  975. +                case ADVENTURER:
  976.  
  977. +                case SAGGITARIUS:
  978.  
  979. +                case DUELIST:
  980.  
  981. +                case TITAN:
  982.  
  983. +                case GRAND_KHAVATARI:
  984.  
  985. +                case PHOENIX_KNIGHT:
  986.  
  987. +                case MOONLIGHT_SENTINEL:
  988.  
  989. +                case FORTUNE_SEEKER:
  990.  
  991. +                case MAESTRO:
  992.  
  993. +                case DREADNOUGHT:
  994.  
  995. +                case HELL_KNIGHT:
  996.  
  997. +                case EVAS_TEMPLAR:
  998.  
  999. +                case SWORD_MUSE:
  1000.  
  1001. +                case WIND_RIDER:
  1002.  
  1003. +                case SHILLIEN_TEMPLAR:
  1004.  
  1005. +                case SPECTRAL_DANCER:
  1006.  
  1007. +                case GHOST_HUNTER:
  1008.  
  1009. +                case GHOST_SENTINEL:
  1010.  
  1011. +                case SOULTAKER:
  1012.  
  1013. +                case MYSTIC_MUSE:
  1014.  
  1015. +                case ARCHMAGE:
  1016.  
  1017. +                case ARCANA_LORD:
  1018.  
  1019. +                case ELEMENTAL_MASTER:
  1020.  
  1021. +                case CARDINAL:
  1022.  
  1023. +                case STORM_SCREAMER:
  1024.  
  1025. +                case SPECTRAL_MASTER:
  1026.  
  1027. +                case SHILLIEN_SAINT:
  1028.  
  1029. +                case DOMINATOR:
  1030.  
  1031. +                case DOOMCRYER:
  1032.  
  1033. +                    NewbiesNpc.giveItems(0, player);
  1034.  
  1035. +                    break;
  1036.  
  1037. +            }
  1038.  
  1039. +        }
  1040.  
  1041. +        
  1042.  
  1043. +        else if (command.equalsIgnoreCase("buffs"))
  1044.  
  1045. +        {
  1046.  
  1047. +            if (player.isMageClass() || player.getClassId() == ClassId.DOMINATOR || player.getClassId() == ClassId.DOOMCRYER)
  1048.  
  1049. +            {
  1050.  
  1051. +                int mageSet[] = Config.NEWBIE_MAGE_BUFFS;
  1052.  
  1053. +                L2Skill buff;
  1054.  
  1055. +                for (int id : mageSet)
  1056.  
  1057. +                {
  1058.  
  1059. +                    buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
  1060.  
  1061. +                    buff.getEffects(this, player);
  1062.  
  1063. +                    player.setCurrentHp(player.getMaxHp());
  1064.  
  1065. +                    player.setCurrentCp(player.getMaxCp());
  1066.  
  1067. +                    player.setCurrentMp(player.getMaxMp());
  1068.  
  1069. +                    player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));
  1070.  
  1071. +                }
  1072.  
  1073. +            }
  1074.  
  1075. +            else
  1076.  
  1077. +            {
  1078.  
  1079. +                int fighterSet[] = Config.NEWBIE_FIGHTER_BUFFS;
  1080.  
  1081. +                L2Skill buff;
  1082.  
  1083. +                for (int id : fighterSet)
  1084.  
  1085. +                {
  1086.  
  1087. +                    buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
  1088.  
  1089. +                    buff.getEffects(this, player);
  1090.  
  1091. +                    player.setCurrentHp(player.getMaxHp());
  1092.  
  1093. +                    player.setCurrentCp(player.getMaxCp());
  1094.  
  1095. +                    player.setCurrentMp(player.getMaxMp());
  1096.  
  1097. +                    player.broadcastPacket(new MagicSkillUse(this, player, id, buff.getLevel(), 0, 0));
  1098.  
  1099. +                }
  1100.  
  1101. +            }
  1102.  
  1103. +        }
  1104.  
  1105. +        else if (command.equalsIgnoreCase("teleport"))
  1106.  
  1107. +        {
  1108.  
  1109. +            final ClassId currentClassId = player.getClassId();
  1110.  
  1111. +            if (currentClassId.level() < 3)
  1112.  
  1113. +            {
  1114.  
  1115. +                player.sendMessage("You Can't Leave! Your Character Isin't Complete!");
  1116.  
  1117. +                return;
  1118.  
  1119. +            }
  1120.  
  1121. +            player.teleToLocation(Config.SETX, Config.SETY, Config.SETZ, 0);
  1122.  
  1123. +            player.sendPacket(new ExShowScreenMessage("seconds until auto respawn", 4000, 2, true));
  1124.  
  1125. +        }
  1126.  
  1127. +    }
  1128.  
  1129. +    
  1130.  
  1131. +    @Override
  1132.  
  1133. +    public String getHtmlPath(int npcId, int val)
  1134.  
  1135. +    {
  1136.  
  1137. +        String filename = "";
  1138.  
  1139. +        
  1140.  
  1141. +        if (val == 0)
  1142.  
  1143. +            filename = "" + npcId;
  1144.  
  1145. +        else
  1146.  
  1147. +            filename = npcId + "-" + val;
  1148.  
  1149. +        
  1150.  
  1151. +        return "data/html/mods/newbieNpc/" + filename + ".htm";
  1152.  
  1153. +    }
  1154.  
  1155. +}
  1156.  
  1157. \ No newline at end of file
  1158.  
  1159. Index: java/net/sf/l2j/gameserver/model/base/Experience.java
  1160.  
  1161. ===================================================================
  1162.  
  1163. --- java/net/sf/l2j/gameserver/model/base/Experience.java    (revision 88)
  1164.  
  1165. +++ java/net/sf/l2j/gameserver/model/base/Experience.java    (working copy)
  1166.  
  1167. @@ -101,11 +101,5 @@
  1168.  
  1169.          4200000000L, // level 80
  1170.  
  1171.          6299994999L
  1172.  
  1173.      };
  1174.  
  1175. -    
  1176.  
  1177. -    /**
  1178.  
  1179. -     * This is the first UNREACHABLE level.<BR>
  1180.  
  1181. -     * ex: If you want a max at 80 & 99.99%, you have to put 81.<BR>
  1182.  
  1183. -     * <BR>
  1184.  
  1185. -     */
  1186.  
  1187.      public static final byte MAX_LEVEL = 81;
  1188.  
  1189.  }
  1190.  
  1191. Index: java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java
  1192.  
  1193. ===================================================================
  1194.  
  1195. --- java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java    (nonexistent)
  1196.  
  1197. +++ java/net/sf/l2j/gameserver/NewbiesSystem/NewbiesNpc.java    (working copy)
  1198.  
  1199. @@ -0,0 +1,324 @@
  1200.  
  1201. +/*
  1202.  
  1203. + * This program is free software: you can redistribute it and/or modify it under
  1204.  
  1205. + * the terms of the GNU General Public License as published by the Free Software
  1206.  
  1207. + * Foundation, either version 3 of the License, or (at your option) any later
  1208.  
  1209. + * version.
  1210.  
  1211. + *
  1212.  
  1213. + * This program is distributed in the hope that it will be useful, but WITHOUT
  1214.  
  1215. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  1216.  
  1217. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  1218.  
  1219. + * details.
  1220.  
  1221. + *
  1222.  
  1223. + * You should have received a copy of the GNU General Public License along with
  1224.  
  1225. + * this program. If not, see <http://www.gnu.org/licenses/>.
  1226.  
  1227. + */
  1228.  
  1229. +package net.sf.l2j.gameserver.NewbiesSystem;
  1230.  
  1231. +
  1232.  
  1233. +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
  1234.  
  1235. +import net.sf.l2j.gameserver.model.base.ClassId;
  1236.  
  1237. +import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
  1238.  
  1239. +import net.sf.l2j.gameserver.network.serverpackets.InventoryUpdate;
  1240.  
  1241. +
  1242.  
  1243. +/**
  1244.  
  1245. + * @author Baggos
  1246.  
  1247. + */
  1248.  
  1249. +public class NewbiesNpc
  1250.  
  1251. +{
  1252.  
  1253. +    public static void giveItems(int Classes, L2PcInstance player)
  1254.  
  1255. +    {
  1256.  
  1257. +        final int[] DaggerArmors =
  1258.  
  1259. +        {
  1260.  
  1261. +            6590,
  1262.  
  1263. +            6379,
  1264.  
  1265. +            6380,
  1266.  
  1267. +            6381,
  1268.  
  1269. +            6382,
  1270.  
  1271. +            920,
  1272.  
  1273. +            893,
  1274.  
  1275. +            858,
  1276.  
  1277. +            862,
  1278.  
  1279. +            889
  1280.  
  1281. +        };
  1282.  
  1283. +        final int[] ArcherArmors =
  1284.  
  1285. +        {
  1286.  
  1287. +            7577,
  1288.  
  1289. +            6379,
  1290.  
  1291. +            6380,
  1292.  
  1293. +            6381,
  1294.  
  1295. +            6382,
  1296.  
  1297. +            920,
  1298.  
  1299. +            893,
  1300.  
  1301. +            858,
  1302.  
  1303. +            862,
  1304.  
  1305. +            889
  1306.  
  1307. +        };
  1308.  
  1309. +        final int[] MageArmors =
  1310.  
  1311. +        {
  1312.  
  1313. +            6608,
  1314.  
  1315. +            2407,
  1316.  
  1317. +            5767,
  1318.  
  1319. +            5779,
  1320.  
  1321. +            512,
  1322.  
  1323. +            920,
  1324.  
  1325. +            893,
  1326.  
  1327. +            858,
  1328.  
  1329. +            862,
  1330.  
  1331. +            889
  1332.  
  1333. +        };
  1334.  
  1335. +        final int[] DuelistArmor =
  1336.  
  1337. +        {
  1338.  
  1339. +            6580,
  1340.  
  1341. +            6373,
  1342.  
  1343. +            6374,
  1344.  
  1345. +            6375,
  1346.  
  1347. +            6376,
  1348.  
  1349. +            6378,
  1350.  
  1351. +            920,
  1352.  
  1353. +            893,
  1354.  
  1355. +            858,
  1356.  
  1357. +            862,
  1358.  
  1359. +            889
  1360.  
  1361. +        };
  1362.  
  1363. +        final int[] TitanArmor =
  1364.  
  1365. +        {
  1366.  
  1367. +            6605,
  1368.  
  1369. +            6373,
  1370.  
  1371. +            6374,
  1372.  
  1373. +            6375,
  1374.  
  1375. +            6376,
  1376.  
  1377. +            6378,
  1378.  
  1379. +            920,
  1380.  
  1381. +            893,
  1382.  
  1383. +            858,
  1384.  
  1385. +            862,
  1386.  
  1387. +            889
  1388.  
  1389. +        };
  1390.  
  1391. +        final int[] GrandKhaArmors =
  1392.  
  1393. +        {
  1394.  
  1395. +            6604,
  1396.  
  1397. +            6379,
  1398.  
  1399. +            6380,
  1400.  
  1401. +            6381,
  1402.  
  1403. +            6382,
  1404.  
  1405. +            920,
  1406.  
  1407. +            893,
  1408.  
  1409. +            858,
  1410.  
  1411. +            862,
  1412.  
  1413. +            889
  1414.  
  1415. +        };
  1416.  
  1417. +        final int[] TankArmors =
  1418.  
  1419. +        {
  1420.  
  1421. +            6581,
  1422.  
  1423. +            6373,
  1424.  
  1425. +            6374,
  1426.  
  1427. +            6375,
  1428.  
  1429. +            6376,
  1430.  
  1431. +            6377,
  1432.  
  1433. +            6378,
  1434.  
  1435. +            920,
  1436.  
  1437. +            893,
  1438.  
  1439. +            858,
  1440.  
  1441. +            862,
  1442.  
  1443. +            889
  1444.  
  1445. +        };
  1446.  
  1447. +        final int[] DwarfArmors =
  1448.  
  1449. +        {
  1450.  
  1451. +            6585,
  1452.  
  1453. +            6373,
  1454.  
  1455. +            6374,
  1456.  
  1457. +            6375,
  1458.  
  1459. +            6376,
  1460.  
  1461. +            6377,
  1462.  
  1463. +            6378,
  1464.  
  1465. +            920,
  1466.  
  1467. +            893,
  1468.  
  1469. +            858,
  1470.  
  1471. +            862,
  1472.  
  1473. +            889
  1474.  
  1475. +        };
  1476.  
  1477. +        final int[] DreadArmors =
  1478.  
  1479. +        {
  1480.  
  1481. +            6601,
  1482.  
  1483. +            6373,
  1484.  
  1485. +            6374,
  1486.  
  1487. +            6375,
  1488.  
  1489. +            6376,
  1490.  
  1491. +            6378,
  1492.  
  1493. +            920,
  1494.  
  1495. +            893,
  1496.  
  1497. +            858,
  1498.  
  1499. +            862,
  1500.  
  1501. +            889
  1502.  
  1503. +        };
  1504.  
  1505. +        final int[] DancerArmors =
  1506.  
  1507. +        {
  1508.  
  1509. +            6580,
  1510.  
  1511. +            6379,
  1512.  
  1513. +            6380,
  1514.  
  1515. +            6381,
  1516.  
  1517. +            6382,
  1518.  
  1519. +            920,
  1520.  
  1521. +            893,
  1522.  
  1523. +            858,
  1524.  
  1525. +            862,
  1526.  
  1527. +            889
  1528.  
  1529. +        };
  1530.  
  1531. +        
  1532.  
  1533. +        ClassId classes = player.getClassId();
  1534.  
  1535. +        switch (classes)
  1536.  
  1537. +        {
  1538.  
  1539. +            case ADVENTURER:
  1540.  
  1541. +            case WIND_RIDER:
  1542.  
  1543. +            case GHOST_HUNTER:
  1544.  
  1545. +                if (DaggerArmors.length == 0)
  1546.  
  1547. +                    return;
  1548.  
  1549. +                ItemInstance items = null;
  1550.  
  1551. +                for (int id : DaggerArmors)
  1552.  
  1553. +                {
  1554.  
  1555. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1556.  
  1557. +                    items = player.getInventory().getItemByItemId(id);
  1558.  
  1559. +                    player.getInventory().equipItemAndRecord(items);
  1560.  
  1561. +                    player.getInventory().reloadEquippedItems();
  1562.  
  1563. +                    player.broadcastCharInfo();
  1564.  
  1565. +                    new InventoryUpdate();
  1566.  
  1567. +                }
  1568.  
  1569. +                break;
  1570.  
  1571. +            case SAGGITARIUS:
  1572.  
  1573. +            case GHOST_SENTINEL:
  1574.  
  1575. +            case MOONLIGHT_SENTINEL:
  1576.  
  1577. +                if (ArcherArmors.length == 0)
  1578.  
  1579. +                    return;
  1580.  
  1581. +                for (int id : ArcherArmors)
  1582.  
  1583. +                {
  1584.  
  1585. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1586.  
  1587. +                    items = player.getInventory().getItemByItemId(id);
  1588.  
  1589. +                    player.getInventory().equipItemAndRecord(items);
  1590.  
  1591. +                    player.getInventory().reloadEquippedItems();
  1592.  
  1593. +                    player.broadcastCharInfo();
  1594.  
  1595. +                    new InventoryUpdate();
  1596.  
  1597. +                }
  1598.  
  1599. +                break;
  1600.  
  1601. +            case SOULTAKER:
  1602.  
  1603. +            case MYSTIC_MUSE:
  1604.  
  1605. +            case ARCHMAGE:
  1606.  
  1607. +            case ARCANA_LORD:
  1608.  
  1609. +            case ELEMENTAL_MASTER:
  1610.  
  1611. +            case CARDINAL:
  1612.  
  1613. +            case STORM_SCREAMER:
  1614.  
  1615. +            case SPECTRAL_MASTER:
  1616.  
  1617. +            case SHILLIEN_SAINT:
  1618.  
  1619. +            case DOMINATOR:
  1620.  
  1621. +            case DOOMCRYER:
  1622.  
  1623. +                if (MageArmors.length == 0)
  1624.  
  1625. +                    return;
  1626.  
  1627. +                for (int id : MageArmors)
  1628.  
  1629. +                {
  1630.  
  1631. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1632.  
  1633. +                    items = player.getInventory().getItemByItemId(id);
  1634.  
  1635. +                    player.getInventory().equipItemAndRecord(items);
  1636.  
  1637. +                    player.getInventory().reloadEquippedItems();
  1638.  
  1639. +                    player.broadcastCharInfo();
  1640.  
  1641. +                    new InventoryUpdate();
  1642.  
  1643. +                }
  1644.  
  1645. +                break;
  1646.  
  1647. +            case DUELIST:
  1648.  
  1649. +                if (DuelistArmor.length == 0)
  1650.  
  1651. +                    return;
  1652.  
  1653. +                for (int id : DuelistArmor)
  1654.  
  1655. +                {
  1656.  
  1657. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1658.  
  1659. +                    items = player.getInventory().getItemByItemId(id);
  1660.  
  1661. +                    player.getInventory().equipItemAndRecord(items);
  1662.  
  1663. +                    player.getInventory().reloadEquippedItems();
  1664.  
  1665. +                    player.broadcastCharInfo();
  1666.  
  1667. +                    new InventoryUpdate();
  1668.  
  1669. +                }
  1670.  
  1671. +                break;
  1672.  
  1673. +            case TITAN:
  1674.  
  1675. +                if (TitanArmor.length == 0)
  1676.  
  1677. +                    return;
  1678.  
  1679. +                for (int id : TitanArmor)
  1680.  
  1681. +                {
  1682.  
  1683. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1684.  
  1685. +                    items = player.getInventory().getItemByItemId(id);
  1686.  
  1687. +                    player.getInventory().equipItemAndRecord(items);
  1688.  
  1689. +                    player.getInventory().reloadEquippedItems();
  1690.  
  1691. +                    player.broadcastCharInfo();
  1692.  
  1693. +                    new InventoryUpdate();
  1694.  
  1695. +                }
  1696.  
  1697. +                break;
  1698.  
  1699. +            case GRAND_KHAVATARI:
  1700.  
  1701. +                if (GrandKhaArmors.length == 0)
  1702.  
  1703. +                    return;
  1704.  
  1705. +                for (int id : GrandKhaArmors)
  1706.  
  1707. +                {
  1708.  
  1709. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1710.  
  1711. +                    items = player.getInventory().getItemByItemId(id);
  1712.  
  1713. +                    player.getInventory().equipItemAndRecord(items);
  1714.  
  1715. +                    player.getInventory().reloadEquippedItems();
  1716.  
  1717. +                    player.broadcastCharInfo();
  1718.  
  1719. +                    new InventoryUpdate();
  1720.  
  1721. +                }
  1722.  
  1723. +                break;
  1724.  
  1725. +            case PHOENIX_KNIGHT:
  1726.  
  1727. +            case HELL_KNIGHT:
  1728.  
  1729. +            case EVAS_TEMPLAR:
  1730.  
  1731. +            case SHILLIEN_TEMPLAR:
  1732.  
  1733. +                if (TankArmors.length == 0)
  1734.  
  1735. +                    return;
  1736.  
  1737. +                for (int id : TankArmors)
  1738.  
  1739. +                {
  1740.  
  1741. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1742.  
  1743. +                    items = player.getInventory().getItemByItemId(id);
  1744.  
  1745. +                    player.getInventory().equipItemAndRecord(items);
  1746.  
  1747. +                    player.getInventory().reloadEquippedItems();
  1748.  
  1749. +                    player.broadcastCharInfo();
  1750.  
  1751. +                    new InventoryUpdate();
  1752.  
  1753. +                }
  1754.  
  1755. +                break;
  1756.  
  1757. +            case FORTUNE_SEEKER:
  1758.  
  1759. +            case MAESTRO:
  1760.  
  1761. +                if (DwarfArmors.length == 0)
  1762.  
  1763. +                    return;
  1764.  
  1765. +                for (int id : DwarfArmors)
  1766.  
  1767. +                {
  1768.  
  1769. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1770.  
  1771. +                    items = player.getInventory().getItemByItemId(id);
  1772.  
  1773. +                    player.getInventory().equipItemAndRecord(items);
  1774.  
  1775. +                    player.getInventory().reloadEquippedItems();
  1776.  
  1777. +                    player.broadcastCharInfo();
  1778.  
  1779. +                    new InventoryUpdate();
  1780.  
  1781. +                }
  1782.  
  1783. +                break;
  1784.  
  1785. +            case DREADNOUGHT:
  1786.  
  1787. +                if (DreadArmors.length == 0)
  1788.  
  1789. +                    return;
  1790.  
  1791. +                for (int id : DreadArmors)
  1792.  
  1793. +                {
  1794.  
  1795. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1796.  
  1797. +                    items = player.getInventory().getItemByItemId(id);
  1798.  
  1799. +                    player.getInventory().equipItemAndRecord(items);
  1800.  
  1801. +                    player.getInventory().reloadEquippedItems();
  1802.  
  1803. +                    player.broadcastCharInfo();
  1804.  
  1805. +                    new InventoryUpdate();
  1806.  
  1807. +                }
  1808.  
  1809. +                break;
  1810.  
  1811. +            case SPECTRAL_DANCER:
  1812.  
  1813. +            case SWORD_MUSE:
  1814.  
  1815. +                if (DancerArmors.length == 0)
  1816.  
  1817. +                    return;
  1818.  
  1819. +                for (int id : DancerArmors)
  1820.  
  1821. +                {
  1822.  
  1823. +                    player.getInventory().addItem("Armors", id, 1, player, null);
  1824.  
  1825. +                    items = player.getInventory().getItemByItemId(id);
  1826.  
  1827. +                    player.getInventory().equipItemAndRecord(items);
  1828.  
  1829. +                    player.getInventory().reloadEquippedItems();
  1830.  
  1831. +                    player.broadcastCharInfo();
  1832.  
  1833. +                    new InventoryUpdate();
  1834.  
  1835. +                }
  1836.  
  1837. +                break;
  1838.  
  1839. +        }
  1840.  
  1841. +        
  1842.  
  1843. +    }
  1844.  
  1845. +    
  1846.  
  1847. +}
  1848.  
  1849. \ No newline at end of file
  1850.  
  1851. Index: config/players.properties
  1852.  
  1853. ===================================================================
  1854.  
  1855. --- config/players.properties    (revision 91)
  1856.  
  1857. +++ config/players.properties    (working copy)
  1858.  
  1859. @@ -285,4 +285,21 @@
  1860.  
  1861.  MaxBuffsAmount = 20
  1862.  
  1863.  
  1864.  
  1865.  # Store buffs/debuffs on user logout?
  1866.  
  1867. -StoreSkillCooltime = True
  1868.  
  1869. \ No newline at end of file
  1870.  
  1871. +StoreSkillCooltime = True
  1872.  
  1873. +
  1874.  
  1875. +#=============================================================
  1876.  
  1877. +#                          Newbies System
  1878.  
  1879. +#=============================================================
  1880.  
  1881. +# Value 81 for 80 lvl & 100%
  1882.  
  1883. +NewbiesLevel = 81
  1884.  
  1885. +
  1886.  
  1887. +#Set of fighter buffs
  1888.  
  1889. +FighterSet = 1087,1243,1204,1068,1388,1040,1036,1035,1048,1045,1077,1242,1086,1043,1268,1036,1363,1240,1062,271,274,275,310,304,308,306,264,267,269,349,364,268,270,1416,1323
  1890.  
  1891. +
  1892.  
  1893. +#Set of Mage buffs
  1894.  
  1895. +MageSet = 1087,1243,1204,1040,1036,1048,1045,1389,1062,1363,1085,1059,1303,1304,273,276,365,268,270,349,264,267,268,306,308,1416,1323
  1896.  
  1897. +
  1898.  
  1899. +# Telepot to location
  1900.  
  1901. +LocX = 83278
  1902.  
  1903. +LocY = 148273
  1904.  
  1905. +LocZ = -3407
  1906.  
  1907. \ No newline at end of file
  1908.  
  1909. #P aCis_datapack
  1910.  
  1911. Index: data/html/mods/NewbieNpc/changeclass.htm
  1912.  
  1913. ===================================================================
  1914.  
  1915. --- data/html/mods/NewbieNpc/changeclass.htm    (nonexistent)
  1916.  
  1917. +++ data/html/mods/NewbieNpc/changeclass.htm    (working copy)
  1918.  
  1919. @@ -0,0 +1,45 @@
  1920.  
  1921. +<html>
  1922.  
  1923. +    <head>
  1924.  
  1925. +        <title>Newbies Service NPC</title>
  1926.  
  1927. +    </head>
  1928.  
  1929. +    <body>
  1930.  
  1931. +<center>
  1932.  
  1933. +<img src="L2UI.SquareGray" width=300 height=1>
  1934.  
  1935. +<table bgcolor=000000 width=300 height=37>
  1936.  
  1937. +<tr>
  1938.  
  1939. +<td align=center width=300>Welcome Buddy! <font color=3399CC>Complete Your Classes & Be Ready!</font></td>
  1940.  
  1941. +</tr>
  1942.  
  1943. +</table>
  1944.  
  1945. +<img src="L2UI.SquareGray" width=300 height=1>
  1946.  
  1947. +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
  1948.  
  1949. +
  1950.  
  1951. +
  1952.  
  1953. +
  1954.  
  1955. +<img src="L2UI.SquareGray" width=300 height=1>
  1956.  
  1957. +
  1958.  
  1959. +<table border=0 bgcolor=000000 width=300 height=25>
  1960.  
  1961. +<tr>
  1962.  
  1963. +<td width=99 align=center><a action="bypass -h npc_%objectId%_1stClass"><font color="3399CC">Get The First Class!</font></a></td>
  1964.  
  1965. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  1966.  
  1967. +<td width=99 align=center><a action="bypass -h npc_%objectId%_2ndClass"><font color="3399CC">Get The Second Class!</font></a></td>
  1968.  
  1969. +</tr>
  1970.  
  1971. +</table>
  1972.  
  1973. +<img src="L2UI.SquareGray" width=300 height=1>
  1974.  
  1975. +
  1976.  
  1977. +<br1>
  1978.  
  1979. +<img src="L2UI.SquareGray" width=300 height=1>
  1980.  
  1981. +<table border=0 bgcolor=000000 width=300 height=25>
  1982.  
  1983. +<tr>
  1984.  
  1985. +<td width=99 align=center><a action="bypass -h npc_%objectId%_3rdClass"><font color="3399CC">Get The Third Class!</font></a></td>
  1986.  
  1987. +</table>
  1988.  
  1989. +<img src="L2UI.SquareGray" width=300 height=1>
  1990.  
  1991. +<br>
  1992.  
  1993. +<img src="L2UI.SquareGray" width=300 height=1>
  1994.  
  1995. +<table bgcolor=000000 width=300 height=37>
  1996.  
  1997. +<tr>
  1998.  
  1999. +<td align=center width=300>Vote for us : <font color=3399CC>www.lineage2.com</font></td>
  2000.  
  2001. +</tr>
  2002.  
  2003. +</table>
  2004.  
  2005. +<img src="L2UI.SquareGray" width=300 height=1>
  2006.  
  2007. +
  2008.  
  2009. +</body></html>
  2010.  
  2011. \ No newline at end of file
  2012.  
  2013. Index: data/html/mods/NewbieNpc/50023.htm
  2014.  
  2015. ===================================================================
  2016.  
  2017. --- data/html/mods/NewbieNpc/50023.htm    (nonexistent)
  2018.  
  2019. +++ data/html/mods/NewbieNpc/50023.htm    (working copy)
  2020.  
  2021. @@ -0,0 +1,54 @@
  2022.  
  2023. +<html>
  2024.  
  2025. +    <head>
  2026.  
  2027. +        <title>Newbies Service NPC</title>
  2028.  
  2029. +    </head>
  2030.  
  2031. +    <body>
  2032.  
  2033. +<center>
  2034.  
  2035. +<img src="L2UI.SquareGray" width=300 height=1>
  2036.  
  2037. +<table bgcolor=000000 width=300 height=37>
  2038.  
  2039. +<tr>
  2040.  
  2041. +<td align=center width=300>Welcome Buddy! <font color=3399CC>Get ready for our World!"</font></td>
  2042.  
  2043. +</tr>
  2044.  
  2045. +</table>
  2046.  
  2047. +<img src="L2UI.SquareGray" width=300 height=1>
  2048.  
  2049. +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
  2050.  
  2051. +
  2052.  
  2053. +
  2054.  
  2055. +
  2056.  
  2057. +<img src="L2UI.SquareGray" width=300 height=1>
  2058.  
  2059. +
  2060.  
  2061. +<table border=0 bgcolor=000000 width=300 height=25>
  2062.  
  2063. +<tr>
  2064.  
  2065. +<td width=99 align=center><a action="bypass -h npc_%objectId%_LevelUp"><font color="3399CC">Level Up Me</font></a></td>
  2066.  
  2067. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  2068.  
  2069. +<td width=99 align=center><a action="bypass -h npc_%objectId%_change"><font color="3399CC">Change My Class</font></a></td>
  2070.  
  2071. +</tr>
  2072.  
  2073. +</table>
  2074.  
  2075. +<img src="L2UI.SquareGray" width=300 height=1>
  2076.  
  2077. +<table border=0 bgcolor=000000 width=300 height=25>
  2078.  
  2079. +<tr>
  2080.  
  2081. +<td width=99 align=center><a action="bypass -h npc_%objectId%_items"><font color="3399CC">Dress Me</font></a></td>
  2082.  
  2083. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  2084.  
  2085. +<td width=99 align=center><a action="bypass -h npc_%objectId%_buffs"><font color="3399CC">Buff Me</font></a></td>
  2086.  
  2087. +</tr>
  2088.  
  2089. +</table>
  2090.  
  2091. +
  2092.  
  2093. +<img src="L2UI.SquareGray" width=300 height=1>
  2094.  
  2095. +
  2096.  
  2097. +<br1>
  2098.  
  2099. +<img src="L2UI.SquareGray" width=300 height=1>
  2100.  
  2101. +<table border=0 bgcolor=000000 width=300 height=25>
  2102.  
  2103. +<tr>
  2104.  
  2105. +<td width=99 align=center><a action="bypass -h npc_%objectId%_teleport"><font color="3399CC">Teleport Me</font></a></td>
  2106.  
  2107. +</table>
  2108.  
  2109. +<img src="L2UI.SquareGray" width=300 height=1>
  2110.  
  2111. +<br>
  2112.  
  2113. +<img src="L2UI.SquareGray" width=300 height=1>
  2114.  
  2115. +<table bgcolor=000000 width=300 height=37>
  2116.  
  2117. +<tr>
  2118.  
  2119. +<td align=center width=300>Vote for us : <font color=3399CC>www.lineage2.com</font></td>
  2120.  
  2121. +</tr>
  2122.  
  2123. +</table>
  2124.  
  2125. +<img src="L2UI.SquareGray" width=300 height=1>
  2126.  
  2127. +
  2128.  
  2129. +</body></html>
  2130.  
  2131. \ No newline at end of file
  2132.  
  2133. Index: data/html/mods/NewbieNpc/changeclass.htm
  2134.  
  2135. ===================================================================
  2136.  
  2137. --- data/html/mods/NewbieNpc/changeclass.htm    (nonexistent)
  2138.  
  2139. +++ data/html/mods/NewbieNpc/changeclass.htm    (working copy)
  2140.  
  2141. @@ -0,0 +1,45 @@
  2142.  
  2143. +<html>
  2144.  
  2145. +    <head>
  2146.  
  2147. +        <title>Newbies Service NPC</title>
  2148.  
  2149. +    </head>
  2150.  
  2151. +    <body>
  2152.  
  2153. +<center>
  2154.  
  2155. +<img src="L2UI.SquareGray" width=300 height=1>
  2156.  
  2157. +<table bgcolor=000000 width=300 height=37>
  2158.  
  2159. +<tr>
  2160.  
  2161. +<td align=center width=300>Welcome Buddy! <font color=3399CC>Complete Your Classes & Be Ready!</font></td>
  2162.  
  2163. +</tr>
  2164.  
  2165. +</table>
  2166.  
  2167. +<img src="L2UI.SquareGray" width=300 height=1>
  2168.  
  2169. +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
  2170.  
  2171. +
  2172.  
  2173. +
  2174.  
  2175. +
  2176.  
  2177. +<img src="L2UI.SquareGray" width=300 height=1>
  2178.  
  2179. +
  2180.  
  2181. +<table border=0 bgcolor=000000 width=300 height=25>
  2182.  
  2183. +<tr>
  2184.  
  2185. +<td width=99 align=center><a action="bypass -h npc_%objectId%_1stClass"><font color="3399CC">Get The First Class!</font></a></td>
  2186.  
  2187. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  2188.  
  2189. +<td width=99 align=center><a action="bypass -h npc_%objectId%_2ndClass"><font color="3399CC">Get The Second Class!</font></a></td>
  2190.  
  2191. +</tr>
  2192.  
  2193. +</table>
  2194.  
  2195. +<img src="L2UI.SquareGray" width=300 height=1>
  2196.  
  2197. +
  2198.  
  2199. +<br1>
  2200.  
  2201. +<img src="L2UI.SquareGray" width=300 height=1>
  2202.  
  2203. +<table border=0 bgcolor=000000 width=300 height=25>
  2204.  
  2205. +<tr>
  2206.  
  2207. +<td width=99 align=center><a action="bypass -h npc_%objectId%_3rdClass"><font color="3399CC">Get The Third Class!</font></a></td>
  2208.  
  2209. +</table>
  2210.  
  2211. +<img src="L2UI.SquareGray" width=300 height=1>
  2212.  
  2213. +<br>
  2214.  
  2215. +<img src="L2UI.SquareGray" width=300 height=1>
  2216.  
  2217. +<table bgcolor=000000 width=300 height=37>
  2218.  
  2219. +<tr>
  2220.  
  2221. +<td align=center width=300>Vote for us : <font color=3399CC>www.lineage2.com</font></td>
  2222.  
  2223. +</tr>
  2224.  
  2225. +</table>
  2226.  
  2227. +<img src="L2UI.SquareGray" width=300 height=1>
  2228.  
  2229. +
  2230.  
  2231. +</body></html>
  2232.  
  2233. \ No newline at end of file
  2234.  
  2235. Index: data/html/mods/NewbieNpc/50023.htm
  2236.  
  2237. ===================================================================
  2238.  
  2239. --- data/html/mods/NewbieNpc/50023.htm    (nonexistent)
  2240.  
  2241. +++ data/html/mods/NewbieNpc/50023.htm    (working copy)
  2242.  
  2243. @@ -0,0 +1,54 @@
  2244.  
  2245. +<html>
  2246.  
  2247. +    <head>
  2248.  
  2249. +        <title>Newbies Service NPC</title>
  2250.  
  2251. +    </head>
  2252.  
  2253. +    <body>
  2254.  
  2255. +<center>
  2256.  
  2257. +<img src="L2UI.SquareGray" width=300 height=1>
  2258.  
  2259. +<table bgcolor=000000 width=300 height=37>
  2260.  
  2261. +<tr>
  2262.  
  2263. +<td align=center width=300>Welcome Buddy! <font color=3399CC>Get ready for our World!"</font></td>
  2264.  
  2265. +</tr>
  2266.  
  2267. +</table>
  2268.  
  2269. +<img src="L2UI.SquareGray" width=300 height=1>
  2270.  
  2271. +<img src="l2ui_ch3.herotower_deco" width=256 height=32>
  2272.  
  2273. +
  2274.  
  2275. +
  2276.  
  2277. +
  2278.  
  2279. +<img src="L2UI.SquareGray" width=300 height=1>
  2280.  
  2281. +
  2282.  
  2283. +<table border=0 bgcolor=000000 width=300 height=25>
  2284.  
  2285. +<tr>
  2286.  
  2287. +<td width=99 align=center><a action="bypass -h npc_%objectId%_LevelUp"><font color="3399CC">Level Up Me</font></a></td>
  2288.  
  2289. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  2290.  
  2291. +<td width=99 align=center><a action="bypass -h npc_%objectId%_change"><font color="3399CC">Change My Class</font></a></td>
  2292.  
  2293. +</tr>
  2294.  
  2295. +</table>
  2296.  
  2297. +<img src="L2UI.SquareGray" width=300 height=1>
  2298.  
  2299. +<table border=0 bgcolor=000000 width=300 height=25>
  2300.  
  2301. +<tr>
  2302.  
  2303. +<td width=99 align=center><a action="bypass -h npc_%objectId%_items"><font color="3399CC">Dress Me</font></a></td>
  2304.  
  2305. +<td width=2 align=center><font color="505050">|</font></a></td><!--space-->
  2306.  
  2307. +<td width=99 align=center><a action="bypass -h npc_%objectId%_buffs"><font color="3399CC">Buff Me</font></a></td>
  2308.  
  2309. +</tr>
  2310.  
  2311. +</table>
  2312.  
  2313. +
  2314.  
  2315. +<img src="L2UI.SquareGray" width=300 height=1>
  2316.  
  2317. +
  2318.  
  2319. +<br1>
  2320.  
  2321. +<img src="L2UI.SquareGray" width=300 height=1>
  2322.  
  2323. +<table border=0 bgcolor=000000 width=300 height=25>
  2324.  
  2325. +<tr>
  2326.  
  2327. +<td width=99 align=center><a action="bypass -h npc_%objectId%_teleport"><font color="3399CC">Teleport Me</font></a></td>
  2328.  
  2329. +</table>
  2330.  
  2331. +<img src="L2UI.SquareGray" width=300 height=1>
  2332.  
  2333. +<br>
  2334.  
  2335. +<img src="L2UI.SquareGray" width=300 height=1>
  2336.  
  2337. +<table bgcolor=000000 width=300 height=37>
  2338.  
  2339. +<tr>
  2340.  
  2341. +<td align=center width=300>Vote for us : <font color=3399CC>www.lineage2.com</font></td>
  2342.  
  2343. +</tr>
  2344.  
  2345. +</table>
  2346.  
  2347. +<img src="L2UI.SquareGray" width=300 height=1>
  2348.  
  2349. +
  2350.  
  2351. +</body></html>
  2352.  
  2353. \ No newline at end of file
  2354.  
  2355. Index: data/xml/npcs/50000-50999.xml
  2356.  
  2357. ===================================================================
  2358.  
  2359. --- data/xml/npcs/50000-50999.xml    (revision 88)
  2360.  
  2361. +++ data/xml/npcs/50000-50999.xml    (working copy)
  2362.  
  2363. @@ -105,4 +105,40 @@
  2364.  
  2365.              <skill id="4416" level="18"/>
  2366.  
  2367.          </skills>
  2368.  
  2369.      </npc>
  2370.  
  2371. +    <npc id="50023" idTemplate="30519" name="NIEWBIES HELPER" title="L2World">
  2372.  
  2373. +        <set name="level" val="70"/>
  2374.  
  2375. +        <set name="radius" val="7"/>
  2376.  
  2377. +        <set name="height" val="18"/>
  2378.  
  2379. +        <set name="rHand" val="0"/>
  2380.  
  2381. +        <set name="lHand" val="0"/>
  2382.  
  2383. +        <set name="type" val="L2NewbieNpc"/>
  2384.  
  2385. +        <set name="exp" val="0"/>
  2386.  
  2387. +        <set name="sp" val="0"/>
  2388.  
  2389. +        <set name="hp" val="2444.46819"/>
  2390.  
  2391. +        <set name="mp" val="1345.8"/>
  2392.  
  2393. +        <set name="hpRegen" val="7.5"/>
  2394.  
  2395. +        <set name="mpRegen" val="2.7"/>
  2396.  
  2397. +        <set name="pAtk" val="688.86373"/>
  2398.  
  2399. +        <set name="pDef" val="295.91597"/>
  2400.  
  2401. +        <set name="mAtk" val="470.40463"/>
  2402.  
  2403. +        <set name="mDef" val="216.53847"/>
  2404.  
  2405. +        <set name="crit" val="4"/>
  2406.  
  2407. +        <set name="atkSpd" val="253"/>
  2408.  
  2409. +        <set name="str" val="40"/>
  2410.  
  2411. +        <set name="int" val="21"/>
  2412.  
  2413. +        <set name="dex" val="30"/>
  2414.  
  2415. +        <set name="wit" val="20"/>
  2416.  
  2417. +        <set name="con" val="43"/>
  2418.  
  2419. +        <set name="men" val="20"/>
  2420.  
  2421. +        <set name="corpseTime" val="7"/>
  2422.  
  2423. +        <set name="walkSpd" val="50"/>
  2424.  
  2425. +        <set name="runSpd" val="120"/>
  2426.  
  2427. +        <set name="dropHerbGroup" val="0"/>
  2428.  
  2429. +        <set name="attackRange" val="40"/>
  2430.  
  2431. +        <ai type="DEFAULT" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/>
  2432.  
  2433. +        <skills>
  2434.  
  2435. +            <skill id="4045" level="1"/>
  2436.  
  2437. +            <skill id="4416" level="18"/>
  2438.  
  2439. +        </skills>
  2440.  
  2441. +    </npc>
  2442.  
  2443.  </list>
  2444.  
  2445. \ No newline at end of file
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement