↑ ↓

Группа/Альянс

Тема в разделе "Помощь", создана пользователем Free, 26 дек 2018.

  1. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    в этой сборке 3.0 с остальными проблемами была оснавная причина всех проблем это вот эта строка
    if (GSConfig.SERVER_VERSION.startsWith("3.1")) {
    её просто надо было стереть о то всюду
    но в данной проблеме я хз.
     
  2. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    смотри PvpService.getInstance().doReward(victim);

    там как раз сообщение посылается
    // Announce that player has died.
    PacketSendUtility.broadcastPacketAndReceive(victim,
    SM_SYSTEM_MESSAGE.STR_MSG_COMBAT_FRIENDLY_DEATH_TO_B(victim.getName(), winner.getName()));
     
  3. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    охх разобрался)) отсутствовала строка
    в этой сборке 3.0
    PacketSendUtility.broadcastPacketAndReceive(victim,
    SM_SYSTEM_MESSAGE.STR_MSG_COMBAT_FRIENDLY_DEATH_TO_B(victim.getName(), winner.getName()));

    проверил в в других сборках 2.7 и 3.9 там есть эти строки а в 3.0 вообще не было!
     
  4. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    щас добавлю строки и проверю
     
  5. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    компил прошёл успешно + GS был запущен успешно
    преблема решилась на 50 % килл убиваем персонажа килл теперь анонсируется.

    остальные 50 % не решились
    Проблема заключается в том что при убийстве не пришли Очки бездны + не был зачислен килл за убийство!
     

    Вложения:

    • Aion0009.jpg
      Aion0009.jpg
      Размер файла:
      395,8 КБ
      Просмотров:
      7
    • Aion0010.jpg
      Aion0010.jpg
      Размер файла:
      252 КБ
      Просмотров:
      5
  6. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    так же и на оборот
     
  7. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    там же смотри
    Код:
    		// Distribute AP to groups and players that had damage.
    		for (AggroInfo aggro : victim.getAggroList().getFinalDamageList(true)) {
    			if (aggro.getAttacker() instanceof Player) {
    				success = rewardPlayer(victim, totalDamage, aggro);
    			}
    			else if (aggro.getAttacker() instanceof PlayerGroup) {
    				success = rewardPlayerGroup(victim, totalDamage, aggro);
    			}
    			else if (aggro.getAttacker() instanceof PlayerAlliance) {
    				success = rewardPlayerAlliance(victim, totalDamage, aggro);
    			}
    
    			// Add damage last, so we don't include damage from same race. (Duels, Arena)
    			if (success)
    				playerDamage += aggro.getDamage();
    		}
     
  8. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    это есть всё! сравнивал со сборкой 3.9 и 2.7 тоже самое у 2.7 написано всё но у 3.9 написано вот так вот

    // Distribute AP to groups and players that had damage.
    for (AggroInfo aggro : victim.getAggroList().getFinalDamageList(true)) {
    success = false;
    if (aggro.getAttacker() instanceof Player) {
    success = rewardPlayer(victim, totalDamage, aggro);
    }
    else if (aggro.getAttacker() instanceof PlayerGroup) {
    success = rewardPlayerGroup(victim, totalDamage, aggro);
    }
    else if (aggro.getAttacker() instanceof PlayerAlliance) {
    success = rewardPlayerAlliance(victim, totalDamage, aggro);
    }

    // Add damage last, so we don't include damage from same race. (Duels, Arena)
    if (success)
    playerDamage += aggro.getDamage();
    }
     
  9. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Код:
    // Distribute AP to groups and players that had damage.
    	  for (AggroInfo aggro : victim.getAggroList().getFinalDamageList(true)) {
    		 success = false;
    		 if (aggro.getAttacker() instanceof Player) {
    			success = rewardPlayer(victim, totalDamage, aggro);
    		 }
    		 else if (aggro.getAttacker() instanceof PlayerGroup) {
    			success = rewardPlayerGroup(victim, totalDamage, aggro);
    		 }
    		 else if (aggro.getAttacker() instanceof PlayerAlliance) {
    			success = rewardPlayerAlliance(victim, totalDamage, aggro);
    		 }
    
    		 // Add damage last, so we don't include damage from same race. (Duels, Arena)
    		 if (success)
    			playerDamage += aggro.getDamage();
    	  }
     
  10. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    ну так это выдача ап , персонажу , в группе , в альянсе смотри дальше
    rewardPlayer что выдает
     
  11. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    тут ещё есть такой нюанс. в данной сборке 3.0 файла PvPRewardService ---- PvpService ---- PvPSpreeService а вот в других я смотрел 3.9 + в 2.7 дак там только 1 файл PvpService
     
  12. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    ну а в RewardPlayer такое же всё как в 3.9 и в 2.7
     
  13. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    да ну его нах я бухать ))
     
    yayaya нравится это.
  14. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Правильно! :beer2-38::elka-30:
     
  15. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Ну так что, ещё идеи или помощь будет?
    Как исправить а то уже и не знаю куда смотреть где это норм работает и по похожим скриптам!
     
  16. Offline

    yayaya Ефрейтор Команда форума

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    PvpService весь нужен
     
  17. Offline

    yayaya Ефрейтор Команда форума

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    Код:
    private boolean rewardPlayer(Player victim, int totalDamage, AggroInfo aggro) {
    // Reward Player
    Player winner = ((Player) aggro.getAttacker());
     
    // Don't Reward Player out of range/dead/same faction
    if (winner.getRace() == victim.getRace() || !MathUtil.isIn3dRange(winner, victim, GroupConfig.GROUP_MAX_DISTANCE) || winner.getLifeStats().isAlreadyDead()) {
    return false;
    }
     
    int baseApReward = 1;
    int baseGpReward = 1;
    int baseXpReward = 1;
    int baseDpReward = 1;
     
    if (this.getKillsFor(winner.getObjectId(), victim.getObjectId()) < CustomConfig.MAX_DAILY_PVP_KILLS) {
    baseApReward = StatFunctions.calculatePvpApGained(victim, winner.getAbyssRank().getRank().getId(), winner.getLevel());
    baseGpReward = StatFunctions.calculatePvpGpGained(victim, winner.getAbyssRank().getRank().getId(), winner.getLevel());
    baseXpReward = StatFunctions.calculatePvpXpGained(victim, winner.getAbyssRank().getRank().getId(), winner.getLevel());
    baseDpReward = StatFunctions.calculatePvpDpGained(victim, winner.getAbyssRank().getRank().getId(), winner.getLevel());
    if (EventSystem.ENABLE_CRAZY) {
    if (winner.getRace() != victim.getRace()) {
    CrazyDaevaService.getInstance().increaseRawKillCount(winner);
    }
    }
    }
     
    int apPlayerReward = Math.round(baseApReward * aggro.getDamage() / totalDamage);
    apPlayerReward = (int) RewardType.AP_PLAYER.calcReward(winner, apPlayerReward);
    int gpPlayerReward = Math.round(baseGpReward * aggro.getDamage() / totalDamage);
    gpPlayerReward = (int) RewardType.GP_PLAYER.calcReward(winner, gpPlayerReward);
    int xpPlayerReward = Math.round(baseXpReward * winner.getRates().getXpPlayerGainRate() * aggro.getDamage() / totalDamage);
    int dpPlayerReward = Math.round(baseDpReward * winner.getRates().getDpPlayerRate() * aggro.getDamage() / totalDamage);
     
    AbyssPointsService.addAp(winner, victim, apPlayerReward);
    AbyssPointsService.addGp(winner, victim, gpPlayerReward);
    winner.getCommonData().addExp(xpPlayerReward, RewardType.PVP_KILL, victim.getName());
    winner.getCommonData().addEventExp(xpPlayerReward);
    winner.getCommonData().addDp(dpPlayerReward);
    this.addKillFor(winner.getObjectId(), victim.getObjectId());
    return true;
    }

    это выше версия части не должно быть по идее но работает
     
  18. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Мне нужно весь скинуть PvpService?
     
  19. Offline

    yayaya Ефрейтор Команда форума

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    да в спойлер и кодом
     
  20. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Щас, скоро буду дома и скину.