PDA

Просмотр полной версии : [Статья] Профа без кота


RespectiS
26.09.2010, 12:10
Если вы хотите что бы на 20/40/76 лвлах появлялось окошко с выбором професии, это для вас.



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.Action Failed;
@@ -40,7 +42,11 @@
//private static Logger _log = Logger.getLogger(L2ClassMasterInstance.class.getNa me());
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_INTEN TION_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() = 76 && classId.getId() = 123 && classId.getId() = 76 && ((classId.getId() >= 123 && classId.getId() Experience.MAX_LEVEL - 1) return false;

boolean levelIncreased = super.addLevel(value);
+
+ switch (getLevel())
+ {
+ case 20:
+ case 40:
+ case 76:
+ L2ClassMasterInstance.ClassMaster.onAction(getActi veChar());
+ 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.L2Class MasterInstance;
import net.sf.l2j.gameserver.model.actor.instance.L2NpcIn stance;
import net.sf.l2j.gameserver.model.actor.instance.L2PcIns tance;
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(activeCha r, _command.substring(endOfId+1));
}

Maloi2806
19.10.2010, 13:05
иии.... куда это?

trEEEp
25.10.2010, 18:59
vot imenno, kuda eto???!

access87
29.10.2010, 11:28
vot imenno, kuda eto???!

это патч к файлам, там все написано