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...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock