Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Выбор класса без кота (авто всплывающий html) (https://forum.zone-game.info/showthread.php?t=4464)

Naskeed 15.08.2009 13:09

Выбор класса без кота (авто всплывающий html)
 
Нашел скрипт но не знаю куда его сунуть, 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));
                    }

вот и вся статья

Tonchi 15.08.2009 14:25

Ответ: Выбор класса без кота (авто всплывающий html)
 
Куда куда в Ядро)) чтоб такое сделать тебе нужны исходники сервера.
Откриваеш ядро и ищеш конечный файл

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

---
Автор скопируй всю статтю и себе так хочу сделать.

PROGRAMMATOR 15.08.2009 14:42

Ответ: Выбор класса без кота (авто всплывающий html)
 
Naskeed, искать в поисковиках программу patch и читать к ней документацию.

Naskeed 15.08.2009 14:59

Ответ: Выбор класса без кота (авто всплывающий html)
 
да там не чего небыло только это код спасибо сейчас разберусь

singer 15.08.2009 15:21

Ответ: Выбор класса без кота (авто всплывающий html)
 
Через Еклипс не сложно вставить.

Naskeed 15.08.2009 15:25

Ответ: Выбор класса без кота (авто всплывающий html)
 
Цитата:

Сообщение от PROGRAMMATOR (Сообщение 39273)
Naskeed, искать в поисковиках программу patch и читать к ней документацию.

вы про эту прогу?? http://zone-game.info/815-path-edito...dderzhkoj.html

Tonchi 15.08.2009 15:28

Ответ: Выбор класса без кота (авто всплывающий html)
 
Нет эта программа для редактирования клиента а тебе нужно в ядро лезть.
Наш колега Сингер правильно сказал через Еклипс не сложно вставить.

Naskeed 15.08.2009 15:29

Ответ: Выбор класса без кота (авто всплывающий html)
 
Цитата:

Сообщение от singer (Сообщение 39283)
Через Еклипс не сложно вставить.

можно ссылочку на прогу

singer 15.08.2009 15:31

Ответ: Выбор класса без кота (авто всплывающий html)
 
_http://www.eclipse.org/downloads/ найдешь Eclipse.

Naskeed 15.08.2009 15:31

Ответ: Выбор класса без кота (авто всплывающий html)
 
Цитата:

Сообщение от Tonchi (Сообщение 39286)
Нет эта программа для редактирования клиента а тебе нужно в ядро лезть.
Наш колега Сингер правильно сказал через Еклипс не сложно вставить.

я это уже понял)) когда поставил

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


Текущее время: 15:11. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot