Перейти к содержанию
Авторизация  
Артем_Стойлос

Не работает новый .class в ядре

Рекомендуемые сообщения

Добрый день. Решил уменьшить максимальный уровень персонажа с 81 до 41. нашел нужный Experience.class  отредактировал не нужное и то что осталось обратно сохранил в класс и заменил старый. Запустил сервер и тут облом. Во первых из админ менюхи пишет "Неварно задан Уровень"  а при убийстве моба экспа не идет и в логе выдает ошибки на следующие классы :

java.lang.ArrayIndexOutOfBoundsException: 81
        at ru.catssoftware.gameserver.model.actor.stat.PcStat.getExpForLevel(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.stat.PlayableStat.addExp(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.stat.PcStat.addExp(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.stat.PlayableStat.addExpAndSp(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.stat.PcStat.addExpAndSp(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.instance.L2PcInstance.addExpAndSp(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Attackable.calculateRewards(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Character.doDie(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.instance.L2NpcInstance.doDie(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Attackable.doDie(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.instance.L2MonsterInstance.doDie(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.status.CharStatus.reduceHp0(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.status.NpcStatus.reduceHp0(Unknown Source)
        at ru.catssoftware.gameserver.model.actor.status.CharStatus.reduceHp(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Character.reduceCurrentHp(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Attackable.reduceCurrentHp(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Character.reduceCurrentHp(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Character.onHitTimer(Unknown Source)
        at ru.catssoftware.gameserver.model.L2Character$HitTask.run(Unknown Source)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
 
Может кто нибудь обьяснить что не так, где я ошибся или что пропустил, и как мне исправить это. 
Заранее спасибо )))) 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

смотреть классы в ошибке, особенно

ru.catssoftware.gameserver.model.actor.stat.PcStat

метод getExpForLevel

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

смотреть классы в ошибке, особенно

ru.catssoftware.gameserver.model.actor.stat.PcStat

метод getExpForLevel

Но ело в том что я в них не лазил даже, а эти классы делают ссылку на Experience.class  а значит что сервер не распознает новый класс и почему ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

смотреть классы в ошибке, особенно

ru.catssoftware.gameserver.model.actor.stat.PcStat

метод getExpForLevel

  public final long getExpForLevel(int paramInt)
  {
    return ru.catssoftware.gameserver.model.base.Experience.LEVEL[paramInt];
  }
 
  public final L2PcInstance getActiveChar()
  {
    return (L2PcInstance)this._activeChar;
  }
 
  public final long getExp()
  {
    L2PcInstance localL2PcInstance = getActiveChar();
    if (localL2PcInstance.isSubClassActive())
      try
      {
        return localL2PcInstance.getSubclassByIndex(localL2PcInstance.getClassIndex()).getExp();
      }
      catch (NullPointerException localNullPointerException)
      {
      }
    return super.getExp();
  }
 
  public final void setExp(long paramLong)
  {
    L2PcInstance localL2PcInstance = getActiveChar();
    if (localL2PcInstance.isSubClassActive())
      localL2PcInstance.getSubclassByIndex(localL2PcInstance.getClassIndex()).setExp(paramLong);
    else
      super.setExp(paramLong);
  }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но ело в том что я в них не лазил даже, а эти классы делают ссылку на Experience.class  а значит что сервер не распознает новый класс и почему ?

мне кажется дело в том что где то еще есть параметр отвечающий за уровень у которого значение 81, не зря же он именно на это указывает

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне кажется дело в том что где то еще есть параметр отвечающий за уровень у которого значение 81, не зря же он именно на это указывает

возможно. Я пробовал и в обратном порядке поступить тоесть добавить максимальный уровень и тогда была другая проблема. опыт довало но только до 81 уровня. Если пробвать дать 90 уровень то небыло реакции. а при попытке дать 100 уровень система писала что выбран неверный уровень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

мне кажется дело в том что где то еще есть параметр отвечающий за уровень у которого значение 81, не зря же он именно на это указывает

А можно ли не лезя в ядро сервака зделать чтои конфигу где будет указан максимальный уровень к примеру 40 или 50, так как я посмотрел и понял что много чего связано с уровнем персонажа от квэста статов профессий клана академии итп.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что, сам сервер экстрасенсорным методом определит что в конфигах есть новый параметр и его надо использовать в определенных местах?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что, сам сервер экстрасенсорным методом определит что в конфигах есть новый параметр и его надо использовать в определенных местах?

Изменения вообще не глобальные в конфиге. В нем указан список экспы нужный для уровня  68 (2-лв)   150 (3-лв) и так далее. я методом научного тыка удалил лишнее до 41 уровня, но при использовании конфига выдает ошибку. НО.... Если не удалять уровни а добавлять их то конфига работает... А значит что по другим конфигам есть ссылка на указаные там уровни к примеру 40- 2 профа   76- 3 профа. 75- Саб класс и если их урезать то дает ошибку. 

Из этого следует другой вопрос. Можно ли сделать изменения не в этм Классе а в конфиге указать макс уровень как указываются рейты и прочее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Изменения вообще не глобальные в конфиге. В нем указан список экспы нужный для уровня  68 (2-лв)   150 (3-лв) и так далее. я методом научного тыка удалил лишнее до 41 уровня, но при использовании конфига выдает ошибку. НО.... Если не удалять уровни а добавлять их то конфига работает... А значит что по другим конфигам есть ссылка на указаные там уровни к примеру 40- 2 профа   76- 3 профа. 75- Саб класс и если их урезать то дает ошибку. 

Из этого следует другой вопрос. Можно ли сделать изменения не в этм Классе а в конфиге указать макс уровень как указываются рейты и прочее.

java.lang.ArrayIndexOutOfBoundsException: 81 - Вы убрали из массива уровни, но сервер к ним обращается и дальше. Не нужно их трогать, можно, например, при апе >41 лвл поставить проверку, и устанавливать персонажу 41 лвл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

java.lang.ArrayIndexOutOfBoundsException: 81 - Вы убрали из массива уровни, но сервер к ним обращается и дальше. Не нужно их трогать, можно, например, при апе >41 лвл поставить проверку, и устанавливать персонажу 41 лвл.

Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...