↑ ↓

Награда за убийства

Тема в разделе "Помощь", создана пользователем novich, 17 июн 2018.

  1. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    Есть в сборках функция наград за убийства, которая перестает работать, если изменить цифры требуемых убийств, вот строки из ядра, больше в сборке ничего связанного с убийствами и наградами не нашел, кроме конфига, там меняются только сообщения при получении награды.
    Как такое может быть, что при одних цифрах всё работает, а при других перестаёт совсем?
    Код:
    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 + "]");
    				}
    			}
    		}
     
  2. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    Вернее в конфиге меняется даже не сообщение о награде, а только сообщение в цифрах. То есть если в ядре при 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
     
  3. Offline

    Systems Ефрейтор

    209
    21
    51
    Кредиты:
    $15.430,38
    Репутация:
    0
    Так нужно менять там и там цыфры, какой то дебил не удосужился все вынести в конфиг, выходит в любом случае если первый конфиг равен к примеру 5 и в ядре это проверяется как ==5 то тогда сработает.
     
  4. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    ну так я так и делаю, однако не работает...
     
  5. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    скажу больше, работает когда в ядре 1 3 5, а в конфиге 5 10 15 (дефолтно стояло)
    то есть никакой закономерности даже нет, как теперь поступить?
     
  6. Offline

    Systems Ефрейтор

    209
    21
    51
    Кредиты:
    $15.430,38
    Репутация:
    0
    Учитывай что там ещё берет
    int kills = winner.getAbyssRank().getAllKill();
    Все килы.
     
  7. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    ну что с этим столбцом что-то есть я понял, однако при чем тут он если работает 1 3 5, но не работают любые другие числа да и вообще, у нового персонажа же все чисто в ранге
     
  8. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    Код:
    if (kills % CustomConfig.KILLS_NEEDED1 == 1)
    gameserver.kills.needed1 = 1
    не работает
    Код:
    if (kills % CustomConfig.KILLS_NEEDED1 == 1)
    gameserver.kills.needed1 = 5
    работает.

    Что нужно курить, чтобы понять как это работает?
     
  9. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    еще в ядре есть конфиг, его тоже менял, всё безуспешно, работает только дефолтная чушь 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;
     
  10. Offline

    romanz Ефрейтор Модератор

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    а ты после того как изменил в конфиге , в базе надеюсь количество убийств обнуляешь )?
     
  11. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    я же написал. новых персонажей создаю, у них по нулям всё, при 1 3 5 и на старых с убийствами и рангом работает всё
     
  12. Offline

    romanz Ефрейтор Модератор

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    ну а ты формулу посчитай )) оно и не будет работать ))
     
  13. Offline

    marti.nfalse Рядовой

    19
    9
    36
    Кредиты:
    $103,04
    Репутация:
    2
    Please login or register to view links
    держите "не костыли"
     
  14. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    а что у меня не так? кажется вы невнимательно прочли, работает только при не соответствии формул, в конфиге 10, а в ядре 3, а при правильности формул работать перестает
     
  15. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    точнее работает только при дефолтном, там ядро 1 3 5 = конфиг 5 10 15. любое изменение - работать перестает.
     
  16. TopicStarter Overlay
    Offline

    novich Рядовой

    212
    1
    46
    Кредиты:
    $134,00
    Репутация:
    -2
    Код:
    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");
    			}
    		}
    Спасибо, но вроде они одинаковы