Перейти к содержанию
Авторизация  
doktar

Lucera

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

перекопал все а толку 0

Изменено пользователем doktar

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


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

L2PcInstance или тут L2Player. Ищите там есть AUTO_SKILL_LEARN добавьте проверку если чар на сабе то не учить автоматом

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


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

Давайте посмотрим L2VillageMasterInstance 394 строка

if (!player.addSubClass(paramOne, player.getTotalSubClasses() + 1))
{
player.sendMessage(Message.getMessage(player, Message.MessageId.MSG_CANT_ADD_SUB));
return;
}

Если подумать это выхов функции addSubClass из L2PcInstance и вывод игроку сообщение об ошибке если она не удалось

Идём дальше открываем L2PcInstance и ищем addSubClass видим

public boolean addSubClass(int classId, int classIndex)
{
 if (getTotalSubClasses() == Config.MAX_SUBCLASS || classIndex == 0)
  return false;
 if (getSubClasses().containsKey(classIndex))
  return false;
 // Note: Never change _classIndex in any method other than setActiveClass().
 store(true);
 SubClass newClass = new SubClass();
 newClass.setClassId(classId);
 newClass.setClassIndex(classIndex);
 Connection con = null;
 try
 {
  // Store the basic info about this new sub-class.
  con = L2DatabaseFactory.getInstance().getConnection(con);
  PreparedStatement statement = con.prepareStatement(ADD_CHAR_SUBCLASS);
  statement.setInt(1, getObjectId());
  statement.setInt(2, newClass.getClassId());
  statement.setLong(3, newClass.getExp());
  statement.setInt(4, newClass.getSp());
  statement.setInt(5, newClass.getLevel());
  statement.setInt(6, newClass.getClassIndex()); // <-- Added
  statement.execute();
  statement.close();
 }
 catch (Exception e)
 {
  _log.warn("WARNING: Could not add character sub class for " + getName() + ": " + e);
  return false;
 }
 finally
 {
  try
  {
   if (con != null)
 con.close();
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
 }
 // Commit after database INSERT incase exception is thrown.
 getSubClasses().put(newClass.getClassIndex(), newClass);
 ClassId subTemplate = ClassId.values()[classId];
 Collection<L2SkillLearn> skillTree = SkillTreeTable.getInstance().getAllowedSkills(subTemplate);
 if (skillTree == null)
  return true;
 Map<Integer, L2Skill> prevSkillList = new HashMap<Integer, L2Skill>();
 for (L2SkillLearn skillInfo : skillTree)
 {
  if (skillInfo.getMinLevel() <= 40)
  {
   L2Skill prevSkill = prevSkillList.get(skillInfo.getId());
   L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getId(), skillInfo.getLevel());
   if (prevSkill != null && (prevSkill.getLevel() >= newSkill.getLevel()))
 continue;
   if(newSkill!=null) {
 prevSkillList.put(newSkill.getId(), newSkill);
 storeSkill(newSkill, prevSkill, classIndex);
   } else
 _log.info("L2PcInstance: Skill "+skillInfo.getId()+" not found for character "+getName()+" ("+getClassId()+")");
  }
 }
 getStat().resetModifiers();
 return true;
}

Из этой функции собственно вот код дающий скилы новому сабу

 Collection<L2SkillLearn> skillTree = SkillTreeTable.getInstance().getAllowedSkills(subTemplate);
 if (skillTree == null)
  return true;
 Map<Integer, L2Skill> prevSkillList = new HashMap<Integer, L2Skill>();
 for (L2SkillLearn skillInfo : skillTree)
 {
  if (skillInfo.getMinLevel() <= 40)
  {
   L2Skill prevSkill = prevSkillList.get(skillInfo.getId());
   L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getId(), skillInfo.getLevel());
   if (prevSkill != null && (prevSkill.getLevel() >= newSkill.getLevel()))
 continue;
   if(newSkill!=null) {
 prevSkillList.put(newSkill.getId(), newSkill);
 storeSkill(newSkill, prevSkill, classIndex);
   } else
 _log.info("L2PcInstance: Skill "+skillInfo.getId()+" not found for character "+getName()+" ("+getClassId()+")");
  }
 }

Учитесь шевелить мозгами.

  • Upvote 1

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


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

По моему тут простг написано что при взятии скба нужно дать все скиллы до 40 лвла а вот чтоб дальше учить авто или вручную нужно в L2PcInstance задать проверку саб или основа для изучения автоматом или вручную это мое мнение а вам решать

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


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

ТС именно просил что-бы скилы 40 лвл при взятии саба не учились.

  • Upvote 1

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


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

все спс парни все пашет норм и LeKToR одельное спасибо тему можна закрыть

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


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

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

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

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

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

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

Войти

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

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

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

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

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