<set name="handler" val="ChangeSexItem" />
### Eclipse Workspace Patch 1.0
#P aCis_gameserver
Index: java/net/sf/l2j/gameserver/handler/ItemHandler.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/ItemHandler.java (revision 4)
+++ java/net/sf/l2j/gameserver/handler/ItemHandler.java (working copy)
@@ -24,6 +24,7 @@
import net.sf.l2j.gameserver.handler.itemhandlers.BlessedSpiritShot;
import net.sf.l2j.gameserver.handler.itemhandlers.Book;
import net.sf.l2j.gameserver.handler.itemhandlers.Calculator;
+import net.sf.l2j.gameserver.handler.itemhandlers.ChangeSexItem;
import net.sf.l2j.gameserver.handler.itemhandlers.ClanFullSkill;
import net.sf.l2j.gameserver.handler.itemhandlers.ClanLevel;
import net.sf.l2j.gameserver.handler.itemhandlers.ClanReputation;
@@ -96,6 +97,7 @@
registerItemHandler(new NobleItem());
registerItemHandler(new VipItem());
registerItemHandler(new AioItem());
+ registerItemHandler(new ChangeSexItem());
}
public void registerItemHandler(IItemHandler handler)
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java (revision 13)
+++ java/net/sf/l2j/Config.java (working copy)
@@ -388,6 +388,9 @@
public static int VIP_REWARD_ITEM;
public static int VIP_ITEM_AMOUNT;
public static int VIP_SET_DAYS;
+ public static boolean ENABLE_CHANGESEX_COIN;
+ public static int CHANGESEX_COIN_ID;
+ public static int CHANGESEX_COIN_AMOUNT;
/** Balance Settings */
public static long CLASS_BALANCER_UPDATE_DELAY;
@@ -1389,6 +1392,9 @@
VIP_REWARD_ITEM = reborn12.getProperty("VipRewardItem", 0);
VIP_ITEM_AMOUNT = reborn12.getProperty("VipItemAmount", 0);
VIP_SET_DAYS = reborn12.getProperty("VipSetDays", 1);
+ ENABLE_CHANGESEX_COIN = reborn12.getProperty("EnableChangeSexItem", false);
+ CHANGESEX_COIN_ID = reborn12.getProperty("ChangeSexCoinId", 1);
+ CHANGESEX_COIN_AMOUNT = reborn12.getProperty("ChangeSexCoinAmount", 1);
CLASS_BALANCER_UPDATE_DELAY = reborn12.getProperty("ClassBalancerUpdateDelay", 300) * 1000;
CLASS_BALANCER_AFFECTS_SECOND_PROFFESION = reborn12.getProperty("ClassBalancerAffectSecondProffesion", false);
CLASS_BALANCER_AFFECTS_MONSTERS = reborn12.getProperty("ClassBalancerAffectMonsters", false);
Index: java/net/sf/l2j/gameserver/handler/itemhandlers/ChangeSexItem.java
===================================================================
--- java/net/sf/l2j/gameserver/handler/itemhandlers/ChangeSexItem.java (revision 0)
+++ java/net/sf/l2j/gameserver/handler/itemhandlers/ChangeSexItem.java (working copy)
@@ -0,0 +1,62 @@
+/*
+ * 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.handler.itemhandlers;
+
+import net.sf.l2j.commons.concurrent.ThreadPool;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.handler.IItemHandler;
+import net.sf.l2j.gameserver.model.actor.L2Playable;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.base.Sex;
+import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
+import net.sf.l2j.gameserver.model.olympiad.OlympiadManager;
+import net.sf.l2j.gameserver.network.SystemMessageId;
+
+/**
+ * @author Reborn12
+ */
+public class ChangeSexItem implements IItemHandler
+{
+ @Override
+ public void useItem(L2Playable playable, ItemInstance item, boolean forceUse)
+ {
+ if (Config.ENABLE_CHANGESEX_COIN)
+ {
+ if (!(playable instanceof L2PcInstance))
+ {
+ L2PcInstance player = (L2PcInstance) playable;
+ if (player.isInCombat())
+ {
+ player.sendMessage("you Can't Use Item Because You Are in Combat");
+ return;
+ }
+ else if (player.isInOlympiadMode() || OlympiadManager.getInstance().isRegisteredInComp(player))
+ {
+ player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
+ return;
+ }
+ if (!player.destroyItemByItemId("ChangeSex", Config.CHANGESEX_COIN_ID, Config.CHANGESEX_COIN_AMOUNT, null, true))
+ return;
+
+ player.getAppearance().setSex(player.getAppearance().getSex() == Sex.MALE ? Sex.FEMALE : Sex.MALE);
+ player.sendMessage("Your gender has been changed,You will Be Disconected in 3 Seconds!");
+ player.broadcastUserInfo();
+ player.decayMe();
+ player.spawnMe();
+ ThreadPool.schedule(() -> player.logout(false), 3000);
+ }
+ }
+ }
+ }
\ No newline at end of file
Index: config/reborn12.properties
===================================================================
--- config/reborn12.properties (revision 13)
+++ config/reborn12.properties (working copy)
@@ -665,6 +665,19 @@
#Set Days For Vip chars From Npc
VipSetDays = 15
+# --------------------
+# ChangeSex Settings
+# --------------------
+
+#Enable/Disable ChangeSex Item
+EnableChangeSexItem = True
+
+#ChangeSex Item ID
+ChangeSexCoinId = 57
+
+#ChangeSex Item Amount
+ChangeSexCoinAmount = 1
+
\ No newline at end of file