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.


  • Posts

    • There is a ready-made option and the possibility to work according to "Wishlist"
    • Contact me, Discord: xbaus
    • WTB GRACIA FINAL INTERFACE
    • Dear partners! At the moment we are in great need of the following positions: — Snapchat old and new accounts | With snapscores | Geo: Europe/USA | Full access via email/phone number — Reddit old (brute or hacked origin, self-registered) accounts with post and comment karma from 100 to 100,000+ | Full email access included — LinkedIn old accounts with real connections | Geo: Europe/USA | Full email access + active 2FA password — Instagram old accounts (2010–2023) | Full email access (possibly with active 2FA password) — Facebook old accounts (2010–2023) | Full email access (possibly with active 2FA password) | With friends or without friends | Geo: Europe/USA/Asia — Threads accounts | Full email access (possibly with active 2FA password) — TikTok/Facebook/Google ADS Agency advertising accounts — Email accounts: mail.ru, yahoo.com, gazeta.pl, gmx.ch / gmx.de / gmx.net (BUT NOT gmx.com) — Google ADS Manual Farm accounts (verified via email and phone number) | GEO: USA/Europe, mostly USA. — WhatsApp OLD Accounts — Twitter accounts with followers and posts (old accounts) Contact us via the details below. We will be glad to cooperate! We are also ready to consider other partnership and collaboration options. Active links to our projects: Digital goods store (Website): Go to Store Telegram bot: Go to – convenient access to the store via the Telegram messenger. Virtual numbers service: Go to Telegram bot for purchasing Telegram Stars: Go to – fast and profitable purchase of Stars in Telegram. SMM Panel: Go to – promotion of your social media accounts. Contacts and support: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
  • Topics

×
×
  • 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