View difference between Paste ID: vEjtFMnP and BPFuzjUA
SHOW: | | - or go back to the newest paste.
1
### Eclipse Workspace Patch 1.0
2
#P aCis_gameserver
3
Index: config/en/rus_acis.properties
4
===================================================================
5
--- config/en/rus_acis.properties	(revision 20)
6
+++ config/en/rus_acis.properties	(working copy)
7
@@ -237,6 +237,23 @@
8
 BuyPremiumDays28Price = 28
9
 
10
 #=============================================================
11
+#                          Newbie System
12
+#=============================================================
13
+# If True newbie system will be enabled
14
+NewbieSystemEnabled = True
15
+
16
+# Value 81 for 80 lvl & 100%
17
+NewbieSystemSetLevel = 81
18
+
19
+#Set of fighter buffs
20
++NewbieSystemFighterSet = 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
21
+#Set of Mage buffs
22
+NewbieSystemMageSet = 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
23
+
24
+# Telepot to location
25
+NewbieSystemTeleToLocation = 83480,148614,-3407
26
+
27
+#=============================================================
28
 #                        DressMe system
29
 #=============================================================
30
 AllowDressMeSystem = True
31
Index: java/net/sf/l2j/gameserver/model/actor/Player.java
32
===================================================================
33
--- java/net/sf/l2j/gameserver/model/actor/Player.java	(revision 20)
34
+++ java/net/sf/l2j/gameserver/model/actor/Player.java	(working copy)
35
@@ -484,6 +484,10 @@
36
 	private final CachedDataValueInt _setTitleColor = _cachedData.newInt("titleColor");
37
 	private final CachedDataValueBoolean _stopExp = _cachedData.newBoolean("stopexp");
38
 	private final CachedDataValueBoolean _tradeRefusal = _cachedData.newBoolean("traderefusal");
39
+	private final CachedDataValueBoolean _isNewbieChar = _cachedData.newBoolean("isNewbieChar");
40
+	private final CachedDataValueBoolean _isNewbieEquip = _cachedData.newBoolean("isNewbieEquip");
41
+	private final CachedDataValueBoolean _isNewbieWeaponEquip = _cachedData.newBoolean("isNewbieWeaponEquip");
42
+	private final CachedDataValueBoolean _isNewbieTeleport = _cachedData.newBoolean("isNewbieTeleport");
43
 	private final CachedDataValueBoolean _hairSkin = _cachedData.newBoolean("hair_skin");
44
 	
45
 	public int _activeBoxes = -1;
46
@@ -7819,6 +7823,46 @@
47
 		
48
 		return gms;
49
 	}
50
+		
51
+	public boolean isNewbieChar()
52
+	{
53
+		return _isNewbieChar.get();
54
+	}
55
+		
56
+	public void setNewbieChar(boolean value)
57
+	{
58
+		_isNewbieChar.set(value);
59
+	}
60
+		
61
+	public boolean isNewbieEquip()
62
+	{
63
+		return _isNewbieEquip.get();
64
+	}
65
+		
66
+	public void setNewbieEquip(boolean value)
67
+	{
68
+		_isNewbieEquip.set(value);
69
+	}
70
+		
71
+	public boolean isNewbieWeaponEquip()
72
+	{
73
+		return _isNewbieWeaponEquip.get();
74
+	}
75
+		
76
+	public void setNewbieWeaponEquip(boolean value)
77
+	{
78
+		_isNewbieWeaponEquip.set(value);
79
+	}
80
+		
81
+	public boolean isNewbieTeleport()
82
+	{
83
+		return _isNewbieTeleport.get();
84
+	}
85
+		
86
+	public void setNewbieTeleport(boolean value)
87
+	{
88
+		_isNewbieTeleport.set(value);
89
+	}
90
 	
91
 	public final void dispelSkillEffect(int skillId, int skillLevel)
