Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Олимпиада Ребеллион и т.д. (https://forum.zone-game.info/showthread.php?t=2011)

Lexx_a 01.10.2008 14:34

Олимпиада Ребеллион и т.д.
 
Народ, объясните КАК работает Олимп на ребелле.

Серв как-то рандомно выбирает героев.

Отсекло кучу народа, которые были 1 в классе, но с минимальным кол-вом боев 5 штук и с минимальным кол-вом побед 1 штука.

Также отсекло героя который был лучшим в своем классе.

В общем те кто шарят в ребелле - хелп.

Aquanox 06.10.2008 08:03

Ответ: Олимпиада Ребеллион и т.д.
 
пару кусков кода. без коментариев - все вродебы ясно.

Код:

        private static final String OLYMPIAD_GET_HEROS = "SELECT `char_id`, `char_name` FROM `olympiad_nobles` WHERE `class_id` = ? AND `competitions_done` >= 9 AND `competitions_win` > 0 ORDER BY `olympiad_points` DESC, `competitions_win` DESC, `competitions_done` DESC";
Код:

        protected void sortHerosToBe()
        {
                if(_period != 1)
                        return;

                _heroesToBe = new FastList<StatsSet>();

                ThreadConnection con = null;
                FiltredPreparedStatement statement = null;
                ResultSet rset = null;

                try
                {
                        con = L2DatabaseFactory.getInstance().getConnection();
                        StatsSet hero;

                        for(int i = 88; i < 135; i++)
                        {
                                statement = con.prepareStatement(OLYMPIAD_GET_HEROS);
                                statement.setInt(1, i);
                                rset = statement.executeQuery();

                                if(rset.next())
                                {
                                        hero = new StatsSet();
                                        hero.set(CLASS_ID, i);
                                        hero.set(CHAR_ID, rset.getInt(CHAR_ID));
                                        hero.set(CHAR_NAME, rset.getString(CHAR_NAME));

                                        _heroesToBe.add(hero);
                                }
                                DatabaseUtils.closeDatabaseSR(statement, rset);

                                // Пропускаем классы 119-130 и 133
                                if(i == 118)
                                        i = 130;
                                if(i == 132)
                                        i++;
                        }
                }
                catch(SQLException e)
                {
                        _log.warning("Olympiad System: Couldnt heros from db");
                }
                finally
                {
                        DatabaseUtils.closeDatabaseCSR(con, statement, rset);
                }
        }


Lexx_a 06.10.2008 11:08

Ответ: Олимпиада Ребеллион и т.д.
 
Отлично, большое спасибо.

Надо поправить на 5 боев и хотя бы одну победу. Но это уже мелочи.

CKREPKA 01.04.2015 21:50

Re: Олимпиада Ребеллион и т.д.
 
Здравствуйте, очень сильно нуждаюсь в вашей срочной помощи! Проблема: из за изменения времени на часах сервера в момент завершения цикла оли, нарушилась хрономерность цикла олимпиады, 1го числа хиро не смогли получить игроки, да и вообще любую награду так же как и обнуление очей прошлого цикла. Пожалуйста подскажите максимально подробно как исправить данную проблему не прибегая к жестким мерам. Сборка Rebellion

Добавлено через 19 часов 27 минут
Все еще надеюсь на вашу помощь :)


Текущее время: 15:20. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot