Advertisement
Guest User

L2MultiFunctionZone H5 stable: r5667 - adaption

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