Você não é registrado, por favor registre-se para ter acesso ao conteúdo completo.
Caso seja registrado, efetue login.
Esqueceu sua senha? Clique aqui
Recomendamos o uso do Mozilla Firefox para uma melhor visualização.    


Início Postados Hoje Marcar Fóruns Como Lidos Álbums Banidos SE Team Medalhas
Voltar   Secret Experience > Área L2J > [L2J] Downloads > [Lineage] Java Mods
Registrar Loteria VIPStaff SERegras do fórum Comunidade Arcade Postados Hoje Pesquisar Experience
   

Secret Experience.NET   Secret Experience Corporation - Welcome To The Real World
     Anúncios SE

 
 
Ferramentas do Tópico Modos de Exibição
Prev Post Anterior   Próximo Post Next
Antigo 12-09-2009, 03:28 PM   #1
BioHazard
Banido
 
Avatar de BioHazard
 
Registrado em: May 2009
Posts: 5
Agradeceu: 35
Agradecido 17 Vezes em 3 Posts
Achei Ruim:
Acharam ruim Vezes em Posts

Inventório de BioHazard

Padrão Trocar de Classe Sem Ir Ao Gato

Com isso, será como se você vai para o classmaster.
Em cada nível de mudança de classe (20, 40, 76) uma janela irá aparecer pedindo para você escolher a sua classe. No gato desova necessário. Você pode até deixar ALLOW_CLASS_MASTERS= false, se quiser.
Core:
Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: /java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java
===================================================================
--- /java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java	(revision 2797)
+++ /java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java	(working copy)
@@ -27,6 +27,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;
@@ -116,7 +117,7 @@
 					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 ((Config.ALLOW_CLASS_MASTERS && object instanceof L2ClassMasterInstance) || (object instanceof L2NpcInstance && endOfId > 0 && activeChar.isInsideRadius(object, L2NpcInstance.INTERACTION_DISTANCE, false, false)))
 					{
 						((L2NpcInstance)object).onBypassFeedback(activeChar, _command.substring(endOfId+1));
 					}
Index: /java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- /java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(revision 2797)
+++ /java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java	(working copy)
@@ -46,7 +46,10 @@
 import net.sf.l2j.gameserver.model.L2Clan;
 import net.sf.l2j.gameserver.model.L2Effect;
 import net.sf.l2j.gameserver.model.L2World;
+import net.sf.l2j.gameserver.model.actor.instance.L2ClassMasterInstance;
 import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.base.ClassLevel;
+import net.sf.l2j.gameserver.model.base.PlayerClass;
 import net.sf.l2j.gameserver.model.entity.ClanHall;
 import net.sf.l2j.gameserver.model.entity.Couple;
 import net.sf.l2j.gameserver.model.entity.Fort;
@@ -340,6 +343,23 @@
         activeChar.onPlayerEnter();
         
         sendPacket(new SkillCoolTime(activeChar));
