Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Выбор класса без кота (авто всплывающий html)
#1
Нашел скрипт но не знаю куда его сунуть, java только ищу литературу так что пока в ней не разбиравюсь подскажите куда это запихнуть

С помощью данного мода, при каждом АПе на 20, 40, 76 уровнях, будет вылазить окошко для выбора профы. Кота для получения проф не требуется, вы даже можите его отключить в конфигахх: ALLOW_CLASS_MASTERS = FALSE

Код:
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));
                     }

вот и вся статья
Ответ
#2
Куда куда в Ядро)) чтоб такое сделать тебе нужны исходники сервера.
Откриваеш ядро и ищеш конечный файл

java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java

---
Автор скопируй всю статтю и себе так хочу сделать.
Ответ
#3
Naskeed, искать в поисковиках программу patch и читать к ней документацию.
Ответ
#4
да там не чего небыло только это код спасибо сейчас разберусь
Ответ
#5
Через Еклипс не сложно вставить.
Ответ
#6
PROGRAMMATOR Написал:Naskeed, искать в поисковиках программу patch и читать к ней документацию.
вы про эту прогу?? http://zone-game.info/815-path-editor-re...zhkoj.html
Ответ
#7
Нет эта программа для редактирования клиента а тебе нужно в ядро лезть.
Наш колега Сингер правильно сказал через Еклипс не сложно вставить.
Ответ
#8
singer Написал:Через Еклипс не сложно вставить.
можно ссылочку на прогу
Ответ
#9
_http://www.eclipse.org/downloads/ найдешь Eclipse.
Ответ
#10
Tonchi Написал:Нет эта программа для редактирования клиента а тебе нужно в ядро лезть.
Наш колега Сингер правильно сказал через Еклипс не сложно вставить.
я это уже понял)) когда поставил

Добавлено через 3 минуты
А еще она сдесь есть) то?? http://zone-game.info/305-eclipse-3.4.html
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  [WTS] Авто вознаграждение за Стримы (Streamer Module) Kenrix 1 749 10-06-2023, 08:40 PM
Последний пост: Kenrix
  html Руофф DrPooH 9 2,703 09-24-2015, 07:32 PM
Последний пост: NemoProtect
  Кривые HTML Map 9 2,724 03-26-2015, 07:48 PM
Последний пост: Minibuka
  Смена html (языка) на PTS платформе raindew 26 4,882 03-08-2015, 03:53 AM
Последний пост: Zubastic
  html Item Broker'a lDmitryl 9 2,188 02-13-2015, 09:29 PM
Последний пост: lDmitryl
  Проверка условий в html NPC Fadd 0 1,535 12-15-2014, 11:45 PM
Последний пост: Fadd
  Вопро по HTML minasgull 2 1,332 08-05-2014, 04:15 PM
Последний пост: minasgull
  Выбор случайной точки из трех L2J 2 1,540 05-16-2014, 11:17 PM
Последний пост: L2J
  Npc html gre4ka 0 939 01-16-2014, 11:39 AM
Последний пост: gre4ka
  Копия html Valent 8 1,866 11-02-2013, 02:08 PM
Последний пост: Valent

Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)