Ignore:
Timestamp:
Jan 16, 2012 7:56:19 AM (4 months ago)
Author:
MELERIX
Message:

STABLE: Sync with BETA [8629]

Location:
trunk/L2J_DataPack
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/L2J_DataPack

  • trunk/L2J_DataPack/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java

    r8406 r8630  
    1717import java.util.Date; 
    1818 
    19 import com.l2jserver.gameserver.instancemanager.QuestManager; 
     19import com.l2jserver.gameserver.model.Location; 
    2020import com.l2jserver.gameserver.model.actor.L2Npc; 
    2121import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; 
    2222import com.l2jserver.gameserver.model.itemcontainer.Inventory; 
     23import com.l2jserver.gameserver.model.itemcontainer.PcInventory; 
    2324import com.l2jserver.gameserver.model.quest.Quest; 
    2425import com.l2jserver.gameserver.model.quest.QuestState; 
     
    2829 
    2930/** 
    30  * Event Code for "Master of Enchanting" 
     31 * Event Code for "Master of Enchanting"<br> 
    3132 * http://www.lineage2.com/archive/2009/06/master_of_encha.html 
    32  * @author  Gnacik 
     33 * @author Gnacik 
    3334 */ 
    3435public class MasterOfEnchanting extends Quest 
    3536{ 
    36         private static final int _master_yogi                   = 32599; 
    37         private static final int _master_yogi_staff             = 13539; 
    38         private static final int _master_yogi_scroll    = 13540; 
    39  
    40         private static final int _adena                                 = 57; 
    41         private static final int _staff_price                   = 1000000; 
    42         private static final int _scroll_24_price               = 5000000; 
    43         private static final int _scroll_24_time                = 6; 
    44  
    45         private static final int _scroll_1_price                = 500000; 
    46         private static final int _scroll_10_price               = 5000000; 
    47  
    48         private static final int[] _hat_shadow_reward   = { 13074, 13075, 13076 }; 
    49         private static final int[] _hat_event_reward    = { 13518, 13519, 13522 }; 
    50         private static final int[] _crystal_reward              = { 9570, 9571, 9572 }; 
     37        private static final int _master_yogi = 32599; 
     38        private static final int _master_yogi_staff = 13539; 
     39        private static final int _master_yogi_scroll = 13540; 
     40         
     41        private static final int _staff_price = 1000000; 
     42        private static final int _scroll_24_price = 5000000; 
     43        private static final int _scroll_24_time = 6; 
     44         
     45        private static final int _scroll_1_price = 500000; 
     46        private static final int _scroll_10_price = 5000000; 
     47         
     48        private static final int[] _hat_shadow_reward = 
     49        { 
     50                13074, 13075, 13076 
     51        }; 
     52        private static final int[] _hat_event_reward = 
     53        { 
     54                13518, 13519, 13522 
     55        }; 
     56        private static final int[] _crystal_reward = 
     57        { 
     58                9570, 9571, 9572 
     59        }; 
    5160         
    5261        @SuppressWarnings("deprecation") 
    53         private static final Date _eventStart = new Date(2009, 7, 1);  
    54          
    55         private static final int[][] _spawns = 
    56         { 
    57                 {16111,142850,-2707,16000}, 
    58                 {17275,145000,-3037,25000}, 
    59                 {83037,149324,-3470,44000}, 
    60                 {82145,148609,-3468,0}, 
    61                 {81755,146487,-3534,32768}, 
    62                 {-81031,150038,-3045,0}, 
    63                 {-83156,150994,-3130,0}, 
    64                 {-13727,122117,-2990,16384}, 
    65                 {-14129,123869,-3118,40959}, 
    66                 {-84411,244813,-3730,57343}, 
    67                 {-84023,243051,-3730,4096}, 
    68                 {46908,50856,-2997,8192}, 
    69                 {45538,48357,-3061,18000}, 
    70                 {9929,16324,-4576,62999}, 
    71                 {11546,17599,-4586,46900}, 
    72                 {81987,53723,-1497,0}, 
    73                 {81083,56118,-1562,32768}, 
    74                 {147200,25614,-2014,16384}, 
    75                 {148557,26806,-2206,32768}, 
    76                 {117356,76708,-2695,49151}, 
    77                 {115887,76382,-2714,0}, 
    78                 {-117239,46842,367,49151}, 
    79                 {-119494,44882,367,24576}, 
    80                 {111004,218928,-3544,16384}, 
    81                 {108426,221876,-3600,49151}, 
    82                 {-45278,-112766,-241,0}, 
    83                 {-45372,-114104,-241,16384}, 
    84                 {115096,-178370,-891,0}, 
    85                 {116199,-182694,-1506,0}, 
    86                 {86865,-142915,-1341,26000}, 
    87                 {85584,-142490,-1343,0}, 
    88                 {147421,-55435,-2736,49151}, 
    89                 {148206,-55786,-2782,61439}, 
    90                 {43165,-48461,-797,17000}, 
    91                 {43966,-47709,-798,49999} 
     62        private static final Date _eventStart = new Date(2011, 7, 1); 
     63         
     64        private static final Location[] _spawns = 
     65        { 
     66                new Location(16111, 142850, -2707, 16000), 
     67                new Location(17275, 145000, -3037, 25000), 
     68                new Location(83037, 149324, -3470, 44000), 
     69                new Location(82145, 148609, -3468, 0), 
     70                new Location(81755, 146487, -3534, 32768), 
     71                new Location(-81031, 150038, -3045, 0), 
     72                new Location(-83156, 150994, -3130, 0), 
     73                new Location(-13727, 122117, -2990, 16384), 
     74                new Location(-14129, 123869, -3118, 40959), 
     75                new Location(-84411, 244813, -3730, 57343), 
     76                new Location(-84023, 243051, -3730, 4096), 
     77                new Location(46908, 50856, -2997, 8192), 
     78                new Location(45538, 48357, -3061, 18000), 
     79                new Location(9929, 16324, -4576, 62999), 
     80                new Location(11546, 17599, -4586, 46900), 
     81                new Location(81987, 53723, -1497, 0), 
     82                new Location(81083, 56118, -1562, 32768), 
     83                new Location(147200, 25614, -2014, 16384), 
     84                new Location(148557, 26806, -2206, 32768), 
     85                new Location(117356, 76708, -2695, 49151), 
     86                new Location(115887, 76382, -2714, 0), 
     87                new Location(-117239, 46842, 367, 49151), 
     88                new Location(-119494, 44882, 367, 24576), 
     89                new Location(111004, 218928, -3544, 16384), 
     90                new Location(108426, 221876, -3600, 49151), 
     91                new Location(-45278, -112766, -241, 0), 
     92                new Location(-45372, -114104, -241, 16384), 
     93                new Location(115096, -178370, -891, 0), 
     94                new Location(116199, -182694, -1506, 0), 
     95                new Location(86865, -142915, -1341, 26000), 
     96                new Location(85584, -142490, -1343, 0), 
     97                new Location(147421, -55435, -2736, 49151), 
     98                new Location(148206, -55786, -2782, 61439), 
     99                new Location(43165, -48461, -797, 17000), 
     100                new Location(43966, -47709, -798, 49999) 
    92101        }; 
    93  
     102         
    94103        public MasterOfEnchanting(int questId, String name, String descr) 
    95104        { 
     
    98107                addFirstTalkId(_master_yogi); 
    99108                addTalkId(_master_yogi); 
    100                 for(int[] _spawn : _spawns) 
    101                         addSpawn(_master_yogi, _spawn[0], _spawn[1], _spawn[2], _spawn[3], false, 0); 
     109                for (Location loc : _spawns) 
     110                { 
     111                        addSpawn(_master_yogi, loc, false, 0); 
     112                } 
    102113        } 
    103  
     114         
    104115        @Override 
    105116        public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) 
    106117        { 
    107                 String htmltext = ""; 
     118                String htmltext = event; 
    108119                QuestState st = player.getQuestState(getName()); 
    109                 Quest q = QuestManager.getInstance().getQuest(getName()); 
    110  
    111                 htmltext = event; 
    112120                if (event.equalsIgnoreCase("buy_staff")) 
    113121                { 
    114                         if (st.getQuestItemsCount(_master_yogi_staff) == 0 && st.getQuestItemsCount(_adena) > _staff_price) 
    115                         { 
    116                                 st.takeItems(_adena, _staff_price); 
     122                        if (!st.hasQuestItems(_master_yogi_staff) && (st.getQuestItemsCount(PcInventory.ADENA_ID) > _staff_price)) 
     123                        { 
     124                                st.takeItems(PcInventory.ADENA_ID, _staff_price); 
    117125                                st.giveItems(_master_yogi_staff, 1); 
    118126                                htmltext = "32599-staffbuyed.htm"; 
    119127                        } 
    120128                        else 
     129                        { 
    121130                                htmltext = "32599-staffcant.htm"; 
     131                        } 
    122132                } 
    123133                else if (event.equalsIgnoreCase("buy_scroll_24")) 
    124134                { 
    125135                        long _curr_time = System.currentTimeMillis(); 
    126                         String value = q.loadGlobalQuestVar(player.getAccountName()); 
     136                        String value = loadGlobalQuestVar(player.getAccountName()); 
    127137                        long _reuse_time = value == "" ? 0 : Long.parseLong(value); 
    128                         if(player.getCreateDate().after(_eventStart)) 
     138                        if (player.getCreateDate().after(_eventStart)) 
     139                        { 
    129140                                return "32599-bidth.htm"; 
     141                        } 
    130142                         
    131143                        if (_curr_time > _reuse_time) 
    132144                        { 
    133                                 if (st.getQuestItemsCount(_adena) > _scroll_24_price) 
    134                                 { 
    135                                         st.takeItems(_adena, _scroll_24_price); 
     145                                if (st.getQuestItemsCount(PcInventory.ADENA_ID) > _scroll_24_price) 
     146                                { 
     147                                        st.takeItems(PcInventory.ADENA_ID, _scroll_24_price); 
    136148                                        st.giveItems(_master_yogi_scroll, 24); 
    137                                         q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (_scroll_24_time * 3600000))); 
     149                                        saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (_scroll_24_time * 3600000))); 
    138150                                        htmltext = "32599-scroll24.htm"; 
    139151                                } 
    140152                                else 
     153                                { 
    141154                                        htmltext = "32599-s24-no.htm"; 
     155                                } 
    142156                        } 
    143157                        else 
     
    165179                                        // Little glitch. There is no SystemMessage with seconds only. 
    166180                                        // If time is less than 1 minute player can buy scrolls 
    167                                         if (st.getQuestItemsCount(_adena) > _scroll_24_price) 
     181                                        if (st.getQuestItemsCount(PcInventory.ADENA_ID) > _scroll_24_price) 
    168182                                        { 
    169                                                 st.takeItems(_adena, _scroll_24_price); 
     183                                                st.takeItems(PcInventory.ADENA_ID, _scroll_24_price); 
    170184                                                st.giveItems(_master_yogi_scroll, 24); 
    171                                                 q.saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (_scroll_24_time * 3600000))); 
     185                                                saveGlobalQuestVar(player.getAccountName(), Long.toString(System.currentTimeMillis() + (_scroll_24_time * 3600000))); 
    172186                                                htmltext = "32599-scroll24.htm"; 
    173187                                        } 
    174188                                        else 
     189                                        { 
    175190                                                htmltext = "32599-s24-no.htm"; 
     191                                        } 
    176192                                } 
    177193                        } 
     
    179195                else if (event.equalsIgnoreCase("buy_scroll_1")) 
    180196                { 
    181                         if (st.getQuestItemsCount(_adena) > _scroll_1_price) 
    182                         { 
    183                                 st.takeItems(_adena, _scroll_1_price); 
     197                        if (st.getQuestItemsCount(PcInventory.ADENA_ID) > _scroll_1_price) 
     198                        { 
     199                                st.takeItems(PcInventory.ADENA_ID, _scroll_1_price); 
    184200                                st.giveItems(_master_yogi_scroll, 1); 
    185                                 htmltext = "32599-scroll-ok.htm";                                
    186                         } 
    187                         else 
     201                                htmltext = "32599-scroll-ok.htm"; 
     202                        } 
     203                        else 
     204                        { 
    188205                                htmltext = "32599-s1-no.htm"; 
     206                        } 
    189207                } 
    190208                else if (event.equalsIgnoreCase("buy_scroll_10")) 
    191209                { 
    192                         if (st.getQuestItemsCount(_adena) > _scroll_10_price) 
    193                         { 
    194                                 st.takeItems(_adena, _scroll_10_price); 
     210                        if (st.getQuestItemsCount(PcInventory.ADENA_ID) > _scroll_10_price) 
     211                        { 
     212                                st.takeItems(PcInventory.ADENA_ID, _scroll_10_price); 
    195213                                st.giveItems(_master_yogi_scroll, 10); 
    196                                 htmltext = "32599-scroll-ok.htm";                                
    197                         } 
    198                         else 
     214                                htmltext = "32599-scroll-ok.htm"; 
     215                        } 
     216                        else 
     217                        { 
    199218                                htmltext = "32599-s10-no.htm"; 
     219                        } 
    200220                } 
    201221                else if (event.equalsIgnoreCase("receive_reward")) 
    202222                { 
    203                         if (st.getItemEquipped(Inventory.PAPERDOLL_RHAND) == _master_yogi_staff && st.getEnchantLevel(_master_yogi_staff) > 3) 
    204                         { 
    205                                 switch(st.getEnchantLevel(_master_yogi_staff)) 
     223                        if ((st.getItemEquipped(Inventory.PAPERDOLL_RHAND) == _master_yogi_staff) && (st.getEnchantLevel(_master_yogi_staff) > 3)) 
     224                        { 
     225                                switch (st.getEnchantLevel(_master_yogi_staff)) 
    206226                                { 
    207227                                        case 4: 
    208                                                 st.giveItems(6406, 1);  // Firework 
     228                                                st.giveItems(6406, 1); // Firework 
    209229                                                break; 
    210230                                        case 5: 
    211                                                 st.giveItems(6406, 2);  // Firework 
    212                                                 st.giveItems(6407, 1);  // Large Firework 
     231                                                st.giveItems(6406, 2); // Firework 
     232                                                st.giveItems(6407, 1); // Large Firework 
    213233                                                break; 
    214234                                        case 6: 
    215                                                 st.giveItems(6406, 3);  // Firework 
    216                                                 st.giveItems(6407, 2);  // Large Firework 
     235                                                st.giveItems(6406, 3); // Firework 
     236                                                st.giveItems(6407, 2); // Large Firework 
    217237                                                break; 
    218238                                        case 7: 
     
    220240                                                break; 
    221241                                        case 8: 
    222                                                 st.giveItems(955, 1);   // Scroll: Enchant Weapon (D) 
     242                                                st.giveItems(955, 1); // Scroll: Enchant Weapon (D) 
    223243                                                break; 
    224244                                        case 9: 
    225                                                 st.giveItems(955, 1);   // Scroll: Enchant Weapon (D) 
    226                                                 st.giveItems(956, 1);   // Scroll: Enchant Armor (D) 
     245                                                st.giveItems(955, 1); // Scroll: Enchant Weapon (D) 
     246                                                st.giveItems(956, 1); // Scroll: Enchant Armor (D) 
    227247                                                break; 
    228248                                        case 10: 
    229                                                 st.giveItems(951, 1);   // Scroll: Enchant Weapon (C) 
     249                                                st.giveItems(951, 1); // Scroll: Enchant Weapon (C) 
    230250                                                break; 
    231251                                        case 11: 
    232                                                 st.giveItems(951, 1);   // Scroll: Enchant Weapon (C) 
    233                                                 st.giveItems(952, 1);   // Scroll: Enchant Armor (C) 
     252                                                st.giveItems(951, 1); // Scroll: Enchant Weapon (C) 
     253                                                st.giveItems(952, 1); // Scroll: Enchant Armor (C) 
    234254                                                break; 
    235255                                        case 12: 
    236                                                 st.giveItems(948, 1);   // Scroll: Enchant Armor (B) 
     256                                                st.giveItems(948, 1); // Scroll: Enchant Armor (B) 
    237257                                                break; 
    238258                                        case 13: 
    239                                                 st.giveItems(729, 1);   // Scroll: Enchant Weapon (A) 
     259                                                st.giveItems(729, 1); // Scroll: Enchant Weapon (A) 
    240260                                                break; 
    241261                                        case 14: 
     
    243263                                                break; 
    244264                                        case 15: 
    245                                                 st.giveItems(13992, 1); // Grade S Accessory Chest (Event) 
     265                                                st.giveItems(13992, 1); // Grade S Accessory Chest (Event) 
    246266                                                break; 
    247267                                        case 16: 
    248                                                 st.giveItems(8762, 1);  // Top-Grade Life Stone: level 76 
     268                                                st.giveItems(8762, 1); // Top-Grade Life Stone: level 76 
    249269                                                break; 
    250270                                        case 17: 
    251                                                 st.giveItems(959, 1);   // Scroll: Enchant Weapon (S) 
     271                                                st.giveItems(959, 1); // Scroll: Enchant Weapon (S) 
    252272                                                break; 
    253273                                        case 18: 
    254                                                 st.giveItems(13991, 1); // Grade S Armor Chest (Event) 
     274                                                st.giveItems(13991, 1); // Grade S Armor Chest (Event) 
    255275                                                break; 
    256276                                        case 19: 
    257                                                 st.giveItems(13990, 1); // Grade S Weapon Chest (Event) 
    258                                                 break; 
    259                                         case 20:                                                 
    260                                                 st.giveItems(_crystal_reward[Rnd.get(3)], 1);   // Red/Blue/Green Soul Crystal - Stage 14 
     277                                                st.giveItems(13990, 1); // Grade S Weapon Chest (Event) 
     278                                                break; 
     279                                        case 20: 
     280                                                st.giveItems(_crystal_reward[Rnd.get(3)], 1); // Red/Blue/Green Soul Crystal - Stage 14 
    261281                                                break; 
    262282                                        case 21: 
    263                                                 st.giveItems(8762, 1);  // Top-Grade Life Stone: level 76 
    264                                                 st.giveItems(8752, 1);  // High-Grade Life Stone: level 76 
    265                                                 st.giveItems(_crystal_reward[Rnd.get(3)], 1);   // Red/Blue/Green Soul Crystal - Stage 14 
     283                                                st.giveItems(8762, 1); // Top-Grade Life Stone: level 76 
     284                                                st.giveItems(8752, 1); // High-Grade Life Stone: level 76 
     285                                                st.giveItems(_crystal_reward[Rnd.get(3)], 1); // Red/Blue/Green Soul Crystal - Stage 14 
    266286                                                break; 
    267287                                        case 22: 
    268                                                 st.giveItems(13989, 1); // S80 Grade Armor Chest (Event) 
     288                                                st.giveItems(13989, 1); // S80 Grade Armor Chest (Event) 
    269289                                                break; 
    270290                                        case 23: 
    271                                                 st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event) 
     291                                                st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event) 
    272292                                        default: 
    273                                                 if(st.getEnchantLevel(_master_yogi_staff) > 23) 
    274                                                         st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event) 
     293                                                if (st.getEnchantLevel(_master_yogi_staff) > 23) 
     294                                                { 
     295                                                        st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event) 
     296                                                } 
    275297                                                break; 
    276298                                } 
     
    279301                        } 
    280302                        else 
     303                        { 
    281304                                htmltext = "32599-rewardnostaff.htm"; 
    282                 } 
    283  
     305                        } 
     306                } 
    284307                return htmltext; 
    285308        } 
    286  
     309         
    287310        @Override 
    288311        public String onFirstTalk(L2Npc npc, L2PcInstance player) 
    289312        { 
    290                 String htmltext = ""; 
    291                 QuestState st = player.getQuestState(getName()); 
    292                 if (st == null) 
    293                 { 
    294                         Quest q = QuestManager.getInstance().getQuest(getName()); 
    295                         st = q.newQuestState(player); 
    296                 } 
    297                 htmltext = npc.getNpcId() + ".htm"; 
    298                 return htmltext; 
     313                if (player.getQuestState(getName()) == null) 
     314                { 
     315                        newQuestState(player); 
     316                } 
     317                return npc.getNpcId() + ".htm"; 
    299318        } 
    300  
     319         
    301320        public static void main(String[] args) 
    302321        { 
Note: See TracChangeset for help on using the changeset viewer.