Есть в сборках функция наград за убийства, которая перестает работать, если изменить цифры требуемых убийств, вот строки из ядра, больше в сборке ничего связанного с убийствами и наградами не нашел, кроме конфига, там меняются только сообщения при получении награды. Как такое может быть, что при одних цифрах всё работает, а при других перестаёт совсем? Код: if (this.getKillsFor(winner.getObjectId(), victim.getObjectId()) < CustomConfig.MAX_DAILY_PVP_KILLS) { winner.getAbyssRank().setAllKill(); int kills = winner.getAbyssRank().getAllKill(); // Pvp Kill Reward. if (CustomConfig.ENABLE_KILL_REWARD) { if (kills % CustomConfig.KILLS_NEEDED1 == 5) { ItemService.addItem(winner, CustomConfig.REWARD1, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD1 + "] for having killed " + CustomConfig.KILLS_NEEDED1 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 6 [" + CustomConfig.REWARD1 + "]"); } if (kills % CustomConfig.KILLS_NEEDED2 == 15) { ItemService.addItem(winner, CustomConfig.REWARD2, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD2 + "] for having killed " + CustomConfig.KILLS_NEEDED2 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 16 [" + CustomConfig.REWARD2 + "]"); } if (kills % CustomConfig.KILLS_NEEDED3 == 20) { ItemService.addItem(winner, CustomConfig.REWARD3, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD3 + "] for having killed " + CustomConfig.KILLS_NEEDED3 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 21 [" + CustomConfig.REWARD3 + "]"); } } }
Вернее в конфиге меняется даже не сообщение о награде, а только сообщение в цифрах. То есть если в ядре при 5 убийствах, а в конфиге 15 награда, то при 5 убийствах выдается награда с надписью о награде за 15 убийств. Ладно эти надписи, но при любом изменении в ядре функция просто перестаёт работать.. И на новых персонажах и с чистыми базами... Код: # Enable the rewards for pvp kills # Default: true # (Reset all_kill from abyss_rank table before activate it) gameserver.kill.reward.enable = true # Set the kills needed to get a reward (do NOT set config to 0) # Default: 5 gameserver.kills.needed1 = 1 # Default: 10 gameserver.kills.needed2 = 3 # Default: 15 gameserver.kills.needed3 = 5 # Select the item reward for pvp kills # Default: 186000031 (Silver Medal) gameserver.item.reward1 = 186000030 # Default: 186000030 (Golden Medal) gameserver.item.reward2 = 186000096 # Default: 186000096 (Platinum Medal) gameserver.item.reward3 = 188051103
Так нужно менять там и там цыфры, какой то дебил не удосужился все вынести в конфиг, выходит в любом случае если первый конфиг равен к примеру 5 и в ядре это проверяется как ==5 то тогда сработает.
скажу больше, работает когда в ядре 1 3 5, а в конфиге 5 10 15 (дефолтно стояло) то есть никакой закономерности даже нет, как теперь поступить?
ну что с этим столбцом что-то есть я понял, однако при чем тут он если работает 1 3 5, но не работают любые другие числа да и вообще, у нового персонажа же все чисто в ранге
Код: if (kills % CustomConfig.KILLS_NEEDED1 == 1) gameserver.kills.needed1 = 1 не работает Код: if (kills % CustomConfig.KILLS_NEEDED1 == 1) gameserver.kills.needed1 = 5 работает. Что нужно курить, чтобы понять как это работает?
еще в ядре есть конфиг, его тоже менял, всё безуспешно, работает только дефолтная чушь 1, 3, 5 = 5, 10, 15 Код: @Property(key = "gameserver.kills.needed1", defaultValue = "5") public static int KILLS_NEEDED1; @Property(key = "gameserver.kills.needed2", defaultValue = "15") public static int KILLS_NEEDED2; @Property(key = "gameserver.kills.needed3", defaultValue = "20") public static int KILLS_NEEDED3;
я же написал. новых персонажей создаю, у них по нулям всё, при 1 3 5 и на старых с убийствами и рангом работает всё
а что у меня не так? кажется вы невнимательно прочли, работает только при не соответствии формул, в конфиге 10, а в ядре 3, а при правильности формул работать перестает
точнее работает только при дефолтном, там ядро 1 3 5 = конфиг 5 10 15. любое изменение - работать перестает.
Код: if (CustomConfig.ENABLE_KILL_REWARD) { if (kills % CustomConfig.KILLS_NEEDED1 == 1) { ItemService.addItem(winner, CustomConfig.REWARD1, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD1 + "] for having killed " + CustomConfig.KILLS_NEEDED1 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 2 [" + CustomConfig.REWARD1 + "]"); } if (kills % CustomConfig.KILLS_NEEDED2 == 3) { ItemService.addItem(winner, CustomConfig.REWARD2, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD2 + "] for having killed " + CustomConfig.KILLS_NEEDED2 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 4 [" + CustomConfig.REWARD2 + "]"); } if (kills % CustomConfig.KILLS_NEEDED3 == 5) { ItemService.addItem(winner, CustomConfig.REWARD3, 1); PacketSendUtility.sendMessage(winner, "Congratulations, you have won " + "[item: " + CustomConfig.REWARD3 + "] for having killed " + CustomConfig.KILLS_NEEDED3 + " players !"); log.info("[REWARD] Player [" + winner.getName()+ "] win 6 [" + CustomConfig.REWARD3 + "]"); } } Код: if(CustomConfig.ENABLE_KILL_REWARD) { if (kills % CustomConfig.KILLS_NEEDED1 == 1) { ItemService.addItem(winner, CustomConfig.REWARD1, 2); PacketSendUtility.sendMessage(winner, "Felicitation Vous Avez Gagnez 2" + "[item: " + CustomConfig.REWARD1 + "] Pour " + CustomConfig.KILLS_NEEDED1 + " Avoir Tuer"); } if (kills % CustomConfig.KILLS_NEEDED2 == 3) { ItemService.addItem(winner, CustomConfig.REWARD2, 4); PacketSendUtility.sendMessage(winner, "Felicitation Vous Avez Gagnez 4" + "[item: " + CustomConfig.REWARD2 + "] Pour " + CustomConfig.KILLS_NEEDED2 + " Avoir Tuer"); } if (kills % CustomConfig.KILLS_NEEDED3 == 5) { ItemService.addItem(winner, CustomConfig.REWARD3, 6); PacketSendUtility.sendMessage(winner, "Felicitation Vous Avez Gagnez 6" + "[item: " + CustomConfig.REWARD3 + "] Pour " + CustomConfig.KILLS_NEEDED3 + " Avoir Tuer"); } } Спасибо, но вроде они одинаковы