Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Change Sex Coin

Iniciado por Swarlog, Ago 04, 2022, 01:51 AM

Tema anterior - Siguiente tema

Swarlog

<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