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] Dúvidas > [L2J] Dúvidas Solucionadas
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

Resposta
 
Ferramentas do Tópico Modos de Exibição
Antigo 28-11-2010, 09:14 PM   #1
xadresz
Membro - Veterano
 
Avatar de xadresz
 
Registrado em: Oct 2010
Posts: 413
Agradeceu: 169
Agradecido 113 Vezes em 69 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:

Inventório de xadresz

Icon8 Problema com Siege

Bom pessoal estou com um problema durante a Siege, tipo eu tenho 1 clan, ai registro pra atacar Aden, e mais 2 clans também registram ficando 3 atacantes, porém quando começa a siege, outros clans que não cadastraram e que já possuem castelo estão conseguindo invadir a batalha e atrapalhando a Siege dos outros. Como resolver isto? Há alguma configuração? Em caso de dúvidas estou usando l2jteon.
Vlw!

xadresz está offline   Responder com Citação
Links Patrocinados
Antigo 29-11-2010, 12:20 AM   #2
cachorrolouco
Membro - Marechal
 
Avatar de cachorrolouco
 
Registrado em: Aug 2009
Posts: 272
Agradeceu: 219
Agradecido 88 Vezes em 65 Posts
Achei Ruim:
Acharam ruim Vezes em Posts

Inventório de cachorrolouco

Padrão

Clans não cadastrados nas sisges não podem atacar portões e sumonar apenas..o resto pode...isso é normal ja que a area do castelo vira zona de guerra

Obs: isso não é bug...é do jogo

cachorrolouco está offline   Responder com Citação
O seguinte membro ao lado disse Obrigado(a) a : cachorrolouco por gostar deste Post :
xadresz (29-11-2010)
Antigo 29-11-2010, 08:03 AM   #3
B1Z4R0
Membro - Karma
 
Avatar de B1Z4R0
 
Registrado em: Sep 2009
Localização: Rio Verde GO
Posts: 383
Agradeceu: 265
Agradecido 274 Vezes em 113 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Sistema
Meu Estado:
Enviar mensagem via Windows Live Messenger para B1Z4R0
Nome Real: Paulo Eduardo Ferreira

Inventório de B1Z4R0

Padrão

vc tbm pode coloca so a siege so para os clan cadastrado,
ta ai o codigo so add!

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java
===================================================================
--- /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java (revision 231)
+++ /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeGuardInstance.java (revision 317)
@@ -25,8 +25,13 @@
 import net.sf.l2j.gameserver.ai.L2CharacterAI;
 import net.sf.l2j.gameserver.ai.L2SiegeGuardAI;
+import net.sf.l2j.gameserver.datatables.ClanTable;
+import net.sf.l2j.gameserver.instancemanager.SiegeManager;
 import net.sf.l2j.gameserver.model.L2Attackable;
 import net.sf.l2j.gameserver.model.L2CharPosition;
 import net.sf.l2j.gameserver.model.L2Character;
+import net.sf.l2j.gameserver.model.L2Clan;
+import net.sf.l2j.gameserver.model.L2SiegeClan;
 import net.sf.l2j.gameserver.model.actor.knownlist.SiegeGuardKnownList;
+import net.sf.l2j.gameserver.model.entity.Siege;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
@@ -146,5 +151,34 @@
 	public void onAction(L2PcInstance player)
 	{
-		if (!canTarget(player)) return;
+		if (!canTarget(player))
+			return;
+		
+		boolean opp = false;
+		Siege siege = SiegeManager.getInstance().getSiege(player);
+		L2Clan oppClan = player.getClan();
+		if (siege != null && siege.getIsInProgress() && oppClan != null)
+		{
+			for (L2SiegeClan clan : siege.getAttackerClans())
+			{
+				L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+				if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+				{
+					opp = true;
+					break;
+				}
+			}
+			
+			for (L2SiegeClan clan : siege.getDefenderClans())
+			{
+				L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+				if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+				{
+					opp = true;
+					break;
+				}
+			}
+			if(!opp)
+				return;
+		}
 
 		// Check if the L2PcInstance already target the L2NpcInstance
Index: /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeFlagInstance.java
===================================================================
--- /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeFlagInstance.java (revision 231)
+++ /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2SiegeFlagInstance.java (revision 317)
@@ -96,6 +96,9 @@
 		if (player == null || !canTarget(player))
 			return;
+		
+		if(!_player.siegeonlyRegistered(player))
+			return;
 
-			// Check if the L2PcInstance already target the L2NpcInstance
+		// Check if the L2PcInstance already target the L2NpcInstance
 		if (this != player.getTarget())
 		{
Index: /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 314)
+++ /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 317)
@@ -106,4 +106,5 @@
 import net.sf.l2j.gameserver.model.L2Request;
 import net.sf.l2j.gameserver.model.L2ShortCut;
+import net.sf.l2j.gameserver.model.L2SiegeClan;
 import net.sf.l2j.gameserver.model.L2Skill;
 import net.sf.l2j.gameserver.model.L2SkillLearn;
