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

Максимальное количество Sub Class

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

Здравствуйте, помогите пожалуйста с саб классами...

В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает...

 

# Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0)
AltSubAdd = 2
 
Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить.
 

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


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

 

Здравствуйте, помогите пожалуйста с саб классами...

В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает...

 

# Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0)
AltSubAdd = 2
 
Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить.

 

Сурс есть?

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


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

 

Здравствуйте, помогите пожалуйста с саб классами...

В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает...

 

# Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0)
AltSubAdd = 2
 
Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить.

 

# ----------------------------------------------
# Управление суб-классами
# ----------------------------------------------
# Разрешить игроку добавить суб-класс без прохождения квеста
# По умолчанию: false
AltSubClassWithoutQuests = true
 
# Разрешить игроку добавить суб-класс не проходя квест, но игрок должен иметь итемы (Destiny, Mimir's Elixir)
# По умолчанию: false
SubclassWithItemAndNoQuest = false
 
# Разрешить игроку добавить суб-класс за определенной вид итемов
# По умолчанию: false
SubclassWithCustomItem = true
SubclassWithCustomItemID = 57
SubclassWithCustomItemCount = 1
 
# Если true, то скилы от предыдущего суб-класса не будут удалены
# default = false
AltSubClassSkills = false
 
# Максимальное количество добавленных суб-классов
# По умолчанию: 3
MaxSubClass = 5
 
# Какой максимальный уровень может получить суб-класс
# По умолчанию: 80
SubclassMaxLevel = 80
 
# Какой уровень получает новый суб-класс
# По умолчанию: 40
SublcassInitLevel = 40

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


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

 

Здравствуйте, помогите пожалуйста с саб классами...

В сборке l2cccp в конфиге есть добавление количество саб классов, но оно не работает...

 

# Сколько добавить сабклассов к имеющимся 3-м. (По офу = 0)
AltSubAdd = 2
 
Как было максимум 3 саб класса так и осталось.... помогите пожалуйста это исправить.

 

gama server config custom

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


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

 

# ----------------------------------------------
# Управление суб-классами
# ----------------------------------------------
# Разрешить игроку добавить суб-класс без прохождения квеста
# По умолчанию: false
AltSubClassWithoutQuests = true
 
# Разрешить игроку добавить суб-класс не проходя квест, но игрок должен иметь итемы (Destiny, Mimir's Elixir)
# По умолчанию: false
SubclassWithItemAndNoQuest = false
 
# Разрешить игроку добавить суб-класс за определенной вид итемов
# По умолчанию: false
SubclassWithCustomItem = true
SubclassWithCustomItemID = 57
SubclassWithCustomItemCount = 1
 
# Если true, то скилы от предыдущего суб-класса не будут удалены
# default = false
AltSubClassSkills = false
 
# Максимальное количество добавленных суб-классов
# По умолчанию: 3
MaxSubClass = 5
 
# Какой максимальный уровень может получить суб-класс
# По умолчанию: 80
SubclassMaxLevel = 80
 
# Какой уровень получает новый суб-класс
# По умолчанию: 40
SublcassInitLevel = 40

 

У меня нету такого в конфиге....

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


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

Да, есть.

Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. 

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


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

Тогда смотри куда приходит конфиг твой =) по идеи в виллидж мастера, где чек на количество сабов. 

Не могу найти где там увеличить количество саб классов... =(

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


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

По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте.

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


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

По мимо виладж мастера еще в l2pcinstance есть что-то связанное с сабами там гляньте.

l2pcinstance нету такого файла... может он как-то по другому называется?

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


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

Завтра буду дома скину все что связано с сабами.

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


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

А проще юзните поиск через notepad по всему сурсу,по конфигу сабкласов, по их кол-во, в 2ух класах он должен найти конфиг, если реализация есть.

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


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

А проще юзните поиск через notepad по всему сурсу,по конфигу сабкласов, по их кол-во, в 2ух класах он должен найти конфиг, если реализация есть.

Искал уже так... реализация вроде как и есть.. но не работает.

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


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

Ну у меня вот такая реализация.

 

в L2PcInstance

	public boolean addSubClass(int classId, int classIndex)
	{
		if (!_subclassLock.tryLock())
			return false;
		
		try
		{
			if (getTotalSubClasses() == Config.MAX_SUB_CLASSES || classIndex == 0)
				return false;
			
			if (getSubClasses().containsKey(classIndex))
				return false;
			
			// Note: Never change _classIndex in any method other than setActiveClass().
			
			SubClass newClass = new SubClass();
			newClass.setClassId(classId);
			newClass.setClassIndex(classIndex);
			
			try (Connection con = L2DatabaseFactory.getInstance().getConnection())
			{
				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.warning("WARNING: Could not add character sub class for " + getName() + ": " + e);
				return false;
			}
			
			// 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;
			
			final Map<Integer, L2Skill> prevSkillList = new LinkedHashMap<>();
			
			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;
					
					prevSkillList.put(newSkill.getId(), newSkill);
					storeSkill(newSkill, prevSkill, classIndex);
				}
			}
			
			return true;
		}
		finally
		{
			_subclassLock.unlock();
		}
	}