92
 	{
93
Index: java/net/sf/l2j/gameserver/data/manager/NewbieSystemManager.java
94
===================================================================
95
--- java/net/sf/l2j/gameserver/data/manager/NewbieSystemManager.java	(nonexistent)
96
+++ java/net/sf/l2j/gameserver/data/manager/NewbieSystemManager.java	(working copy)
97
@@ -0,0 +1,1053 @@
98
+package net.sf.l2j.gameserver.data.manager;
99
+
100
+import java.util.Arrays;
101
+import java.util.List;
102
+
103
+import net.sf.l2j.commons.pool.ThreadPool;
104
+
105
+import net.sf.l2j.Config;
106
+import net.sf.l2j.gameserver.data.SkillTable;
107
+import net.sf.l2j.gameserver.data.xml.PlayerLevelData;
108
+import net.sf.l2j.gameserver.enums.SayType;
109
+import net.sf.l2j.gameserver.enums.actors.ClassId;
110
+import net.sf.l2j.gameserver.model.PlayerLevel;
111
+import net.sf.l2j.gameserver.model.actor.Player;
112
+import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
113
+import net.sf.l2j.gameserver.network.serverpackets.CreatureSay;
114
+import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage;
115
+import net.sf.l2j.gameserver.network.serverpackets.HennaInfo;
116
+import net.sf.l2j.gameserver.network.serverpackets.ItemList;
117
+import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
118
+import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
119
+import net.sf.l2j.gameserver.skills.L2Skill;
120
+
121
+/**
122
+ * @author Baggos
123
+ */
124
+public class NewbieSystemManager
125
+{
126
+	public static void onEnterNewChar(Player player)
127
+	{
128
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
129
+		switch (player.getClassId().getId())
130
+		{
131
+			case 0:
132
+				html.setFile("data/html/mods/newbie/classes/humanclasses.htm");
133
+				player.sendPacket(html);
134
+				break;
135
+			case 10:
136
+				html.setFile("data/html/mods/newbie/classes/humanmageclasses.htm");
137
+				player.sendPacket(html);
138
+				break;
139
+			case 18:
140
+				html.setFile("data/html/mods/newbie/classes/elfclasses.htm");
141
+				player.sendPacket(html);
142
+				break;
143
+			case 25:
144
+				html.setFile("data/html/mods/newbie/classes/elfmageclasses.htm");
145
+				player.sendPacket(html);
146
+				break;
147
+			case 31:
148
+				html.setFile("data/html/mods/newbie/classes/darkelfclasses.htm");
149
+				player.sendPacket(html);
150
+				break;
151
+			case 38:
152
+				html.setFile("data/html/mods/newbie/classes/darkelfmageclasses.htm");
153
+				player.sendPacket(html);
154
+				break;
155
+			case 44:
156
+				html.setFile("data/html/mods/newbie/classes/orcclasses.htm");
157
+				player.sendPacket(html);
158
+				break;
159
+			case 49:
160
+				html.setFile("data/html/mods/newbie/classes/orcmageclasses.htm");
161
+				player.sendPacket(html);
162
+				break;
163
+			case 53:
164
+				html.setFile("data/html/mods/newbie/classes/dwarfclasses.htm");
165
+				player.sendPacket(html);
166
+				break;
167
+		}
168
+		
169
+		player.setIsParalyzed(true);
170
+		player.getAppearance().setVisible(false);
171
+		ThreadPool.schedule(() -> player.sendPacket(new ExShowScreenMessage("Complete your character and get ready for RUSaCis world!", 10000)), 2000);
172
+	}
173
+	
174
+	public void MageClasses(String command, Player player)
175
+	{
176
+		String params = command.substring(command.indexOf("_") + 1);
177
+		switch (params)
178
+		{
179
+			case "necromancer":
180
+				player.setClassId(13);
181
+				player.setBaseClass(13);
182
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Necromancer!", 3000));
183
+				break;
184
+			case "sorceror":
185
+				player.setClassId(12);
186
+				player.setBaseClass(12);
187
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Sorceror!", 3000));
188
+				break;
189
+			case "warlock":
190
+				player.setClassId(14);
191
+				player.setBaseClass(14);
192
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Warlock!", 3000));
193
+				break;
194
+			case "cleric":
195
+				player.setClassId(15);
196
+				player.setBaseClass(15);
197
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Cleric!", 3000));
198
+				break;
199
+			case "bishop":
200
+				player.setClassId(16);
201
+				player.setBaseClass(16);
202
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Bishop!", 3000));
203
+				break;
204
+			case "prophet":
205
+				player.setClassId(17);
206
+				player.setBaseClass(17);
207
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Prophet!", 3000));
208
+				break;
209
+			case "spellsinger":
210
+				player.setClassId(27);
211
+				player.setBaseClass(27);
212
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Spellsinger!", 3000));
213
+				break;
214
+			case "elemental":
215
+				player.setClassId(28);
216
+				player.setBaseClass(28);
217
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Elemental Summoner!", 3000));
218
+				break;
219
+			case "elder":
220
+				player.setClassId(30);
221
+				player.setBaseClass(30);
222
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Elven Elder!", 3000));
223
+				break;
224
+			case "spellhowler":
225
+				player.setClassId(40);
226
+				player.setBaseClass(40);
227
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Spellhowler!", 3000));
228
+				break;
229
+			case "shilliene":
230
+				player.setClassId(43);
231
+				player.setBaseClass(43);
232
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Shillien Elder!", 3000));
233
+				break;
234
+			case "overlord":
235
+				player.setClassId(51);
236
+				player.setBaseClass(51);
237
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Overlord!", 3000));
238
+				break;
239
+			case "warcryer":
240
+				player.setClassId(52);
241
+				player.setBaseClass(52);
242
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Warcryer!", 3000));
243
+				break;
244
+		}
245
+		
246
+		final PlayerLevel pl = PlayerLevelData.getInstance().getPlayerLevel(Config.NEWBIE_SYSTEM_SET_LVL);
247
+		player.addExpAndSp(pl.getRequiredExpToLevelUp(), 0);
248
+		player.broadcastPacket(new SocialAction(player, 3));
249
+		player.refreshWeightPenalty();
250
+		player.sendPacket(new HennaInfo(player));
251
+		player.store();
252
+		player.setNewbieChar(false);
253
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
254
+		html.setFile("data/html/mods/newbie/armors/magearmors.htm");
255
+		player.sendPacket(html);
256
+	}
257
+	
258
+	public void FighterClasses(String command, Player player)
259
+	{
260
+		ClassId classes = player.getClassId();		
261
+		String params = command.substring(command.indexOf("_") + 1);
262
+		switch (params)
263
+		{
264
+			case "gladiator":
265
+				player.setClassId(2);
266
+				player.setBaseClass(2);
267
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Gladiator!", 3000));
268
+				break;
269
+			case "warlord":
270
+				player.setClassId(3);
271
+				player.setBaseClass(3);
272
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Warlord!", 3000));
273
+				break;
274
+			case "paladin":
275
+				player.setClassId(5);
276
+				player.setBaseClass(5);
277
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Paladin!", 3000));
278
+				break;
279
+			case "darkavenger":
280
+				player.setClassId(6);
281
+				player.setBaseClass(6);
282
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Dark Avenger!", 3000));
283
+				break;
284
+			case "temple":
285
+				player.setClassId(20);
286
+				player.setBaseClass(20);
287
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Temple Knight!", 3000));
288
+				break;
289
+			case "swordsinger":
290
+				player.setClassId(21);
291
+				player.setBaseClass(21);
292
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Swordsinger!", 3000));
293
+				break;
294
+			case "shillien":
295
+				player.setClassId(33);
296
+				player.setBaseClass(33);
297
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Shillien Knight!", 3000));
298
+				break;
299
+			case "bladedancer":
300
+				player.setClassId(34);
301
+				player.setBaseClass(34);
302
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Bladedancer!", 3000));
303
+				break;
304
+			case "phantoms":
305
+				player.setClassId(41);
306
+				player.setBaseClass(41);
307
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Phantom Summoner!", 3000));
308
+				break;
309
+			case "destroyer":
310
+				player.setClassId(46);
311
+				player.setBaseClass(46);
312
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Destroyer!", 3000));
313
+				break;
314
+			case "tyrant":
315
+				player.setClassId(48);
316
+				player.setBaseClass(48);
317
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Tyrant!", 3000));
318
+				break;
319
+			case "bounty":
320
+				player.setClassId(55);
321
+				player.setBaseClass(55);
322
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Bounty Hunter!", 3000));
323
+				break;
324
+			case "warsmith":
325
+				player.setClassId(57);
326
+				player.setBaseClass(57);
327
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Warsmith!", 3000));
328
+				break;
329
+		}
330
+		
331
+		final PlayerLevel pl = PlayerLevelData.getInstance().getPlayerLevel(Config.NEWBIE_SYSTEM_SET_LVL);
332
+		player.addExpAndSp(pl.getRequiredExpToLevelUp(), 0);
333
+		player.broadcastPacket(new SocialAction(player, 3));
334
+		player.refreshWeightPenalty();
335
+		player.sendPacket(new HennaInfo(player));
336
+		player.store();
337
+		player.setNewbieChar(false);
338
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
339
+		if (classes == ClassId.TREASURE_HUNTER || classes == ClassId.HAWKEYE || classes == ClassId.PLAINS_WALKER || classes == ClassId.SILVER_RANGER || classes == ClassId.ABYSS_WALKER || classes == ClassId.PHANTOM_RANGER)
340
+			html.setFile("data/html/mods/newbie/armors/lightarmors.htm");
341
+		html.setFile("data/html/mods/newbie/armors/fighterarmors.htm");
342
+		player.sendPacket(html);
343
+	}
344
+	
345
+	public void LightClasses(String command, Player player)
346
+	{
347
+		String params = command.substring(command.indexOf("_") + 1);
348
+		switch (params)
349
+		{
350
+			case "treasurehunter":
351
+				player.setClassId(8);
352
+				player.setBaseClass(8);
353
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Treasure Hunter!", 3000));
354
+				break;
355
+			case "hawkeye":
356
+				player.setClassId(9);
357
+				player.setBaseClass(9);
358
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Hawkeye!", 3000));
359
+				break;
360
+			case "plain":
361
+				player.setClassId(23);
362
+				player.setBaseClass(23);
363
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Plainswalker!", 3000));
364
+				break;
365
+			case "silver":
366
+				player.setClassId(24);
367
+				player.setBaseClass(24);
368
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Silver Ranger!", 3000));
369
+				break;
370
+			case "abyss":
371
+				player.setClassId(36);
372
+				player.setBaseClass(36);
373
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Abyss Walker!", 3000));
374
+				break;
375
+			case "phantom":
376
+				player.setClassId(37);
377
+				player.setBaseClass(37);
378
+				player.sendPacket(new ExShowScreenMessage("Your class has changed to Phantom Ranger!", 3000));
379
+				break;
380
+		}
381
+		
382
+		final PlayerLevel pl = PlayerLevelData.getInstance().getPlayerLevel(Config.NEWBIE_SYSTEM_SET_LVL);
383
+		player.addExpAndSp(pl.getRequiredExpToLevelUp(), 0);
384
+		player.broadcastPacket(new SocialAction(player, 3));
385
+		player.refreshWeightPenalty();
386
+		player.sendPacket(new HennaInfo(player));
387
+		player.store();
388
+		player.setNewbieChar(false);
389
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
390
+		html.setFile("data/html/mods/newbie/armors/lightarmors.htm");
391
+		player.sendPacket(html);
392
+	}
393
+	
394
+	public static void onEnterEquip(Player activeChar)
395
+	{
396
+		ClassId classes = activeChar.getClassId();		
397
+		if (activeChar.isMageClass())
398
+		{
399
+			activeChar.setIsParalyzed(true);
400
+			activeChar.getAppearance().setVisible(false);
401
+			NpcHtmlMessage html = new NpcHtmlMessage(1);
402
+			html.setFile("data/html/mods/newbie/armors/magearmors.htm");
403
+			activeChar.sendPacket(html);
404
+		}
405
+		else if (classes == ClassId.TREASURE_HUNTER || classes == ClassId.HAWKEYE || classes == ClassId.PLAINS_WALKER || classes == ClassId.SILVER_RANGER || classes == ClassId.ABYSS_WALKER || classes == ClassId.PHANTOM_RANGER)
406
+		{
407
+			activeChar.setIsParalyzed(true);
408
+			activeChar.getAppearance().setVisible(false);
409
+			NpcHtmlMessage html = new NpcHtmlMessage(1);
410
+			html.setFile("data/html/mods/newbie/armors/lightarmors.htm");
411
+			activeChar.sendPacket(html);
412
+		}
413
+		else
414
+		{
415
+			activeChar.setIsParalyzed(true);
416
+			activeChar.getAppearance().setVisible(false);
417
+			NpcHtmlMessage html = new NpcHtmlMessage(1);
418
+			html.setFile("data/html/mods/newbie/armors/fighterarmors.htm");
419
+			activeChar.sendPacket(html);
420
+		}
421
+	}
422
+	
423
+	public static void onEnterWepEquip(Player activeChar)
424
+	{
425
+		if (activeChar.isMageClass())
426
+		{
427
+			activeChar.setIsParalyzed(true);
428
+			activeChar.getAppearance().setVisible(false);
429
+			NpcHtmlMessage html = new NpcHtmlMessage(1);
430
+			html.setFile("data/html/mods/newbie/weapons/weapons.htm");
431
+			activeChar.sendPacket(html);
432
+		}
433
+		else
434
+		{
435
+			activeChar.setIsParalyzed(true);
436
+			activeChar.getAppearance().setVisible(false);
437
+			NpcHtmlMessage html = new NpcHtmlMessage(1);
438
+			html.setFile("data/html/mods/newbie/weapons/weapons.htm");
439
+			activeChar.sendPacket(html);
440
+		}
441
+	}
442
+	
443
+	public void Classes(String command, Player player)
444
+	{
445
+		String params = command.substring(command.indexOf("_") + 1);
446
+		ItemInstance items = null;
447
+		if (params.startsWith("tlh"))
448
+		{
449
+			List<Integer> TallumH = Arrays.asList(2382, 547, 5768, 5780, 924, 862, 893, 871, 902, 8185);
450
+			for (int id : TallumH)
451
+			{
452
+				if (TallumH.contains(id))
453
+				{
454
+					player.getInventory().addItem("Armors", id, 1, player, null);
455
+					items = player.getInventory().getItemByItemId(id);
456
+					player.getInventory().equipItemAndRecord(items);
457
+					player.sendPacket(new ItemList(player, false));
458
+					player.setNewbieEquip(false);
459
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
460
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
461
+					player.sendPacket(html);
462
+				}
463
+			}
464
+		}
465
+		else if (params.startsWith("majheavy"))
466
+		{
467
+			List<Integer> MAJH = Arrays.asList(2383, 2419, 5774, 5786, 924, 862, 893, 871, 902, 8185);
468
+			for (int id : MAJH)
469
+			{
470
+				if (MAJH.contains(id))
471
+				{
472
+					player.getInventory().addItem("Armors", id, 1, player, null);
473
+					items = player.getInventory().getItemByItemId(id);
474
+					player.getInventory().equipItemAndRecord(items);
475
+					player.sendPacket(new ItemList(player, false));
476
+					player.setNewbieEquip(false);
477
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
478
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
479
+					player.sendPacket(html);
480
+				}
481
+			}
482
+		}
483
+		else if (params.startsWith("mjlight"))
484
+		{
485
+			List<Integer> MJL = Arrays.asList(2395, 2419, 5775, 5787, 924, 862, 893, 871, 902, 8185);
486
+			for (int id : MJL)
487
+			{
488
+				if (MJL.contains(id))
489
+				{
490
+					player.getInventory().addItem("Armors", id, 1, player, null);
491
+					items = player.getInventory().getItemByItemId(id);
492
+					player.getInventory().equipItemAndRecord(items);
493
+					player.sendPacket(new ItemList(player, false));
494
+					player.setNewbieEquip(false);
495
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
496
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
497
+					player.sendPacket(html);
498
+				}
499
+			}
500
+		}
501
+		else if (params.startsWith("nightlight"))
502
+		{
503
+			List<Integer> MJL = Arrays.asList(2418, 2394, 5772, 5784, 924, 862, 893, 871, 902, 8185);
504
+			for (int id : MJL)
505
+			{
506
+				if (MJL.contains(id))
507
+				{
508
+					player.getInventory().addItem("Armors", id, 1, player, null);
509
+					items = player.getInventory().getItemByItemId(id);
510
+					player.getInventory().equipItemAndRecord(items);
511
+					player.sendPacket(new ItemList(player, false));
512
+					player.setNewbieEquip(false);
513
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
514
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
515
+					player.sendPacket(html);
516
+				}
517
+			}
518
+		}
519
+		else if (params.startsWith("tll"))
520
+		{
521
+			List<Integer> TLL = Arrays.asList(2393, 547, 5769, 5781, 924, 862, 893, 871, 902, 8185);
522
+			for (int id : TLL)
523
+			{
524
+				if (TLL.contains(id))
525
+				{
526
+					player.getInventory().addItem("Armors", id, 1, player, null);
527
+					items = player.getInventory().getItemByItemId(id);
528
+					player.getInventory().equipItemAndRecord(items);
529
+					player.sendPacket(new ItemList(player, false));
530
+					player.setNewbieEquip(false);
531
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
532
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
533
+					player.sendPacket(html);
534
+				}
535
+			}
536
+		}
537
+		else if (params.startsWith("dc"))
538
+		{
539
+			List<Integer> MageArmorDC = Arrays.asList(2407, 512, 5767, 5779, 924, 862, 893, 871, 902, 8563);
540
+			for (int id : MageArmorDC)
541
+			{
542
+				if (MageArmorDC.contains(id))
543
+				{
544
+					player.getInventory().addItem("Armors", id, 1, player, null);
545
+					items = player.getInventory().getItemByItemId(id);
546
+					player.getInventory().equipItemAndRecord(items);
547
+					player.sendPacket(new ItemList(player, false));
548
+					player.setNewbieEquip(false);
549
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
550
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
551
+					player.sendPacket(html);
552
+				}
553
+			}
554
+		}
555
+		else if (params.startsWith("tl"))
556
+		{
557
+			List<Integer> MageArmorTL = Arrays.asList(2400, 2405, 547, 5770, 5782, 924, 862, 893, 871, 902, 8563);
558
+			for (int id : MageArmorTL)
559
+			{
560
+				if (MageArmorTL.contains(id))
561
+				{
562
+					player.getInventory().addItem("Armors", id, 1, player, null);
563
+					items = player.getInventory().getItemByItemId(id);
564
+					player.getInventory().equipItemAndRecord(items);
565
+					player.sendPacket(new ItemList(player, false));
566
+					player.setNewbieEquip(false);
567
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
568
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
569
+					player.sendPacket(html);
570
+				}
571
+			}
572
+		}
573
+		else if (params.startsWith("darkheavy"))
574
+		{
575
+			List<Integer> darkheavy = Arrays.asList(365, 388, 512, 5765, 5777, 924, 862, 893, 871, 902, 8185);
576
+			for (int id : darkheavy)
577
+			{
578
+				if (darkheavy.contains(id))
579
+				{
580
+					player.getInventory().addItem("Armors", id, 1, player, null);
581
+					items = player.getInventory().getItemByItemId(id);
582
+					player.getInventory().equipItemAndRecord(items);
583
+					player.sendPacket(new ItemList(player, false));
584
+					player.setNewbieEquip(false);
585
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
586
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
587
+					player.sendPacket(html);
588
+				}
589
+			}
590
+		}
591
+		else if (params.startsWith("nmh"))
592
+		{
593
+			List<Integer> NMH = Arrays.asList(374, 2418, 5771, 5783, 924, 862, 893, 871, 902, 8185);
594
+			for (int id : NMH)
595
+			{
596
+				if (NMH.contains(id))
597
+				{
598
+					player.getInventory().addItem("Armors", id, 1, player, null);
599
+					items = player.getInventory().getItemByItemId(id);
600
+					player.getInventory().equipItemAndRecord(items);
601
+					player.sendPacket(new ItemList(player, false));
602
+					player.setNewbieEquip(false);
603
+					NpcHtmlMessage html = new NpcHtmlMessage(1);
604
+					html.setFile("data/html/mods/newbie/weapons/weapons.htm");
605
+					player.sendPacket(html);
606
+				}
607
+			}
608
+		}
609
+		else if (params.startsWith("darkhealth"))
610
+		{
611
+			List<Integer> darkhealth = Arrays.asList(5648, 2498);
612
+			for (int id : darkhealth)
613
+			{
614
+				if (darkhealth.contains(id))
615
+				{
616
+					player.getInventory().addItem("Weapon", id, 1, player, null);
617
+					items = player.getInventory().getItemByItemId(id);
618
+					player.getInventory().equipItemAndRecord(items);
619
+					getEnchantEffect(player);
620
+					player.sendPacket(new ItemList(player, false));
621
+					player.setNewbieWeaponEquip(false);
622
+					onNewbieBuff(player);
623
+				}
624
+			}
625
+		}
626
+		else if (params.startsWith("darkcdmg"))
627
+		{
628
+			List<Integer> darkcdmg = Arrays.asList(5647, 2498);
629
+			for (int id : darkcdmg)
630
+			{
631
+				if (darkcdmg.contains(id))
632
+				{
633
+					player.getInventory().addItem("Weapon", id, 1, player, null);
634
+					items = player.getInventory().getItemByItemId(id);
635
+					player.getInventory().equipItemAndRecord(items);
636
+					getEnchantEffect(player);
637
+					player.sendPacket(new ItemList(player, false));
638
+					player.setNewbieWeaponEquip(false);
639
+					onNewbieBuff(player);
640
+				}
641
+			}
642
+		}
643
+		else if (params.startsWith("darkrfocus"))
644
+		{
645
+			List<Integer> darkrfocus = Arrays.asList(5649, 2498);
646
+			for (int id : darkrfocus)
647
+			{
648
+				if (darkrfocus.contains(id))
649
+				{
650
+					player.getInventory().addItem("Weapon", id, 1, player, null);
651
+					items = player.getInventory().getItemByItemId(id);
652
+					player.getInventory().equipItemAndRecord(items);
653
+					getEnchantEffect(player);
654
+					player.sendPacket(new ItemList(player, false));
655
+					player.setNewbieWeaponEquip(false);
656
+					onNewbieBuff(player);
657
+				}
658
+			}
659
+		}
660
+		else if (params.startsWith("dragonhealth"))
661
+		{
662
+			List<Integer> dragonhealth = Arrays.asList(5644);
663
+			for (int id : dragonhealth)
664
+			{
665
+				if (dragonhealth.contains(id))
666
+				{
667
+					player.getInventory().addItem("Weapon", id, 1, player, null);
668
+					items = player.getInventory().getItemByItemId(id);
669
+					player.getInventory().equipItemAndRecord(items);
670
+					getEnchantEffect(player);
671
+					player.sendPacket(new ItemList(player, false));
672
+					player.setNewbieWeaponEquip(false);
673
+					onNewbieBuff(player);
674
+				}
675
+			}
676
+		}
677
+		else if (params.startsWith("dragoncbleed"))
678
+		{
679
+			List<Integer> dragoncbleed = Arrays.asList(5645);
680
+			for (int id : dragoncbleed)
681
+			{
682
+				if (dragoncbleed.contains(id))
683
+				{
684
+					player.getInventory().addItem("Weapon", id, 1, player, null);
685
+					items = player.getInventory().getItemByItemId(id);
686
+					player.getInventory().equipItemAndRecord(items);
687
+					getEnchantEffect(player);
688
+					player.sendPacket(new ItemList(player, false));
689
+					player.setNewbieWeaponEquip(false);
690
+					onNewbieBuff(player);
691
+				}
692
+			}
693
+		}
694
+		else if (params.startsWith("dragoncdrain"))
695
+		{
696
+			List<Integer> dragoncdrain = Arrays.asList(5646);
697
+			for (int id : dragoncdrain)
698
+			{
699
+				if (dragoncdrain.contains(id))
700
+				{
701
+					player.getInventory().addItem("Weapon", id, 1, player, null);
702
+					items = player.getInventory().getItemByItemId(id);
703
+					player.getInventory().equipItemAndRecord(items);
704
+					getEnchantEffect(player);
705
+					player.sendPacket(new ItemList(player, false));
706
+					player.setNewbieWeaponEquip(false);
707
+					onNewbieBuff(player);
708
+				}
709
+			}
710
+		}
711
+		else if (params.startsWith("doomanger"))
712
+		{
713
+			List<Integer> doomanger = Arrays.asList(8136);
714
+			for (int id : doomanger)
715
+			{
716
+				if (doomanger.contains(id))
717
+				{
718
+					player.getInventory().addItem("Weapon", id, 1, player, null);
719
+					items = player.getInventory().getItemByItemId(id);
720
+					player.getInventory().equipItemAndRecord(items);
721
+					getEnchantEffect(player);
722
+					player.sendPacket(new ItemList(player, false));
723
+					player.setNewbieWeaponEquip(false);
724
+					onNewbieBuff(player);
725
+				}
726
+			}
727
+		}
728
+		else if (params.startsWith("doomhealth"))
729
+		{
730
+			List<Integer> doomhealth = Arrays.asList(8135);
731
+			for (int id : doomhealth)
732
+			{
733
+				if (doomhealth.contains(id))
734
+				{
735
+					player.getInventory().addItem("Weapon", id, 1, player, null);
736
+					items = player.getInventory().getItemByItemId(id);
737
+					player.getInventory().equipItemAndRecord(items);
738
+					getEnchantEffect(player);
739
+					player.sendPacket(new ItemList(player, false));
740
+					player.setNewbieWeaponEquip(false);
741
+					onNewbieBuff(player);
742
+				}
743
+			}
744
+		}
745
+		else if (params.startsWith("doomrhaste"))
746
+		{
747
+			List<Integer> doomrhaste = Arrays.asList(8137);
748
+			for (int id : doomrhaste)
749
+			{
750
+				if (doomrhaste.contains(id))
751
+				{
752
+					player.getInventory().addItem("Weapon", id, 1, player, null);
753
+					items = player.getInventory().getItemByItemId(id);
754
+					player.getInventory().equipItemAndRecord(items);
755
+					getEnchantEffect(player);
756
+					player.sendPacket(new ItemList(player, false));
757
+					player.setNewbieWeaponEquip(false);
758
+					onNewbieBuff(player);
759
+				}
760
+			}
761
+		}
762
+		else if (params.startsWith("sepacdamage"))
763
+		{
764
+			List<Integer> sepacdamage = Arrays.asList(5618);
765
+			for (int id : sepacdamage)
766
+			{
767
+				if (sepacdamage.contains(id))
768
+				{
769
+					player.getInventory().addItem("Weapon", id, 1, player, null);
770
+					items = player.getInventory().getItemByItemId(id);
771
+					player.getInventory().equipItemAndRecord(items);
772
+					getEnchantEffect(player);
773
+					player.sendPacket(new ItemList(player, false));
774
+					player.setNewbieWeaponEquip(false);
775
+					onNewbieBuff(player);
776
+				}
777
+			}
778
+		}
779
+		else if (params.startsWith("sepaguidance"))
780
+		{
781
+			List<Integer> sepaguidance = Arrays.asList(5617);
782
+			for (int id : sepaguidance)
783
+			{
784
+				if (sepaguidance.contains(id))
785
+				{
786
+					player.getInventory().addItem("Weapon", id, 1, player, null);
787
+					items = player.getInventory().getItemByItemId(id);
788
+					player.getInventory().equipItemAndRecord(items);
789
+					getEnchantEffect(player);
790
+					player.sendPacket(new ItemList(player, false));
791
+					player.setNewbieWeaponEquip(false);
792
+					onNewbieBuff(player);
793
+				}
794
+			}
795
+		}
796
+		else if (params.startsWith("separhaste"))
797
+		{
798
+			List<Integer> separhaste = Arrays.asList(5619);
799
+			for (int id : separhaste)
800
+			{
801
+				if (separhaste.contains(id))
802
+				{
803
+					player.getInventory().addItem("Weapon", id, 1, player, null);
804
+					items = player.getInventory().getItemByItemId(id);
805
+					player.getInventory().equipItemAndRecord(items);
806
+					getEnchantEffect(player);
807
+					player.sendPacket(new ItemList(player, false));
808
+					player.setNewbieWeaponEquip(false);
809
+					onNewbieBuff(player);
810
+				}
811
+			}
812
+		}
813
+		else if (params.startsWith("soulshot"))
814
+		{
815
+			List<Integer> soulshot = Arrays.asList(5611, 1344);
816
+			for (int id : soulshot)
817
+			{
818
+				if (soulshot.contains(id))
819
+				{
820
+					player.getInventory().addItem("Weapon", id, 1, player, null);
821
+					items = player.getInventory().getItemByItemId(id);
822
+					player.getInventory().equipItemAndRecord(items);
823
+					getEnchantEffect(player);
824
+					player.sendPacket(new ItemList(player, false));
825
+					player.setNewbieWeaponEquip(false);
826
+					onNewbieBuff(player);
827
+				}
828
+			}
829
+		}
830
+		else if (params.startsWith("soulpoison"))
831
+		{
832
+			List<Integer> soulpoison = Arrays.asList(5613, 1344);
833
+			for (int id : soulpoison)
834
+			{
835
+				if (soulpoison.contains(id))
836
+				{
837
+					player.getInventory().addItem("Weapon", id, 1, player, null);
838
+					items = player.getInventory().getItemByItemId(id);
839
+					player.getInventory().equipItemAndRecord(items);
840
+					getEnchantEffect(player);
841
+					player.sendPacket(new ItemList(player, false));
842
+					player.setNewbieWeaponEquip(false);
843
+					onNewbieBuff(player);
844
+				}
845
+			}
846
+		}
847
+		else if (params.startsWith("soulrecov"))
848
+		{
849
+			List<Integer> soulrecov = Arrays.asList(5612, 1344);
850
+			for (int id : soulrecov)
851
+			{
852
+				if (soulrecov.contains(id))
853
+				{
854
+					player.getInventory().addItem("Weapon", id, 1, player, null);
855
+					items = player.getInventory().getItemByItemId(id);
856
+					player.getInventory().equipItemAndRecord(items);
857
+					getEnchantEffect(player);
858
+					player.sendPacket(new ItemList(player, false));
859
+					player.setNewbieWeaponEquip(false);
860
+					onNewbieBuff(player);
861
+				}
862
+			}
863
+		}
864
+		else if (params.startsWith("grindergui"))
865
+		{
866
+			List<Integer> grindergui = Arrays.asList(5624);
867
+			for (int id : grindergui)
868
+			{
869
+				if (grindergui.contains(id))
870
+				{
871
+					player.getInventory().addItem("Weapon", id, 1, player, null);
872
+					items = player.getInventory().getItemByItemId(id);
873
+					player.getInventory().equipItemAndRecord(items);
874
+					getEnchantEffect(player);
875
+					player.sendPacket(new ItemList(player, false));
876
+					player.setNewbieWeaponEquip(false);
877
+					onNewbieBuff(player);
878
+				}
879
+			}
880
+		}
881
+		else if (params.startsWith("grinderhealth"))
882
+		{
883
+			List<Integer> grinderhealth = Arrays.asList(5625);
884
+			for (int id : grinderhealth)
885
+			{
886
+				if (grinderhealth.contains(id))
887
+				{
888
+					player.getInventory().addItem("Weapon", id, 1, player, null);
889
+					items = player.getInventory().getItemByItemId(id);
890
+					player.getInventory().equipItemAndRecord(items);
891
+					getEnchantEffect(player);
892
+					player.sendPacket(new ItemList(player, false));
893
+					player.setNewbieWeaponEquip(false);
894
+					onNewbieBuff(player);
895
+				}
896
+			}
897
+		}
898
+		else if (params.startsWith("grinderrevas"))
899
+		{
900
+			List<Integer> grinderrevas = Arrays.asList(5623);
901
+			for (int id : grinderrevas)
902
+			{
903
+				if (grinderrevas.contains(id))
904
+				{
905
+					player.getInventory().addItem("Weapon", id, 1, player, null);
906
+					items = player.getInventory().getItemByItemId(id);
907
+					player.getInventory().equipItemAndRecord(items);
908
+					getEnchantEffect(player);
909
+					player.sendPacket(new ItemList(player, false));
910
+					player.setNewbieWeaponEquip(false);
911
+					onNewbieBuff(player);
912
+				}
913
+			}
914
+		}
915
+		else if (params.startsWith("tallumguid"))
916
+		{
917
+			List<Integer> tallumguid = Arrays.asList(5632);
918
+			for (int id : tallumguid)
919
+			{
920
+				if (tallumguid.contains(id))
921
+				{
922
+					player.getInventory().addItem("Weapon", id, 1, player, null);
923
+					items = player.getInventory().getItemByItemId(id);
924
+					player.getInventory().equipItemAndRecord(items);
925
+					getEnchantEffect(player);
926
+					player.sendPacket(new ItemList(player, false));
927
+					player.setNewbieWeaponEquip(false);
928
+					onNewbieBuff(player);
929
+				}
930
+			}
931
+		}
932
+		else if (params.startsWith("tallumhealth"))
933
+		{
934
+			List<Integer> tallumhealth = Arrays.asList(5633);
935
+			for (int id : tallumhealth)
936
+			{
937
+				if (tallumhealth.contains(id))
938
+				{
939
+					player.getInventory().addItem("Weapon", id, 1, player, null);
940
+					items = player.getInventory().getItemByItemId(id);
941
+					player.getInventory().equipItemAndRecord(items);
942
+					getEnchantEffect(player);
943
+					player.sendPacket(new ItemList(player, false));
944
+					player.setNewbieWeaponEquip(false);
945
+					onNewbieBuff(player);
946
+				}
947
+			}
948
+		}
949
+		else if (params.startsWith("tallumblow"))
950
+		{
951
+			List<Integer> tallumblow = Arrays.asList(5634);
952
+			for (int id : tallumblow)
953
+			{
954
+				if (tallumblow.contains(id))
955
+				{
956
+					player.getInventory().addItem("Weapon", id, 1, player, null);
957
+					items = player.getInventory().getItemByItemId(id);
958
+					player.getInventory().equipItemAndRecord(items);
959
+					getEnchantEffect(player);
960
+					player.sendPacket(new ItemList(player, false));
961
+					player.setNewbieWeaponEquip(false);
962
+					onNewbieBuff(player);
963
+				}
964
+			}
965
+		}
966
+		else if (params.startsWith("somacume"))
967
+		{
968
+			List<Integer> somacume = Arrays.asList(5643, 2498);
969
+			for (int id : somacume)
970
+			{
971
+				if (somacume.contains(id))
972
+				{
973
+					player.getInventory().addItem("Weapon", id, 1, player, null);
974
+					items = player.getInventory().getItemByItemId(id);
975
+					player.getInventory().equipItemAndRecord(items);
976
+					getEnchantEffect(player);
977
+					player.sendPacket(new ItemList(player, false));
978
+					player.setNewbieWeaponEquip(false);
979
+					onNewbieBuff(player);
980
+				}
981
+			}
982
+		}
983
+		else if (params.startsWith("sompower"))
984
+		{
985
+			List<Integer> sompower = Arrays.asList(5641, 2498);
986
+			for (int id : sompower)
987
+			{
988
+				if (sompower.contains(id))
989
+				{
990
+					player.getInventory().addItem("Weapon", id, 1, player, null);
991
+					items = player.getInventory().getItemByItemId(id);
992
+					player.getInventory().equipItemAndRecord(items);
993
+					getEnchantEffect(player);
994
+					player.sendPacket(new ItemList(player, false));
995
+					player.setNewbieWeaponEquip(false);
996
+					onNewbieBuff(player);
997
+				}
998
+			}
999
+		}
1000
+		else if (params.startsWith("somsilence"))
1001
+		{
1002
+			List<Integer> somsilence = Arrays.asList(5642, 2498);
1003
+			for (int id : somsilence)
1004
+			{
1005
+				if (somsilence.contains(id))
1006
+				{
1007
+					player.getInventory().addItem("Weapon", id, 1, player, null);
1008
+					items = player.getInventory().getItemByItemId(id);
1009
+					player.getInventory().equipItemAndRecord(items);
1010
+					getEnchantEffect(player);
1011
+					player.sendPacket(new ItemList(player, false));
1012
+					player.setNewbieWeaponEquip(false);
1013
+					onNewbieBuff(player);
1014
+				}
1015
+			}
1016
+		}
1017
+		else if (params.startsWith("elysiananger"))
1018
+		{
1019
+			List<Integer> elysiananger = Arrays.asList(5603, 2498);
1020
+			for (int id : elysiananger)
1021
+			{
1022
+				if (elysiananger.contains(id))
1023
+				{
1024
+					player.getInventory().addItem("Weapon", id, 1, player, null);
1025
+					items = player.getInventory().getItemByItemId(id);
1026
+					player.getInventory().equipItemAndRecord(items);
1027
+					getEnchantEffect(player);
1028
+					player.sendPacket(new ItemList(player, false));
1029
+					player.setNewbieWeaponEquip(false);
1030
+					onNewbieBuff(player);
1031
+				}
1032
+			}
1033
+		}
1034
+		else if (params.startsWith("elysiacdrain"))
1035
+		{
1036
+			List<Integer> elysiacdrain = Arrays.asList(5604, 2498);
1037
+			for (int id : elysiacdrain)
1038
+			{
1039
+				if (elysiacdrain.contains(id))
1040
+				{
1041
+					player.getInventory().addItem("Weapon", id, 1, player, null);
1042
+					items = player.getInventory().getItemByItemId(id);
1043
+					player.getInventory().equipItemAndRecord(items);
1044
+					getEnchantEffect(player);
1045
+					player.sendPacket(new ItemList(player, false));
1046
+					player.setNewbieWeaponEquip(false);
1047
+					onNewbieBuff(player);
1048
+				}
1049
+			}
1050
+		}
1051
+		else if (params.startsWith("elysiahealth"))
1052
+		{
1053
+			List<Integer> elysiahealth = Arrays.asList(5602, 2498);
1054
+			for (int id : elysiahealth)
1055
+			{
1056
+				if (elysiahealth.contains(id))
1057
+				{
1058
+					player.getInventory().addItem("Weapon", id, 1, player, null);
1059
+					items = player.getInventory().getItemByItemId(id);
1060
+					player.getInventory().equipItemAndRecord(items);
1061
+					getEnchantEffect(player);
1062
+					player.sendPacket(new ItemList(player, false));
1063
+					player.setNewbieWeaponEquip(false);
1064
+					onNewbieBuff(player);
1065
+				}
1066
+			}
1067
+		}
1068
+		else if (params.startsWith("damascusdual"))
1069
+		{
1070
+			List<Integer> damascusdual = Arrays.asList(5706);
1071
+			for (int id : damascusdual)
1072
+			{
1073
+				if (damascusdual.contains(id))
1074
+				{
1075
+					player.getInventory().addItem("Weapon", id, 1, player, null);
1076
+					items = player.getInventory().getItemByItemId(id);
1077
+					player.getInventory().equipItemAndRecord(items);
1078
+					getEnchantEffect(player);
1079
+					player.sendPacket(new ItemList(player, false));
1080
+					player.setNewbieWeaponEquip(false);
1081
+					onNewbieBuff(player);
1082
+				}
1083
+			}
1084
+		}
1085
+		else if (params.startsWith("teleport"))
1086
+		{
1087
+			ThreadPool.schedule(() -> player.sendPacket(new ExShowScreenMessage(player.getName() + " you are ready to play!", 5000)), 1000);
1088
+			ThreadPool.schedule(() -> NewbieSystemManager.onNewbieTeleport(player), 5000);			
1089
+		}
1090
+	}
1091
+	
1092
+	public void getEnchantEffect(Player player)
1093
+	{
1094
+		final ItemInstance wpn = player.getActiveWeaponInstance();
1095
+		if (wpn == null)
1096
+			return;
1097
+		wpn.setEnchantLevel(4);
1098
+	}
1099
+	
1100
+	public static void onNewbieBuff(Player player)
1101
+	{
1102
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
1103
+		for (int id : (player.isMageClass() || player.getClassId() == ClassId.DOMINATOR || player.getClassId() == ClassId.DOOMCRYER) ? Config.NEWBIE_SYSTEM_MAGE_BUFFS : Config.NEWBIE_SYSTEM_FIGHTER_BUFFS)
1104
+		{
1105
+			L2Skill buff = SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id));
1106
+			buff.getEffects(player, player);
1107
+			player.getStatus().setHp(player.getStatus().getMaxHp());
1108
+			player.getStatus().setCp(player.getStatus().getMaxCp());
1109
+			player.getStatus().setMp(player.getStatus().getMaxMp());
1110
+			player.broadcastPacket(new SocialAction(player, 9));
1111
+		}
1112
+		html.setFile("data/html/mods/newbie/teleport.htm");
1113
+		player.sendPacket(html);
1114
+	}
1115
+	
1116
+	public static void onEnterNewbieTeleport(Player activeChar)
1117
+	{
1118
+		activeChar.setIsParalyzed(true);
1119
+		activeChar.getAppearance().setVisible(false);
1120
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
1121
+		html.setFile("data/html/mods/newbie/teleport.htm");
1122
+		activeChar.sendPacket(html);
1123
+	}
1124
+	
1125
+	public static void onNewbieTeleport(Player player)
1126
+	{
1127
+		NpcHtmlMessage html = new NpcHtmlMessage(1);
1128
+		player.getAppearance().setVisible(true);
1129
+		player.setIsParalyzed(false);
1130
+		player.setInvul(false);
1131
+		player.teleportTo(Config.NEWBIE_SYSTEM_TELE_TO_LOCATION[0], Config.NEWBIE_SYSTEM_TELE_TO_LOCATION[1], Config.NEWBIE_SYSTEM_TELE_TO_LOCATION[2], 40);
1132
+		player.setNewbieTeleport(false);
1133
+		ThreadPool.schedule(() ->
1134
+		{
1135
+			player.sendPacket(new CreatureSay(0, SayType.PARTYROOM_COMMANDER, player.getName(), "welcome to RUSaCis server!"));
1136
+			html.setFile("data/html/mods/newbie/servnews.htm");
1137
+			player.sendPacket(html);
1138
+		}, 1000 * 2);
1139
+	}
1140
+	
1141
+	public static final NewbieSystemManager getInstance()
1142
+	{
1143
+		return SingletonHolder.INSTANCE;
1144
+	}
1145
+	
1146
+	private static class SingletonHolder
1147
+	{
1148
+		protected static final NewbieSystemManager INSTANCE = new NewbieSystemManager();
1149
+	}
1150
+}
1151
\ No newline at end of file
1152
Index: config/rus_acis.properties
1153
===================================================================
1154
--- config/rus_acis.properties	(revision 20)
1155
+++ config/rus_acis.properties	(working copy)
1156
@@ -237,6 +237,23 @@
1157
 BuyPremiumDays28Price = 28
