Добрый день ) Пытаюсь добавить себе конфиг на старт с 65тым уровнем. Зашел в ClassChangeService Добавил: if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { player.getCommonData().setChangeClass(true); player.getCommonData().setLevel(GSConfig.PLAYER_MAX_LEVEL); } Добавил импорты кастом и ГС конфиг В кастом конфиг добавил: @Property(key = "gameserver.enable.max.level", defaultValue = "true") public static boolean ENABLE_MAX_LEVEL; Ошибки компиляции: [javac] S:\SOURCE_AIONFLY\AionServer-4.0 (AionFly)\src\com\aionemu\gameserve r\services\ClassChangeService.java:188: error: illegal start of type [javac] if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { [javac] ^ [javac] S:\SOURCE_AIONFLY\AionServer-4.0 (AionFly)\src\com\aionemu\gameserve r\services\ClassChangeService.java:188: error: <identifier> expected [javac] if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { [javac] ^ [javac] S:\SOURCE_AIONFLY\AionServer-4.0 (AionFly)\src\com\aionemu\gameserve r\services\ClassChangeService.java:188: error: ';' expected [javac] if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { [javac] ^ [javac] S:\SOURCE_AIONFLY\AionServer-4.0 (AionFly)\src\com\aionemu\gameserve r\services\ClassChangeService.java:188: error: illegal start of type [javac] if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { [javac] Конфиг пытаюсь добавить в сборку AionFly 4.0
Ты добавил ключ в GSConfig ? GSConfig.PLAYER_MAX_LEVEL @Property(key = "gameserver.players.max.level", defaultValue = "65") public static int PLAYER_MAX_LEVEL;
Я конечно может чего-то не понял, но у меня в сборке так: # Max level for players 5.0 # Actual: 75 # Custom: 83 gameserver.players.max.level = 76 # Custom level settings # ---------------------------- # Default: 1 (for pvp server or events, Max.= 65) gameserver.starting.level = 76 # Custom Level to Change Class # ---------------------------- # Default: 10 (level 10 means full level 9 XP)(for pvp server or events Max.= 66) gameserver.startClass.maxLevel = 76
@Property(key = "gameserver.enable.max.level", defaultValue = "true") public static boolean ENABLE_MAX_LEVEL; Это то что я добавил в кастом конфиг В GSConfig эта строка уже была: @Property(key = "gameserver.players.max.level", defaultValue = "65") public static int PLAYER_MAX_LEVEL;
import com.aionemu.gameserver.configs.main.CustomConfig; import com.aionemu.gameserver.configs.main.MembershipConfig; import com.aionemu.gameserver.configs.main.GSConfig; import com.aionemu.gameserver.model.PlayerClass; import com.aionemu.gameserver.model.Race; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW; import com.aionemu.gameserver.network.aion.serverpackets.SM_QUEST_ACTION; import com.aionemu.gameserver.questEngine.model.QuestState; import com.aionemu.gameserver.questEngine.model.QuestStatus; import com.aionemu.gameserver.utils.PacketSendUtility;
Просто ты об этом не написал в первом посте. Проверяй внимательнее, такое чувство что у тебя где то по синтаксису отличия.
А сам код правильный? if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { player.getCommonData().setChangeClass(true); player.getCommonData().setLevel(GSConfig.PLAYER_MAX_LEVEL); }
Попробовал убрать зависимость от GS конфига, сделал вот так: (Незнаю правильно ли) if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel(65) { player.getCommonData().setChangeClass(true); player.getCommonData().setLevel(65); } Но ошибок стало меньше
Если он у тебя работает там, откуда ты его берешь, то скорее всего правильный. Просто либо где то ошибся, либо не всё перенес.
if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < GSConfig.PLAYER_MAX_LEVEL) { player.getCommonData().setChangeClass(true); player.getCommonData().setLevel(GSConfig.PLAYER_MAX_LEVEL); player.getCommonData().setChangeClass(false); SkillLearnService.addNewSkills(player); if (CustomConfig.NEW_PVP_MODE) { NewPvP.addItem(player); } } ThreadPoolManager.getInstance().schedule(new Runnable() { @Override public void run() { SkillLearnService.addMissingSkills(player); } }, 3 * 1000); if (DeveloperConfig.ENABLE_GM_PVP) { Вот, но я так понял тут много лишнего, путём логики взял только то что скидывал выше
Взял код с другой сборки, добавил вот этот код: public static void onEnableConfigurationToEnterWorld(Player player) { // set level 65 if enable config parameter int level = GSConfig.PLAYER_MAX_LEVEL; if (CustomConfig.ENABLE_MAX_LEVEL && player.getLevel() < level) { player.getCommonData().setLevel(level); } Добавил ключ в конфиг, скомпилировалось без ошибок, но 65 лвл не появился, дефолт поставил - true
Частично решил проблему, в CM_CREATE_CHARACTER добавил playerCommonData.setLevel(65); А в PlayerCommonData: maxLevel = 65; Теперь перс создается с 65 уровнем и после прохождения квеста на даэва остается 65 уровень. Осталась одна проблемка, невозможно выбрать класс, пишет что для этого нужно иметь 9 уровень, кто знает где изменить это?
Всё же не пойму, взял сервис StartConfig.java со сборки 4.7 (AionClassic), оставил в этом сервисе только код для старта с 65тым уровнем, в custom конфиг ключ добавил. Теперь компилится без проблем, но 65 уровня всё так же нет)