↑ ↓

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

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

  1. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.140,45
    Репутация:
    54
    Предполагаю, что следующую "глобальную" проблему будете точно так же решать? В смысле.... форум, не получается, помогайте.
    Может всё таки уже стоить начинать заниматься саморазвитием, изучением кода, структуры сборок и языка?
     
  2. TopicStarter Overlay
    Offline

    Free Ефрейтор

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

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.140,45
    Репутация:
    54
    Я тебя наверно очень сильно удивлю, если скажу что все фиксы что ты ищешь есть на форуме в других релизах сборок. Просто вам как то лень, ставить, смотреть где что работает, а где нет и делать хотя бы по аналогии. Вас никто не заставляет изобретать тот самый велик, но хотя бы посмотреть как работает в другой сборке вы же можете?
     
  4. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    (продолжение текста) что касается рейтов, изменения уровня моба или РБ в том числе НР и Опыт за убийство да и всё ещё многое прочее то тоже не сразу всё знал но копая интернет уже знаю но вот проблемы в данной теме не где я не нашол и брал в пример другие сборки как писалось выше я тоже сверял, проверял но без изменений по этому и обращаюсь к вам!
     
  5. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    это всё то понятно, суть в том что сверяешь что то изменяешь но самое главное потом при компиле ох как ошибки лезут. вот я
    и обращаюсь к вам, к людям которые 100% знаю по более. (те кто знаю те ответят те кто не знают они просто просмотрят тему и закроют в секунды с переходом на другие темы)
     
  6. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Код:
    /*
     * This file is part of aion-unique <aion-unique.org>.
     *
     *  aion-unique is free software: you can redistribute it and/or modify
     *  it under the terms of the GNU General Public License as published by
     *  the Free Software Foundation, either version 3 of the License, or
     *  (at your option) any later version.
     *
     *  aion-unique is distributed in the hope that it will be useful,
     *  but WITHOUT ANY WARRANTY; without even the implied warranty of
     *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     *  GNU General Public License for more details.
     *
     *  You should have received a copy of the GNU General Public License
     *  along with aion-unique.  If not, see <http://www.gnu.org/licenses/>.
     */
    package com.aionemu.gameserver.services;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import javolution.util.FastMap;
    
    import com.aionemu.commons.utils.Rnd;
    import com.aionemu.gameserver.configs.main.GroupConfig;
    import com.aionemu.gameserver.configs.main.LoggingConfig;
    import com.aionemu.gameserver.configs.main.PunishmentConfig;
    import com.aionemu.gameserver.configs.main.PvPConfig;
    import com.aionemu.gameserver.controllers.attack.AggroInfo;
    import com.aionemu.gameserver.controllers.attack.KillList;
    import com.aionemu.gameserver.model.DescriptionId;
    import com.aionemu.gameserver.model.gameobjects.player.Player;
    import com.aionemu.gameserver.model.gameobjects.player.RewardType;
    import com.aionemu.gameserver.model.ingameshop.InGameShopEn;
    import com.aionemu.gameserver.model.team2.alliance.PlayerAlliance;
    import com.aionemu.gameserver.model.team2.group.PlayerGroup;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
    import com.aionemu.gameserver.questEngine.QuestEngine;
    import com.aionemu.gameserver.questEngine.model.QuestEnv;
    import com.aionemu.gameserver.services.abyss.AbyssPointsService;
    import com.aionemu.gameserver.services.item.ItemService;
    import com.aionemu.gameserver.utils.MathUtil;
    import com.aionemu.gameserver.utils.PacketSendUtility;
    import com.aionemu.gameserver.utils.audit.AuditLogger;
    import com.aionemu.gameserver.utils.stats.AbyssRankEnum;
    import com.aionemu.gameserver.utils.stats.StatFunctions;
    
    /**
     * @author Sarynth
     */
    public class PvpService {
    
      private static Logger log = LoggerFactory.getLogger("KILL_LOG");
    	public static final PvpService getInstance() {
    		return SingletonHolder.instance;
    	}
    
    	private FastMap<Integer, KillList> pvpKillLists;
    
    	private PvpService() {
    		pvpKillLists = new FastMap<Integer, KillList>();
    	}
    
    	/**
    	 * @param winnerId
    	 * @param victimId
    	 * @return
    	 */
    	private int getKillsFor(int winnerId, int victimId) {
    		KillList winnerKillList = pvpKillLists.get(winnerId);
    
    		if (winnerKillList == null)
    			return 0;
    		return winnerKillList.getKillsFor(victimId);
    	}
    
    	/**
    	 * @param winnerId
    	 * @param victimId
    	 */
    	private void addKillFor(int winnerId, int victimId) {
    		KillList winnerKillList = pvpKillLists.get(winnerId);
    		if (winnerKillList == null) {
    			winnerKillList = new KillList();
    			pvpKillLists.put(winnerId, winnerKillList);
    		}
    		winnerKillList.addKillFor(victimId);
    	}
    
    	/**
    	 * @param victim
    	 */
    	public void doReward(Player victim) {
    		// winner is the player that receives the kill count
    		final Player winner = victim.getAggroList().getMostPlayerDamage();
    
    		int totalDamage = victim.getAggroList().getTotalDamage();
    
    	if (totalDamage == 0 || winner == null) {
    			return;
    		}
    
    		// Add Player Kill to record.
    			// Pvp Kill Reward.
    		int reduceap = PunishmentConfig.PUNISHMENT_REDUCEAP;
    		if (reduceap < 0)
    			reduceap *= -1;
    		if (reduceap > 100) {
    			reduceap = 100;
    		}
    
    		// Announce that player has died.
    		PacketSendUtility.broadcastPacketAndReceive(victim,
    			  SM_SYSTEM_MESSAGE.STR_MSG_COMBAT_FRIENDLY_DEATH_TO_B(victim.getName(), winner.getName()));
    			
    		//Kill-log
    		if ((LoggingConfig.LOG_PL) || (reduceap > 0)) {
    	  String ip1 = winner.getClientConnection().getIP();
    	  String mac1 = winner.getClientConnection().getMacAddress();
    	  String ip2 = victim.getClientConnection().getIP();
    	  String mac2 = victim.getClientConnection().getMacAddress();
    	  if ((mac1 != null) && (mac2 != null)) {
    		if ((ip1.equalsIgnoreCase(ip2)) && (mac1.equalsIgnoreCase(mac2))) {
    					AuditLogger.info(winner, "Power Leveling : " + winner.getName() + " with " + victim.getName() + ", They have the sames ip=" + ip1 + " and mac=" + mac1 + ".");
    					if (reduceap > 0) {
    						int win_ap = winner.getAbyssRank().getAp() * reduceap / 100;
    						int vic_ap = victim.getAbyssRank().getAp() * reduceap / 100;
    						AbyssPointsService.addAp(winner, -win_ap);
    						AbyssPointsService.addAp(victim, -vic_ap);
    						PacketSendUtility.sendMessage(winner, "[PL-AP] You lost " + reduceap + "% of your total ap");
    						PacketSendUtility.sendMessage(victim, "[PL-AP] You lost " + reduceap + "% of your total ap");
    		}
    					return;
    				}
    				if (ip1.equalsIgnoreCase(ip2)) {
    					AuditLogger.info(winner, "Possible Power Leveling : " + winner.getName() + " with " + victim.getName() + ", They have the sames ip=" + ip1 + ".");
    					AuditLogger.info(winner, "Check if " + winner.getName() + " and " + victim.getName() + " are Brothers-Sisters-Lovers-dogs-cats...");
    		}
    
    			}
    		}
    		if (winner.getLevel() - victim.getLevel() <= PvPConfig.MAX_AUTHORIZED_LEVEL_DIFF) {
    			if (getKillsFor(winner.getObjectId().intValue(), victim.getObjectId().intValue()) < PvPConfig.CHAIN_KILL_NUMBER_RESTRICTION) {
    				if (PvPConfig.ENABLE_MEDAL_REWARDING) {
    					if (Rnd.get() * 100 < PvPRewardService.getMedalRewardChance(winner, victim)) {
    						int medalId = PvPRewardService.getRewardId(winner, victim, false);
    						long medalCount = PvPRewardService.getRewardQuantity(winner, victim);
    						ItemService.addItem(winner, medalId, medalCount);
    						if (winner.getInventory().getItemCountByItemId(medalId) > 0) {
    							if (medalCount == 1)
    								PacketSendUtility.sendPacket(winner, new SM_SYSTEM_MESSAGE(1390000, new DescriptionId(medalId)));
    							else {
    								PacketSendUtility.sendPacket(winner, new SM_SYSTEM_MESSAGE(1390005, medalCount, new DescriptionId(medalId)));
    							}
    						}
    					}
    				}
    				if ((PvPConfig.ENABLE_TOLL_REWARDING) && (Rnd.get() * 100.0F < PvPRewardService.getTollRewardChance(winner, victim))) {
    					int qt = PvPRewardService.getTollQuantity(winner, victim);
    					InGameShopEn.getInstance().addToll(winner, qt);
    					if (qt == 1)
    						PacketSendUtility.sendBrightYellowMessage(winner, "Vous avez obtenu " + qt + " point boutique.");
    					else {
    						PacketSendUtility.sendBrightYellowMessage(winner, "Vous avez obtenu " + qt + " points boutique.");
    					}
    				}
    				if (PvPConfig.GENOCIDE_SPECIAL_REWARDING != 0) {
    					switch (PvPConfig.GENOCIDE_SPECIAL_REWARDING) {
    						case 1:
    							if ((winner.getSpreeLevel() <= 2) || (Rnd.get() * 100 >= PvPConfig.SPECIAL_REWARD_CHANCE))
    								break;
    							int abyssId = PvPRewardService.getRewardId(winner, victim, true);
    							ItemService.addItem(winner, abyssId, 1L);
    							log.info("[PvP][Advanced] {Player : " + winner.getName() + "} has won " + abyssId + " for killing {Player : " + victim.getName() + "}");
    							break;
    						default:
    							if ((winner.getSpreeLevel() <= 2) || (Rnd.get() * 100 >= PvPConfig.SPECIAL_REWARD_CHANCE))
    								break;
    							ItemService.addItem(winner, PvPConfig.GENOCIDE_SPECIAL_REWARDING, 1L);
    							log.info("[PvP][Advanced] {Player : " + winner.getName() + "} has won " + PvPConfig.GENOCIDE_SPECIAL_REWARDING + " for killing {Player : " + victim.getName() + "}");
    							break;
    					}
    				}
    			}
    			else {
    				PacketSendUtility.sendMessage(winner, "Vous ne gagnerez plus rien en tuant le joueur " + victim.getName()
    					+ " pour le restant de la journee car vous l'avez tue trop de fois.");
    	  }
    
    	}
    		int playerDamage = 0;
    		boolean success = false;
    
    		// 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();
    		}
    
    		// Apply lost AP to defeated player
    		final int apLost = StatFunctions.calculatePvPApLost(victim, winner);
    		final int apActuallyLost = (int) (apLost * playerDamage / totalDamage);
    
    		if (apActuallyLost > 0) {
    			AbyssPointsService.addAp(victim, -apActuallyLost);
    
    		}
    		PacketSendUtility.broadcastPacketAndReceive(victim, SM_SYSTEM_MESSAGE.STR_MSG_COMBAT_FRIENDLY_DEATH_TO_B(victim.getName(), winner.getName()));
    		if (LoggingConfig.LOG_KILL)
    			log.info("[KILL] Player [" + winner.getName() + "] killed [" + victim.getName() + "]");
    	}
    
    	/**
    	 * @param victim
    	 * @param totalDamage
    	 * @param aggro
    	 * @return true if group is not same race
    	 */
    	private boolean rewardPlayerGroup(Player victim, int totalDamage, AggroInfo aggro) {
    		// Reward Group
    		PlayerGroup group = ((PlayerGroup) aggro.getAttacker());
    
    		// Don't Reward Player of Same Faction.
    		if (group.getRace() == victim.getRace())
    			return false;
    
    		// Find group members in range
    		List<Player> players = new ArrayList<Player>();
    
    		// Find highest rank and level in local group
    		int maxRank = AbyssRankEnum.GRADE9_SOLDIER.getId();
    		int maxLevel = 0;
    
    		for (Player member : group.getMembers()) {
    			if (MathUtil.isIn3dRange(member, victim, GroupConfig.GROUP_MAX_DISTANCE)) {
    				// Don't distribute AP to a dead player!
    				if (!member.getLifeStats().isAlreadyDead()) {
    					players.add(member);
    					if (member.getLevel() > maxLevel)
    						maxLevel = member.getLevel();
    					if (member.getAbyssRank().getRank().getId() > maxRank)
    						maxRank = member.getAbyssRank().getRank().getId();
    				}
    			}
    		}
    
    		// They are all dead or out of range.
    	if (players.isEmpty())
    			return false;
    		
    		int baseApReward = StatFunctions.calculatePvpApGained(victim, maxRank, maxLevel);
    		int baseXpReward = StatFunctions.calculatePvpXpGained(victim, maxRank, maxLevel);
    		int baseDpReward = StatFunctions.calculatePvpDpGained(victim, maxRank, maxLevel);
    		float groupPercentage = (float) aggro.getDamage() / totalDamage;
    		int apRewardPerMember = Math.round(baseApReward * groupPercentage / players.size());
    		int xpRewardPerMember = Math.round(baseXpReward * groupPercentage / players.size());
    		int dpRewardPerMember = Math.round(baseDpReward * groupPercentage / players.size());
    		
    		for (Player member : players) {
    			int memberApGain = 1;
    			int memberXpGain = 1;
    			int memberDpGain = 1;
    			if (this.getKillsFor(member.getObjectId(), victim.getObjectId()) < PvPConfig.CHAIN_KILL_NUMBER_RESTRICTION) {
    				if (apRewardPerMember > 0)
    					memberApGain = Math.round(apRewardPerMember * member.getRates().getApPlayerGainRate());
    				if (xpRewardPerMember > 0)
    					memberXpGain = Math.round(xpRewardPerMember * member.getRates().getXpPlayerGainRate());
    				if (dpRewardPerMember > 0)
    					memberDpGain = Math.round(StatFunctions.adjustPvpDpGained(dpRewardPerMember, victim.getLevel(), member.getLevel()) * member.getRates().getDpPlayerRate());
    				member.getAbyssRank().updateKillCounts();
    				
    				if (PvPConfig.ENABLE_KILLING_SPREE_SYSTEM) {
    					Player luckyPlayer = (Player) players.get(Rnd.get(players.size()));
    					PvPSpreeService.increaseRawKillCount(luckyPlayer);
    				}
    			}
    	  AbyssPointsService.addAp(member, victim, memberApGain);
    			member.getCommonData().addExp(memberXpGain, RewardType.PVP_KILL, victim.getName());
    			member.getCommonData().addDp(memberDpGain);
    			this.addKillFor(member.getObjectId(), victim.getObjectId());
    			//notify Kill-Quests
    			int worldId = member.getWorldId();
    			QuestEngine.getInstance().onKillInWorld(new QuestEnv(victim, member, 0, 0), worldId);
    			QuestEngine.getInstance().onKillRanked(new QuestEnv(victim, member, 0, 0), victim.getAbyssRank().getRank());
    		}
    
    		return true;
    	}
    
    	/**
    	 * @param victim
    	 * @param totalDamage
    	 * @param aggro
    	 * @return true if group is not same race
    	 */
    	private boolean rewardPlayerAlliance(Player victim, int totalDamage, AggroInfo aggro) {
    		// Reward Alliance
    		PlayerAlliance alliance = ((PlayerAlliance) aggro.getAttacker());
    
    		// Don't Reward Player of Same Faction.
    		if (alliance.getLeaderObject().getRace() == victim.getRace())
    			return false;
    
    		// Find group members in range
    		List<Player> players = new ArrayList<Player>();
    
    		// Find highest rank and level in local group
    		int maxRank = AbyssRankEnum.GRADE9_SOLDIER.getId();
    		int maxLevel = 0;
    
    		for (Player member : alliance.getMembers()) {
    			if (!member.isOnline())
    				continue;
    			if (MathUtil.isIn3dRange(member, victim, GroupConfig.GROUP_MAX_DISTANCE)) {
    				// Don't distribute AP to a dead player!
    				if (!member.getLifeStats().isAlreadyDead()) {
    					players.add(member);
    					if (member.getLevel() > maxLevel)
    						maxLevel = member.getLevel();
    					if (member.getAbyssRank().getRank().getId() > maxRank)
    						maxRank = member.getAbyssRank().getRank().getId();
    				}
    			}
    		}
    
    		// They are all dead or out of range.
    	if (players.isEmpty())
    			return false;
    
    		int baseApReward = StatFunctions.calculatePvpApGained(victim, maxRank, maxLevel);
    		int baseXpReward = StatFunctions.calculatePvpXpGained(victim, maxRank, maxLevel);
    		int baseDpReward = StatFunctions.calculatePvpDpGained(victim, maxRank, maxLevel);
    		float groupPercentage = (float) aggro.getDamage() / totalDamage;
    		int apRewardPerMember = Math.round(baseApReward * groupPercentage / players.size());
    		int xpRewardPerMember = Math.round(baseXpReward * groupPercentage / players.size());
    		int dpRewardPerMember = Math.round(baseDpReward * groupPercentage / players.size());
    		
    		for (Player member : players) {
    			int memberApGain = 1;
    			int memberXpGain = 1;
    			int memberDpGain = 1;
    			if (this.getKillsFor(member.getObjectId(), victim.getObjectId()) < PvPConfig.CHAIN_KILL_NUMBER_RESTRICTION) {
    				if (apRewardPerMember > 0)
    					memberApGain = Math.round(apRewardPerMember * member.getRates().getApPlayerGainRate());
    				if (xpRewardPerMember > 0)
    					memberXpGain = Math.round(xpRewardPerMember * member.getRates().getXpPlayerGainRate());
    				if (dpRewardPerMember > 0)
    					memberDpGain = Math.round(StatFunctions.adjustPvpDpGained(dpRewardPerMember, victim.getLevel(), member.getLevel()) * member.getRates().getDpPlayerRate());
    				member.getAbyssRank().updateKillCounts();
    				if (PvPConfig.ENABLE_KILLING_SPREE_SYSTEM) {
    					Player luckyPlayer = (Player) players.get(Rnd.get(players.size()));
    					PvPSpreeService.increaseRawKillCount(luckyPlayer);
    				}
    			}
    	  AbyssPointsService.addAp(member, victim, memberApGain);
    			member.getCommonData().addExp(memberXpGain, RewardType.PVP_KILL, victim.getName());
    			member.getCommonData().addDp(memberDpGain);
    			
    			this.addKillFor(member.getObjectId(), victim.getObjectId());
    			//notify Kill-Quests
    			int worldId = member.getWorldId();
    			QuestEngine.getInstance().onKillInWorld(new QuestEnv(victim, member, 0, 0), worldId);
    			QuestEngine.getInstance().onKillRanked(new QuestEnv(victim, member, 0, 0), victim.getAbyssRank().getRank());
    		}
    
    		return true;
    	}
    
    	/**
    	 * @param victim
    	 * @param totalDamage
    	 * @param aggro
    	 * @return true if player is not same race
    	 */
    	private boolean rewardPlayer(Player victim, int totalDamage, AggroInfo aggro) {
    		// Reward Player
    		Player winner = ((Player) aggro.getAttacker());
    		
    	if ((winner.getRace() == victim.getRace()) || (!MathUtil.isIn3dRange(winner, victim, GroupConfig.GROUP_MAX_DISTANCE)) || (winner.getLifeStats().isAlreadyDead())) {
    			return false;
    	}
    		int baseApReward = 1;
    		int baseXpReward = 1;
    		int baseDpReward = 1;
    
    		if (this.getKillsFor(winner.getObjectId(), victim.getObjectId()) < PvPConfig.CHAIN_KILL_NUMBER_RESTRICTION) {
    			baseApReward = StatFunctions.calculatePvpApGained(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());
    			winner.getAbyssRank().updateKillCounts();
    			if (PvPConfig.ENABLE_KILLING_SPREE_SYSTEM) {
    				PvPSpreeService.increaseRawKillCount(winner);
    			}
    		}
    
    		int apPlayerReward = Math.round(baseApReward * winner.getRates().getApPlayerGainRate() * aggro.getDamage() / totalDamage);
    		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);
    		winner.getCommonData().addExp(xpPlayerReward, RewardType.PVP_KILL, victim.getName());
    		winner.getCommonData().addDp(dpPlayerReward);
    		this.addKillFor(winner.getObjectId(), victim.getObjectId());
    		//notify Kill-Quests
    		int worldId = winner.getWorldId();
    		QuestEngine.getInstance().onKillInWorld(new QuestEnv(victim, winner, 0, 0), worldId);
    		QuestEngine.getInstance().onKillRanked(new QuestEnv(victim, winner, 0, 0), victim.getAbyssRank().getRank());
    
    		return true;
    	}
    
    	@SuppressWarnings("synthetic-access")
    	private static class SingletonHolder {
    
    		protected static final PvpService instance = new PvpService();
    	}
    }
    
     
  7. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.140,45
    Репутация:
    54
    Ну так на то они и ошибки, чтоб исправлять их как раз по коду, хуже когда их нет и нет реализации.
    Да вот не всегда можно ответить в двух словах по теме, тем более что ты 3.0 копаешь в которой и пакетка не полная и реализация 2.7(и то не вся).
    Тут нужно ставить и работать по твоим ошибкам, которыми как раз тебе сыпет при компиляции.
     
  8. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    понял учту!
     
  9. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Я в курсе всего этого с ошибками, я понимаю что оно выдаёт!. только вот к примеру как я исправлю в 3.0 то что было выдрано с 3.9 где это работает! а вот 3.0 противится этому. где тогда найти мне точный и нужный мне код если в других сборках как и в 3.9 это всё норм пашет а в 3.0 это не принимает.
     
  10. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.140,45
    Репутация:
    54
    Так вот как раз тебе ошибки при компиляции и показывают какого метода не хватает(или он не такой). Идешь по логам ошибок добавляешь = исправляешь.
    А если загрузить сборку в среду типа NetBeans или Eclipse то даже не нужно будет постоянно компилить, тебе сразу среда покажет чего не хватает.
    Я же говорю, тебе нужно дальше изучать предмет.
     
  11. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    понял
     
  12. TopicStarter Overlay
    Offline

    Free Ефрейтор

    157
    8
    51
    Кредиты:
    $194,38
    Репутация:
    0
    Ну так что?
     
  13. Offline

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

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    то что должно быть есть, почему то 2 сообщения STR_MSG_COMBAT_FRIENDLY_DEATH_TO_B - так быть по идее не должно быть, значит где о одно из сообщений не работает похоже что вернее не работает, нижнее сообщение было тоой добавлено?
    Предлагаю проставить засечки по сервису log.info("1") и так далее в консоли при убийстве вы увидите где проходит код а где нет.
    если все проходит копать дальше PlayerController.java - меотод doReward

    Код:
    	@Override
    	public void doReward() {
    		PvpService.getInstance().doReward(getOwner());
    	}
    и так далее идете по коду поиском и елаете засечки, что бы понят где не проходит код, вообщее имея сервер наверное опытный чудак в серваках айон практически сразу скажет место.
    так как то работает в версиях выше!!!)))
     
  14. Offline

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

    587
    183
    76
    Кредиты:
    $20.524,68
    Репутация:
    38
    клава здыхает ) извиняюсь
     
  15. TopicStarter Overlay
    Offline

    Free Ефрейтор

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