@@ -3419,4 +3420,11 @@
 		if (!TvTEvent.onAction(player.getName(), getName()))
 		{
+			player.sendPacket(ActionFailed.STATIC_PACKET);
+			return;
+		}
+		
+		if (!siegeonlyRegistered(player))
+		{
+			player.sendMessage("Player interaction disabled during sieges.");
 			player.sendPacket(ActionFailed.STATIC_PACKET);
 			return;
@@ -10947,3 +10955,60 @@
 		 _isAway = state;
 	 }
+	 
+	 public boolean siegeonlyRegistered(L2PcInstance player)
+	 {
+		 Siege siege = SiegeManager.getInstance().getSiege(this);
+		 if (siege != null && siege.getIsInProgress())
+		 {
+			 L2Clan selfClan = getClan();
+			 L2Clan oppClan = player.getClan();
+			 if (selfClan != null && oppClan != null)
+			 {
+				 boolean self = false;
+				 for (L2SiegeClan clan : siege.getAttackerClans())
+				 {
+					 L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+					 if (cl == selfClan || cl.getAllyId() == getAllyId())
+					 {
+						 self = true;
+						 break;
+					 }
+				 }
+				 
+				 for (L2SiegeClan clan : siege.getDefenderClans())
+				 {
+					 L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+					 if (cl == selfClan || cl.getAllyId() == getAllyId())
+					 {
+						 self = true;
+						 break;
+					 }
+				 }
+				 
+				 boolean opp = false;
+				 for (L2SiegeClan clan : siege.getAttackerClans())
+				 {
+					 L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+					 if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+					 {
+						 opp = true;
+						 break;
+					 }
+				 }
+				 
+				 for (L2SiegeClan clan : siege.getDefenderClans())
+				 {
+					 L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+					 if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+					 {
+						 opp = true;
+						 break;
+					 }
+				 }
+				 return self && opp;
+			 }
+			 return false;
+		 }
+		 return true;
+	 }
 }
Index: /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DoorInstance.java
===================================================================
--- /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DoorInstance.java (revision 231)
+++ /trunk/GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2DoorInstance.java (revision 317)
@@ -31,9 +31,13 @@
 import net.sf.l2j.gameserver.ai.L2CharacterAI;
 import net.sf.l2j.gameserver.ai.L2DoorAI;
+import net.sf.l2j.gameserver.datatables.ClanTable;
 import net.sf.l2j.gameserver.instancemanager.CastleManager;
+import net.sf.l2j.gameserver.instancemanager.SiegeManager;
 import net.sf.l2j.gameserver.model.L2CharPosition;
 import net.sf.l2j.gameserver.model.L2Character;
+import net.sf.l2j.gameserver.model.L2Clan;
 import net.sf.l2j.gameserver.model.L2ItemInstance;
 import net.sf.l2j.gameserver.model.L2Object;
+import net.sf.l2j.gameserver.model.L2SiegeClan;
 import net.sf.l2j.gameserver.model.L2Skill;
 import net.sf.l2j.gameserver.model.actor.knownlist.DoorKnownList;
@@ -42,4 +46,5 @@
 import net.sf.l2j.gameserver.model.entity.Castle;
 import net.sf.l2j.gameserver.model.entity.ClanHall;
+import net.sf.l2j.gameserver.model.entity.Siege;
 import net.sf.l2j.gameserver.network.L2GameClient;
 import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
@@ -368,4 +373,38 @@
         if (player == null)
             return;
+        
+        boolean opp = false;
+        Siege siege = SiegeManager.getInstance().getSiege(player);
+        L2Clan oppClan = player.getClan();
+        if (siege != null && siege.getIsInProgress())
+        {
+        	if (oppClan != null)
+        	{
+        		for (L2SiegeClan clan : siege.getAttackerClans())
+        		{
+        			L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+        			if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+        			{
+        				opp = true;
+        				break;
+        			}
+        		}
+        		
+        		for (L2SiegeClan clan : siege.getDefenderClans())
+        		{
+        			L2Clan cl = ClanTable.getInstance().getClan(clan.getClanId());
+        			if (cl == oppClan || cl.getAllyId() == player.getAllyId())
+        			{
+        				opp = true;
+        				break;
+        			}
+        		}
+        	}
+        }
+        else
+        	opp = true;
+        
+        if (!opp)
+        	return;

B1Z4R0 está offline   Responder com Citação
O seguinte membro ao lado disse Obrigado(a) a : B1Z4R0 por gostar deste Post :
xadresz (29-11-2010)
Antigo 29-11-2010, 04:52 PM   #4
xadresz
Membro - Veterano
 
Avatar de xadresz
 
Registrado em: Oct 2010
Posts: 413
Agradeceu: 169
Agradecido 113 Vezes em 69 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:

Inventório de xadresz

Padrão

Prefiro usar o código do B1Z4R0, muito obrigado ae pela ajuda!

xadresz está offline   Responder com Citação
Resposta


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 10:51 PM.