|
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 |
|
|||||||
| Registrar | Loteria VIP | Staff SE | Regras do fórum | Comunidade | Arcade | Postados Hoje | Pesquisar | Experience |
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
|
![]() |
|
|
Ferramentas do Tópico | Modos de Exibição |
|
|
#1 |
|
Membro - Veterano
![]() Registrado em: Oct 2010
Posts: 413
Agradeceu: 169
Agradecido 113 Vezes em 69 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
![]()
|
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! |
|
|
|
| Links Patrocinados |
|
|
#2 |
|
Membro - Marechal
![]() Registrado em: Aug 2009
Posts: 272
Agradeceu: 219
Agradecido 88 Vezes em 65 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
|
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 |
|
|
|
| O seguinte membro ao lado disse Obrigado(a) a : cachorrolouco por gostar deste Post : |
xadresz (29-11-2010)
|
|
|
#3 |
|
Membro - Karma
![]() Registrado em: Sep 2009
Localização: Rio Verde GO
Posts: 383
Agradeceu: 265
Agradecido 274 Vezes em 113 Posts
Nome Real: Paulo Eduardo Ferreira
|
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;
|
|
|
|
| O seguinte membro ao lado disse Obrigado(a) a : B1Z4R0 por gostar deste Post : |
xadresz (29-11-2010)
|
|
|
#4 |
|
Membro - Veterano
![]() Registrado em: Oct 2010
Posts: 413
Agradeceu: 169
Agradecido 113 Vezes em 69 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Meu Estado:
![]()
|
Prefiro usar o código do B1Z4R0, muito obrigado ae pela ajuda!
|
|
|
|