+        
+                if(Config.ALLOW_CLASS_MASTERS)
+        	        {
+        	        	ClassLevel lvlnow = PlayerClass.values()[activeChar.getClassId().getId()].getLevel();
+        		        if(activeChar.getLevel() >= 20 && lvlnow == ClassLevel.First)
+        		        {
+        		        	L2ClassMasterInstance.ClassMaster.onAction(activeChar);
+        		        }
+        		        else if(activeChar.getLevel() >= 40 && lvlnow == ClassLevel.Second)
+        		        {
+        		        	L2ClassMasterInstance.ClassMaster.onAction(activeChar);
+        		        }
+        		        else if(activeChar.getLevel() >= 76 && lvlnow == ClassLevel.Third)
+        		        {
+        		        	L2ClassMasterInstance.ClassMaster.onAction(activeChar);
+        		        }
+        	        }
 
         if (Olympiad.getInstance().playerInStadia(activeChar))
         {
Index: /java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java
===================================================================
--- /java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java	(revision 2797)
+++ /java/net/sf/l2j/gameserver/model/actor/instance/L2ClassMasterInstance.java	(working copy)
@@ -16,18 +16,17 @@
 
 import javolution.text.TextBuilder;
 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.L2World;
 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.quest.Quest;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
-import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
 import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
 import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
-import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
 import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
 
 /**
@@ -40,6 +39,12 @@
 	//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,109 +57,90 @@
 	@Override
 	public void onAction(L2PcInstance player)
 	{
-		if (!canTarget(player)) return;
+		if (Config.DEBUG)
+		_log.fine("ClassMaster activated");
 
-		// Check if the L2PcInstance already target the L2NpcInstance
-		if (getObjectId() != player.getTargetId())
-		{
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
+		ClassId classId = player.getClassId();
 
-			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-			player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-
-			// Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
-			player.sendPacket(new ValidateLocation(this));
+				int jobLevel = 0;
+				int level = player.getLevel();
+				ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();
+				switch (lvl)
+				{
+					case First:
+						jobLevel = 1;
+						break;
+					case Second:
+						jobLevel = 2;
+						break;
+					case Third:
+						jobLevel = 3;
+						break;
+					default:
+						jobLevel = 4;
 		}
-		else
+							
+						if (!Config.ALLOW_CLASS_MASTERS)
+							jobLevel = 3;
+				
+						if(player.isGM())
 		{
-			if (!canInteract(player))
+										showChatWindowChooseClass(player);
+									}
+									else if (((level >= 20 && jobLevel == 1 ) ||
+										(level >= 40 && jobLevel == 2 )) && Config.ALLOW_CLASS_MASTERS)
+									{
+										showChatWindow(player, classId.getId());
+									}
+									else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && classId.getId() < 88)
+									{
+										for (int i = 0; i < SECONDN_CLASS_IDS.length; i++)
 			{
-				player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-				return;
+															if (classId.getId() == SECONDN_CLASS_IDS[i])
+															{
+																NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
+											                    TextBuilder sb = new TextBuilder();
+											                    sb.append("<html><title>Class Change</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br><font color=AAAAAA>Please choose from the list of classes below...</font><br><br>");
+											                    sb.append("<a action=\"bypass -h npc_"+getObjectId()+"_change_class "+(88+i)+"\">Advance to "+CharTemplateTable.getInstance().getClassNameById(88+i)+"</a><br>");
+											                    sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><font color=808080>kthxbai</font></center></body></html>");
+											                    html.setHtml(sb.toString());
+											                    player.sendPacket(html);
+											                    break;
+															}
 			}
 
-			if (Config.DEBUG)
-				_log.fine("ClassMaster activated");
-
-			ClassId classId = player.getClassId();
-
-			int jobLevel = 0;
-			int level = player.getLevel();
-			ClassLevel lvl = PlayerClass.values()[classId.getId()].getLevel();
-			switch (lvl)
+												}
+									        else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
+									        {
+									        	showChatWindow(player, classId.getId());
+									        }
+									        else
+											{
+												NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
+											TextBuilder sb = new TextBuilder();
+												sb.append("<html><title>Class Change</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
+												switch (jobLevel)
 			{
-				case First:
-					jobLevel = 1;
+				case 1:
+				    sb.append("Come back here when you reach level 20 to change your class.<br>");
 					break;
-				case Second:
-					jobLevel = 2;
+				case 2:
+					sb.append("Come back here when you reach level 40 to change your class.<br>");
 					break;
-				default:
-					jobLevel = 3;
+				case 3:
+					sb.append("Come back here when you reach level 76 to change your class.<br>");
+					break;
+				case 4:
+					sb.append("There are no more class changes for you.<br>");
+					break;
 			}
 
-			if (!Config.ALLOW_CLASS_MASTERS)
-				jobLevel = 3;
+			for (Quest q : Quest.findAllEvents())
+				sb.append("Event: <a action=\"bypass -h Quest "+q.getName()+"\">"+q.getDescr()+"</a><br>");
 
-			if(player.isGM())
-			{
-				showChatWindowChooseClass(player);
-			}
-			else if (((level >= 20 && jobLevel == 1 ) ||
-				(level >= 40 && jobLevel == 2 )) && Config.ALLOW_CLASS_MASTERS)
-			{
-				showChatWindow(player, classId.getId());
-			}
-			else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && classId.getId() < 88)
-			{
-				for (int i = 0; i < SECONDN_CLASS_IDS.length; i++)
-				{
-					if (classId.getId() == SECONDN_CLASS_IDS[i])
-					{
-                        NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-                        TextBuilder sb = new TextBuilder();
-                        sb.append("<html><body<table width=200>");
-                        sb.append("<tr><td><center>"+CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId())+" Class Master:</center></td></tr>");
-                        sb.append("<tr><td><br></td></tr>");
-                        sb.append("<tr><td><a action=\"bypass -h npc_"+getObjectId()+"_change_class "+(88+i)+"\">Advance to "+CharTemplateTable.getInstance().getClassNameById(88+i)+"</a></td></tr>");
-                        sb.append("<tr><td><br></td></tr>");
-                        sb.append("</table></body></html>");
-                        html.setHtml(sb.toString());
-                        player.sendPacket(html);
-                        break;
-					}
-				}
-			}
-            else if (level >= 76 && Config.ALLOW_CLASS_MASTERS && ((classId.getId() >= 123 && classId.getId() < 131 ) || classId.getId() == 135)) // this is for Kamael Race 3rd Transfer
-            {
-                showChatWindow(player, classId.getId());
-            }
-			else
-			{
-				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-				TextBuilder sb = new TextBuilder();
-				sb.append("<html><body>");
-				switch (jobLevel)
-				{
-					case 1:
-						sb.append("Come back here when you reach level 20 to change your class.<br>");
-						break;
-					case 2:
-						sb.append("Come back here when you reach level 40 to change your class.<br>");
-						break;
-					case 3:
-						sb.append("There are no more class changes for you.<br>");
-						break;
-				}
-
-				for (Quest q : Quest.findAllEvents())
-					sb.append("Event: <a action=\"bypass -h Quest "+q.getName()+"\">"+q.getDescr()+"</a><br>");
-
-				sb.append("</body></html>");
-				html.setHtml(sb.toString());
-				player.sendPacket(html);
-			}
+						sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><font color=808080>kthxbai</font></center></body></html>");
+						html.setHtml(sb.toString());
+						player.sendPacket(html);
 		}
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 	}
@@ -219,9 +205,9 @@
 
                 NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
                 TextBuilder sb = new TextBuilder();
-                sb.append("<html><body>");
+                sb.append("<html><title>Class Change</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
                 sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId()) + "</font>.");
-                sb.append("</body></html>");
+                sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><font color=808080>kthxbai</font></center></body></html>");
 
                 html.setHtml(sb.toString());
                 player.sendPacket(html);
@@ -280,9 +266,9 @@
 
             NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
             TextBuilder sb = new TextBuilder();
-            sb.append("<html><body>");
+            sb.append("<html><title>Class Change</title><body><center><img src=L2Font-e.replay_logo-e width=258 height=60><br><br><br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><br>");
             sb.append("You have now become a <font color=\"LEVEL\">" + CharTemplateTable.getInstance().getClassNameById(player.getClassId().getId()) + "</font>.");
-            sb.append("</body></html>");
+            sb.append("<br><img src=L2UI_CH3.herotower_deco width=256 height=32><br><font color=808080>kthxbai</font></center></body></html>");
 
             html.setHtml(sb.toString());
             player.sendPacket(html);
Index: /java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java
===================================================================
--- /java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java	(revision 2797)
+++ /java/net/sf/l2j/gameserver/model/actor/stat/PcStat.java	(working copy)
@@ -16,9 +16,12 @@
 
 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.ClassLevel;
 import net.sf.l2j.gameserver.model.base.Experience;
+import net.sf.l2j.gameserver.model.base.PlayerClass;
 import net.sf.l2j.gameserver.model.quest.QuestState;
 import net.sf.l2j.gameserver.network.SystemMessageId;
 import net.sf.l2j.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
@@ -152,6 +155,24 @@
 		if (getLevel() + value > Experience.MAX_LEVEL - 1) return false;
 
         boolean levelIncreased = super.addLevel(value);
+        
+               
+                if(Config.ALLOW_CLASS_MASTERS)
+                {
+                	ClassLevel lvlnow = PlayerClass.values()[getActiveChar().getClassId().getId()].getLevel();
+        	        if(getLevel() >= 20 && lvlnow == ClassLevel.First)
+        	        {
+        	        	L2ClassMasterInstance.ClassMaster.onAction(getActiveChar());
+        	        }
+        	        else if(getLevel() >= 40 && lvlnow == ClassLevel.Second)
+        	        {
+        	        	L2ClassMasterInstance.ClassMaster.onAction(getActiveChar());
+        	        }
+        	        else if(getLevel() >= 76 && lvlnow == ClassLevel.Third)
+        	        {
+        	        	L2ClassMasterInstance.ClassMaster.onAction(getActiveChar());
+        	        }
+                }
         if (levelIncreased)
         {
DP:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Screenshot:
[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]

Creditos:poltomb(l2jserver)

BioHazard está offline  
Links Patrocinados
 


Regras para Posts
Você não pode postar novos tópicos
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar seus posts

Código [IMG] Sim
Código HTML Não

Ir para...


Horários baseados na GMT -3. Agora são 12:34 AM.