Добрый день, проблема в том что урон от массовых скиллов проходит на рядом стоящих игроков вне зависимости от расы. Контроль так же проходит Сборка js 4.3 , ссылку указать не могу в шаре её нет, подскажите в каких файлах ядра копаться?
реально , зае*** ) что вы сборок не видите нормальных берете хрень кривую и пишите сюда , аааааа слов нету эта ваша хня уже лет как 5 назад исправлена , пи*** ребят , сори за мат . P.S. но где они такие берутся то (((
Вы что такие умные спрашиваете про сборки которым хрен сколько уже лет, ими уже ни кто не занимается. А если взялся за такую сборку так сам подумай а как я её буду делать править от того что пишите проблему её уже резко со скоку ни кто не решить да и вряд ли будут решать ибо это всё исправлено и забыто.
высер не мой а твой , хочешь править сборки которым 5+ лет , правь дальше , тем более что взято за основу js ) P.S. и учитесь уже думать логически , если есть зоны где проходит масс атаки и есть где не проходит , значит колупать нужно зоны .
Кто ищет тот всегда найдет, фикс есть в шаре, только нужно поискать, при чем в свое время методов решения было найдено 2 и потом добавился еще 1, то-есть всего 3. Честно, давно все сьедено и выкакано, ищите.
Ну обычные скилы ж правильно работают, значит нужно смотреть не общие методы чтоб проверки были по масухам по каждой атаке, а идти в скилл двиг, там за все отвечает свой метод, и проверки по гео и прочее, просто добавить проверку зон и все. Ну или как в js можно тупо в Player.java фигануть и робит
Сначала нужно понять как устроена сборка, её писали грамотные люди, а фиксили уже дятлы, когда поймете тогда поймете хД
В твоей сборке которая в шаре лежит, там написано что это зафикшено, а где конкретно? в Player.java ?
Ну и где решение проблемы? вы все на одно лицо, просите, спрашиваете, но когда дело доходит до рассказать другим опааа, а я лучше буду умнее и не скажу, а может потом еще и продам
Ну код где? Почему вы все жмете код, тем более написанный 7 лет назад, из-за этого все и происходит, всмысле что сервера падают народ уходит и так далее.
Код: @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; }
Почему жмем код? Потому что это все обсуждалось не один 10-ток раз на форумах, и фиксилось и сливалось в шару и че толку? Вот например я знаю фикс но не скажу, ты подумаешь жадина, а я думаю сами учитесь как мы учились и не ебите другим мозги.