Jump to content

Recommended Posts

Posted

Original Poster: LurkerElf From G-Hamster Forum

Γενικά : μολις ενας char φτάσει στα κατάληλα lvl (20.40.76) τότε αυτόματα ενα window με menu ιδιο με αυτο του roy the cat εμφανίζετε

και ο Char μπορεί να κάνει ClassChange.

 

 

Index: java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java  (revision 2705)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java  (working copy)
@@ -18,9 +18,11 @@
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.ai.CtrlIntention;
import net.sf.l2j.gameserver.datatables.CharTemplateTable;
+import net.sf.l2j.gameserver.datatables.NpcTable;
import net.sf.l2j.gameserver.model.base.ClassId;
import net.sf.l2j.gameserver.model.base.ClassLevel;
import net.sf.l2j.gameserver.model.base.PlayerClass;
+import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.quest.Quest;
import net.sf.l2j.gameserver.network.SystemMessageId;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
@@ -40,7 +42,11 @@
        //private static Logger _log = Logger.getLogger(L2ClassMasterInstance.class.getName());
        private static final int[] SECONDN_CLASS_IDS = {2,3,5,6,9,8,12,13,14,16,17,20,21,23,24,27,
                                                                                                        28,30,33,34,36,37,40,41,43,46,48,51,52,55,57};
-
+       public static L2ClassMasterInstance ClassMaster = new L2ClassMasterInstance(31228, NpcTable.getInstance().getTemplate(31228));
+       static
+       {
+               L2World.getInstance().storeObject(ClassMaster);
+       }
        /**
         * @param template
         */
@@ -52,8 +58,8 @@
        @Override
        public void onAction(L2PcInstance player)
        {
-               if (!canTarget(player)) return;
-
+               //if (!canTarget(player)) return;
+/*
                // Check if the L2PcInstance already target the L2NpcInstance
                if (getObjectId() != player.getTargetId())
                {
@@ -73,7 +79,7 @@
                                player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
                                return;
                        }
-
+*/
                        if (Config.DEBUG)
                                _log.fine("ClassMaster activated");

@@ -94,19 +100,16 @@
                                        jobLevel = 3;
                        }

-                       if (!Config.ALLOW_CLASS_MASTERS)
-                               jobLevel = 3;
-
                        if(player.isGM())
                        {
                                showChatWindowChooseClass(player);
                        }
-                       else if (((level >= 20 && jobLevel == 1 ) ||
-                               (level >= 40 && jobLevel == 2 )) && Config.ALLOW_CLASS_MASTERS)
+                       else if ((level >= 20 && jobLevel == 1 ) ||
+                               (level >= 40 && jobLevel == 2 ))
                        {
                                showChatWindow(player, classId.getId());
                        }
-                       else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && classId.getId() < 88)
+                       else if (level >= 76 && classId.getId() < 88)
                        {
                                for (int i = 0; i < SECONDN_CLASS_IDS.length; i++)
                                {
@@ -126,7 +129,7 @@
                                        }
                                }
                        }
-            else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
+            else if (level >= 76 && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
             {
                 showChatWindow(player, classId.getId());
             }
@@ -155,7 +158,7 @@
                                html.setHtml(sb.toString());
                                player.sendPacket(html);
                        }
-               }
+               //}
                player.sendPacket(ActionFailed.STATIC_PACKET);
        }

Index: java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java     (revision 2705)
+++ java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java     (working copy)
@@ -16,6 +16,7 @@

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.L2Character;
+import net.sf.l2j.gameserver.model.actor.instance.L2ClassMasterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance;
import net.sf.l2j.gameserver.model.base.Experience;
@@ -151,6 +152,17 @@
                if (getLevel() + value > Experience.MAX_LEVEL - 1) return false;

         boolean levelIncreased = super.addLevel(value);
+        
+        switch (getLevel())
+        {
+               case 20:
+               case 40:
+               case 76:
+                       L2ClassMasterInstance.ClassMaster.onAction(getActiveChar());
+                       break;
+               default:
+                       break;
+        }

         if (levelIncreased)
         {
Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
===================================================================
--- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (revision 2705)
+++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (working copy)
@@ -28,6 +28,7 @@
import net.sf.l2j.gameserver.model.L2CharPosition;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2ClassMasterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.model.entity.L2Event;
@@ -113,9 +114,9 @@
                                try
                                {
                                        L2Object object = L2World.getInstance().findObject(Integer.parseInt(id));
-
+                                               
                                        if (_command.substring(endOfId+1).startsWith("event_participate")) L2Event.inscribePlayer(activeChar);
-                                       else if (object instanceof L2NpcInstance && endOfId > 0 && activeChar.isInsideRadius(object, L2NpcInstance.INTERACTION_DISTANCE, false, false))
+                                       else if (object instanceof L2ClassMasterInstance || (object instanceof L2NpcInstance && endOfId > 0 && activeChar.isInsideRadius(object, L2NpcInstance.INTERACTION_DISTANCE, false, false)))
                                        {
                                                ((L2NpcInstance)object).onBypassFeedback(activeChar, _command.substring(endOfId+1));
                                        }

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..