1158
 
1159
 #=============================================================
1160
+#                          Newbie System
1161
+#=============================================================
1162
+# Если True система новичков будет включена
1163
+NewbieSystemEnabled = True
1164
+
1165
+# Значение 81 для 80 уровня и 100%
1166
+NewbieSystemSetLevel = 81
1167
+
1168
+# Набор баффов истребителя
1169
+NewbieSystemFighterSet = 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
1170
+# Набор баффов Мага
1171
+NewbieSystemMageSet = 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
1172
+
1173
+# Телепорт в локацию
1174
+NewbieSystemTeleToLocation = 83480,148614,-3407
1175
+
1176
+#=============================================================
1177
 #                        DressMe system
1178
 #=============================================================
1179
 AllowDressMeSystem = True
1180
Index: java/net/sf/l2j/gameserver/network/GameClient.java
1181
===================================================================
1182
--- java/net/sf/l2j/gameserver/network/GameClient.java	(revision 20)
1183
+++ java/net/sf/l2j/gameserver/network/GameClient.java	(working copy)
1184
@@ -65,6 +65,7 @@
1185
 	private static final String DELETE_CHAR_ITEMS = "DELETE FROM items WHERE owner_id=?";
1186
 	private static final String DELETE_CHAR_RBP = "DELETE FROM character_raid_points WHERE char_id=?";