L2VilladgeMasterInstance

 

case 1: // Add Subclass - Initial
					// Avoid giving player an option to add a new sub class, if they have three already.
					if(player.getTotalSubClasses() == Config.MAX_SUB_CLASSES)
					{
						player.sendMessage("You can now only change one of your current sub classes.");
						return;
					}
					subsAvailable = getAvailableSubClasses(player);

					if(subsAvailable != null && !subsAvailable.isEmpty())
					{
						content.append("Add Subclass:<br>Which sub class do you wish to add?<br>");

						for(PlayerClass subClass : subsAvailable)
						{
							content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 4 " + subClass.ordinal() + "\" msg=\"1268;" + formatClassForDisplay(subClass) + "\">" + formatClassForDisplay(subClass) + "</a><br>");
						}
					}
					else
					{
						player.sendMessage("There are no sub classes available at this time.");
						return;
					}
					break;

Обратите внимание в конфиге может быть MaxSubClasses, а в коде MAX_SUB_CLASSES.

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

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


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

Ну у меня вот такая реализация.

 

в L2PcInstance

	public boolean addSubClass(int classId, int classIndex)
	{
		if (!_subclassLock.tryLock())
			return false;
		
		try
		{
			if (getTotalSubClasses() == Config.MAX_SUB_CLASSES || classIndex == 0)
				return false;
			
			if (getSubClasses().containsKey(classIndex))
				return false;
			
			// Note: Never change _classIndex in any method other than setActiveClass().
			
			SubClass newClass = new SubClass();
			newClass.setClassId(classId);
			newClass.setClassIndex(classIndex);
			
			try (Connection con = L2DatabaseFactory.getInstance().getConnection())
			{
				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.warning("WARNING: Could not add character sub class for " + getName() + ": " + e);
				return false;
			}
			
			// 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;
			
			final Map<Integer, L2Skill> prevSkillList = new LinkedHashMap<>();
			
			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;
					
					prevSkillList.put(newSkill.getId(), newSkill);
					storeSkill(newSkill, prevSkill, classIndex);
				}
			}
			
			return true;
		}
		finally
		{
			_subclassLock.unlock();
		}
	}

L2VilladgeMasterInstance

 

case 1: // Add Subclass - Initial
					// Avoid giving player an option to add a new sub class, if they have three already.
					if(player.getTotalSubClasses() == Config.MAX_SUB_CLASSES)
					{
						player.sendMessage("You can now only change one of your current sub classes.");
						return;
					}
					subsAvailable = getAvailableSubClasses(player);

					if(subsAvailable != null && !subsAvailable.isEmpty())
					{
						content.append("Add Subclass:<br>Which sub class do you wish to add?<br>");

						for(PlayerClass subClass : subsAvailable)
						{
							content.append("<a action=\"bypass -h npc_" + getObjectId() + "_Subclass 4 " + subClass.ordinal() + "\" msg=\"1268;" + formatClassForDisplay(subClass) + "\">" + formatClassForDisplay(subClass) + "</a><br>");
						}
					}
					else
					{
						player.sendMessage("There are no sub classes available at this time.");
						return;
					}
					break;

Обратите внимание в конфиге может быть MaxSubClasses, а в коде MAX_SUB_CLASSES.

L2PcInstance у меня это-го файла нету... искал через поиск

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


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

L2PcInstance у меня это-го файла нету... искал через поиск

)))))

L2PcInstance.java = Player.java

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


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

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

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

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

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

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

Войти

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

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

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

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

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