Advertisement
cunder

Untitled

Nov 30th, 2015
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.15 KB | None | 0 0
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2J_DataPack_BETA
  3. Index: dist/game/data/xsd/zones.xsd
  4. ===================================================================
  5. --- dist/game/data/xsd/zones.xsd (revision 9872)
  6. +++ dist/game/data/xsd/zones.xsd (working copy)
  7. @@ -145,6 +145,7 @@
  8. <xs:enumeration value="TerritoryWarZone" />
  9. <xs:enumeration value="TownZone" />
  10. <xs:enumeration value="WaterZone" />
  11. + <xs:enumeration value="MultiFunctionZone" />
  12. </xs:restriction>
  13. </xs:simpleType>
  14. </xs:attribute>
  15. Index: dist/game/data/zones/peace.xml
  16. ===================================================================
  17. --- dist/game/data/zones/peace.xml (revision 9872)
  18. +++ dist/game/data/zones/peace.xml (working copy)
  19. @@ -948,4 +948,10 @@
  20. <node X="-113768" Y="-150965" />
  21. <node X="-115424" Y="-150965" />
  22. </zone>
  23. + <zone name="Custom" type="MultiFunctionZone" shape="NPoly" minZ="-15000" maxZ="-10000">
  24. + <node X="130000" Y="160000" />
  25. + <node X="130000" Y="130000" />
  26. + <node X="160000" Y="130000" />
  27. + <node X="160000" Y="160000" />
  28. + </zone>
  29. </list>
  30. \ No newline at end of file
  31. #P L2J_Server_BETA
  32. Index: java/com/l2jserver/gameserver/network/serverpackets/Die.java
  33. ===================================================================
  34. --- java/com/l2jserver/gameserver/network/serverpackets/Die.java (revision 6165)
  35. +++ java/com/l2jserver/gameserver/network/serverpackets/Die.java (working copy)
  36. @@ -31,6 +31,8 @@
  37. import com.l2jserver.gameserver.model.entity.Castle;
  38. import com.l2jserver.gameserver.model.entity.Fort;
  39. import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
  40. +import com.l2jserver.gameserver.model.zone.ZoneId;
  41. +import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
  42.  
  43. public class Die extends L2GameServerPacket
  44. {
  45. @@ -54,7 +56,7 @@
  46. _isJailed = player.isJailed();
  47. }
  48.  
  49. - _canTeleport = cha.canRevive() && !cha.isPendingRevive();
  50. + _canTeleport = (cha.canRevive() && !cha.isPendingRevive()) || (cha.isInsideZone(ZoneId.MULTI_FUNCTION) && !L2MultiFunctionZone.revive);
  51. _sweepable = cha.isL2Attackable() && cha.isSweepActive();
  52. }
  53.  
  54. Index: java/com/l2jserver/gameserver/network/clientpackets/UseItem.java
  55. ===================================================================
  56. --- java/com/l2jserver/gameserver/network/clientpackets/UseItem.java (revision 6165)
  57. +++ java/com/l2jserver/gameserver/network/clientpackets/UseItem.java (working copy)
  58. @@ -43,6 +43,8 @@
  59. import com.l2jserver.gameserver.model.items.type.L2ArmorType;
  60. import com.l2jserver.gameserver.model.items.type.L2WeaponType;
  61. import com.l2jserver.gameserver.model.skills.L2Skill;
  62. +import com.l2jserver.gameserver.model.zone.ZoneId;
  63. +import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
  64. import com.l2jserver.gameserver.model.skills.L2Skill;
  65. import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
  66. import com.l2jserver.gameserver.network.serverpackets.ExUseSharedGroupItem;
  67. @@ -128,6 +130,12 @@
  68. return;
  69. }
  70.  
  71. + if (getClient().getActiveChar().isInsideZone(ZoneId.MULTI_FUNCTION) && !L2MultiFunctionZone.checkItem(item))
  72. + {
  73. + getClient().getActiveChar().sendMessage("You cannot use " + item.getName() + " inside this zone.");
  74. + return;
  75. + }
  76. +
  77. if (item.getItem().getType2() == L2Item.TYPE2_QUEST)
  78. {
  79. activeChar.sendPacket(SystemMessageId.CANNOT_USE_QUEST_ITEMS);
  80. Index: java/com/l2jserver/gameserver/network/clientpackets/Logout.java
  81. ===================================================================
  82. --- java/com/l2jserver/gameserver/network/clientpackets/Logout.java (revision 6165)
  83. +++ java/com/l2jserver/gameserver/network/clientpackets/Logout.java (working copy)
  84. @@ -26,6 +26,8 @@
  85. import com.l2jserver.gameserver.SevenSignsFestival;
  86. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  87. import com.l2jserver.gameserver.model.entity.L2Event;
  88. +import com.l2jserver.gameserver.model.zone.ZoneId;
  89. +import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
  90. import com.l2jserver.gameserver.network.SystemMessageId;
  91. import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
  92. import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
  93. @@ -97,6 +99,13 @@
  94. return;
  95. }
  96.  
  97. + if (player.isInsideZone(ZoneId.MULTI_FUNCTION) && !L2MultiFunctionZone.logout_zone)
  98. + {
  99. + player.sendMessage("You cannot logout while inside a Multifunction zone.");
  100. + player.sendPacket(ActionFailed.STATIC_PACKET);
  101. + return;
  102. + }
  103. +
  104. // Prevent player from logging out if they are a festival participant
  105. // and it is in progress, otherwise notify party members that the player
  106. // is not longer a participant.
  107. Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  108. ===================================================================
  109. --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 6165)
  110. +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
  111. @@ -241,6 +241,7 @@
  112. import com.l2jserver.gameserver.model.zone.L2ZoneType;
  113. import com.l2jserver.gameserver.model.zone.ZoneId;
  114. import com.l2jserver.gameserver.model.zone.type.L2BossZone;
  115. +import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
  116. import com.l2jserver.gameserver.model.zone.type.L2NoRestartZone;
  117. import com.l2jserver.gameserver.network.L2GameClient;
  118. import com.l2jserver.gameserver.network.SystemMessageId;
  119. @@ -5811,6 +5812,8 @@
  120. // Add karma to attacker and increase its PK counter
  121. setPvpKills(getPvpKills() + 1);
  122.  
  123. + L2MultiFunctionZone.givereward(this);
  124. +
  125. // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
  126. sendPacket(new UserInfo(this));
  127. sendPacket(new ExBrExtraUserInfo(this));
  128. Index: java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java
  129. ===================================================================
  130. --- java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java (revision 0)
  131. +++ java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java (working copy)
  132. @@ -0,0 +1,381 @@
  133. +/*
  134. + * This program is free software: you can redistribute it and/or modify it under
  135. + * the terms of the GNU General Public License as published by the Free Software
  136. + * Foundation, either version 3 of the License, or (at your option) any later
  137. + * version.
  138. + *
  139. + * This program is distributed in the hope that it will be useful, but WITHOUT
  140. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  141. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  142. + * details.
  143. + *
  144. + * You should have received a copy of the GNU General Public License along with
  145. + * this program. If not, see <http://www.gnu.org/licenses/>.
  146. + */
  147. +/*
  148. + * This program is free software: you can redistribute it and/or modify it under
  149. + * the terms of the GNU General Public License as published by the Free Software
  150. + * Foundation, either version 3 of the License, or (at your option) any later
  151. + * version.
  152. + *
  153. + * This program is distributed in the hope that it will be useful, but WITHOUT
  154. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  155. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  156. + * details.
  157. + *
  158. + * You should have received a copy of the GNU General Public License along with
  159. + * this program. If not, see <http://www.gnu.org/licenses/>.
  160. + */
  161. +package com.l2jserver.gameserver.model.zone.type;
  162. +
  163. +import java.io.File;
  164. +import java.io.FileInputStream;
  165. +import java.util.ArrayList;
  166. +import java.util.List;
  167. +import java.util.Properties;
  168. +
  169. +import javolution.util.FastList;
  170. +
  171. +import com.l2jserver.gameserver.ThreadPoolManager;
  172. +import com.l2jserver.gameserver.datatables.SkillTable;
  173. +import com.l2jserver.gameserver.model.actor.L2Character;
  174. +import com.l2jserver.gameserver.model.actor.L2Summon;
  175. +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  176. +import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
  177. +import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
  178. +import com.l2jserver.gameserver.model.skills.L2Skill;
  179. +import com.l2jserver.gameserver.model.zone.ZoneId;
  180. +import com.l2jserver.util.Rnd;
  181. +
  182. +/**
  183. + * @author Wyatt
  184. + * @version 1.3
  185. + */
  186. +
  187. +public class L2MultiFunctionZone extends L2RespawnZone
  188. +{
  189. +
  190. + public L2MultiFunctionZone(int id)
  191. + {
  192. + super(id);
  193. + loadConfigs();
  194. + }
  195. +
  196. + public static boolean pvp_enabled, restart_zone, store_zone, logout_zone, revive_noblesse, revive_heal, revive, remove_buffs, remove_pets, give_noblesse;
  197. + static int radius, enchant, revive_delay;
  198. + static int[][] spawn_loc;
  199. + L2Skill noblesse = SkillTable.getInstance().getInfo(1323, 1);
  200. + private static List<String> items = new FastList<>();
  201. + private static List<String> grades = new FastList<>(), classes = new FastList<>();
  202. + public static List<int[]> rewards;
  203. + static String[] gradeNames =
  204. + {
  205. + "",
  206. + "D",
  207. + "C",
  208. + "B",
  209. + "A",
  210. + "S",
  211. + "S80",
  212. + "S84"
  213. + };
  214. +
  215. + @Override
  216. + protected void onEnter(L2Character character)
  217. + {
  218. + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true);
  219. + character.setInsideZone(ZoneId.MULTI_FUNCTION, true);
  220. + if (!store_zone)
  221. + {
  222. + character.setInsideZone(ZoneId.NO_STORE, true);
  223. + }
  224. +
  225. + if (character instanceof L2PcInstance)
  226. + {
  227. + L2PcInstance activeChar = ((L2PcInstance) character);
  228. + if ((classes != null) && classes.contains("" + activeChar.getClassId().getId()))
  229. + {
  230. + activeChar.teleToLocation(83597, 147888, -3405);
  231. + activeChar.sendMessage("Your class is not allowed in the MultiFunction zone.");
  232. + return;
  233. + }
  234. +
  235. + for (L2ItemInstance o : activeChar.getInventory()._items)
  236. + {
  237. + if (o.isEquipable() && o.isEquipped() && !checkItem(o))
  238. + {
  239. + int slot = activeChar.getInventory().getSlotFromItem(o);
  240. + activeChar.getInventory().unEquipItemInBodySlot(slot);
  241. + activeChar.sendMessage(o.getName() + " unequiped because is not allowed inside this zone.");
  242. + }
  243. + }
  244. + activeChar.sendMessage("You entered in a MultiFunction zone.");
  245. + clear(activeChar);
  246. + if (give_noblesse)
  247. + {
  248. + noblesse.getEffects(activeChar, activeChar);
  249. + }
  250. + if (pvp_enabled)
  251. + {
  252. + activeChar.updatePvPFlag(1);
  253. + }
  254. + }
  255. + }
  256. +
  257. + @Override
  258. + protected void onExit(L2Character character)
  259. + {
  260. + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false);
  261. + character.setInsideZone(ZoneId.MULTI_FUNCTION, false);
  262. + if (!store_zone)
  263. + {
  264. + character.setInsideZone(ZoneId.NO_STORE, false);
  265. + }
  266. +
  267. + if (character instanceof L2PcInstance)
  268. + {
  269. + L2PcInstance activeChar = ((L2PcInstance) character);
  270. + activeChar.sendMessage("You left from a MultiFunction zone.");
  271. +
  272. + if (pvp_enabled)
  273. + {
  274. + activeChar.stopPvPFlag();
  275. + }
  276. + }
  277. + }
  278. +
  279. + @Override
  280. + public void onDieInside(final L2Character character)
  281. + {
  282. + if (character instanceof L2PcInstance)
  283. + {
  284. + final L2PcInstance activeChar = ((L2PcInstance) character);
  285. + if (revive)
  286. + {
  287. + ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
  288. + {
  289. + @Override
  290. + public void run()
  291. + {
  292. + activeChar.doRevive();
  293. + heal(activeChar);
  294. + int[] loc = spawn_loc[Rnd.get(spawn_loc.length)];
  295. + activeChar.teleToLocation(loc[0] + Rnd.get(-radius, radius), loc[1] + Rnd.get(-radius, radius), loc[2]);
  296. + }
  297. + }, revive_delay * 1000);
  298. + }
  299. + }
  300. + }
  301. +
  302. + @Override
  303. + public void onReviveInside(L2Character character)
  304. + {
  305. + if (character instanceof L2PcInstance)
  306. + {
  307. + L2PcInstance activeChar = ((L2PcInstance) character);
  308. + if (revive_noblesse)
  309. + {
  310. + noblesse.getEffects(activeChar, activeChar);
  311. + }
  312. + if (revive_heal)
  313. + {
  314. + heal(activeChar);
  315. + }
  316. + }
  317. + }
  318. +
  319. + private void clear(L2PcInstance player)
  320. + {
  321. + if (remove_buffs)
  322. + {
  323. + player.stopAllEffectsExceptThoseThatLastThroughDeath();
  324. + if (remove_pets)
  325. + {
  326. + L2Summon pet = player.getSummon();
  327. + if (pet != null)
  328. + {
  329. + pet.stopAllEffectsExceptThoseThatLastThroughDeath();
  330. + pet.unSummon(player);
  331. + }
  332. + }
  333. + }
  334. + else
  335. + {
  336. + if (remove_pets)
  337. + {
  338. + L2Summon pet = player.getSummon();
  339. + if (pet != null)
  340. + {
  341. + pet.unSummon(player);
  342. + }
  343. + }
  344. + }
  345. + }
  346. +
  347. + static void heal(L2PcInstance activeChar)
  348. + {
  349. + activeChar.setCurrentHp(activeChar.getMaxHp());
  350. + activeChar.setCurrentCp(activeChar.getMaxCp());
  351. + activeChar.setCurrentMp(activeChar.getMaxMp());
  352. + }
  353. +
  354. + public static void givereward(L2PcInstance player)
  355. + {
  356. + if (player.isInsideZone(ZoneId.MULTI_FUNCTION))
  357. + {
  358. + for (int[] reward : rewards)
  359. + {
  360. + PcInventory inv = player.getInventory();
  361. + inv.addItem("Custom Reward", reward[0], reward[1], player, player);
  362. + }
  363. + }
  364. + }
  365. +
  366. + public static boolean checkItem(L2ItemInstance item)
  367. + {
  368. + int o = item.getItem().getCrystalType();
  369. + int e = item.getEnchantLevel();
  370. +
  371. + if ((enchant != 0) && (e >= enchant))
  372. + {
  373. + return false;
  374. + }
  375. +
  376. + if (grades.contains(gradeNames[o]))
  377. + {
  378. + return false;
  379. + }
  380. +
  381. + if ((items != null) && items.contains("" + item.getId()))
  382. + {
  383. + return false;
  384. + }
  385. + return true;
  386. + }
  387. +
  388. + private static void loadConfigs()
  389. + {
  390. + try
  391. + {
  392. + Properties prop = new Properties();
  393. + prop.load(new FileInputStream(new File("./config/MultiFunctionZone.properties")));
  394. + pvp_enabled = Boolean.parseBoolean(prop.getProperty("EnablePvP", "False"));
  395. + spawn_loc = parseItemsList(prop.getProperty("SpawnLoc", "150111,144740,-12248"));
  396. + revive_delay = Integer.parseInt(prop.getProperty("ReviveDelay", "10"));
  397. + if (revive_delay != 0)
  398. + {
  399. + revive = true;
  400. + }
  401. + give_noblesse = Boolean.parseBoolean(prop.getProperty("GiveNoblesse", "False"));
  402. + String[] propertySplit = prop.getProperty("Items", "").split(",");
  403. + if (propertySplit.length != 0)
  404. + {
  405. + for (String i : propertySplit)
  406. + {
  407. + items.add(i);
  408. + }
  409. + }
  410. + propertySplit = prop.getProperty("Grades", "").split(",");
  411. + if (propertySplit.length != 0)
  412. + {
  413. + for (String i : propertySplit)
  414. + {
  415. + if (i.equals("D") || i.equals("C") || i.equals("B") || i.equals("A") || i.equals("S") || i.equals("S80") || i.equals("S84"))
  416. + {
  417. + grades.add(i);
  418. + }
  419. + }
  420. + }
  421. + propertySplit = prop.getProperty("Classes", "").split(",");
  422. + if (propertySplit.length != 0)
  423. + {
  424. + for (String i : propertySplit)
  425. + {
  426. + classes.add(i);
  427. + }
  428. + }
  429. + radius = Integer.parseInt(prop.getProperty("RespawnRadius", "500"));
  430. + enchant = Integer.parseInt(prop.getProperty("Enchant", "0"));
  431. + remove_buffs = Boolean.parseBoolean(prop.getProperty("RemoveBuffs", "False"));
  432. + remove_pets = Boolean.parseBoolean(prop.getProperty("RemovePets", "False"));
  433. + restart_zone = Boolean.parseBoolean(prop.getProperty("NoRestartZone", "False"));
  434. + store_zone = Boolean.parseBoolean(prop.getProperty("NoStoreZone", "False"));
  435. + logout_zone = Boolean.parseBoolean(prop.getProperty("NoLogoutZone", "False"));
  436. + revive_noblesse = Boolean.parseBoolean(prop.getProperty("ReviveNoblesse", "False"));
  437. + revive_heal = Boolean.parseBoolean(prop.getProperty("ReviveHeal", "False"));
  438. + rewards = new ArrayList<>();
  439. + propertySplit = prop.getProperty("Rewards", "57,100000").split(";");
  440. + for (String reward : propertySplit)
  441. + {
  442. + String[] rewardSplit = reward.split(",");
  443. + if (rewardSplit.length == 2)
  444. + {
  445. + try
  446. + {
  447. + rewards.add(new int[]
  448. + {
  449. + Integer.parseInt(rewardSplit[0]),
  450. + Integer.parseInt(rewardSplit[1])
  451. + });
  452. + }
  453. + catch (NumberFormatException nfe)
  454. + {
  455. + }
  456. + }
  457. + }
  458. + }
  459. + catch (Exception e)
  460. + {
  461. + e.printStackTrace();
  462. + }
  463. + }
  464. +
  465. + private static int[][] parseItemsList(String line)
  466. + {
  467. + final String[] propertySplit = line.split(";");
  468. + if (propertySplit.length == 0)
  469. + {
  470. + return null;
  471. + }
  472. +
  473. + int i = 0;
  474. + String[] valueSplit;
  475. + final int[][] result = new int[propertySplit.length][];
  476. + for (String value : propertySplit)
  477. + {
  478. + valueSplit = value.split(",");
  479. + if (valueSplit.length != 3)
  480. + {
  481. + return null;
  482. + }
  483. +
  484. + result[i] = new int[3];
  485. + try
  486. + {
  487. + result[i][0] = Integer.parseInt(valueSplit[0]);
  488. + }
  489. + catch (NumberFormatException e)
  490. + {
  491. + return null;
  492. + }
  493. + try
  494. + {
  495. + result[i][1] = Integer.parseInt(valueSplit[1]);
  496. + }
  497. + catch (NumberFormatException e)
  498. + {
  499. + return null;
  500. + }
  501. + try
  502. + {
  503. + result[i][2] = Integer.parseInt(valueSplit[2]);
  504. + }
  505. + catch (NumberFormatException e)
  506. + {
  507. + return null;
  508. + }
  509. + i++;
  510. + }
  511. + return result;
  512. + }
  513. +}
  514. \ No newline at end of file
  515. Index: java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java
  516. ===================================================================
  517. --- java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java (revision 6165)
  518. +++ java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java (working copy)
  519. @@ -27,6 +27,8 @@
  520. import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
  521. import com.l2jserver.gameserver.model.L2Party;
  522. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  523. +import com.l2jserver.gameserver.model.zone.ZoneId;
  524. +import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
  525. import com.l2jserver.gameserver.network.L2GameClient;
  526. import com.l2jserver.gameserver.network.L2GameClient.GameClientState;
  527. import com.l2jserver.gameserver.network.SystemMessageId;
  528. @@ -91,6 +93,13 @@
  529. return;
  530. }
  531.  
  532. + if (player.isInsideZone(ZoneId.MULTI_FUNCTION) && !L2MultiFunctionZone.restart_zone)
  533. + {
  534. + player.sendMessage("You cannot restart while inside a Multifunction zone.");
  535. + sendPacket(RestartResponse.valueOf(false));
  536. + return;
  537. + }
  538. +
  539. // Prevent player from restarting if they are a festival participant
  540. // and it is in progress, otherwise notify party members that the player
  541. // is not longer a participant.
  542. Index: java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java
  543. ===================================================================
  544. --- java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java (revision 6165)
  545. +++ java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java (working copy)
  546. @@ -46,7 +46,7 @@
  547. {
  548. protected static final Logger _log = Logger.getLogger(ItemContainer.class.getName());
  549.  
  550. - protected final List<L2ItemInstance> _items;
  551. + public final List<L2ItemInstance> _items;
  552.  
  553. protected ItemContainer()
  554. {
  555. Index: dist/game/config/MultiFunctionZone.properties
  556. ===================================================================
  557. --- dist/game/config/MultiFunctionZone.properties (revision 0)
  558. +++ dist/game/config/MultiFunctionZone.properties (working copy)
  559. @@ -0,0 +1,60 @@
  560. +# ---------------------------------------------------------------------------
  561. +# MultiFunctionZone - custom addon for your server
  562. +# ---------------------------------------------------------------------------
  563. +# This option will turn on PvP flag to all people when entering to the zone
  564. +EnablePvP = True
  565. +
  566. +# If set to false, zone will be no-restart zone
  567. +NoRestartZone = False
  568. +
  569. +# If set to false, zone will be no-logout zone
  570. +NoLogoutZone = False
  571. +
  572. +# If set to false, zone will be no-store zone
  573. +NoStoreZone = False
  574. +
  575. +# Give noblesse after revive?
  576. +ReviveNoblesse = False
  577. +
  578. +# Heal after revive?
  579. +ReviveHeal = False
  580. +
  581. +# Delay, in seconds, to wait before revive
  582. +# 0 to disable
  583. +ReviveDelay = 10
  584. +
  585. +# Set the spawn points where players will be teleported on revive, if enabled
  586. +# example:150111,144740,-12248;143665,144418,-12022;144443,147685,-12139
  587. +SpawnLoc = 150111,144740,-12248;143665,144418,-12022;144443,147685,-12139
  588. +
  589. +# Random respawn radius
  590. +RespawnRadius = 500
  591. +
  592. +# If set to true, players will take noblesse blessing when entering
  593. +GiveNoblesse = True
  594. +
  595. +# Remove buffs when entering to the zone
  596. +RemoveBuffs = False
  597. +
  598. +# Remove pets when entering to the zone
  599. +RemovePets = False
  600. +
  601. +# Special rewards when hunting inside this zone
  602. +# example: 57,100000;14720,1
  603. +Rewards = 57,100000;14720,1
  604. +
  605. +# List of Items(id's) that won't be usable inside this area and also will be unequiped when entering
  606. +# (armor, weapons, scrolls, potions, etc), example: 728,7575, 6383, 1538
  607. +Items = 728,7575,6383,1538
  608. +
  609. +# List of Grades that won't be usable inside this area and also will be unequiped when entering
  610. +# example: D,C,B,A,S,S80,S84
  611. +Grades = C,B,A
  612. +
  613. +# Items with this enchant or more won't be usable inside this area and also will be unequiped when entering
  614. +# 0 to disable
  615. +Enchant = 0
  616. +
  617. +# Players with one of that classes won't be able to enter to the zone
  618. +# example: 93,85,12
  619. +Classes = 92
  620. \ No newline at end of file
  621. Index: java/com/l2jserver/gameserver/model/zone/ZoneId.java
  622. ===================================================================
  623. --- java/com/l2jserver/gameserver/model/zone/ZoneId.java (revision 6165)
  624. +++ java/com/l2jserver/gameserver/model/zone/ZoneId.java (working copy)
  625. @@ -46,7 +46,8 @@
  626. ALTERED,
  627. NO_BOOKMARK,
  628. NO_ITEM_DROP,
  629. - NO_RESTART;
  630. + NO_RESTART,
  631. + MULTI_FUNCTION;
  632.  
  633. private final int _id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement