↑ ↓

Урон массами в нейтральных зонах

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

  1. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    Добрый день, проблема в том что урон от массовых скиллов проходит на рядом стоящих игроков вне зависимости от расы. Контроль так же проходит
    Сборка js 4.3 , ссылку указать не могу в шаре её нет, подскажите в каких файлах ядра копаться?
     
  2. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    реально , зае*** ) что вы сборок не видите нормальных берете хрень кривую и пишите сюда , аааааа слов нету эта ваша хня уже лет как 5 назад исправлена , пи*** ребят , сори за мат .
    P.S. но где они такие берутся то (((
     
    Последнее редактирование модератором: 14 июл 2018
    No Name 2 нравится это.
  3. Offline

    Dev4ik Ефрейтор

    223
    8
    51
    Кредиты:
    $15.254,23
    Репутация:
    -1
    У меня их много :D
     
    Последнее редактирование модератором: 14 июл 2018
  4. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    Че ты за херь несешь? Я сюда написал чтобы люди подсказали, а не твой тупой высер читать, исчезни
     
    Последнее редактирование модератором: 14 июл 2018
  5. Offline

    SG Shaiy Ефрейтор

    402
    95
    61
    Кредиты:
    $15.767,72
    Репутация:
    9
    Вы что такие умные спрашиваете про сборки которым хрен сколько уже лет, ими уже ни кто не занимается.
    А если взялся за такую сборку так сам подумай а как я её буду делать править от того что пишите проблему её уже резко со скоку ни кто не решить да и вряд ли будут решать ибо это всё исправлено и забыто.
     
    Alenheym нравится это.
  6. Offline

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

    743
    165
    76
    Кредиты:
    $26.070,43
    Репутация:
    23
    высер не мой а твой , хочешь править сборки которым 5+ лет , правь дальше , тем более что взято за основу js )
    P.S. и учитесь уже думать логически , если есть зоны где проходит масс атаки и есть где не проходит , значит колупать нужно зоны .
     
  7. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    Во всех нейтральных зонах проходит.
    Ладно бы это была шара, но бывает что такое дерьмо ещё и продают
     
  8. Offline

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

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    Кто ищет тот всегда найдет, фикс есть в шаре, только нужно поискать, при чем в свое время методов решения было найдено 2 и потом добавился еще 1, то-есть всего 3. Честно, давно все сьедено и выкакано, ищите.
     
  9. Offline

    <AL>

    74
    2
    9
    Кредиты:
    $175,00
    Репутация:
    0
    Ну обычные скилы ж правильно работают, значит нужно смотреть не общие методы чтоб проверки были по масухам по каждой атаке, а идти в скилл двиг, там за все отвечает свой метод, и проверки по гео и прочее, просто добавить проверку зон и все. Ну или как в js можно тупо в Player.java фигануть и робит
     
  10. Offline

    <AL>

    74
    2
    9
    Кредиты:
    $175,00
    Репутация:
    0
    Сначала нужно понять как устроена сборка, её писали грамотные люди, а фиксили уже дятлы, когда поймете тогда поймете хД
     
  11. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    В твоей сборке которая в шаре лежит, там написано что это зафикшено, а где конкретно? в Player.java ?
     
  12. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    Спс, помог ) нашел что добавить) Исправил)
     
  13. Offline

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

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    Ну и где решение проблемы?;) вы все на одно лицо, просите, спрашиваете, но когда дело доходит до рассказать другим опааа, а я лучше буду умнее и не скажу, а может потом еще и продам;)
     
  14. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2
    Решение проблемы алекс показал как бы
     
  15. Offline

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

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    Ну код где? Почему вы все жмете код, тем более написанный 7 лет назад, из-за этого все и происходит, всмысле что сервера падают народ уходит и так далее.
     
  16. TopicStarter Overlay
    Offline

    azraelim Ефрейтор

    291
    19
    56
    Кредиты:
    $517,87
    Репутация:
    -2

    Код:
    @Override
     
    	public boolean isEnemy(Creature creature) {
     
    		return creature.isEnemyFrom(this) || this.isEnemyFrom(creature);
     
    	}
     
    	@Override
     
    	public boolean isEnemyFrom(Npc enemy) {
     
    		switch (CreatureType.getCreatureType(enemy.getType(this))) {
     
    			case AGGRESSIVE:
     
    			case ATTACKABLE:
     
    				return true;
     
    			default:
     
    				break;
     
    		}
     
    		return false;
     
    	}
     
    	/**
     
    	 * Player enemies:<br>
     
    	 * - different race<br>
     
    	 * - duel partner<br>
     
    	 * - in pvp zone
     
    	 *
     
    	 * @return
     
    	 */
     
    	@Override
     
    	public boolean isEnemyFrom(Player player) {
     
    		if (this.equals(player)) {
     
    			return false;
     
    		} else {
     
    			return isAdminEnmity(player) || canPvP(player) || this.getController().isDueling(player);
     
    		}
     
    	}
     
    	public boolean isAggroIconTo(Player player) {
     
    		if (isAdminEnmity(player)) {
     
    			return true;
     
    		}
     
    		return !player.getRace().equals(getRace());
     
    	}
     
    	private boolean isAdminEnmity(Player player) {
     
    		return getAdminEnmity() > 1 || player.getAdminEnmity() > 1
     
    				|| getPosition().getWorldMapInstance().getInstanceHandler().isEnemy(this, player)
     
    				|| player.isInFfa() || MixFight.isInFFA(player) && player.isInGroup2()
     
    				&& this.isInGroup2() && player.getPlayerGroup2() != this.getPlayerGroup2()
     
    				|| FfaGroupService.isInFFA(player) && player.isInGroup2() && this.isInGroup2()
     
    				&& player.getPlayerGroup2() != this.getPlayerGroup2()
     
    				|| FfaLegionService.isInFFA(player) && player.getLegion() != null
     
    				&& this.getLegion() != null && player.getLegion() != this.getLegion();
     
    		/*|| this.getLegion().isWar(player.getLegion()))
     
    		 || this.getLegion() != null && this.getLegion().isHermit() && this.getLegion() != player.getLegion()
     
    		 || player.getLegion() != null && player.getLegion().isHermit() && player.getLegion() != this.getLegion()*/
     
    	}
     
    	private boolean isPvP(Player player) {
     
    		int worldId = player.getWorldId();
     
    		if (!player.getRace().equals(getRace())) {
     
    			if (worldId == 600020000 || worldId == 600030000 || worldId == 710010000) {
     
    				return isInsideZoneType(ZoneType.PVP) && player.isInsideZoneType(ZoneType.PVP);
     
    			}
     
    			return true;
     
    		}
     
    		return false;
     
    	}
     
    	private boolean canPvP(Player enemy) {
     
    		if (getPosition().getWorldMapInstance().getInstanceHandler().isEnemy(this, enemy)
     
    				|| getPosition().getWorldMapInstance().isPvPLocation() && enemy.getRace() != getRace()) {
     
    			return true;
     
    		}
     
    		int worldId = enemy.getWorldId();
     
    		if (enemy.getRace() != getRace()) {
     
    			if (worldId == 600020000 || worldId == 600030000) {
     
    				if (DisputeLandService.getInstance().isActive()) {
     
    					return (!this.isInDisablePvPZone() && !enemy.isInDisablePvPZone());
     
    				} else {
     
    					return (this.isInsideZoneType(ZoneType.PVP)
     
    							&& enemy.isInsideZoneType(ZoneType.PVP)
     
    							&& !this.isInDisablePvPZone() && !enemy.isInDisablePvPZone());
     
    				}
     
    			} else if (worldId == 210040000 || worldId == 220040000 || worldId == 600050000 || worldId == 600060000 || worldId == 600070000) {
     
    				return (!this.isInDisablePvPZone() && !enemy.isInDisablePvPZone());
     
    			} else {
     
    				return true;
     
    			}
     
    		} else {
     
    			if (worldId != 600020000 && worldId != 600030000) {
     
    				return (this.isInsideZoneType(ZoneType.PVP) && enemy.isInsideZoneType(ZoneType.PVP) && !isInSameTeam(enemy));
     
    			}
     
    		}
     
    		return false;
     
    	}
     
    	public boolean isInDisablePvPZone() {
     
    		List<ZoneInstance> zones = this.getPosition().getMapRegion().getZones(this);
     
    		for (ZoneInstance zone : zones) {
     
    			if (!zone.isPvpAllowed()) {
     
    				return true;
     
    			}
     
    		}
     
    		return false;
     
    	}
     
    	// robit
     
    	@SuppressWarnings("unused")
     
    	public boolean isInsideDisablePvpZone() {
     
    		for (ZoneInstance zone : this.getPosition().getMapRegion().getZones(this)) {
     
    			if (this.isInsideZoneType(ZoneType.PVP) && zone.getZoneTemplate().getFlags() == 0) {
     
    				return true;
     
    			}
     
    		}
     
    		return false;
     
    	}
     
    	@SuppressWarnings("unused")
     
    	public boolean isInPvPZone() {
     
    		List<ZoneInstance> zones = this.getPosition().getMapRegion().getZones(this);
     
    		for (ZoneInstance zone : zones) {
     
    			if (zone.isPvpAllowed()) {
     
    				return true;
     
    			}
     
    		}
     
    		return false;
     
    	}
     
    	public boolean isInSameTeam(Player player) {
     
    		if (isInGroup2() && player.isInGroup2()) {
     
    			return getPlayerGroup2().getTeamId() == player.getPlayerGroup2().getTeamId();
     
    		} else if (isInAlliance2() && player.isInAlliance2()) {
     
    			return getPlayerAlliance2().getObjectId().equals(player.getPlayerAlliance2().getObjectId());
     
    		} else if (isInLeague() && player.isInLeague()) {
     
    			return getPlayerAllianceGroup2().getObjectId().equals(player.getPlayerAllianceGroup2().getObjectId());
     
    		}
     
    		return false;
     
    	}
     
    yayaya нравится это.
  17. Offline

    <AL>

    74
    2
    9
    Кредиты:
    $175,00
    Репутация:
    0
    Почему жмем код? Потому что это все обсуждалось не один 10-ток раз на форумах, и фиксилось и сливалось в шару и че толку? Вот например я знаю фикс но не скажу, ты подумаешь жадина, а я думаю сами учитесь как мы учились и не ебите другим мозги.
     
  18. Offline

    Qwas Ефрейтор

    101
    33
    61
    Кредиты:
    $340,53
    Репутация:
    0
    Тут я с тобой соглашусь.:)