Advertisement
Guest User

Untitled

a guest
Nov 11th, 2013
1,912
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 21.18 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.network.SystemMessageId;
  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(19),
  627.     NO_BOOKMARK(20),
  628.     NO_ITEM_DROP(21),
  629. -   NO_RESTART(22);
  630. +   NO_RESTART(22),
  631. +   MULTI_FUNCTION(23);
  632.    
  633.     private final int _id;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement