08-24-2012, 07:30 PM
Нужна помощь по скрипту!
Есть скрипт на питоне который после прохождения дает 20 уровень!
Хочу добавить что бы еще помимо этого вылезало окошечко выбором первой профессии!
Нашел вот такой вот java
Есть скрипт на питоне который после прохождения дает 20 уровень!
Хочу добавить что бы еще помимо этого вылезало окошечко выбором первой профессии!
Нашел вот такой вот java
script
Код:
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));