Changeset 8630 for trunk/L2J_DataPack/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
- Timestamp:
- Jan 16, 2012 7:56:19 AM (4 months ago)
- Location:
- trunk/L2J_DataPack
- Files:
-
- 2 edited
-
. (modified) (1 prop)
-
dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/L2J_DataPack
- Property svn:mergeinfo changed
/branches/unstable/L2J_DataPack_BETA merged: 8407-8426,8428-8480,8482-8491,8493-8588,8590-8629
- Property svn:mergeinfo changed
-
trunk/L2J_DataPack/dist/game/data/scripts/events/MasterOfEnchanting/MasterOfEnchanting.java
r8406 r8630 17 17 import java.util.Date; 18 18 19 import com.l2jserver.gameserver. instancemanager.QuestManager;19 import com.l2jserver.gameserver.model.Location; 20 20 import com.l2jserver.gameserver.model.actor.L2Npc; 21 21 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; 22 22 import com.l2jserver.gameserver.model.itemcontainer.Inventory; 23 import com.l2jserver.gameserver.model.itemcontainer.PcInventory; 23 24 import com.l2jserver.gameserver.model.quest.Quest; 24 25 import com.l2jserver.gameserver.model.quest.QuestState; … … 28 29 29 30 /** 30 * Event Code for "Master of Enchanting" 31 * Event Code for "Master of Enchanting"<br> 31 32 * http://www.lineage2.com/archive/2009/06/master_of_encha.html 32 * @author Gnacik33 * @author Gnacik 33 34 */ 34 35 public class MasterOfEnchanting extends Quest 35 36 { 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 }; 51 60 52 61 @SuppressWarnings("deprecation") 53 private static final Date _eventStart = new Date(20 09, 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) 92 101 }; 93 102 94 103 public MasterOfEnchanting(int questId, String name, String descr) 95 104 { … … 98 107 addFirstTalkId(_master_yogi); 99 108 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 } 102 113 } 103 114 104 115 @Override 105 116 public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) 106 117 { 107 String htmltext = "";118 String htmltext = event; 108 119 QuestState st = player.getQuestState(getName()); 109 Quest q = QuestManager.getInstance().getQuest(getName());110 111 htmltext = event;112 120 if (event.equalsIgnoreCase("buy_staff")) 113 121 { 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); 117 125 st.giveItems(_master_yogi_staff, 1); 118 126 htmltext = "32599-staffbuyed.htm"; 119 127 } 120 128 else 129 { 121 130 htmltext = "32599-staffcant.htm"; 131 } 122 132 } 123 133 else if (event.equalsIgnoreCase("buy_scroll_24")) 124 134 { 125 135 long _curr_time = System.currentTimeMillis(); 126 String value = q.loadGlobalQuestVar(player.getAccountName());136 String value = loadGlobalQuestVar(player.getAccountName()); 127 137 long _reuse_time = value == "" ? 0 : Long.parseLong(value); 128 if(player.getCreateDate().after(_eventStart)) 138 if (player.getCreateDate().after(_eventStart)) 139 { 129 140 return "32599-bidth.htm"; 141 } 130 142 131 143 if (_curr_time > _reuse_time) 132 144 { 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); 136 148 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))); 138 150 htmltext = "32599-scroll24.htm"; 139 151 } 140 152 else 153 { 141 154 htmltext = "32599-s24-no.htm"; 155 } 142 156 } 143 157 else … … 165 179 // Little glitch. There is no SystemMessage with seconds only. 166 180 // 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) 168 182 { 169 st.takeItems( _adena, _scroll_24_price);183 st.takeItems(PcInventory.ADENA_ID, _scroll_24_price); 170 184 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))); 172 186 htmltext = "32599-scroll24.htm"; 173 187 } 174 188 else 189 { 175 190 htmltext = "32599-s24-no.htm"; 191 } 176 192 } 177 193 } … … 179 195 else if (event.equalsIgnoreCase("buy_scroll_1")) 180 196 { 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); 184 200 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 { 188 205 htmltext = "32599-s1-no.htm"; 206 } 189 207 } 190 208 else if (event.equalsIgnoreCase("buy_scroll_10")) 191 209 { 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); 195 213 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 { 199 218 htmltext = "32599-s10-no.htm"; 219 } 200 220 } 201 221 else if (event.equalsIgnoreCase("receive_reward")) 202 222 { 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)) 206 226 { 207 227 case 4: 208 st.giveItems(6406, 1); // Firework228 st.giveItems(6406, 1); // Firework 209 229 break; 210 230 case 5: 211 st.giveItems(6406, 2); // Firework212 st.giveItems(6407, 1); // Large Firework231 st.giveItems(6406, 2); // Firework 232 st.giveItems(6407, 1); // Large Firework 213 233 break; 214 234 case 6: 215 st.giveItems(6406, 3); // Firework216 st.giveItems(6407, 2); // Large Firework235 st.giveItems(6406, 3); // Firework 236 st.giveItems(6407, 2); // Large Firework 217 237 break; 218 238 case 7: … … 220 240 break; 221 241 case 8: 222 st.giveItems(955, 1); // Scroll: Enchant Weapon (D)242 st.giveItems(955, 1); // Scroll: Enchant Weapon (D) 223 243 break; 224 244 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) 227 247 break; 228 248 case 10: 229 st.giveItems(951, 1); // Scroll: Enchant Weapon (C)249 st.giveItems(951, 1); // Scroll: Enchant Weapon (C) 230 250 break; 231 251 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) 234 254 break; 235 255 case 12: 236 st.giveItems(948, 1); // Scroll: Enchant Armor (B)256 st.giveItems(948, 1); // Scroll: Enchant Armor (B) 237 257 break; 238 258 case 13: 239 st.giveItems(729, 1); // Scroll: Enchant Weapon (A)259 st.giveItems(729, 1); // Scroll: Enchant Weapon (A) 240 260 break; 241 261 case 14: … … 243 263 break; 244 264 case 15: 245 st.giveItems(13992, 1); // Grade S Accessory Chest (Event)265 st.giveItems(13992, 1); // Grade S Accessory Chest (Event) 246 266 break; 247 267 case 16: 248 st.giveItems(8762, 1); // Top-Grade Life Stone: level 76268 st.giveItems(8762, 1); // Top-Grade Life Stone: level 76 249 269 break; 250 270 case 17: 251 st.giveItems(959, 1); // Scroll: Enchant Weapon (S)271 st.giveItems(959, 1); // Scroll: Enchant Weapon (S) 252 272 break; 253 273 case 18: 254 st.giveItems(13991, 1); // Grade S Armor Chest (Event)274 st.giveItems(13991, 1); // Grade S Armor Chest (Event) 255 275 break; 256 276 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 14277 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 261 281 break; 262 282 case 21: 263 st.giveItems(8762, 1); // Top-Grade Life Stone: level 76264 st.giveItems(8752, 1); // High-Grade Life Stone: level 76265 st.giveItems(_crystal_reward[Rnd.get(3)], 1); // Red/Blue/Green Soul Crystal - Stage 14283 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 266 286 break; 267 287 case 22: 268 st.giveItems(13989, 1); // S80 Grade Armor Chest (Event)288 st.giveItems(13989, 1); // S80 Grade Armor Chest (Event) 269 289 break; 270 290 case 23: 271 st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event)291 st.giveItems(13988, 1); // S80 Grade Weapon Chest (Event) 272 292 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 } 275 297 break; 276 298 } … … 279 301 } 280 302 else 303 { 281 304 htmltext = "32599-rewardnostaff.htm"; 282 }283 305 } 306 } 284 307 return htmltext; 285 308 } 286 309 287 310 @Override 288 311 public String onFirstTalk(L2Npc npc, L2PcInstance player) 289 312 { 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"; 299 318 } 300 319 301 320 public static void main(String[] args) 302 321 {
Note: See TracChangeset
for help on using the changeset viewer.
