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; }Но почему-то не удачно :confused: Добавлено через 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;Только не понимаю как вычислять текущий лвл и сп, и как вставить это сюда, помогите пожалуйста. |
Re: Level and SP of Subclass
В классе SubClass есть поля:
PHP код:
В данном случае Вам стоит сделать примерное следующее PHP код:
|
Re: Level and SP of Subclass
ну так ты сначала даешь сабе новый класс, а потом уже от нее сохраняешь в бд уровень и экспу, т.е. уже сброшенные.
перед установкой новго класса сохраняй текущие уровень и экспу в переменные и с ними уже работай. ну и не забудь кроме сохранения в бд значений еще и в самом классе выставить сохраненные ранее значения. |
Текущее время: 20:15. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot