|
Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:Русификация имен городов при анонсе маммонов |
Ссылки сообщества |
Изображения и альбомы |
Пользователи |
К странице... |
Опции темы |
04.09.2012, 14:27 | #11 |
ZG troll squad
|
Re: Русские имена городов при анонсе
Появляется около DMZ? Ето че такое?
|
04.09.2012, 14:56 | #12 |
Олдфаг
Регистрация: 05.03.2009
Адрес: Россия, Краснодар
Возраст: 33
Сообщений: 4,690
Отблагодарили 4,116 раз(а)
Рейтинг мнений:
63
|
Re: Русские имена городов при анонсе
Названия хранятся в 'restart_points.xml'. Как появляются объявления о местонахождении маммонов: через админку/коммандой или автоматом?
Fortuna - non penis, in manus non recipe. |
04.09.2012, 15:17 | #13 |
Пользователь
|
Re: Русские имена городов при анонсе
Автомат в конфиг только выставляешь анонсировать или нет
Добавлено через 4 минуты Нашел в рестарт, дальше буду уже сам соображать! Спасибо за помощь! Последний раз редактировалось L2sidia; 04.09.2012 в 15:21. Причина: Добавлено сообщение |
04.09.2012, 15:41 | #15 |
Пользователь
|
Re: Русские имена городов при анонсе
Один вопрос русские название система примет? для примера кусок кода
restart_points:Свернуть ↑
Свернуть ↑Развернуть ↓
Код:
<restart_area> <polygon> <coords loc="1367 79808 -4245 -3245"/> <coords loc="2153 88057 -4245 -3245"/> <coords loc="2111 98621 -4245 -3245"/> <coords loc="-453 98621 -4245 -3245"/> <coords loc="-458 78212 -4245 -3245"/> </polygon> <restart race="elf" loc="[DMZ]"/> <restart race="human" loc="[DMZ]"/> <restart race="orc" loc="[DMZ]"/> <restart race="dwarf" loc="[DMZ]"/> <restart race="darkelf" loc="[DMZ]"/> <restart race="kamael" loc="[DMZ]"/> </restart_area> |
04.09.2012, 15:42 | #16 |
Изгнанные
|
Re: Русские имена городов при анонсе
Про анонс, как сделать так что если например в городе любого нпц ударили, в анонс писало бы "Гиран - Город атакован силами противника" ?
|
Time of Gods |
Посмотреть профиль |
Найти ещё сообщения от Time of Gods |
04.09.2012, 16:30 | #17 |
Пользователь
|
Re: Русские имена городов при анонсе
В рестарт поинтс поменял названия но все осталось по прежнему!
|
04.09.2012, 16:33 | #18 |
Супергерой
|
Re: Русские имена городов при анонсе
А посмотреть какие параметры передаются в аннонсы вера не позволяет?
|
[STIGMATED] |
Посмотреть профиль |
Найти ещё сообщения от [STIGMATED] |
04.09.2012, 16:44 | #19 |
Олдфаг
Регистрация: 05.03.2009
Адрес: Россия, Краснодар
Возраст: 33
Сообщений: 4,690
Отблагодарили 4,116 раз(а)
Рейтинг мнений:
63
|
Re: Русские имена городов при анонсе
L2sidia, скиньте Ваш файл 'AutoSpawnManager.java'.
Fortuna - non penis, in manus non recipe. |
04.09.2012, 16:45 | #20 |
Пользователь
|
Re: Русские имена городов при анонсе
[STIGMATED], извините за мою глупость но я не силен ещё в Java и как говорится смотрю в книгу вижу сами знаете что!
В ядре сборки я нашел где функция анонса идет но куда она направляет не смог понять! Код приведу ниже.. SevenSigns.class:Свернуть ↑
Свернуть ↑Развернуть ↓
Код:
// Decompiled by DJ v3.10.10.93 Copyright 2007 Atanas Neshkov Date: 04.09.2012 16:43:27 // Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version! // Decompiler options: packimports(3) // Source File Name: SevenSigns.java package l2m.gameserver.model.entity; import java.sql.*; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ScheduledFuture; import l2m.commons.dbutils.DbUtils; import l2m.commons.listener.Listener; import l2m.commons.listener.ListenerList; import l2m.commons.threading.RunnableImpl; import l2m.gameserver.*; import l2m.gameserver.cache.Msg; import l2m.gameserver.database.DatabaseFactory; import l2m.gameserver.listener.GameListener; import l2m.gameserver.listener.game.OnSSPeriodListener; import l2m.gameserver.listener.game.OnStartListener; import l2m.gameserver.managers.AutoSpawnManager; import l2m.gameserver.managers.RaidBossSpawnManager; import l2m.gameserver.model.GameObjectsStorage; import l2m.gameserver.model.Player; import l2m.gameserver.model.entity.SevenSignsFestival.SevenSignsFestival; import l2m.gameserver.network.serverpackets.SSQInfo; import l2m.gameserver.network.serverpackets.SystemMessage; import l2m.gameserver.templates.StatsSet; import l2m.gameserver.utils.Util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class SevenSigns { public class SevenSignsPeriodChange extends RunnableImpl { public void runImpl() throws Exception { _log.info((new StringBuilder()).append("SevenSignsPeriodChange: old=").append(_activePeriod).toString()); int periodEnded = _activePeriod; _activePeriod++; switch(periodEnded) { default: break; case 0: // '\0' sendMessageToAll(1210); RaidBossSpawnManager.getInstance().distributeRewards(); break; case 1: // '\001' sendMessageToAll(1211); int compWinner = getCabalHighestScore(); calcNewSealOwners(); if(compWinner == 1) sendMessageToAll(1240); else sendMessageToAll(1241); _previousWinner = compWinner; break; case 2: // '\002' SevenSignsFestival.getInstance().distribAccumulatedBonus(); SevenSignsFestival.getInstance().rewardHighestRanked(); initializeSeals(); RaidBossSpawnManager.getInstance().distributeRewards(); sendMessageToAll(1218); _log.info((new StringBuilder()).append("SevenSigns: The ").append(SevenSigns.getCabalName(_previousWinner)).append(" have won the competition with ").append(getCurrentScore(_previousWinner)).append(" points!").toString()); break; case 3: // '\003' _activePeriod = 0; sendMessageToAll(1219); resetPlayerData(); resetSeals(); _dawnStoneScore = 0L; _duskStoneScore = 0L; _dawnFestivalScore = 0L; _duskFestivalScore = 0L; _currentCycle++; SevenSignsFestival.getInstance().resetFestivalData(false); break; } saveSevenSignsData(0, true); _log.info((new StringBuilder()).append("SevenSignsPeriodChange: new=").append(_activePeriod).toString()); try { _log.info("SevenSigns: Change Catacomb spawn..."); getListenerEngine().onPeriodChange(); SSQInfo ss = new SSQInfo(); Player player; for(Iterator i$ = GameObjectsStorage.getAllPlayersForIterate().iterator(); i$.hasNext(); player.sendPacket(ss)) player = (Player)i$.next(); _log.info("SevenSigns: Spawning NPCs..."); spawnSevenSignsNPC(); _log.info((new StringBuilder()).append("SevenSigns: The ").append(getCurrentPeriodName()).append(" period has begun!").toString()); _log.info("SevenSigns: Calculating next period change time..."); setCalendarForNextPeriodChange(); _log.info((new StringBuilder()).append("SevenSignsPeriodChange: time to next change=").append(Util.formatTime((int)(getMilliToPeriodChange() / 1000L))).toString()); SevenSignsPeriodChange sspc = new SevenSignsPeriodChange(); _periodChange = ThreadPoolManager.getInstance().schedule(sspc, getMilliToPeriodChange()); } catch(Exception e) { _log.error("", e); } } final SevenSigns this$0; public SevenSignsPeriodChange() { this$0 = SevenSigns.this; super(); } } public class SevenSignsAnnounce extends RunnableImpl { public void runImpl() throws Exception { Player player; for(Iterator i$ = GameObjectsStorage.getAllPlayersForIterate().iterator(); i$.hasNext(); sendCurrentPeriodMsg(player)) player = (Player)i$.next(); ThreadPoolManager.getInstance().schedule(new SevenSignsAnnounce(), (long)Config.SS_ANNOUNCE_PERIOD * 1000L * 60L); } final SevenSigns this$0; public SevenSignsAnnounce() { this$0 = SevenSigns.this; super(); } } protected class SSListenerList extends ListenerList { public void onPeriodChange() { int mode = 0; if(SevenSigns.getInstance().getCurrentPeriod() == 3) mode = SevenSigns.getInstance().getCabalHighestScore(); Iterator i$ = getListeners().iterator(); do { if(!i$.hasNext()) break; Listener listener = (Listener)i$.next(); if(listener instanceof OnSSPeriodListener) ((OnSSPeriodListener)listener).onPeriodChange(mode); } while(true); } final SevenSigns this$0; protected SSListenerList() { this$0 = SevenSigns.this; super(); } } private class OnStartListenerImpl implements OnStartListener { public void onStart() { getListenerEngine().onPeriodChange(); } final SevenSigns this$0; private OnStartListenerImpl() { this$0 = SevenSigns.this; super(); } } public SevenSigns() { _listenerList = new SSListenerList(); GameServer.getInstance().addListener(new OnStartListenerImpl()); _signsPlayerData = new ConcurrentHashMap(); _signsSealOwners = new ConcurrentHashMap(); _signsDuskSealTotals = new ConcurrentHashMap(); _signsDawnSealTotals = new ConcurrentHashMap(); try { restoreSevenSignsData(); } catch(Exception e) { _log.error((new StringBuilder()).append("SevenSigns: Failed to load configuration: ").append(e).toString()); _log.error("", e); } _log.info((new StringBuilder()).append("SevenSigns: Currently in the ").append(getCurrentPeriodName()).append(" period!").toString()); initializeSeals(); if(isSealValidationPeriod()) { if(getCabalHighestScore() == 0) _log.info("SevenSigns: The Competition last week ended with a tie."); else _log.info((new StringBuilder()).append("SevenSigns: The ").append(getCabalName(getCabalHighestScore())).append(" were victorious last week.").toString()); } else if(getCabalHighestScore() == 0) _log.info("SevenSigns: The Competition this week, if the trend continue, will end with a tie."); else _log.info((new StringBuilder()).append("SevenSigns: The ").append(getCabalName(getCabalHighestScore())).append(" are in the lead this week.").toString()); int numMins = 0; int numHours = 0; int numDays = 0; setCalendarForNextPeriodChange(); long milliToChange = getMilliToPeriodChange(); if(milliToChange < 10L) milliToChange = 10L; _periodChange = ThreadPoolManager.getInstance().schedule(new SevenSignsPeriodChange(), milliToChange); double numSecs = (milliToChange / 1000L) % 60L; double countDown = ((double)(milliToChange / 1000L) - numSecs) / 60D; numMins = (int)Math.floor(countDown % 60D); countDown = (countDown - (double)numMins) / 60D; numHours = (int)Math.floor(countDown % 24D); numDays = (int)Math.floor((countDown - (double)numHours) / 24D); _log.info((new StringBuilder()).append("SevenSigns: Next period begins in ").append(numDays).append(" days, ").append(numHours).append(" hours and ").append(numMins).append(" mins.").toString()); if(Config.SS_ANNOUNCE_PERIOD > 0) ThreadPoolManager.getInstance().schedule(new SevenSignsAnnounce(), (long)Config.SS_ANNOUNCE_PERIOD * 1000L * 60L); } public void spawnSevenSignsNPC() { l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _merchantSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31113, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _blacksmithSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31126, false); Map _marketeerSpawns = AutoSpawnManager.getInstance().getAllAutoSpawnInstance(31092); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _spiritInSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31111, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _spiritOutSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31112, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _lilithSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(25283, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _anakimSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(25286, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _crestOfDawnSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31170, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance _crestOfDuskSpawn = AutoSpawnManager.getInstance().getAutoSpawnInstance(31171, false); Map _oratorSpawns = AutoSpawnManager.getInstance().getAllAutoSpawnInstance(31094); Map _preacherSpawns = AutoSpawnManager.getInstance().getAllAutoSpawnInstance(31093); if(isSealValidationPeriod() || isCompResultsPeriod()) { l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _marketeerSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, true)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); if(getSealOwner(2) == getCabalHighestScore() && getSealOwner(2) != 0) { if(!Config.ANNOUNCE_MAMMON_SPAWN) _blacksmithSpawn.setBroadcast(false); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_blacksmithSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_blacksmithSpawn, true); Iterator i$ = _oratorSpawns.values().iterator(); do { if(!i$.hasNext()) break; l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(spawnInst.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(spawnInst, true); } while(true); i$ = _preacherSpawns.values().iterator(); do { if(!i$.hasNext()) break; l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(spawnInst.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(spawnInst, true); } while(true); } else { AutoSpawnManager.getInstance().setSpawnActive(_blacksmithSpawn, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _oratorSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, false)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _preacherSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, false)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); } if(getSealOwner(1) == getCabalHighestScore() && getSealOwner(1) != 0) { if(!Config.ANNOUNCE_MAMMON_SPAWN) _merchantSpawn.setBroadcast(false); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_merchantSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_merchantSpawn, true); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_spiritInSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_spiritInSpawn, true); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_spiritOutSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_spiritOutSpawn, true); switch(getCabalHighestScore()) { case 2: // '\002' if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_lilithSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_lilithSpawn, true); AutoSpawnManager.getInstance().setSpawnActive(_anakimSpawn, false); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_crestOfDawnSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_crestOfDawnSpawn, true); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDuskSpawn, false); break; case 1: // '\001' if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_anakimSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_anakimSpawn, true); AutoSpawnManager.getInstance().setSpawnActive(_lilithSpawn, false); if(!AutoSpawnManager.getInstance().getAutoSpawnInstance(_crestOfDuskSpawn.getObjectId(), true).isSpawnActive()) AutoSpawnManager.getInstance().setSpawnActive(_crestOfDuskSpawn, true); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDawnSpawn, false); break; } } else { AutoSpawnManager.getInstance().setSpawnActive(_merchantSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_lilithSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_anakimSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDawnSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDuskSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_spiritInSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_spiritOutSpawn, false); } } else { AutoSpawnManager.getInstance().setSpawnActive(_merchantSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_blacksmithSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_lilithSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_anakimSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDawnSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_crestOfDuskSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_spiritInSpawn, false); AutoSpawnManager.getInstance().setSpawnActive(_spiritOutSpawn, false); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _oratorSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, false)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _preacherSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, false)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance spawnInst; for(Iterator i$ = _marketeerSpawns.values().iterator(); i$.hasNext(); AutoSpawnManager.getInstance().setSpawnActive(spawnInst, false)) spawnInst = (l2m.gameserver.managers.AutoSpawnManager.AutoSpawnInstance)i$.next(); } } public static SevenSigns getInstance() { if(_instance == null) _instance = new SevenSigns(); return _instance; } public static long calcContributionScore(long blueCount, long greenCount, long redCount) { long contrib = blueCount * 3L; contrib += greenCount * 5L; contrib += redCount * 10L; return contrib; } public static long calcAncientAdenaReward(long blueCount, long greenCount, long redCount) { long reward = blueCount * 3L; reward += greenCount * 5L; reward += redCount * 10L; return reward; } public static int getCabalNumber(String cabal) { if(cabal.equalsIgnoreCase("dawn")) return 2; return !cabal.equalsIgnoreCase("dusk") ? 0 : 1; } public static String getCabalShortName(int cabal) { switch(cabal) { case 2: // '\002' return "dawn"; case 1: // '\001' return "dusk"; } return "No Cabal"; } public static String getCabalName(int cabal) { switch(cabal) { case 2: // '\002' return "Lords of Dawn"; case 1: // '\001' return "Revolutionaries of Dusk"; } return "No Cabal"; } public static String getSealName(int seal, boolean shortName) { String sealName = shortName ? "" : "Seal of "; switch(seal) { case 1: // '\001' sealName = (new StringBuilder()).append(sealName).append("Avarice").toString(); break; case 2: // '\002' sealName = (new StringBuilder()).append(sealName).append("Gnosis").toString(); break; case 3: // '\003' sealName = (new StringBuilder()).append(sealName).append("Strife").toString(); break; } return sealName; } public static String capitalizeWords(String str) { char charArray[] = str.toCharArray(); StringBuilder buf = new StringBuilder(); charArray[0] = Character.toUpperCase(charArray[0]); for(int i = 0; i < charArray.length; i++) { if(Character.isWhitespace(charArray[i]) && i != charArray.length - 1) charArray[i + 1] = Character.toUpperCase(charArray[i + 1]); buf.append(Character.toString(charArray[i])); } return buf.toString(); } public final int getCurrentCycle() { return _currentCycle; } public final int getCurrentPeriod() { return _activePeriod; } private int getDaysToPeriodChange() { int numDays = _calendar.get(7) - 2; if(numDays < 0) return 0 - numDays; else return 7 - numDays; } public final long getMilliToPeriodChange() { return _calendar.getTimeInMillis() - System.currentTimeMillis(); } protected void setCalendarForNextPeriodChange() { switch(getCurrentPeriod()) { case 1: // '\001' case 3: // '\003' int daysToChange = getDaysToPeriodChange(); if(daysToChange == 7) if(_calendar.get(11) < 18) daysToChange = 0; else if(_calendar.get(11) == 18 && _calendar.get(12) < 0) daysToChange = 0; if(daysToChange > 0) _calendar.add(5, daysToChange); _calendar.set(11, 18); _calendar.set(12, 0); break; case 0: // '\0' case 2: // '\002' _calendar.add(14, 0xdbba0); break; } } public final String getCurrentPeriodName() { String periodName = null; switch(_activePeriod) { case 0: // '\0' periodName = "Quest Event Initialization"; break; case 1: // '\001' periodName = "Competition (Quest Event)"; break; case 2: // '\002' periodName = "Quest Event Results"; break; case 3: // '\003' periodName = "Seal Validation"; break; } return periodName; } public final boolean isSealValidationPeriod() { return _activePeriod == 3; } public final boolean isCompResultsPeriod() { return _activePeriod == 2; } public final long getCurrentScore(int cabal) { double totalStoneScore = _dawnStoneScore + _duskStoneScore; switch(cabal) { case 0: // '\0' return 0L; case 2: // '\002' return Math.round(((double)_dawnStoneScore / (totalStoneScore != 0.0D ? totalStoneScore : 1.0D)) * 500D) + _dawnFestivalScore; case 1: // '\001' return Math.round(((double)_duskStoneScore / (totalStoneScore != 0.0D ? totalStoneScore : 1.0D)) * 500D) + _duskFestivalScore; } return 0L; } public final long getCurrentStoneScore(int cabal) { switch(cabal) { case 0: // '\0' return 0L; case 2: // '\002' return _dawnStoneScore; case 1: // '\001' return _duskStoneScore; } return 0L; } public final long getCurrentFestivalScore(int cabal) { switch(cabal) { case 0: // '\0' return 0L; case 2: // '\002' return _dawnFestivalScore; case 1: // '\001' return _duskFestivalScore; } return 0L; } public final int getCabalHighestScore() { long diff = getCurrentScore(1) - getCurrentScore(2); if(diff == 0L) return 0; return diff <= 0L ? 2 : 1; } public final int getSealOwner(int seal) { if(_signsSealOwners == null || !_signsSealOwners.containsKey(Integer.valueOf(seal))) return 0; else return ((Integer)_signsSealOwners.get(Integer.valueOf(seal))).intValue(); } public final int getSealProportion(int seal, int cabal) { if(cabal == 0) return 0; if(cabal == 1) return ((Integer)_signsDuskSealTotals.get(Integer.valueOf(seal))).intValue(); else return ((Integer)_signsDawnSealTotals.get(Integer.valueOf(seal))).intValue(); } public final int getTotalMembers(int cabal) { int cabalMembers = 0; Iterator i$ = _signsPlayerData.values().iterator(); do { if(!i$.hasNext()) break; StatsSet sevenDat = (StatsSet)i$.next(); if(sevenDat.getInteger("cabal") == cabal) cabalMembers++; } while(true); return cabalMembers; } public final StatsSet getPlayerStatsSet(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return null; else return (StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId())); } public long getPlayerStoneContrib(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return 0L; long stoneCount = 0L; StatsSet currPlayer = (StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId())); if(getPlayerCabal(player) == 2) { stoneCount += currPlayer.getLong("dawn_red_stones"); stoneCount += currPlayer.getLong("dawn_green_stones"); stoneCount += currPlayer.getLong("dawn_blue_stones"); } else { stoneCount += currPlayer.getLong("dusk_red_stones"); stoneCount += currPlayer.getLong("dusk_green_stones"); stoneCount += currPlayer.getLong("dusk_blue_stones"); } return stoneCount; } public long getPlayerContribScore(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return 0L; StatsSet currPlayer = (StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId())); if(getPlayerCabal(player) == 2) return (long)currPlayer.getInteger("dawn_contribution_score"); else return (long)currPlayer.getInteger("dusk_contribution_score"); } public long getPlayerAdenaCollect(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return 0L; else return ((StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId()))).getLong(getPlayerCabal(player) != 2 ? "dusk_ancient_adena_amount" : "dawn_ancient_adena_amount"); } public int getPlayerSeal(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return 0; else return ((StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId()))).getInteger("seal"); } public int getPlayerCabal(Player player) { if(!hasRegisteredBefore(player.getObjectId())) return 0; else return ((StatsSet)_signsPlayerData.get(Integer.valueOf(player.getObjectId()))).getInteger("cabal"); } protected void restoreSevenSignsData() { Connection con; PreparedStatement statement; ResultSet rset; con = null; statement = null; rset = null; con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("SELECT char_obj_id, cabal, seal, dawn_red_stones, dawn_green_stones, dawn_blue_stones, dawn_ancient_adena_amount, dawn_contribution_score, dusk_red_stones, dusk_green_stones, dusk_blue_stones, dusk_ancient_adena_amount, dusk_contribution_score FROM seven_signs"); int charObjId; StatsSet sevenDat; for(rset = statement.executeQuery(); rset.next(); _signsPlayerData.put(Integer.valueOf(charObjId), sevenDat)) { charObjId = rset.getInt("char_obj_id"); sevenDat = new StatsSet(); sevenDat.set("char_obj_id", charObjId); sevenDat.set("cabal", getCabalNumber(rset.getString("cabal"))); sevenDat.set("seal", rset.getInt("seal")); sevenDat.set("dawn_red_stones", rset.getInt("dawn_red_stones")); sevenDat.set("dawn_green_stones", rset.getInt("dawn_green_stones")); sevenDat.set("dawn_blue_stones", rset.getInt("dawn_blue_stones")); sevenDat.set("dawn_ancient_adena_amount", rset.getInt("dawn_ancient_adena_amount")); sevenDat.set("dawn_contribution_score", rset.getInt("dawn_contribution_score")); sevenDat.set("dusk_red_stones", rset.getInt("dusk_red_stones")); sevenDat.set("dusk_green_stones", rset.getInt("dusk_green_stones")); sevenDat.set("dusk_blue_stones", rset.getInt("dusk_blue_stones")); sevenDat.set("dusk_ancient_adena_amount", rset.getInt("dusk_ancient_adena_amount")); sevenDat.set("dusk_contribution_score", rset.getInt("dusk_contribution_score")); } DbUtils.close(statement, rset); statement = con.prepareStatement("SELECT * FROM seven_signs_status"); for(rset = statement.executeQuery(); rset.next(); _signsDuskSealTotals.put(Integer.valueOf(3), Integer.valueOf(rset.getInt("strife_dusk_score")))) { _currentCycle = rset.getInt("current_cycle"); _activePeriod = rset.getInt("active_period"); _previousWinner = rset.getInt("previous_winner"); _dawnStoneScore = rset.getLong("dawn_stone_score"); _dawnFestivalScore = rset.getLong("dawn_festival_score"); _duskStoneScore = rset.getLong("dusk_stone_score"); _duskFestivalScore = rset.getLong("dusk_festival_score"); _signsSealOwners.put(Integer.valueOf(1), Integer.valueOf(rset.getInt("avarice_owner"))); _signsSealOwners.put(Integer.valueOf(2), Integer.valueOf(rset.getInt("gnosis_owner"))); _signsSealOwners.put(Integer.valueOf(3), Integer.valueOf(rset.getInt("strife_owner"))); _signsDawnSealTotals.put(Integer.valueOf(1), Integer.valueOf(rset.getInt("avarice_dawn_score"))); _signsDawnSealTotals.put(Integer.valueOf(2), Integer.valueOf(rset.getInt("gnosis_dawn_score"))); _signsDawnSealTotals.put(Integer.valueOf(3), Integer.valueOf(rset.getInt("strife_dawn_score"))); _signsDuskSealTotals.put(Integer.valueOf(1), Integer.valueOf(rset.getInt("avarice_dusk_score"))); _signsDuskSealTotals.put(Integer.valueOf(2), Integer.valueOf(rset.getInt("gnosis_dusk_score"))); } DbUtils.close(statement, rset); statement = con.prepareStatement("UPDATE seven_signs_status SET date=?"); statement.setInt(1, Calendar.getInstance().get(7)); statement.execute(); DbUtils.closeQuietly(con, statement, rset); break MISSING_BLOCK_LABEL_706; SQLException e; e; _log.error((new StringBuilder()).append("Unable to load Seven Signs Data: ").append(e).toString()); DbUtils.closeQuietly(con, statement, rset); break MISSING_BLOCK_LABEL_706; Exception exception; exception; DbUtils.closeQuietly(con, statement, rset); throw exception; } public synchronized void saveSevenSignsData(int playerId, boolean updateSettings) { Connection con; PreparedStatement statement; con = null; statement = null; con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("UPDATE seven_signs SET cabal=?, seal=?, dawn_red_stones=?, dawn_green_stones=?, dawn_blue_stones=?, dawn_ancient_adena_amount=?, dawn_contribution_score=?, dusk_red_stones=?, dusk_green_stones=?, dusk_blue_stones=?, dusk_ancient_adena_amount=?, dusk_contribution_score=? WHERE char_obj_id=?"); if(playerId > 0) { processStatement(statement, (StatsSet)_signsPlayerData.get(Integer.valueOf(playerId))); } else { StatsSet sevenDat; for(Iterator i$ = _signsPlayerData.values().iterator(); i$.hasNext(); processStatement(statement, sevenDat)) sevenDat = (StatsSet)i$.next(); } DbUtils.close(statement); if(updateSettings) { StringBuilder buf = new StringBuilder(); buf.append("UPDATE seven_signs_status SET current_cycle=?, active_period=?, previous_winner=?, dawn_stone_score=?, dawn_festival_score=?, dusk_stone_score=?, dusk_festival_score=?, avarice_owner=?, gnosis_owner=?, strife_owner=?, avarice_dawn_score=?, gnosis_dawn_score=?, strife_dawn_score=?, avarice_dusk_score=?, gnosis_dusk_score=?, strife_dusk_score=?, festival_cycle=?, "); for(int i = 0; i < 5; i++) buf.append((new StringBuilder()).append("accumulated_bonus").append(String.valueOf(i)).append("=?, ").toString()); buf.append("date=?"); statement = con.prepareStatement(buf.toString()); statement.setInt(1, _currentCycle); statement.setInt(2, _activePeriod); statement.setInt(3, _previousWinner); statement.setLong(4, _dawnStoneScore); statement.setLong(5, _dawnFestivalScore); statement.setLong(6, _duskStoneScore); statement.setLong(7, _duskFestivalScore); statement.setInt(8, ((Integer)_signsSealOwners.get(Integer.valueOf(1))).intValue()); statement.setInt(9, ((Integer)_signsSealOwners.get(Integer.valueOf(2))).intValue()); statement.setInt(10, ((Integer)_signsSealOwners.get(Integer.valueOf(3))).intValue()); statement.setInt(11, ((Integer)_signsDawnSealTotals.get(Integer.valueOf(1))).intValue()); statement.setInt(12, ((Integer)_signsDawnSealTotals.get(Integer.valueOf(2))).intValue()); statement.setInt(13, ((Integer)_signsDawnSealTotals.get(Integer.valueOf(3))).intValue()); statement.setInt(14, ((Integer)_signsDuskSealTotals.get(Integer.valueOf(1))).intValue()); statement.setInt(15, ((Integer)_signsDuskSealTotals.get(Integer.valueOf(2))).intValue()); statement.setInt(16, ((Integer)_signsDuskSealTotals.get(Integer.valueOf(3))).intValue()); statement.setInt(17, getCurrentCycle()); for(int i = 0; i < 5; i++) statement.setLong(18 + i, SevenSignsFestival.getInstance().getAccumulatedBonus(i)); statement.setInt(23, Calendar.getInstance().get(7)); statement.executeUpdate(); } DbUtils.closeQuietly(con, statement); break MISSING_BLOCK_LABEL_676; SQLException e; e; _log.error((new StringBuilder()).append("Unable to save Seven Signs data: ").append(e).toString()); _log.error("", e); DbUtils.closeQuietly(con, statement); break MISSING_BLOCK_LABEL_676; Exception exception; exception; DbUtils.closeQuietly(con, statement); throw exception; } private static void processStatement(PreparedStatement statement, StatsSet sevenDat) throws SQLException { statement.setString(1, getCabalShortName(sevenDat.getInteger("cabal"))); statement.setInt(2, sevenDat.getInteger("seal")); statement.setInt(3, sevenDat.getInteger("dawn_red_stones")); statement.setInt(4, sevenDat.getInteger("dawn_green_stones")); statement.setInt(5, sevenDat.getInteger("dawn_blue_stones")); statement.setInt(6, sevenDat.getInteger("dawn_ancient_adena_amount")); statement.setInt(7, sevenDat.getInteger("dawn_contribution_score")); statement.setInt(8, sevenDat.getInteger("dusk_red_stones")); statement.setInt(9, sevenDat.getInteger("dusk_green_stones")); statement.setInt(10, sevenDat.getInteger("dusk_blue_stones")); statement.setInt(11, sevenDat.getInteger("dusk_ancient_adena_amount")); statement.setInt(12, sevenDat.getInteger("dusk_contribution_score")); statement.setInt(13, sevenDat.getInteger("char_obj_id")); statement.executeUpdate(); } protected void resetPlayerData() { StatsSet sevenDat; int charObjId; for(Iterator i$ = _signsPlayerData.values().iterator(); i$.hasNext(); _signsPlayerData.put(Integer.valueOf(charObjId), sevenDat)) { sevenDat = (StatsSet)i$.next(); charObjId = sevenDat.getInteger("char_obj_id"); if(sevenDat.getInteger("cabal") == getCabalHighestScore()) switch(getCabalHighestScore()) { case 2: // '\002' sevenDat.set("dawn_red_stones", 0); sevenDat.set("dawn_green_stones", 0); sevenDat.set("dawn_blue_stones", 0); sevenDat.set("dawn_contribution_score", 0); break; case 1: // '\001' sevenDat.set("dusk_red_stones", 0); sevenDat.set("dusk_green_stones", 0); sevenDat.set("dusk_blue_stones", 0); sevenDat.set("dusk_contribution_score", 0); break; } else if(sevenDat.getInteger("cabal") == 2 || sevenDat.getInteger("cabal") == 0) { sevenDat.set("dusk_red_stones", 0); sevenDat.set("dusk_green_stones", 0); sevenDat.set("dusk_blue_stones", 0); sevenDat.set("dusk_contribution_score", 0); } else if(sevenDat.getInteger("cabal") == 1 || sevenDat.getInteger("cabal") == 0) { sevenDat.set("dawn_red_stones", 0); sevenDat.set("dawn_green_stones", 0); sevenDat.set("dawn_blue_stones", 0); sevenDat.set("dawn_contribution_score", 0); } sevenDat.set("cabal", 0); sevenDat.set("seal", 0); } } private boolean hasRegisteredBefore(int charObjId) { return _signsPlayerData.containsKey(Integer.valueOf(charObjId)); } public int setPlayerInfo(int charObjId, int chosenCabal, int chosenSeal) { StatsSet currPlayer; Connection con; PreparedStatement statement; currPlayer = null; if(hasRegisteredBefore(charObjId)) { currPlayer = (StatsSet)_signsPlayerData.get(Integer.valueOf(charObjId)); currPlayer.set("cabal", chosenCabal); currPlayer.set("seal", chosenSeal); _signsPlayerData.put(Integer.valueOf(charObjId), currPlayer); break MISSING_BLOCK_LABEL_318; } currPlayer = new StatsSet(); currPlayer.set("char_obj_id", charObjId); currPlayer.set("cabal", chosenCabal); currPlayer.set("seal", chosenSeal); currPlayer.set("dawn_red_stones", 0); currPlayer.set("dawn_green_stones", 0); currPlayer.set("dawn_blue_stones", 0); currPlayer.set("dawn_ancient_adena_amount", 0); currPlayer.set("dawn_contribution_score", 0); currPlayer.set("dusk_red_stones", 0); currPlayer.set("dusk_green_stones", 0); currPlayer.set("dusk_blue_stones", 0); currPlayer.set("dusk_ancient_adena_amount", 0); currPlayer.set("dusk_contribution_score", 0); _signsPlayerData.put(Integer.valueOf(charObjId), currPlayer); con = null; statement = null; con = DatabaseFactory.getInstance().getConnection(); statement = con.prepareStatement("INSERT INTO seven_signs (char_obj_id, cabal, seal) VALUES (?,?,?)"); statement.setInt(1, charObjId); statement.setString(2, getCabalShortName(chosenCabal)); statement.setInt(3, chosenSeal); statement.execute(); DbUtils.closeQuietly(con, statement); break MISSING_BLOCK_LABEL_318; SQLException e; e; _log.error((new StringBuilder()).append("SevenSigns: Failed to save data: ").append(e).toString()); DbUtils.closeQuietly(con, statement); break MISSING_BLOCK_LABEL_318; Exception exception; exception; DbUtils.closeQuietly(con, statement); throw exception; long contribScore = 0L; switch(chosenCabal) { case 2: // '\002' contribScore = calcContributionScore(currPlayer.getInteger("dawn_blue_stones"), currPlayer.getInteger("dawn_green_stones"), currPlayer.getInteger("dawn_red_stones")); _dawnStoneScore += contribScore; break; case 1: // '\001' contribScore = calcContributionScore(currPlayer.getInteger("dusk_blue_stones"), currPlayer.getInteger("dusk_green_stones"), currPlayer.getInteger("dusk_red_stones")); _duskStoneScore += contribScore; break; } if(currPlayer.getInteger("cabal") == 2) _signsDawnSealTotals.put(Integer.valueOf(chosenSeal), Integer.valueOf(((Integer)_signsDawnSealTotals.get(Integer.valueOf(chosenSeal))).intValue() + 1)); else _signsDuskSealTotals.put(Integer.valueOf(chosenSeal), Integer.valueOf(((Integer)_signsDuskSealTotals.get(Integer.valueOf(chosenSeal))).intValue() + 1)); saveSevenSignsData(charObjId, true); return chosenCabal; } public int getAncientAdenaReward(Player player, boolean removeReward) { int charObjId = player.getObjectId(); StatsSet currPlayer = (StatsSet)_signsPlayerData.get(Integer.valueOf(charObjId)); int rewardAmount = 0; if(currPlayer.getInteger("cabal") == 2) { rewardAmount = currPlayer.getInteger("dawn_ancient_adena_amount"); currPlayer.set("dawn_ancient_adena_amount", 0); } else { rewardAmount = currPlayer.getInteger("dusk_ancient_adena_amount"); currPlayer.set("dusk_ancient_adena_amount", 0); } if(removeReward) { _signsPlayerData.put(Integer.valueOf(charObjId), currPlayer); saveSevenSignsData(charObjId, false); } return rewardAmount; } public long addPlayerStoneContrib(Player player, long blueCount, long greenCount, long redCount) { return addPlayerStoneContrib(player.getObjectId(), blueCount, greenCount, redCount); } public long addPlayerStoneContrib(int charObjId, long blueCount, long greenCount, long redCount) { StatsSet currPlayer = (StatsSet)_signsPlayerData.get(Integer.valueOf(charObjId)); long contribScore = calcContributionScore(blueCount, greenCount, redCount); long totalAncientAdena = 0L; long totalContribScore = 0L; if(currPlayer.getInteger("cabal") == 2) { totalAncientAdena = (long)currPlayer.getInteger("dawn_ancient_adena_amount") + calcAncientAdenaReward(blueCount, greenCount, redCount); totalContribScore = (long)currPlayer.getInteger("dawn_contribution_score") + contribScore; if(totalContribScore > MAXIMUM_PLAYER_CONTRIB) return -1L; currPlayer.set("dawn_red_stones", (long)currPlayer.getInteger("dawn_red_stones") + redCount); currPlayer.set("dawn_green_stones", (long)currPlayer.getInteger("dawn_green_stones") + greenCount); currPlayer.set("dawn_blue_stones", (long)currPlayer.getInteger("dawn_blue_stones") + blueCount); currPlayer.set("dawn_ancient_adena_amount", totalAncientAdena); currPlayer.set("dawn_contribution_score", totalContribScore); _signsPlayerData.put(Integer.valueOf(charObjId), currPlayer); _dawnStoneScore += contribScore; } else { totalAncientAdena = (long)currPlayer.getInteger("dusk_ancient_adena_amount") + calcAncientAdenaReward(blueCount, greenCount, redCount); totalContribScore = (long)currPlayer.getInteger("dusk_contribution_score") + contribScore; if(totalContribScore > MAXIMUM_PLAYER_CONTRIB) return -1L; currPlayer.set("dusk_red_stones", (long)currPlayer.getInteger("dusk_red_stones") + redCount); currPlayer.set("dusk_green_stones", (long)currPlayer.getInteger("dusk_green_stones") + greenCount); currPlayer.set("dusk_blue_stones", (long)currPlayer.getInteger("dusk_blue_stones") + blueCount); currPlayer.set("dusk_ancient_adena_amount", totalAncientAdena); currPlayer.set("dusk_contribution_score", totalContribScore); _signsPlayerData.put(Integer.valueOf(charObjId), currPlayer); _duskStoneScore += contribScore; } saveSevenSignsData(charObjId, true); return contribScore; } public synchronized void updateFestivalScore() { _duskFestivalScore = 0L; _dawnFestivalScore = 0L; for(int i = 0; i < 5; i++) { long dusk = SevenSignsFestival.getInstance().getHighestScore(1, i); long dawn = SevenSignsFestival.getInstance().getHighestScore(2, i); if(dusk > dawn) { _duskFestivalScore += SevenSignsFestival.FESTIVAL_LEVEL_SCORES[i]; continue; } if(dusk < dawn) _dawnFestivalScore += SevenSignsFestival.FESTIVAL_LEVEL_SCORES[i]; } } public void sendCurrentPeriodMsg(Player player) { switch(_activePeriod) { case 0: // '\0' player.sendPacket(Msg.SEVEN_SIGNS_PREPARATIONS_HAVE_BEGUN_FOR_THE_NEXT_QUEST_EVENT); return; case 1: // '\001' player.sendPacket(Msg.SEVEN_SIGNS_THE_QUEST_EVENT_PERIOD_HAS_BEGUN_SPEAK_WITH_A_PRIEST_OF_DAWN_OR_DUSK_PRIESTESS_IF_YOU_WISH_TO_PARTICIPATE_IN_THE_EVENT); return; case 2: // '\002' player.sendPacket(Msg.SEVEN_SIGNS_QUEST_EVENT_HAS_ENDED_RESULTS_ARE_BEING_TALLIED); return; case 3: // '\003' player.sendPacket(Msg.SEVEN_SIGNS_THIS_IS_THE_SEAL_VALIDATION_PERIOD_A_NEW_QUEST_EVENT_PERIOD_BEGINS_NEXT_MONDAY); return; } } public void sendMessageToAll(int sysMsgId) { SystemMessage sm = new SystemMessage(sysMsgId); Player player; for(Iterator i$ = GameObjectsStorage.getAllPlayersForIterate().iterator(); i$.hasNext(); player.sendPacket(sm)) player = (Player)i$.next(); } protected void initializeSeals() { for(Iterator i$ = _signsSealOwners.keySet().iterator(); i$.hasNext();) { Integer currSeal = (Integer)i$.next(); int sealOwner = ((Integer)_signsSealOwners.get(currSeal)).intValue(); if(sealOwner != 0) { if(isSealValidationPeriod()) _log.info((new StringBuilder()).append("SevenSigns: The ").append(getCabalName(sealOwner)).append(" have won the ").append(getSealName(currSeal.intValue(), false)).append(".").toString()); else _log.info((new StringBuilder()).append("SevenSigns: The ").append(getSealName(currSeal.intValue(), false)).append(" is currently owned by ").append(getCabalName(sealOwner)).append(".").toString()); } else { _log.info((new StringBuilder()).append("SevenSigns: The ").append(getSealName(currSeal.intValue(), false)).append(" remains unclaimed.").toString()); } } } protected void resetSeals() { _signsDawnSealTotals.put(Integer.valueOf(1), Integer.valueOf(0)); _signsDawnSealTotals.put(Integer.valueOf(2), Integer.valueOf(0)); _signsDawnSealTotals.put(Integer.valueOf(3), Integer.valueOf(0)); _signsDuskSealTotals.put(Integer.valueOf(1), Integer.valueOf(0)); _signsDuskSealTotals.put(Integer.valueOf(2), Integer.valueOf(0)); _signsDuskSealTotals.put(Integer.valueOf(3), Integer.valueOf(0)); } protected void calcNewSealOwners() { Iterator i$ = _signsDawnSealTotals.keySet().iterator(); do { if(!i$.hasNext()) break; Integer currSeal = (Integer)i$.next(); int prevSealOwner = ((Integer)_signsSealOwners.get(currSeal)).intValue(); int newSealOwner = 0; int dawnProportion = getSealProportion(currSeal.intValue(), 2); int totalDawnMembers = getTotalMembers(2) != 0 ? getTotalMembers(2) : 1; int duskProportion = getSealProportion(currSeal.intValue(), 1); int totalDuskMembers = getTotalMembers(1) != 0 ? getTotalMembers(1) : 1; label0: switch(prevSealOwner) { default: break; case 0: // '\0' switch(getCabalHighestScore()) { case 0: // '\0' if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers) && dawnProportion > duskProportion) newSealOwner = 2; else if((long)duskProportion >= Math.round(0.34999999999999998D * (double)totalDuskMembers) && duskProportion > dawnProportion) newSealOwner = 1; else newSealOwner = prevSealOwner; break; case 2: // '\002' if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) newSealOwner = 2; else if((long)duskProportion >= Math.round(0.34999999999999998D * (double)totalDuskMembers)) newSealOwner = 1; else newSealOwner = prevSealOwner; break; case 1: // '\001' if((long)duskProportion >= Math.round(0.34999999999999998D * (double)totalDuskMembers)) newSealOwner = 1; else if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) newSealOwner = 2; else newSealOwner = prevSealOwner; break; } break; case 2: // '\002' switch(getCabalHighestScore()) { default: break; case 0: // '\0' if((long)dawnProportion >= Math.round(0.10000000000000001D * (double)totalDawnMembers)) { newSealOwner = prevSealOwner; break label0; } if((long)duskProportion >= Math.round(0.34999999999999998D * (double)totalDuskMembers)) newSealOwner = 1; else newSealOwner = 0; break label0; case 2: // '\002' if((long)dawnProportion >= Math.round(0.10000000000000001D * (double)totalDawnMembers)) { newSealOwner = prevSealOwner; break label0; } if((long)duskProportion >= Math.round(0.34999999999999998D * (double)totalDuskMembers)) newSealOwner = 1; else newSealOwner = 0; break label0; case 1: // '\001' if((long)duskProportion >= Math.round(0.10000000000000001D * (double)totalDuskMembers)) { newSealOwner = 1; break label0; } if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) newSealOwner = prevSealOwner; else newSealOwner = 0; break; } break; case 1: // '\001' switch(getCabalHighestScore()) { default: break label0; case 0: // '\0' if((long)duskProportion >= Math.round(0.10000000000000001D * (double)totalDuskMembers)) { newSealOwner = prevSealOwner; break label0; } if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) newSealOwner = 2; else newSealOwner = 0; break label0; case 2: // '\002' if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) { newSealOwner = 2; break label0; } if((long)duskProportion >= Math.round(0.10000000000000001D * (double)totalDuskMembers)) newSealOwner = prevSealOwner; else newSealOwner = 0; break label0; case 1: // '\001' break; } if((long)duskProportion >= Math.round(0.10000000000000001D * (double)totalDuskMembers)) { newSealOwner = prevSealOwner; break; } if((long)dawnProportion >= Math.round(0.34999999999999998D * (double)totalDawnMembers)) newSealOwner = 2; else newSealOwner = 0; break; } _signsSealOwners.put(currSeal, Integer.valueOf(newSealOwner)); switch(currSeal.intValue()) { case 1: // '\001' if(newSealOwner == 2) sendMessageToAll(1212); else if(newSealOwner == 1) sendMessageToAll(1215); break; case 2: // '\002' if(newSealOwner == 2) sendMessageToAll(1213); else if(newSealOwner == 1) sendMessageToAll(1216); break; case 3: // '\003' if(newSealOwner == 2) sendMessageToAll(1214); else if(newSealOwner == 1) sendMessageToAll(1217); break; } } while(true); } public int getPriestCabal(int id) { switch(id) { case 31078: case 31079: case 31080: case 31081: case 31082: case 31083: case 31084: case 31168: case 31692: case 31694: case 31997: return 2; case 31085: case 31086: case 31087: case 31088: case 31089: case 31090: case 31091: case 31169: case 31693: case 31695: case 31998: return 1; } return 0; } public void changePeriod() { _periodChange = ThreadPoolManager.getInstance().schedule(new SevenSignsPeriodChange(), 10L); } public void changePeriod(int period) { changePeriod(period, 1); } public void changePeriod(int period, int seconds) { _activePeriod = period - 1; if(_activePeriod < 0) _activePeriod += 4; _periodChange = ThreadPoolManager.getInstance().schedule(new SevenSignsPeriodChange(), (long)seconds * 1000L); } public void setTimeToNextPeriodChange(int time) { _calendar.setTimeInMillis(System.currentTimeMillis() + (long)time * 1000L * 60L); if(_periodChange != null) _periodChange.cancel(false); _periodChange = ThreadPoolManager.getInstance().schedule(new SevenSignsPeriodChange(), getMilliToPeriodChange()); } public SSListenerList getListenerEngine() { return _listenerList; } public boolean addListener(GameListener listener) { return _listenerList.add(listener); } public boolean removeListener(GameListener listener) { return _listenerList.remove(listener); } private static final Logger _log = LoggerFactory.getLogger(l2m/gameserver/model/entity/SevenSigns); private static SevenSigns _instance; private ScheduledFuture _periodChange; public static final String SEVEN_SIGNS_HTML_PATH = "seven_signs/"; public static final int CABAL_NULL = 0; public static final int CABAL_DUSK = 1; public static final int CABAL_DAWN = 2; public static final int SEAL_NULL = 0; public static final int SEAL_AVARICE = 1; public static final int SEAL_GNOSIS = 2; public static final int SEAL_STRIFE = 3; public static final int PERIOD_COMP_RECRUITING = 0; public static final int PERIOD_COMPETITION = 1; public static final int PERIOD_COMP_RESULTS = 2; public static final int PERIOD_SEAL_VALIDATION = 3; public static final int PERIOD_START_HOUR = 18; public static final int PERIOD_START_MINS = 0; public static final int PERIOD_START_DAY = 2; public static final int PERIOD_MINOR_LENGTH = 0xdbba0; public static final int PERIOD_MAJOR_LENGTH = 0x23fec860; public static final int ANCIENT_ADENA_ID = 5575; public static final int RECORD_SEVEN_SIGNS_ID = 5707; public static final int CERTIFICATE_OF_APPROVAL_ID = 6388; public static final int RECORD_SEVEN_SIGNS_COST = 500; public static final int ADENA_JOIN_DAWN_COST = 50000; public static final int ORATOR_NPC_ID = 31094; public static final int PREACHER_NPC_ID = 31093; public static final int MAMMON_MERCHANT_ID = 31113; public static final int MAMMON_BLACKSMITH_ID = 31126; public static final int MAMMON_MARKETEER_ID = 31092; public static final int SPIRIT_IN_ID = 31111; public static final int SPIRIT_OUT_ID = 31112; public static final int LILITH_NPC_ID = 25283; public static final int ANAKIM_NPC_ID = 25286; public static final int CREST_OF_DAWN_ID = 31170; public static final int CREST_OF_DUSK_ID = 31171; public static final int SEAL_STONE_BLUE_ID = 6360; public static final int SEAL_STONE_GREEN_ID = 6361; public static final int SEAL_STONE_RED_ID = 6362; public static final int SEAL_STONE_BLUE_VALUE = 3; public static final int SEAL_STONE_GREEN_VALUE = 5; public static final int SEAL_STONE_RED_VALUE = 10; public static final int BLUE_CONTRIB_POINTS = 3; public static final int GREEN_CONTRIB_POINTS = 5; public static final int RED_CONTRIB_POINTS = 10; public static final long MAXIMUM_PLAYER_CONTRIB; private final Calendar _calendar = Calendar.getInstance(); protected int _activePeriod; protected int _currentCycle; protected long _dawnStoneScore; protected long _duskStoneScore; protected long _dawnFestivalScore; protected long _duskFestivalScore; protected int _compWinner; protected int _previousWinner; private Map _signsPlayerData; private Map _signsSealOwners; private Map _signsDuskSealTotals; private Map _signsDawnSealTotals; private SSListenerList _listenerList; static { MAXIMUM_PLAYER_CONTRIB = Math.round(1000000D * Config.RATE_DROP_ITEMS); } } Добавлено через 6 минут Ashe, в данной сборке нет к сожалению такого файла, или мой компьютер не смог его найти. Последний раз редактировалось L2sidia; 04.09.2012 в 16:52. Причина: Добавлено сообщение |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
pathnode и границы городов | SkAvenger | Работа с геодатой | 6 | 12.03.2013 20:35 |
[Продам] Доменные имена | TorPark | Рынок / Marketplace | 1 | 01.10.2011 21:13 |
Тп с первых городов | aspalt | Серверная часть | 7 | 18.06.2010 14:05 |
Проблемка С Названиями городов и замков | FerryCorsten | Lineage II | 2 | 25.11.2009 16:08 |
Ники, имена... | Xrust | Lineage II | 10 | 07.06.2009 06:11 |