Welcome to RUSaCis - эмулятор Interlude

Присоединяйтесь к нам прямо сейчас, чтобы получить доступ ко всем нашим возможностям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию пользователям - так же приобрести исходный код. Это также быстро, так чего же вы ждете?

проблема с 7 печатями и базой данных

Flip_spb

Бродяга
Регистрация
24 Ноя 2021
Сообщения
20
Реакции
6
Баллы
3
RaCoin
20
всех приветствую. сборка 3.5 ,столкнулся с такой проблемой - зарегил персонажей за Dawn, сдаю ему камни печатей, в игре в статусе 7 печатей показывает что персонаж зарегистрирован и сколько камней сдано. Перезагружаю сервер - смотрю статус печатей, персонаж зарегистрирован но количество сданных камней по 0. подумал какой-то глюк. заново сдал камни- после перезагрузки сервера таже история. в БД в таблице Seven Sings -есть инфа что персонаж зарегистриван но количество камней везде 0. Я подумал что глюк с базой, перезалил базу заново но история повторилась. Сервер никаких ошибок не выдает и работает стабильно. Вот и вопрос -может кто-то сталкивался с подобным ? и если кто знает - подскажите как пофиксить . Заранее спасибо.
 

Eldaeron

Бродяга
Регистрация
24 Дек 2023
Сообщения
4
Реакции
1
Баллы
3
RaCoin
0
всех приветствую. сборка 3.5 ,столкнулся с такой проблемой - зарегил персонажей за Dawn, сдаю ему камни печатей, в игре в статусе 7 печатей показывает что персонаж зарегистрирован и сколько камней сдано. Перезагружаю сервер - смотрю статус печатей, персонаж зарегистрирован но количество сданных камней по 0. подумал какой-то глюк. заново сдал камни- после перезагрузки сервера таже история. в БД в таблице Seven Sings -есть инфа что персонаж зарегистриван но количество камней везде 0. Я подумал что глюк с базой, перезалил базу заново но история повторилась. Сервер никаких ошибок не выдает и работает стабильно. Вот и вопрос -может кто-то сталкивался с подобным ? и если кто знает - подскажите как пофиксить . Заранее спасибо.
Смотреть есть ли запись в таблицу после здачи, если нет искать в:

aCis_gameserver\java\net\sf\l2j\gameserver\data\manager\SevenSignsManager.java (метод saveSevenSignsData)
 

Flip_spb

Бродяга
Регистрация
24 Ноя 2021
Сообщения
20
Реакции
6
Баллы
3
RaCoin
20
Смотреть есть ли запись в таблицу после здачи, если нет искать в:
приветствую, спасибо за ответ. В таблице смотрел -там все по 0 после сдачи. Гляну потом в SevenSignsManager.java
 

Eldaeron

Бродяга
Регистрация
24 Дек 2023
Сообщения
4
Реакции
1
Баллы
3
RaCoin
0
1705614320459.png

попробуйте добавить break, может в этом проблема?
Java:
        switch (getPlayerCabal(objectId))
        {
            case DAWN: _dawnStoneScore += contribScore;
                break;
          
            case DUSK:
                _duskStoneScore += contribScore;
                break;
        }

Кстати смотрел разницу RusAcis 3.5 и L2Acis 406, тут нету методов с фестивалем)
Как пример очки Фестиваля):
/**
     * Adds the specified number of festival points to the specified cabal. Remember, the same number of points are <B>deducted from the rival cabal</B> to maintain proportionality.
     * @param cabal
     * @param amount
     */
    public void addFestivalScore(CabalType cabal, int amount)
    {
        if (cabal == CabalType.DUSK)
        {
            _duskFestivalScore += amount;
           
            // To prevent negative scores!
            if (_dawnFestivalScore >= amount)
                _dawnFestivalScore -= amount;
        }
        else
        {
            _dawnFestivalScore += amount;
           
            if (_duskFestivalScore >= amount)
                _duskFestivalScore -= amount;
        }
    }
 

ForceUnleashed

Old school
Команда форума
Leader
Developer
Donator
Customer
Регистрация
21 Авг 2020
Сообщения
769
Решения
1
Реакции
612
Баллы
93
Веб-сайт
rusacis.com
RaCoin
15
Посмотреть вложение 1000

попробуйте добавить break, может в этом проблема?
Java:
        switch (getPlayerCabal(objectId))
        {
            case DAWN: _dawnStoneScore += contribScore;
                break;
        
            case DUSK:
                _duskStoneScore += contribScore;
                break;
        }

Кстати смотрел разницу RusAcis 3.5 и L2Acis 406, тут нету методов с фестивалем)
Как пример очки Фестиваля):
/**
     * Adds the specified number of festival points to the specified cabal. Remember, the same number of points are <B>deducted from the rival cabal</B> to maintain proportionality.
     * @param cabal
     * @param amount
     */
    public void addFestivalScore(CabalType cabal, int amount)
    {
        if (cabal == CabalType.DUSK)
        {
            _duskFestivalScore += amount;
         
            // To prevent negative scores!
            if (_dawnFestivalScore >= amount)
                _dawnFestivalScore -= amount;
        }
        else
        {
            _dawnFestivalScore += amount;
         
            if (_duskFestivalScore >= amount)
                _duskFestivalScore -= amount;
        }
    }
В новой версии java не обязательно ставить break, если ты используешь лямбду.
Удален addFestivalScore по причине, что у стандарного aCis напрочь сломаны фестивали, где можно собирать очки > 500 и получать очки за каждый вход. У нас же эта проблема уже больше чем 1.5 года исправлена.
 

Сверху Снизу