1187
 	private static final String DELETE_CHAR = "DELETE FROM characters WHERE obj_Id=?";
1188
+	private static final String DELETE_CHAR_CACHE = "DELETE FROM character_data WHERE charId=?";
1189
 	
1190
 	public enum GameClientState
1191
 	{
1192
@@ -572,6 +573,12 @@
1193
 				ps.setInt(1, objectId);
1194
 				ps.execute();
1195
 			}
1196
+			
1197
+			try (PreparedStatement ps = con.prepareStatement(DELETE_CHAR_CACHE))
1198
+			{
1199
+				ps.setInt(1, objectId);
1200
+				ps.execute();
1201
+			}
1202
 		}
1203
 		catch (Exception e)
1204
 		{
1205
Index: java/net/sf/l2j/Config.java
1206
===================================================================
1207
--- java/net/sf/l2j/Config.java	(revision 20)
1208
+++ java/net/sf/l2j/Config.java	(working copy)
1209
@@ -781,6 +781,15 @@
1210
 	public static int BUY_PREMIUM_DAYS_28;
1211
 	public static int BUY_PREMIUM_DAYS_28_PRICE;
1212
 	
1213
+	/** Newbie System */
1214
+	public static boolean NEWBIE_SYSTEM_ENABLED;
1215
+	public static int NEWBIE_SYSTEM_SET_LVL;
1216
+	public static String NEWBIE_SYSTEM_MAGE_SET;
1217
+	public static int[] NEWBIE_SYSTEM_MAGE_BUFFS;
1218
+	public static String NEWBIE_SYSTEM_FIGHTER_SET;
1219
+	public static int[] NEWBIE_SYSTEM_FIGHTER_BUFFS;	
1220
+	public static int[] NEWBIE_SYSTEM_TELE_TO_LOCATION = new int[3];
1221
+	
1222
 	public static boolean CABAL_BUFFER;
1223
 	public static int[] NO_DROP_ITEMS;
1224
 	
1225
@@ -1654,6 +1663,27 @@
1226
 		BUY_PREMIUM_DAYS_28 = rusacis.getProperty("BuyPremiumDays28", 28);
1227
 		BUY_PREMIUM_DAYS_28_PRICE = rusacis.getProperty("BuyPremiumDays28Price", 28);
1228
 		
1229
+		NEWBIE_SYSTEM_ENABLED = rusacis.getProperty("NewbieSystemEnabled", true);
1230
+		NEWBIE_SYSTEM_SET_LVL = Integer.parseInt(rusacis.getProperty("NewbieSystemSetLevel", "81"));
1231
+		NEWBIE_SYSTEM_FIGHTER_SET = rusacis.getProperty("NewbieSystemFighterSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
1232
+		NEWBIE_SYSTEM_MAGE_SET = rusacis.getProperty("NewbieSystemMageSet", "2375,3500,3501,3502,4422,4423,4424,4425,6648,6649,6650");
1233
+		
1234
+		String[] NewFighterList = NEWBIE_SYSTEM_FIGHTER_SET.split(",");
1235
+		NEWBIE_SYSTEM_FIGHTER_BUFFS = new int[NewFighterList.length];
1236
+		for (int i = 0; i < NewFighterList.length; i++)
1237
+			NEWBIE_SYSTEM_FIGHTER_BUFFS[i] = Integer.parseInt(NewFighterList[i]);
1238
+		
1239
+		String[] NewMageList = NEWBIE_SYSTEM_MAGE_SET.split(",");
1240
+		NEWBIE_SYSTEM_MAGE_BUFFS = new int[NewMageList.length];
1241
+		for (int i = 0; i < NewMageList.length; i++)
1242
+			NEWBIE_SYSTEM_MAGE_BUFFS[i] = Integer.parseInt(NewMageList[i]);
1243
+		
1244
+		String[] TelepropertySplit = rusacis.getProperty("NewbieSystemTeleToLocation", "0,0,0").split(",");
1245
+
1246
+		NEWBIE_SYSTEM_TELE_TO_LOCATION[0] = Integer.parseInt(TelepropertySplit[0]);
1247
+		NEWBIE_SYSTEM_TELE_TO_LOCATION[1] = Integer.parseInt(TelepropertySplit[1]);
1248
+		NEWBIE_SYSTEM_TELE_TO_LOCATION[2] = Integer.parseInt(TelepropertySplit[2]);
1249
+		
1250
 		CABAL_BUFFER = rusacis.getProperty("CabalBuffer", false);
1251
 		NO_DROP_ITEMS = rusacis.getProperty("NoDropItems", new int[0]);
1252
Index: java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
1253
===================================================================
1254
--- java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 22)
1255
+++ java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
1256
@@ -12,7 +12,6 @@
1257
 import net.sf.l2j.gameserver.data.manager.DimensionalRiftManager;
1258
 import net.sf.l2j.gameserver.data.manager.PetitionManager;
1259
 import net.sf.l2j.gameserver.data.manager.SevenSignsManager;
1260
+import net.sf.l2j.gameserver.data.manager.NewbieSystemManager;
1261
 import net.sf.l2j.gameserver.data.xml.AdminData;
1262
 import net.sf.l2j.gameserver.data.xml.AnnouncementData;
1263
 import net.sf.l2j.gameserver.data.xml.MapRegionData.TeleportType;
1264
@@ -286,19 +285,6 @@
1265
 		
1266
 		player.onPlayerEnter();
1267
 		
1268
+		// Starting Newbie System
1269
+		if (Config.NEWBIE_SYSTEM_ENABLED)
1270
+		{
1271
+			if (player.isNewbieChar())
1272
+				NewbieSystemManager.onEnterNewChar(player);
1273
+			else if (player.isNewbieEquip())
1274
+				NewbieSystemManager.onEnterEquip(player);		
1275
+			else if (player.isNewbieWeaponEquip())
1276
+				NewbieSystemManager.onEnterWepEquip(player);		
1277
+			else if (player.isNewbieTeleport())
1278
+				NewbieSystemManager.onEnterNewbieTeleport(player);
1279
+		}
1280
+		
1281
 		activeSkin(player);
1282
 		
1283
 		sendPacket(new SkillCoolTime(player));
1284
 Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
1285
===================================================================
1286
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java	(revision 22)
1287
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java	(working copy)
1288
@@ -13,7 +13,6 @@
1289
 import net.sf.l2j.gameserver.communitybbs.CommunityBoard;
1290
 import net.sf.l2j.gameserver.data.manager.BotsPreventionManager;
1291
 import net.sf.l2j.gameserver.data.manager.HeroManager;
1292
+import net.sf.l2j.gameserver.data.manager.NewbieSystemManager;
1293
 import net.sf.l2j.gameserver.data.xml.AdminData;
1294
 import net.sf.l2j.gameserver.data.xml.DressMeData;
1295
 import net.sf.l2j.gameserver.data.xml.ItemData;
1296
@@ -116,14 +115,6 @@
1297
 			html.disableValidation();
1298
 			player.sendPacket(html);
1299
 		}
1300
+		else if (_command.startsWith("mageclass"))
1301
+			NewbieSystemManager.getInstance().MageClasses(_command, player);
1302
+		else if (_command.startsWith("fighterclass"))
1303
+			NewbieSystemManager.getInstance().FighterClasses(_command, player);
1304
+		else if (_command.startsWith("lightclass"))
1305
+			NewbieSystemManager.getInstance().LightClasses(_command, player);
1306
+		else if (_command.startsWith("class"))
1307
+			NewbieSystemManager.getInstance().Classes(_command, player);
1308
 		else if (_command.startsWith("npc_"))
1309
 		{
1310
 			if (!player.validateBypass(_command))
1311