ClassBBSManager - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа со скриптами

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:прошу помощи

Ответ
Опции темы
Непрочитано 16.03.2014, 13:32   #1
Участник

Автор темы (Топик Стартер) ClassBBSManager

Здравствуйте
Уважаемые!
Помогите решить данную траблу :
Ошибка GS:
Код:
INFO L2ScriptEventManager: register event name=BBSPlayerOnEnterWorld type=PLAYER
_ONENTER
----------
1. WARNING in \ClassBBSManager.java (at line 439)
        else if (!CANCHANGECLASS_NOWINPEACEZONE && !player.isInsideZone(L2Zone.F
LAG_PEACE))
                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^
Dead code
----------
2. WARNING in \ClassBBSManager.java (at line 440)
        {
                        player.sendMessage("╨Ф╨░╨╜╨╜╨╛╨╡ ╨┤╨╡╨╣╤Б╤В╨▓╨╕╨╡ ╨╖╨░╨┐
╤А╨╡╤Й╨╡╨╜╨╛ ╨▓╨╜╨╡ ╨╝╨╕╤А╨╜╨╛╨╣ ╨╖╨╛╨╜╤Л.");
                        return false;
                }
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^
Dead code
----------
2 problems (2 warnings)Service: Bash - RSS data parsed: loaded 100 quotes.
Пишет что мертвый код.
Помогите пожалуйста написать правильно эти строки
Сборка c исходниками l2emuEnterprise
Вот сам скрипт
Код:
package handlers.bbs.pvp;

import java.util.Map;
import java.util.StringTokenizer;

import javolution.text.TextBuilder;
import net.l2emuproject.Config;
import net.l2emuproject.gameserver.cache.HtmCache;
import net.l2emuproject.gameserver.communitybbs.CommunityBoard;
import net.l2emuproject.gameserver.communitybbs.IBBSHandler;
import net.l2emuproject.gameserver.communitybbs.Manager.TopBBSManager;
import net.l2emuproject.gameserver.datatables.CharTemplateTable;
import net.l2emuproject.gameserver.datatables.ItemTable;
import net.l2emuproject.gameserver.instancemanager.games.HandysBlockCheckerManager;
import net.l2emuproject.gameserver.model.L2ItemInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
import net.l2emuproject.gameserver.model.base.ClassId;
import net.l2emuproject.gameserver.model.base.SubClass;
import net.l2emuproject.gameserver.model.olympiad.Olympiad;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageId;
import net.l2emuproject.gameserver.network.serverpackets.SystemMessage;
import net.l2emuproject.gameserver.network.serverpackets.ValidateLocation;
import net.l2emuproject.gameserver.util.FloodProtector;
import net.l2emuproject.gameserver.util.FloodProtector.Protected;

public class ClassBBSManager extends TopBBSManager implements IBBSHandler
{
	private static final boolean	CANCHANGESUBCLASS	= true;//можно менять сабкласс
	private static final boolean	CANCHANGECLASS_NOWINPEACEZONE = true; //можно менять сабкласс за мирной зоной
	private static final boolean	CANCHANGECLASS_INSTANCE = false; //можно менять сабкласс в инстансах
	private static final boolean	CANCHANGECLASS_BOSSZONE = false; //можно менять сабкласс в инстансах
	private static final boolean	CANCHANGECLASS_PVPZONE = false; //можно менять сабкласс на арене
	private static final boolean	CANCHANGECLASS_SIEGEZONE = false; //можно менять сабкласс в зоне осады
	private static final boolean	CANCHANGECLASS_PVPSTATE = false; //можно менять сабкласс в ПвП состоянии - розовый
	private static final boolean	CANCHANGECLASS_DEBUFF = false; //можно менять сабкласс пока висит дебаф
	private static final boolean	CANBUYNOBLE		= true;// можно купить ноблес
	private static final int	BUYNOBLEITEMID		= 6393;
	private static final long	BUYNOBLEITEMCOUNT	= 3000;
	private static final int	NOBLESS_TIARA		= 7694;
	

	@Override
	public String getBoard()
	{
		return "101";
	}

	private static String[] _COMMANDS = {"class", "changeclass", "changesubclass", "noble"};

	@Override
	public String[] getCommands()
	{
		return _COMMANDS;
	}

	public void onEvent(Object...objects){};

	@Override
	public String handleCommand(L2PcInstance activeChar, String command, String param)
	{
		if(command.equals("class"))
		{
			TextBuilder sb = new TextBuilder();
			ClassId classId = activeChar.getClassId();
			int level = activeChar.getLevel();
			int jobLevel = classId.level();
			int newJobLevel = jobLevel + 1;

			if(level >= 20 && jobLevel == 0 || level >= 40 && jobLevel == 1 || level >= 76 && jobLevel == 2 && Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))
			{
					sb.append("<center>Приветствую <font color=F2C202>" + activeChar.getName() + "</font>! Ваша текущая профессия <font color=F2C202>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "</font></center>.<br>");
					sb.append("<center>Список доступных классов:</center><br>");

					for(ClassId child : ClassId.values())
					{
						if(child.childOf(classId) && child.level() == newJobLevel)
						{
							sb.append("<br><center><button value=\"" + CharTemplateTable.getClassNameById(child.getId()) + "\" action=\"bypass -h _bbschangeclass " + child.getId() + "\" width=175 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></center>");
						}
					}
					if((Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel) != null) && (!Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).isEmpty()))
					{
						sb.append("<br><br><center>Список необходимых предметов:</center>");
						sb.append("<center><table width=200>");
						for(Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
						{
							int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId).intValue();
							sb.append("<tr><td><center><font color=\"LEVEL\">" + _count + "</font></center></td><td><center>" + ItemTable.getInstance().getTemplate(_itemId.intValue()).getName() + "</center></td></tr>");
						}
						sb.append("</table></center><br>");
					}
			}
			else
			{
				switch(jobLevel)
				{
					case 0:
						if(Config.CLASS_MASTER_SETTINGS.isAllowed(1))
						{
							sb.append("Приветствую <font color=F2C202>" + activeChar.getName() + "</font>! Ваша текущая профессия <font color=F2C202>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "</font>.<br>");
							sb.append("Для того, чтобы сменить вашу профессию, вы должны достичь: <font color=F2C202>20-го уровня</font>.<br>");
							sb.append("Для активации сабклассов, вы должны достичь <font color=F2C202>76-го уровня</font>.<br>");
							sb.append("Чтобы стать дворянином, вы должны прокачать сабкласс до <font color=F2C202>76-го уровня</font>.<br>");
						}
						else if(Config.CLASS_MASTER_SETTINGS.isAllowed(2))
							sb.append("Вернитесь после получения 1 профессии.<br>");
						else if(Config.CLASS_MASTER_SETTINGS.isAllowed(3))
							sb.append("Вернитесь после получения 2 профессии.<br>");
						else
							sb.append("Вы не можете изменить вашу профессию.<br>");
						break;
					case 1:
						if(Config.CLASS_MASTER_SETTINGS.isAllowed(2))
						{
							sb.append("Приветствую <font color=F2C202>" + activeChar.getName() + "</font>! Ваша текущая профессия <font color=F2C202>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "</font>.<br>");
							sb.append("Для того, чтобы сменить вашу профессию, вы должны достичь: <font color=F2C202>40-го уровня</font>.<br>");
							sb.append("Для активации сабклассов, вы должны достичь <font color=F2C202>76-го уровня</font>.<br>");
							sb.append("Чтобы стать дворянином, вы должны прокачать сабкласс до <font color=F2C202>76-го уровня</font>.<br>");
						}
						else if(Config.CLASS_MASTER_SETTINGS.isAllowed(3))
							sb.append("Вернитесь после получения 2 профессии.<br>");
						else
							sb.append("Вы не можете изменить вашу профессию.<br>");
						break;
					case 2:
						if(Config.CLASS_MASTER_SETTINGS.isAllowed(3))
						{
							sb.append("Приветствую <font color=F2C202>" + activeChar.getName() + "</font>! Ваша текущая профессия <font color=F2C202>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "</font><br>");
							sb.append("Для того, чтобы сменить вашу профессию, вы должны достичь: <font color=F2C202>76-го уровня</font>.<br>");
							sb.append("Для активации сабклассов, вы должны достичь <font color=F2C202>76-го уровня</font>.<br>");
							sb.append("Чтобы стать дворянином, вы должны прокачать сабкласс до <font color=F2C202>76-го уровня</font>.<br>");
						}
						else
							sb.append("Вы не можете изменить вашу профессию.<br>");
						break;
					case 3:
						sb.append("Приветствую <font color=F2C202>" + activeChar.getName() + "</font>! Ваша текущая профессия <font color=F2C202>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "</font>.<br>");
						sb.append("Для вас больше нет доступных профессий.<br><br>");
						if(canBuyNoble(activeChar, false))
						{
							if(!activeChar.isNoble())
							{
								sb.append("Вы достигли <font color=F2C202>76-го уровня</font>. Активация сабклассов теперь доступна.<br>");
								sb.append("<br><button value=\"" + "Получить Дворянина" + "\" action=\"bypass -h _bbsnoble " + "\" width=175 height=18 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">");
								sb.append("<br1>Необходимый предмет:"+ItemTable.getInstance().getTemplate(BUYNOBLEITEMID).getName()+" количество:"+BUYNOBLEITEMCOUNT);
							}
							else
								sb.append("Вы уже Дворянин. Получение дворянства более не доступно.<br>");
						}
				}
				sb.append("<br>");
			}

			TextBuilder sb1 = new TextBuilder();
			if (activeChar.getSubClasses().size() > 0 && CANCHANGESUBCLASS)
			{
				sb1.append("Смена сабкласса:<br>");
				sb1.append("<table width=200>");
				if (activeChar.getBaseClass() == activeChar.getActiveClass())
					sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</td></tr>");
				else
					sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + 0 + "\">" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</a></td></tr>");

				for (Map.Entry<Integer, SubClass> en : activeChar.getSubClasses().entrySet())
				{
					if (en.getValue().getClassId() == activeChar.getActiveClass())
						sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</td></tr>");
					else
						sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + en.getValue().getClassIndex() + "\">" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</a></td></tr>");
				}
				sb1.append("</table><br>");
			}
			else
				sb1.append("<br>");

			String content = HtmCache.getInstance().getHtm("data/html/CommunityBoard/100.htm");
			content = content.replace("%classmaster%", sb.toString());
			content = content.replace("%subclasses%", sb1.toString());
			separateAndSend(content, activeChar);
		}
		else if(command.equals("changeclass"))
		{
			if (activeChar.isChangeProcess()) return null;

			if (!checkCondition(activeChar)) return null;

			StringTokenizer st = new StringTokenizer(param, ";");
			int val = Short.parseShort(st.nextToken());
			ClassId classId = activeChar.getClassId();
			ClassId newClassId = ClassId.values()[val];

			int level = activeChar.getLevel();
			int jobLevel = classId.level();
			int newJobLevel = newClassId.level();

			if(!Config.CLASS_MASTER_SETTINGS.isAllowed(newJobLevel))
				return null;
			if(!newClassId.childOf(classId))
				return null;
			if(newJobLevel != jobLevel + 1)
				return null;
			if(level < 20 && newJobLevel > 1)
				return null;
			if(level < 40 && newJobLevel > 2)
				return null;
			if(level < 76 && newJobLevel > 3)
			{
				return null;
			}

			if(!Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).isEmpty() && activeChar.getWeightPenalty() >= 3 || activeChar.getInventoryLimit() * 0.8D <= activeChar.getInventory().getSize())
			{
				activeChar.sendPacket(new SystemMessage(SystemMessageId.INVENTORY_LESS_THAN_80_PERCENT));
				return null;
			}

			for(Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
			{
				int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId).intValue();
				if(activeChar.getInventory().getInventoryItemCount(_itemId.intValue(), -1) < _count)
				{
					activeChar.sendPacket(SystemMessageId.NOT_ENOUGH_ITEMS);
					return null;
				}
			}
			for(Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).keySet())
			{
				int _count = Config.CLASS_MASTER_SETTINGS.getRequireItems(newJobLevel).get(_itemId).intValue();
				activeChar.destroyItemByItemId("ClassMaster", _itemId.intValue(), _count, activeChar, true);
			}
			for(Integer _itemId : Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).keySet())
			{
				int _count = Config.CLASS_MASTER_SETTINGS.getRewardItems(newJobLevel).get(_itemId).intValue();
				activeChar.addItem("ClassMaster", _itemId.intValue(), _count, activeChar, true);
			}

			changeClass(activeChar, val);

			if (Config.ALLOW_SKILL_TRANSFER)
				rewardPormanders(activeChar, val);

			if(newJobLevel == 3)
				activeChar.sendPacket(SystemMessageId.THIRD_CLASS_TRANSFER);
			else
				activeChar.sendPacket(SystemMessageId.CLASS_TRANSFER);

			TextBuilder sb = new TextBuilder();
			sb.append("<br>");
			sb.append("<center>Поздравляю, Вы получили класс: <font color=\"LEVEL\">" + CharTemplateTable.getClassNameById(activeChar.getClassId().getId()) + "</font>.</center>");

			TextBuilder sb1 = new TextBuilder();
			sb1.append("<br>");

			String content = HtmCache.getInstance().getHtm("data/html/CommunityBoard/100.htm");
			content = content.replace("%classmaster%", sb.toString());
			content = content.replace("%subclasses%", sb1.toString());
			separateAndSend(content, activeChar);
			activeChar.refreshOverloaded();
			activeChar.refreshExpertisePenalty();
		}
		else if(command.equals("changesubclass"))
		{
			if (!CANCHANGESUBCLASS) return null;

			if (activeChar.isChangeProcess()) return null;

			if (!checkCondition(activeChar)) return null;

			StringTokenizer st = new StringTokenizer(param, ";");
			int val = Short.parseShort(st.nextToken());

			if (!FloodProtector.tryPerformAction(activeChar, Protected.SUBCLASS))
				return null;

			activeChar.setChangeProcess(true);
			activeChar.stopAllEffects();
			activeChar.clearSouls();
			activeChar.clearCharges();

			activeChar.setActiveClass(val);
			activeChar.setChangeProcess(false);
			activeChar.sendPacket(new ValidateLocation(activeChar));

			activeChar.sendPacket(SystemMessageId.SUBCLASS_TRANSFER_COMPLETED); // Transfer completed.
			TextBuilder sb = new TextBuilder();
			sb.append("<br>");

			TextBuilder sb1 = new TextBuilder();
			if (activeChar.getSubClasses().size() > 0)
			{
				sb1.append("Смена сабкласса<br>");
				sb1.append("<table width=200>");
				if (activeChar.getBaseClass() == activeChar.getActiveClass())
					sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</td></tr>");
				else
					sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + 0 + "\">" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</a></td></tr>");

				for (Map.Entry<Integer, SubClass> en : activeChar.getSubClasses().entrySet())
				{
					if (en.getValue().getClassId() == activeChar.getActiveClass())
						sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</td></tr>");
					else
						sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + en.getValue().getClassIndex() + "\">" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</a></td></tr>");
				}
				sb1.append("</table><br>");
			}
			else
				sb1.append("<br>");

			String content = HtmCache.getInstance().getHtm("data/html/CommunityBoard/100.htm");
			content = content.replace("%classmaster%", sb.toString());
			content = content.replace("%subclasses%", sb1.toString());
			separateAndSend(content, activeChar);
		}
		else if(command.equals("noble"))
		{
			if (canBuyNoble(activeChar, true))
			{
				if (!checkCondition(activeChar)) return null;

				if (!activeChar.destroyItemByItemId("CommunityNoble", BUYNOBLEITEMID, BUYNOBLEITEMCOUNT, activeChar, true)) return null;
				
				activeChar.setNoble(true);
				activeChar.addItem("CommunityNoble", NOBLESS_TIARA, 1, null, true);
				activeChar.store(false);

				TextBuilder sb = new TextBuilder();
				sb.append("<br>Поздравляем!<br1>Вы стали Дворянином<br>");
				TextBuilder sb1 = new TextBuilder();

				if (activeChar.getSubClasses().size() > 0 && CANCHANGESUBCLASS)
				{
					sb1.append("Смена сабкласса:<br>");
					sb1.append("<table width=200>");
					if (activeChar.getBaseClass() == activeChar.getActiveClass())
						sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</td></tr>");
					else
						sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + 0 + "\">" + CharTemplateTable.getClassNameById(activeChar.getBaseClass()) + "(базовый класс)</a></td></tr>");

					for (Map.Entry<Integer, SubClass> en : activeChar.getSubClasses().entrySet())
					{
						if (en.getValue().getClassId() == activeChar.getActiveClass())
							sb1.append("<tr><td>" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</td></tr>");
						else
							sb1.append("<tr><td><a action=\"bypass -h _bbschangesubclass " + en.getValue().getClassIndex() + "\">" + CharTemplateTable.getClassNameById(en.getValue().getClassId()) + "</a></td></tr>");
					}
					sb1.append("</table><br>");
				}
				else
					sb1.append("<br>");

				String content = HtmCache.getInstance().getHtm("data/html/CommunityBoard/100.htm");
				content = content.replace("%classmaster%", sb.toString());
				content = content.replace("%subclasses%", sb1.toString());
				separateAndSend(content, activeChar);
			}
		}

		return null;
	}

	private static void changeClass(L2PcInstance player, int val)
	{
		player.setChangeProcess(true);
		player.setClassId(val);

		if (player.isSubClassActive())
			player.getSubClasses().get(player.getClassIndex()).setClassId(player.getActiveClass());
		else
			player.setBaseClass(player.getActiveClass());
		player.store();
		player.setChangeProcess(false);
	}

	public static boolean checkCondition(L2PcInstance player)
	{
		if(player == null){ return false; }
		if(player.isAlikeDead())
		{
			player.sendMessage("Смена класса в таком режиме запрещена.");
			return false;
		}
		if(player.isInCombat())
		{
			player.sendMessage("Смена класса в режиме боя запрещена.");
			return false;
		}
		else if(player.isChaotic())
		{
			player.sendMessage("Смена класса в режиме PK запрещена.");
			return false;
		}
		else if(player.isInOlympiadMode() || Olympiad.isRegistered(player))
		{
			player.sendMessage("Данное действие запрещено на Олимпе.");
			return false;
		}
		else if(player.isInFunEvent())
		{
			player.sendMessage("Данное действие запрещено во время ивента.");
			return false;
		}
		else if (player.getBlockCheckerArena() >= 0 || HandysBlockCheckerManager.getInstance().isRegistered(player))
		{
			player.sendMessage("Действие на ивенте Handy Block Checker запрещено.");
			return false;
		}
		else if(player.isInJail())
		{
			player.sendMessage("Данное действие запрещено в Тюрьме.");
			return false;
		}
		else if(player.isFlying())
		{
			player.sendMessage("Во время полёта Смена класса запрещена.");
			return false;
		}
		else if(!CANCHANGECLASS_INSTANCE && player.getInstanceId() > 0)
		{
			player.sendMessage("Смена класса в Инстансе запрещена.");
			return false;
		}
		else if (!CANCHANGECLASS_BOSSZONE && player.isInsideZone(L2Zone.FLAG_BOSS))
		{
			player.sendMessage("Данное действие запрещено в зоне Эпик-босса.");
			return false;
		}
		else if (!CANCHANGECLASS_PVPZONE && player.isInsideZone(L2Zone.FLAG_PVP) && !player.isInsideZone(L2Zone.FLAG_PEACE))
		{
			player.sendMessage("Данное действие запрещено на Арене.");
			return false;
		}
		else if (!CANCHANGECLASS_SIEGEZONE && player.isInsideZone(L2Zone.FLAG_SIEGE))
		{
			player.sendMessage("Данное действие запрещено на Арене.");
			return false;
		}
		else if (!CANCHANGECLASS_NOWINPEACEZONE && !player.isInsideZone(L2Zone.FLAG_PEACE))
		{
			player.sendMessage("Данное действие запрещено вне мирной зоны.");
			return false;
		}
		else if (!CANCHANGECLASS_PVPSTATE && player.getPvpFlag() > 0)
		{
			player.sendMessage("Данное действие запрещено в режиме ПвП (розовый ник).");
			return false;
		}
		else if (!CANCHANGECLASS_DEBUFF && player.getEffectsDeBuffCount() > 0)
		{
			player.sendMessage("Данное действие запрещено пока висит дебаф.");
			return false;
		}
		else if (player.isInObserverMode())
			return false;
		
		return true;
	}

	private void rewardPormanders(L2PcInstance player, int val)
	{
		switch (val)
		{
		case 97: // http://lineage2.rochand.com/Knowledge/race_human.php?my_class=human_cardinal
			player.addItem("ClassReward", 15307, 1, player, true);
			break;
		case 105: // http://lineage2.rochand.com/Knowledge/race_elf.php?my_class=elf_evas_saint
			player.addItem("ClassReward", 15308, 1, player, true);
			break;
		case 112: // http://lineage2.rochand.com/Knowledge/race_darkelf.php?my_class=dark_elf_shillien_saint
			player.addItem("ClassReward", 15309, 4, player, true);
			break;
		}
	}

	private static boolean canBuyNoble(L2PcInstance player, boolean showMsg)
	{
		if (!CANBUYNOBLE) return false;
		if (player.getLevel() < 76) {if(showMsg) player.sendMessage("Невозможно получить Дворянина, потому что уровень меньше 76."); return false;}
		if (player.isSubClassActive()) {if(showMsg) player.sendMessage("Невозможно получить Дворянина, потому что вы на сабклассе."); return false;}
		if (player.getSubClasses().size() == 0) {if(showMsg) player.sendMessage("Невозможно получить Дворянина, потому что у вас нет ни одного сабкласса."); return false;}

		boolean canTrueSub = false;
		for (SubClass sub : player.getSubClasses().values())
		{
			if (sub.getLevel() >= 75)
			{
				canTrueSub = true;
				break;
			}
		}

		if (!canTrueSub) {if(showMsg) player.sendMessage("Невозможно получить Дворянина, потому что у вас нет ни одного сабкласса с уровнем 75+."); return false;}

		if (showMsg)
		{
			if (player.isNoble()){player.sendMessage("Вы уже Дворянин. Получение дворянства более не доступно."); return false;}
			L2ItemInstance payItem = player.getInventory().getItemByItemId(BUYNOBLEITEMID);
			if (payItem == null || payItem.getCount() < BUYNOBLEITEMCOUNT) {player.sendMessage("Невозможно получить Дворянина, потому что у вас нет необходимого кол-ва "+ItemTable.getInstance().getTemplate(BUYNOBLEITEMID).getName()+"."); return false;}
		}

		return true;
	}

	public static void main(String[] args)
	{
		CommunityBoard.getInstance().registerBBSHandler(new ClassBBSManager());
	}
}
Вот кусок скрипта на который ругается сервер
[CODE]
else if (!CANCHANGECLASS_NOWINPEACEZONE && !player.isInsideZone(L2Zone.FLAG_PEACE))
{
player.sendMessage("Данное действие запрещено вне мирной зоны.");
return false;
}
[CODE]
sakson вне форума Ответить с цитированием
Непрочитано 16.03.2014, 15:22   #2
Аватар для Zubastic
ZG troll squad

По умолчанию Re: ClassBBSManager

Цитата:
Сообщение от sakson Посмотреть сообщение
Вот кусок скрипта на который ругается сервер
[CODE]
else if (!CANCHANGECLASS_NOWINPEACEZONE && !player.isInsideZone(L2Zone.FLAG_PEACE))
{
player.sendMessage("Данное действие запрещено вне мирной зоны.");
return false;
}
[CODE]
Видимо постоянно возвращает false, на это и ругается среда.
__________________
Zubastic вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 16.03.2014, 16:56   #3
Аватар для n3k0nation
Antihero

По умолчанию Re: ClassBBSManager

Dead code т.к. у Вас CANCHANGECLASS_NOWINPEACEZONE всегда true, соответственно данное условие никогда не выполнится.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 16.03.2014, 18:05   #4
Участник

Автор темы (Топик Стартер) Re: ClassBBSManager

Спасибо уважаемые!)
Разобрался!)
sakson вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 14:58. Часовой пояс GMT +3.

Вверх