Level and SP of Subclass - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 05.02.2015, 22:17   #1
Аватар для L2J
Пользователь

Автор темы (Топик Стартер) Level and SP of Subclass

Помогите пожалуйста! Хотел сделать чтобы при взятии сабкласса не сбрасывалось СП и Лвл, то есть на каком взял, такой и останется при взятии.
Пробовал сделать так:
	public boolean addSubClass(final int classId, boolean storeOld, int certification) {
		if (_classlist.size() >= 15)
			return false;
 
		final ClassId newId = ClassId.VALUES[classId];
 
		final SubClass newClass = new SubClass();
		newClass.setBase(false);
		if (newId.getRace() == null)
			return false;
 
		newClass.setClassId(classId);
		newClass.setCertification(certification);
 
		_classlist.put(classId, newClass);
 
		Connection con = null;
		PreparedStatement statement = null;
		try {
			// Store the basic info about this new sub-class.
			con = DatabaseFactory.getInstance().getConnection();
			statement = con.prepareStatement("REPLACE INTO character_subclasses (char_obj_id, class_id, exp, sp, curHp, curMp, curCp, maxHp, maxMp, maxCp, level, active, isBase, death_penalty, certification) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
			statement.setInt(1, getObjectId());
			statement.setInt(2, newClass.getClassId());
			statement.setLong(3, Experience.LEVEL[getActiveClass().getLevel()]);
			statement.setLong(4, getActiveClass().getSp());
			statement.setDouble(5, getCurrentHp());
			statement.setDouble(6, getCurrentMp());
			statement.setDouble(7, getCurrentCp());
			statement.setDouble(8, getCurrentHp());
			statement.setDouble(9, getCurrentMp());
			statement.setDouble(10, getCurrentCp());
			statement.setInt(11, getActiveClass().getLevel());
			statement.setInt(12, 0);
			statement.setInt(13, 0);
			statement.setInt(14, 0);
			statement.setInt(15, certification);
			statement.execute();
		} catch (final Exception e) {
			_log.warn("Could not add character sub-class: " + e, e);
			return false;
		} finally {
			DbUtils.closeQuietly(con, statement);
		}
 
 
		setActiveSubClass(classId, storeOld);
 
		boolean countUnlearnable = true;
		int unLearnable = 0;
 
		sendPacket(new SkillList(this));
		setCurrentHpMp(getMaxHp(), getMaxMp(), true);
		setCurrentCp(getMaxCp());
		return true;
	}
Code: Java
Но почему-то не удачно

Добавлено через 12 часов 50 минут
Понял что это делается в Subclass.java
На этом отрезке кода:
public class SubClass
{
	public static final int CERTIFICATION_65 = 1 << 0;
	public static final int CERTIFICATION_70 = 1 << 1;
	public static final int CERTIFICATION_75 = 1 << 2;
	public static final int CERTIFICATION_80 = 1 << 3;
 
	private int _class = 0;
	private long _exp = Experience.LEVEL[Config.ALT_GAME_START_LEVEL_TO_SUBCLASS], minExp = Experience.LEVEL[Config.ALT_GAME_START_LEVEL_TO_SUBCLASS], maxExp = Experience.LEVEL[Experience.LEVEL.length - 1];
	private int _sp = 0;
	private int _level = Config.ALT_GAME_START_LEVEL_TO_SUBCLASS, _certification;
	private double _Hp = 1, _Mp = 1, _Cp = 1;
	private boolean _active = false, _isBase = false;
	private DeathPenalty _dp;
Code: Java
Только не понимаю как вычислять текущий лвл и сп, и как вставить это сюда, помогите пожалуйста.

Последний раз редактировалось L2J; 06.02.2015 в 11:07. Причина: Добавлено сообщение
L2J вне форума Ответить с цитированием
Непрочитано 07.02.2015, 12:11   #2
Пользователь

По умолчанию Re: Level and SP of Subclass

В классе SubClass есть поля:
PHP код:
private long _exp Experience.LEVEL[Config.ALT_GAME_START_LEVEL_TO_SUBCLASS], minExp Experience.LEVEL[Config.ALT_GAME_START_LEVEL_TO_SUBCLASS], maxExp Experience.LEVEL[Experience.LEVEL.length 1];
    private 
int _sp 0;
    private 
int _level Config.ALT_GAME_START_LEVEL_TO_SUBCLASS_certification
Я к сожалению, не знаю, как именно устроена архитектура приложения.
В данном случае Вам стоит сделать примерное следующее
PHP код:
function void setActiveSubClass(classIdstoreOldexpsplevel){
this._sp sp;
this._level level;
this._exp exp;
 
//..................

Суть в том, что мы даем сабб классу персонажу с определенными параметрами.

Последний раз редактировалось Virt; 07.02.2015 в 13:40.
Virt вне форума Отправить сообщение для Virt с помощью ICQ Отправить сообщение для Virt с помощью Skype™ Ответить с цитированием
Непрочитано 07.02.2015, 15:16   #3
Аватар для Gaikotsu
Герой

По умолчанию Re: Level and SP of Subclass

ну так ты сначала даешь сабе новый класс, а потом уже от нее сохраняешь в бд уровень и экспу, т.е. уже сброшенные.
перед установкой новго класса сохраняй текущие уровень и экспу в переменные и с ними уже работай.
ну и не забудь кроме сохранения в бд значений еще и в самом классе выставить сохраненные ранее значения.
Gaikotsu вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Donate Shop [Lucera] labrador116 Lineage II 23 12.03.2014 15:08
PvPGN для новичков nelegal Создание сервера 225 22.01.2014 17:29
Гс Ошибка Литион Lineage II 20 03.02.2013 00:56
Sub-Class Тормоза GRAFOON Lineage II 23 26.01.2013 17:23
Адаптируем SQL BimBom Работа со скриптами 9 14.10.2009 15:14


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:57. Часовой пояс GMT +3.

Вверх