Код
### Eclipse Workspace Patch 1.0
#P trunk
Index: L2J_CORE/java/config/l2jdynasty.ini
===================================================================
--- L2J_CORE/java/config/l2jdynasty.ini (revision 34)
+++ L2J_CORE/java/config/l2jdynasty.ini (working copy)
@@ -20,6 +20,12 @@
SpawnY = 0
SpawnZ = 0
+# Wyvern protection city
+AllowWyvernRestrictionCity = True
+LocationX = 0
+LocationY = 0
+LocationZ = 0
+
# Allow custom starting lvl default:false
AllowCustomStartLvl = false
#Custom Start lvl for 80 lvl and 100% put 81
Index: L2J_CORE/java/br/l2j/dynasty/Config.java
===================================================================
--- L2J_CORE/java/br/l2j/dynasty/Config.java (revision 34)
+++ L2J_CORE/java/br/l2j/dynasty/Config.java (working copy)
@@ -838,6 +838,12 @@
public static String AIO_PM_FROM;
public static String AIO_PM_TEXT2;
public static String AIO_PM_TEXT3;
+
+ public static boolean ALLOW_WYVERN_RESTRITION_CITY;
+ public static int WYVERN_X;
+ public static int WYVERN_Y;
+ public static int WYVERN_Z;
+
/** Aio System */
public static boolean ALLOW_AIO_RESTRITION_CITY;
public static boolean ENABLE_AIO_SYSTEM;
@@ -2123,6 +2129,10 @@
L2JCustomSettings.load(is);
is.close();
+ ALLOW_WYVERN_RESTRITION_CITY = Boolean.parseBoolean(L2JCustomSettings.getProperty("AllowWyvernRestrictionCity", "False"));
+ WYVERN_X = Integer.parseInt(L2JCustomSettings.getProperty("LocationX", "0"));
+ WYVERN_Y = Integer.parseInt(L2JCustomSettings.getProperty("LocationY", "0"));
+ WYVERN_Z = Integer.parseInt(L2JCustomSettings.getProperty("LocationZ", "0"));
ALT_ATTACK_DELAY = Float.parseFloat(L2JCustomSettings.getProperty("AltAttackDelay", "1.00"));
MANA_POTION_RES = Integer.parseInt(L2JCustomSettings.getProperty("ManaPotionMPRes", "200"));
LEAVE_BUFFS_ON_DIE = Boolean.parseBoolean(L2JCustomSettings.getProperty("LeaveBuffsOnDie", "True"));
Index: L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java
===================================================================
--- L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java (revision 36)
+++ L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java (working copy)
+import javalution.text.TextBuilder;
+import br.l2j.dynasty.gameserver.serverpackets.ActionFailed;
+import br.l2j.dynasty.gameserver.serverpackets.NpcHtmlMessage;
@@ -100,6 +100,11 @@
{
if (character instanceof L2PcInstance)
{
+ if(((L2PcInstance) character).isFlying() && Config.ALLOW_WYVERN_RESTRITION_CITY)
+ {
+ ((L2PcInstance) character).teleToLocation(Config.WYVERN_X, Config.WYVERN_Y, Config.WYVERN_Z);
+ showHtmlWyvern((L2PcInstance) character);
+ }
// PVP possible during siege, now for siege participants only
// Could also check if this town is in siege, or if any siege is going on
if (((L2PcInstance)character).getSiegeState() != 0 && Config.ZONE_TOWN == 1)
@@ -151,6 +156,30 @@
activeChar.sendPacket(new ActionFailed());
}
+
+ private void showHtmlWyvern(L2PcInstance activeChar)
+ {
+ NpcHtmlMessage nhm = new NpcHtmlMessage(5);
+ TextBuilder replyMSG = new TextBuilder("");
+
+ replyMSG.append("<html><title>Wyvern Town Protection</title><body><center>");
+ replyMSG.append("<img src=L2UI_CH3.herotower_deco width=256 height=32><br>");
+ replyMSG.append("<font color=LEVEL>- Wyvern -</font><br>");
+ replyMSG.append("<img src=L2UI.SquareGray width=300 height=1><br>");
+ replyMSG.append("<center>Voce nao pode entrar na cidade,</center><br>");
+ replyMSG.append("<center>com esse um dragao voador,</center><br>");
+ replyMSG.append("<center>voce foi teleportado para as loc:</center><br>");
+ replyMSG.append("<center> " +Config.WYVERN_X+ ", " +Config.WYVERN_Y+ ", " +Config.WYVERN_Z+ "</center><br>");
+ replyMSG.append("<img src=L2UI_CH3.herotower_deco width=256 height=32><br>");
+ replyMSG.append("<img src=l2ui.bbs_lineage2 height=16 width=80>");
+ replyMSG.append("<font color=808080> Lineage 2 Interlude </font>");
+ replyMSG.append("</center></body></html>");
+
+ nhm.setHtml(replyMSG.toString());
+ activeChar.sendPacket(nhm);
+
+ activeChar.sendPacket(new ActionFailed());
+ }
@Override
protected void onDieInside(L2Character character) {}
#P trunk
Index: L2J_CORE/java/config/l2jdynasty.ini
===================================================================
--- L2J_CORE/java/config/l2jdynasty.ini (revision 34)
+++ L2J_CORE/java/config/l2jdynasty.ini (working copy)
@@ -20,6 +20,12 @@
SpawnY = 0
SpawnZ = 0
+# Wyvern protection city
+AllowWyvernRestrictionCity = True
+LocationX = 0
+LocationY = 0
+LocationZ = 0
+
# Allow custom starting lvl default:false
AllowCustomStartLvl = false
#Custom Start lvl for 80 lvl and 100% put 81
Index: L2J_CORE/java/br/l2j/dynasty/Config.java
===================================================================
--- L2J_CORE/java/br/l2j/dynasty/Config.java (revision 34)
+++ L2J_CORE/java/br/l2j/dynasty/Config.java (working copy)
@@ -838,6 +838,12 @@
public static String AIO_PM_FROM;
public static String AIO_PM_TEXT2;
public static String AIO_PM_TEXT3;
+
+ public static boolean ALLOW_WYVERN_RESTRITION_CITY;
+ public static int WYVERN_X;
+ public static int WYVERN_Y;
+ public static int WYVERN_Z;
+
/** Aio System */
public static boolean ALLOW_AIO_RESTRITION_CITY;
public static boolean ENABLE_AIO_SYSTEM;
@@ -2123,6 +2129,10 @@
L2JCustomSettings.load(is);
is.close();
+ ALLOW_WYVERN_RESTRITION_CITY = Boolean.parseBoolean(L2JCustomSettings.getProperty("AllowWyvernRestrictionCity", "False"));
+ WYVERN_X = Integer.parseInt(L2JCustomSettings.getProperty("LocationX", "0"));
+ WYVERN_Y = Integer.parseInt(L2JCustomSettings.getProperty("LocationY", "0"));
+ WYVERN_Z = Integer.parseInt(L2JCustomSettings.getProperty("LocationZ", "0"));
ALT_ATTACK_DELAY = Float.parseFloat(L2JCustomSettings.getProperty("AltAttackDelay", "1.00"));
MANA_POTION_RES = Integer.parseInt(L2JCustomSettings.getProperty("ManaPotionMPRes", "200"));
LEAVE_BUFFS_ON_DIE = Boolean.parseBoolean(L2JCustomSettings.getProperty("LeaveBuffsOnDie", "True"));
Index: L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java
===================================================================
--- L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java (revision 36)
+++ L2J_CORE/java/br/l2j/dynasty/gameserver/model/zone/type/L2TownZone.java (working copy)
+import javalution.text.TextBuilder;
+import br.l2j.dynasty.gameserver.serverpackets.ActionFailed;
+import br.l2j.dynasty.gameserver.serverpackets.NpcHtmlMessage;
@@ -100,6 +100,11 @@
{
if (character instanceof L2PcInstance)
{
+ if(((L2PcInstance) character).isFlying() && Config.ALLOW_WYVERN_RESTRITION_CITY)
+ {
+ ((L2PcInstance) character).teleToLocation(Config.WYVERN_X, Config.WYVERN_Y, Config.WYVERN_Z);
+ showHtmlWyvern((L2PcInstance) character);
+ }
// PVP possible during siege, now for siege participants only
// Could also check if this town is in siege, or if any siege is going on
if (((L2PcInstance)character).getSiegeState() != 0 && Config.ZONE_TOWN == 1)
@@ -151,6 +156,30 @@
activeChar.sendPacket(new ActionFailed());
}
+
+ private void showHtmlWyvern(L2PcInstance activeChar)
+ {
+ NpcHtmlMessage nhm = new NpcHtmlMessage(5);
+ TextBuilder replyMSG = new TextBuilder("");
+
+ replyMSG.append("<html><title>Wyvern Town Protection</title><body><center>");
+ replyMSG.append("<img src=L2UI_CH3.herotower_deco width=256 height=32><br>");
+ replyMSG.append("<font color=LEVEL>- Wyvern -</font><br>");
+ replyMSG.append("<img src=L2UI.SquareGray width=300 height=1><br>");
+ replyMSG.append("<center>Voce nao pode entrar na cidade,</center><br>");
+ replyMSG.append("<center>com esse um dragao voador,</center><br>");
+ replyMSG.append("<center>voce foi teleportado para as loc:</center><br>");
+ replyMSG.append("<center> " +Config.WYVERN_X+ ", " +Config.WYVERN_Y+ ", " +Config.WYVERN_Z+ "</center><br>");
+ replyMSG.append("<img src=L2UI_CH3.herotower_deco width=256 height=32><br>");
+ replyMSG.append("<img src=l2ui.bbs_lineage2 height=16 width=80>");
+ replyMSG.append("<font color=808080> Lineage 2 Interlude </font>");
+ replyMSG.append("</center></body></html>");
+
+ nhm.setHtml(replyMSG.toString());
+ activeChar.sendPacket(nhm);
+
+ activeChar.sendPacket(new ActionFailed());
+ }
@Override
protected void onDieInside(L2Character character) {}