[help] Небольшой вопрос по компиляяции
1 пост почему-то пустой...
Напишу тут
Думаю тут нет смысла писать ОС, железо и т.д. Поэтому сразу к делу..
Как добавить следующий код через эклипс.. Как вы заметили, там есть плюсики (+), т.е. ето то, что и куда нужно всунуть.. Только как это сделать через эклипс? :) А то согласитесть, стирать каждый "плюсик" и вырезать по частям код - не очень хорошее занятие :)
Если кто знает, ответьте, и дуиаю можно будет прикрепить тему, если будет ответ на мой вопрос.
Спасибо.
===================================================================
--- G:/L2jfree/My_GameServer/src/main/java/net/sf/l2j/gameserver/model/actor/instance/L2FortManagerInstance.java (revision 0)
+++ G:/L2jfree/My_GameServer/src/main/java/net/sf/l2j/gameserver/model/actor/instance/L2FortManagerInstance.java (revision 0)
@@ -0,0 +1,1330 @@
+/*
+ * This program 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.
+ *
+ * This program 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
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.model.actor.instance;
+
+import java.text.SimpleDateFormat;
+import java.util.StringTokenizer;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.datatables.SkillTable;
+import net.sf.l2j.gameserver.datatables.TeleportLocationTable;
+import net.sf.l2j.gameserver.datatables.TradeListTable;
+import net.sf.l2j.gameserver.instancemanager.FortManager;
+import net.sf.l2j.gameserver.model.L2Clan;
+import net.sf.l2j.gameserver.model.L2Skill;
+import net.sf.l2j.gameserver.model.L2TeleportLocation;
+import net.sf.l2j.gameserver.model.L2Skill.SkillType;
+import net.sf.l2j.gameserver.model.entity.Fort;
+import net.sf.l2j.gameserver.network.SystemMessageId;
+import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
+import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
+import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
+import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
+import net.sf.l2j.gameserver.network.serverpackets.WareHouseDepositList;
+import net.sf.l2j.gameserver.network.serverpackets.WareHouseWithdrawalList;
+import net.sf.l2j.gameserver.templates.L2NpcTemplate;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class L2FortManagerInstance extends L2MerchantInstance
+{
+ private final static Log _log = LogFactory.getLog(L2ClanHallManagerInstance.class.getName());
+ protected static final int COND_OWNER_FALSE = 0;
+ protected static final int COND_ALL_FALSE = 1;
+ protected static final int COND_BUSY_BECAUSE_OF_SIEGE = 2;
+ protected static final int COND_OWNER = 3;
+ private int _fortId = -1;
+
+ /**
+ * @param objectId
+ * @param template
+ */
+ public L2FortManagerInstance(int objectId, L2NpcTemplate template)
+ {
+ super(objectId, template);
+ }
+
+ @SuppressWarnings("deprecation")
+ @Override
+ public void onBypassFeedback(L2PcInstance player, String command)
+ {
+ SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
+ int condition = validateCondition(player);
+ if (condition <= COND_ALL_FALSE)
+ return;
+ else if (condition == COND_OWNER)
+ {
+ StringTokenizer st = new StringTokenizer(command, " ");
+ String actualCommand = st.nextToken(); // Get actual command
+ String val = "";
+ if (st.countTokens() >= 1) {val = st.nextToken();}
+
+ if (actualCommand.equalsIgnoreCase("banish_foreigner"))
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ if (val.equalsIgnoreCase("list"))
+ {
+ html.setFile("data/html/fortManager/banish-list.htm");
+ }
+ else if (val.equalsIgnoreCase("banish"))
+ {
+ //getFort().banishForeigner(player);
+ html.setFile("data/html/fortManager/banish.htm");
+ }
+ sendHtmlMessage(player, html);
+ return;
+ }
+ else if (actualCommand.equalsIgnoreCase("report"))
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ html.setFile("data/html/fortManager/report.htm");
+ html.replace("%castle%", String.valueOf(getCastle().getName()));
+ //remaining hours till siege NOT DONE missing current hour to calculate diff
+ int hours = getFort().getSiegeDate().getTime().getHours();
+ html.replace("%siegehour%", String.valueOf(hours));
+
+ //remaining minutes till siege NOT DONE missing current minute to calculate diff
+ html.replace("%siegeminute%", String.valueOf(getFort().getSiegeDate().getTime().getMinutes()));
+ html.replace("%taxamount%", String.valueOf(getCastle().getTaxRate()));
+ html.replace("%payhour%", String.valueOf(getCastle().getTaxRate()));
+ html.replace("%payminute%", String.valueOf(getCastle().getTaxRate()));
+ sendHtmlMessage(player, html);
+ }
+ else if (actualCommand.equalsIgnoreCase("defcheck"))
+ {//NOTDONE
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ html.setFile("data/html/fortManager/defcheck.htm");
+ sendHtmlMessage(player, html);
+ }
+ else if(actualCommand.equalsIgnoreCase("manage_vault"))
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE)
+ {
+ if (val.equalsIgnoreCase("deposit"))
+ showVaultWindowDeposit(player);
+ else if (val.equalsIgnoreCase("withdraw"))
+ showVaultWindowWithdraw(player);
+ else
+ {
+ html.setFile("data/html/fortManager/vault.htm");
+ sendHtmlMessage(player, html);
+ }
+ }
+ else
+ {
+ html.setFile("data/html/fortManager/not_authorized.htm");
+ sendHtmlMessage(player, html);
+ }
+ return;
+ }
+ else if (actualCommand.equalsIgnoreCase("door"))
+ {int index=0;
+ NpcHtmlMessage html = new NpcHtmlMessage(1);
+ if ((player.getClanPrivileges() & L2Clan.CP_CH_OPEN_DOOR) == L2Clan.CP_CH_OPEN_DOOR)
+ {
+ if (val.equalsIgnoreCase("open"))
+ {
+
+ while (index< getFort().getDoors().size())
+ {
+ // using .substring because entries in list are like : "door 1920001"
+ getFort().openDoor(player,Integer.valueOf(getFort().getDoors().get(index).toString().substring(5)).intValue());
+ index++;
+ }
+
+ html.setFile("data/html/fortManager/door-open.htm");
+ }
+ else if (val.equalsIgnoreCase("close"))
......и т.д.
Эклипс тут вообщем-то не причем ))
Коротко:
Это "файлы-патчи, аля Diff'ы", которые принадлежат в данном случае Subversion (он-же SVN).
Вникать в подробности не будем, поэтому скажу кратко как применить их.
1. Установить SVN клиент, например Tortoise SVN.
2. Стянуть исходники сервера с SVNа с помощью этого SVN клиента.
3. На главной папке кликнуть правой кнопкой, TortoiseSVN->Apply Patch дальше интуитивно понятно.
— Ålderdom - ingen glädje..
Спасибо огромное! А я то думал что эклипсом.. Ну теперь как понятно, эклипс только для компиляции серверов и редактирования java кода. Верно?
Eclipse, IntelliJ Idea итд это среда разработки (IDE).
Главная задача - написание, редактирование кода, дизайн окон, отладка, автоматизация процессов, итд.
Кроме этого IDE может иметь кучу плагинов для работы с разными "штучками"...с SVN, с теми-же Diff'ам итд.
Перечислить все невозможно просто.
— Ålderdom - ingen glädje..


