SHOW:
|
|
- or go back to the newest paste.
1 | diff --git a/java/net/sf/l2j/Config.java b/java/net/sf/l2j/Config.java | |
2 | index e0405b0..4a44fb5 100644 | |
3 | --- a/java/net/sf/l2j/Config.java | |
4 | +++ b/java/net/sf/l2j/Config.java | |
5 | @@ -551,7 +551,7 @@ | |
6 | public static boolean NO_SPAWNS; | |
7 | public static boolean DEVELOPER; | |
8 | public static boolean PACKET_HANDLER_DEBUG; | |
9 | - | |
10 | + public static boolean ALT_OLY_END_ANNOUNCE; | |
11 | /** Deadlock Detector */ | |
12 | public static boolean DEADLOCK_DETECTOR; | |
13 | public static int DEADLOCK_CHECK_INTERVAL; | |
14 | @@ -952,6 +952,7 @@ | |
15 | private static final void loadSpecialMods() | |
16 | { | |
17 | final ExProperties Special = initProperties(SPECIALMODS); | |
18 | + ALT_OLY_END_ANNOUNCE = Boolean.parseBoolean(Special.getProperty("AltOlyEndAnnounce", "False")); | |
19 | ENABLE_ALTERNATIVE_SKILL_DURATION = Boolean.parseBoolean(Special.getProperty("EnableModifySkillDuration", "false")); | |
20 | if(ENABLE_ALTERNATIVE_SKILL_DURATION) | |
21 | { | |
22 | diff --git a/java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java b/java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java | |
23 | index 96cdf65..077081e 100644 | |
24 | --- a/java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java | |
25 | +++ b/java/net/sf/l2j/gameserver/model/olympiad/Olympiad.java | |
26 | @@ -27,6 +27,7 @@ | |
27 | import net.sf.l2j.gameserver.model.actor.instance.OlympiadManagerNpc; | |
28 | import net.sf.l2j.gameserver.model.zone.type.OlympiadStadiumZone; | |
29 | import net.sf.l2j.gameserver.network.SystemMessageId; | |
30 | +import net.sf.l2j.gameserver.network.serverpackets.CreatureSay; | |
31 | import net.sf.l2j.gameserver.network.serverpackets.NpcSay; | |
32 | import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; | |
33 | ||
34 | @@ -64,10 +65,10 @@ | |
35 | public static final String COMP_LOST = "competitions_lost"; | |
36 | public static final String COMP_DRAWN = "competitions_drawn"; | |
37 | ||
38 | - protected long _olympiadEnd; | |
39 | - protected long _validationEnd; | |
40 | + protected static long _olympiadEnd; | |
41 | + protected static long _validationEnd; | |
42 | ||
43 | - protected OlympiadState _period; | |
44 | + protected static OlympiadState _period; | |
45 | protected long _nextWeeklyChange; | |
46 | protected int _currentCycle; | |
47 | private long _compEnd; | |
48 | @@ -389,7 +390,7 @@ | |
49 | }, getMillisToCompBegin()); | |
50 | } | |
51 | ||
52 | - private long getMillisToOlympiadEnd() | |
53 | + public static long getMillisToOlympiadEnd() | |
54 | { | |
55 | return (_olympiadEnd - Calendar.getInstance().getTimeInMillis()); | |
56 | } | |
57 | @@ -402,14 +403,35 @@ | |
58 | _scheduledOlympiadEnd = ThreadPool.schedule(new OlympiadEndTask(), 0); | |
59 | } | |
60 | ||
61 | - protected long getMillisToValidationEnd() | |
62 | + protected static long getMillisToValidationEnd() | |
63 | { | |
64 | if (_validationEnd > Calendar.getInstance().getTimeInMillis()) | |
65 | return (_validationEnd - Calendar.getInstance().getTimeInMillis()); | |
66 | ||
67 | return 10L; | |
68 | } | |
69 | - | |
70 | + public static void olympiadEnd(Player player) | |
71 | + { | |
72 | + long milliToEnd; | |
73 | + if(_period == OlympiadState.COMPETITION) | |
74 | + { | |
75 | + milliToEnd = getMillisToOlympiadEnd(); | |
76 | + } | |
77 | + else | |
78 | + { | |
79 | + milliToEnd = getMillisToValidationEnd(); | |
80 | + } | |
81 | + | |
82 | + double numSecs = milliToEnd / 1000 % 60; | |
83 | + double countDown = (milliToEnd / 1000 - numSecs) / 60; | |
84 | + int numMins = (int) Math.floor(countDown % 60); | |
85 | + countDown = (countDown - numMins) / 60; | |
86 | + int numHours = (int) Math.floor(countDown % 24); | |
87 | + int numDays = (int) Math.floor((countDown - numHours) / 24); | |
88 | + | |
89 | + CreatureSay cs = new CreatureSay(0, SayType.PARTY, "Announcements", "Olympiad period ends in " + numDays + " days, " + numHours + " hours and " + numMins + " mins."); | |
90 | + player.sendPacket(cs); | |
91 | + } | |
92 | public boolean isOlympiadEnd() | |
93 | { | |
94 | return _period == OlympiadState.VALIDATION; | |
95 | diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java b/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java | |
96 | index 48ed287..d0a9768 100644 | |
97 | --- a/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java | |
98 | +++ b/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java | |
99 | @@ -230,6 +230,11 @@ | |
100 | player.sendPacket(SevenSignsManager.getInstance().getCurrentPeriod().getMessageId()); | |
101 | AnnouncementData.getInstance().showAnnouncements(player, false); | |
102 | ||
103 | + if (Config.ALT_OLY_END_ANNOUNCE) | |
104 | + { | |
105 | + Olympiad.olympiadEnd(player); | |
106 | + } | |
107 | + | |
108 | // if player is DE, check for shadow sense skill at night | |
109 | if (player.getRace() == ClassRace.DARK_ELF && player.hasSkill(L2Skill.SKILL_SHADOW_SENSE)) | |
110 | player.sendPacket(SystemMessage.getSystemMessage((GameTimeTaskManager.getInstance().isNight()) ? SystemMessageId.NIGHT_S1_EFFECT_APPLIES : SystemMessageId.DAY_S1_EFFECT_DISAPPEARS).addSkillName(L2Skill.SKILL_SHADOW_SENSE)); | |
111 | ||
112 | ||
113 | Parte config. | |
114 | ||
115 | +#===================================================== | |
116 | +# Annuncie Time Olympiad in Login Server | |
117 | +#===================================================== | |
118 | +# Announce olympiad end on enter world. | |
119 | +# Default: False | |
120 | +AltOlyEndAnnounce = True | |
121 |