- 0
-
Quem Está Navegando
- Nenhum usuário registrado visualizando esta página.
-
Posts
-
O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
Boa Noite Galera o @Mr.Kadu postou o link do projeto mas eu fiz um erro e estarei postando a correção. aqueles que baixou o projeto e tentou ligar e deu erro e por causa do java que foi copilado eu copilei no java 22 e o projeto e no java 17 vou postar o link aqui para vcs, vai incluso a Geodata O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
Nova Revisão com AutoFarm e .Menu O conteúdo está oculto, favor efetuar login ou se cadastrar! Entre ou Cadastre-se
-
alguem tambem esta tendo problemas com email ? quando vc loga com a conta e nao tem email cadastrado. eu levo erro 500
-
muito bom meu amigo. vou começar os testes........
-
@Mr.Kadu VOU COMEÇA OS TESTES AGORA MESMO. VOU VER SE COLOCO UM PROJETO ONLINE. USANDO SUA BASE, AI SERÁ MUITO BOM PRA REPORTAR. abraços mano e muito boa iniciativa com esse projeto, que muitos usaram.
-
Por Gabrieljdb · Postado
Falta arquivo "armorgrp.dat" alguém poderia postar. Grato! -
Também to querendo só a textura do drop no chão, se alguém tiver.
-
Opa Obrigado amigo e aguarde que vamos tentar por todas as quests 99,9% funcional principalemnte porque projeto acis nao vi ate agora com quest 90%
-
Pergunta
IsTheBest
Ola preciso que auguem adiciona esse MOD pra eu ai estah
Core side:
Index: C:/workspace/L2_GameServer/java/config/l2jmods.properties
===================================================================
--- C:/workspace/L2_GameServer/java/config/l2jmods.properties (revision 3338)
+++ C:/workspace/L2_GameServer/java/config/l2jmods.properties (working copy)
@@ -240,4 +240,87 @@
# This option will enable core support for:
# Mana Drug (item ID 726), using skill ID 9007.
# Mana Potion (item ID 728), using skill ID 9008.
-EnableManaPotionSupport = False
\ No newline at end of file
+EnableManaPotionSupport = False
+
+# ---------------------------------------------------------------------------
+# Faction System By Stefoulis15
+# ---------------------------------------------------------------------------
+# Faction System is Something Really Unique. You Must Have Full Knowledge of What You Are Doing When Activating It.
+# Faction System Cannot Work With TvT Events , CTF , DM , KOTH And Others.
+
+# Enable Stefoulis15 Faction System?
+FactionSystemEnable = False
+
+# Annnounce Faction Players
+# Values Are In Minutes
+AnnouncePlayersDelay =
+
+# Set The Faction Name of The First Faction.
+FirstFactionName = Villagers
+
+# Set The Faction Name of The Second Faction.
+SecondFactionName = Pirates
+
+# Allow Alternative Spawn Place For New Created Characters
+AllowAltSpawnForNewChars = False
+
+# Set The Spawn Location of New Created Characters
+NewCharSpawnX =
+NewCharSpawnY =
+NewCharSpawnZ =
+
+# Set The Base of The First Faction
+FirstFactionBaseSpawnX =
+FirstFactionBaseSpawnY =
+FirstFactionBaseSpawnZ =
+
+# Set The Base of The Second Faction
+SecondFactionBaseSpawnX =
+SecondFactionBaseSpawnY =
+SecondFactionBaseSpawnZ =
+
+# Set All The New Characters At the Selected Level On Their Creation?
+NewCharLevel75 = False
+NewCharLevel80 = False
+NewCharLevel85 = False
+
+# Allow Trade Between Two Factions?
+AllowTradeBetweenFactions = False
+
+# Allow Buy Between Two Factions?
+AllowBuyBetweenFactions = False
+
+# Set All The New Characters Noblesse , On Their Creation?
+NewCharSetNoblesse = False
+
+# Set All The New Characters Heroes , On Their Creation?
+NewCharSetHero = False
+
+# Set The Name Color of The First Faction
+# Values Must Be In RGB
+FirstFactionNameColor =
+
+# Set The Name Color of The Second Creation
+# Values Must Be In RGB
+SecondFactionNameColor =
+
+# Set The Title Color of The First Faction
+# Values Must Be In RGB
+FirstFactionTitleColor =
+
+# Set The Title Color of The Second Faction
+# Values Must Be In RGB
+SecondFactionTitleColor =
+
+# Set The Alternative Warehouse Deposit Fee
+AltWarehouseDepositFee = 0
+
+# Allow Reward for Each PvP?
+AllowPvPReward = False
+
+# Set The Item You Want as a Reward
+PvPRewardID = 57
+
+# Set The Amount of The Reward
+PvPRewardAmount = 1
+
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestFriendInvite.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestFriendInvite.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestFriendInvite.java (working copy)
@@ -20,6 +20,7 @@
import java.util.logging.Level;
import java.util.logging.Logger;
+import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
@@ -65,6 +66,22 @@
sm = null;
return;
}
+ if (friend.issfaction() && activeChar.isffaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ // Target is wrong.
+ sm = new SystemMessage(SystemMessageId.TARGET_IS_INCORRECT);
+ activeChar.sendPacket(sm);
+ sm = null;
+ return;
+ }
+ else if (friend.isffaction() && activeChar.issfaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ // Target is wrong.
+ sm = new SystemMessage(SystemMessageId.TARGET_IS_INCORRECT);
+ activeChar.sendPacket(sm);
+ sm = null;
+ return;
+ }
else if (friend == activeChar)
{
//You cannot add yourself to your own friend list.
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestSendFriendMsg.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestSendFriendMsg.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestSendFriendMsg.java (working copy)
@@ -63,7 +63,16 @@
activeChar.sendPacket(new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME));
return;
}
-
+ if (targetPlayer.issfaction() && activeChar.isffaction())
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
+ return;
+ }
+ if (targetPlayer.isffaction() && activeChar.issfaction())
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessageId.TARGET_IS_INCORRECT));
+ return;
+ }
if (Config.LOG_CHAT)
{
LogRecord record = new LogRecord(Level.INFO, _message);
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/TradeRequest.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/TradeRequest.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/TradeRequest.java (working copy)
@@ -75,7 +75,17 @@
player.sendMessage("You or your target cant request trade in Olympiad mode");
return;
}
-
+ L2PcInstance player2 = (L2PcInstance) target;
+ if (player2.issfaction() && player.isffaction() && Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS)
+ {
+ player.sendMessage("You Cant Trade with the Different Faction");
+ return;
+ }
+ if (player2.isffaction() && player.issfaction() && Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS)
+ {
+ player.sendMessage("You Cant Trade with the Different Faction");
+ return;
+ }
// Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getKarma() > 0 || partner.getKarma() > 0))
{
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelAnswerStart.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelAnswerStart.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelAnswerStart.java (working copy)
@@ -14,6 +14,7 @@
*/
package net.sf.l2j.gameserver.network.clientpackets;
+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.instancemanager.DuelManager;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
@@ -66,7 +67,11 @@
player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME));
return;
}
-
+ if ((Config.FACTION_SYSTEM_ENABLE && player.issfaction()) || player.isffaction())
+ {
+ player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME));
+ return;
+ }
if (_partyDuel == 1)
{
msg1 = new SystemMessage(SystemMessageId.YOU_HAVE_ACCEPTED_C1_CHALLENGE_TO_A_PARTY_DUEL_THE_DUEL_WILL_BEGIN_IN_A_FEW_MOMENTS);
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreBuy.java (working copy)
@@ -104,7 +104,17 @@
TradeList storeList = storePlayer.getSellList();
if (storeList == null)
return;
-
+
+ if (Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_BUY_BETWEEN_FACTIONS)
+ {
+ if ((storePlayer.issfaction() && player.isffaction()) || (storePlayer.isffaction() && player.issfaction()))
+ {
+ player.sendMessage("You Cannot Buy From an Other Faction");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
+ }
+
if (!player.getAccessLevel().allowTransaction())
{
player.sendMessage("Transactions are disable for your Access Level");
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestJoinParty.java (working copy)
@@ -106,6 +106,17 @@
return;
}
+ if (target.isffaction() && requestor.issfaction())
+ {
+ requestor.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
+ return;
+ }
+ if (target.issfaction() && requestor.isffaction())
+ {
+ requestor.sendPacket(new SystemMessage(SystemMessageId.INCORRECT_TARGET));
+ return;
+ }
+
if (target.getClient().isDetached())
{
requestor.sendMessage("Player is in offline mode.");
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/SendWareHouseDepositList.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/SendWareHouseDepositList.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/SendWareHouseDepositList.java (working copy)
@@ -112,7 +112,7 @@
return;
// Freight price from config or normal price per item slot (30)
- final long fee = _items.length * 30;
+ final long fee = _items.length * Config.FACTION_SYSTEM_ALT_WAREHOUSE_FEE;
long currentAdena = player.getAdena();
int slots = 0;
@@ -142,7 +142,7 @@
}
// Check if enough adena and charge the fee
- if (currentAdena < fee || !player.reduceAdena(warehouse.getName(), fee, manager, false))
+ if (currentAdena < Config.FACTION_SYSTEM_ALT_WAREHOUSE_FEE || !player.reduceAdena(warehouse.getName(), Config.FACTION_SYSTEM_ALT_WAREHOUSE_FEE, manager, false))
{
sendPacket(new SystemMessage(SystemMessageId.YOU_NOT_ENOUGH_ADENA));
return;
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestDuelStart.java (working copy)
@@ -69,6 +69,11 @@
activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME));
return;
}
+ if ((Config.FACTION_SYSTEM_ENABLE && activeChar.issfaction()) || activeChar.isffaction())
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_UNABLE_TO_REQUEST_A_DUEL_AT_THIS_TIME));
+ return;
+ }
else if (!targetChar.canDuel())
{
activeChar.sendPacket(targetChar.getNoDuelReason());
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/CharacterCreate.java (working copy)
@@ -183,9 +183,30 @@
L2PcTemplate template = newChar.getTemplate();
+ if (Config.FACTION_SYSTEM_NEW_CHAR_LEVEL_75)
+ {
+ newChar.addExpAndSp(804219972L, 99999999);
+ }
+ else if (Config.FACTION_SYSTEM_NEW_CHAR_LEVEL_80)
+ {
+ newChar.addExpAndSp(4200000000L, 99999999);
+ }
+ else if (Config.FACTION_SYSTEM_NEW_CHAR_LEVEL_85)
+ {
+ newChar.addExpAndSp(19827360000L, 99999999);
+ }
+
newChar.addAdena("Init", Config.STARTING_ADENA, null, false);
- newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);
+ if (Config.FACTION_SYSTEM_ALLOW_ALT_NEW_CHAR_SPAWN)
+ {
+ newChar.setXYZInvisible(Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_X, Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Y , Config.FACTION_SYSTEM_NEW_CHAR_SPAWN_Z);
+ }
+ else
+ {
+ newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);
+ }
+
newChar.setTitle("");
L2ShortCut shortcut;
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java (working copy)
@@ -194,7 +194,19 @@
// Set Hero status if it applies
if (Hero.getInstance().getHeroes() != null && Hero.getInstance().getHeroes().containsKey(activeChar.getObjectId()))
activeChar.setHero(true);
+
+ if (Config.FACTION_SYSTEM_NEW_CHAR_SET_NOBLESSE)
+ {
+ if(!activeChar.isNoble())
+ activeChar.setNoble(true);
+ }
+ if (Config.FACTION_SYSTEM_NEW_CHAR_SET_HERO)
+ {
+ if(!activeChar.isHero())
+ activeChar.setHero(true);
+ }
+
setPledgeClass(activeChar);
boolean showClanNotice = false;
@@ -324,6 +336,21 @@
notifyPartner(activeChar,activeChar.getPartnerId());
}
+ if (activeChar.isffaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ activeChar.getAppearance().setNameColor(Config.FACTION_SYSTEM_FIRST_FACTION_NAME_COLOR);
+ activeChar.sendMessage("Welcome " + activeChar.getName() + " You Are Fighting " + Config.FACTION_SYSTEM_FIRST_FACTION_NAME + " Faction");
+ activeChar.setTitle(Config.FACTION_SYSTEM_FIRST_FACTION_NAME);
+ activeChar.getAppearance().setTitleColor(Config.FACTION_SYSTEM_FIRST_FACTION_TITLE_COLOR);
+ }
+ if (activeChar.issfaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ activeChar.getAppearance().setNameColor(Config.FACTION_SYSTEM_SECOND_FACTION_NAME_COLOR);
+ activeChar.sendMessage("Welcome " + activeChar.getName() + " You Are Fighting " + Config.FACTION_SYSTEM_SECOND_FACTION_NAME + " Faction");
+ activeChar.setTitle(Config.FACTION_SYSTEM_SECOND_FACTION_NAME);
+ activeChar.getAppearance().setTitleColor(Config.FACTION_SYSTEM_SECOND_FACTION_TITLE_COLOR);
+ }
+
if (activeChar.isCursedWeaponEquipped())
{
CursedWeaponsManager.getInstance().getCursedWeapon(activeChar.getCursedWeaponEquippedId()).cursedOnLogin();
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestPrivateStoreSell.java (working copy)
@@ -150,8 +150,17 @@
storePlayer.setPrivateStoreType(L2PcInstance.STORE_PRIVATE_NONE);
storePlayer.broadcastUserInfo();
}
+
+ if (Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_BUY_BETWEEN_FACTIONS)
+ {
+ if ((storePlayer.issfaction() && player.isffaction()) || (storePlayer.isffaction() && player.issfaction()))
+ {
+ player.sendMessage("You Cant Sell on a Different Faction");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
}
-
+}
@Override
public String getType()
{
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/AnswerTradeRequest.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/AnswerTradeRequest.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/AnswerTradeRequest.java (working copy)
@@ -14,6 +14,7 @@
*/
package net.sf.l2j.gameserver.network.clientpackets;
+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
import net.sf.l2j.gameserver.network.SystemMessageId;
@@ -66,6 +67,18 @@
}
else if (L2World.getInstance().findObject(partner.getObjectId()) == null)
{
+ L2PcInstance player2 = player.getActiveRequester();
+ if (player2.issfaction() && player.isffaction() && Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS)
+ {
+ player.sendMessage("You Cant Trade With The Other Faction");
+ return;
+ }
+ if (player2.isffaction() && player.issfaction() && Config.FACTION_SYSTEM_ENABLE && Config.FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS)
+ {
+ player.sendMessage("You Cant Trade With The Other Faction");
+ return;
+ }
+
// Trade partner not found, cancel trade
player.sendPacket(new TradeDone(0));
SystemMessage msg = new SystemMessage(SystemMessageId.TARGET_IS_NOT_FOUND_IN_THE_GAME);
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestAnswerJoinParty.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestAnswerJoinParty.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/network/clientpackets/RequestAnswerJoinParty.java (working copy)
@@ -49,6 +49,14 @@
if(player != null)
{
L2PcInstance requestor = player.getActiveRequester();
+ if (player.issfaction() && requestor.isffaction())
+ {
+ return;
+ }
+ if (player.isffaction() && requestor.issfaction())
+ {
+ return;
+ }
if (requestor == null)
return;
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -524,6 +524,9 @@
private boolean _noble = false;
private boolean _hero = false;
+ private boolean _isffaction = false;
+ private boolean _issfaction = false;
+
/** The L2FolkInstance corresponding to the last Folk wich one the player talked. */
private L2Npc _lastFolkNpc = null;
@@ -5469,6 +5472,27 @@
// sendPacket(msg);
return;
}
+ if (Config.FACTION_SYSTEM_ALLOW_REWARD_FOR_EACH_PVP && Config.FACTION_SYSTEM_ENABLE)
+ {
+ if ((issfaction() && targetPlayer.issfaction()) || (isffaction() && targetPlayer.isffaction()))
+ {
+ sendMessage("Cannot Get PvP Reward From The Same Faction.");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ } else
+ {
+ int itemReward = Config.FACTION_SYSTEM_PVP_ITEM_REWARD_AMOUNT;
+ int idReward = Config.FACTION_SYSTEM_PVP_ITEM_REWARD_ID;
+ addItem("Loot", idReward, itemReward, this, true);
+ sendMessage("You Won " + itemReward + " " + idReward + " From Your Kill.");
+ }
+ }
+ // pvp?
+ if (checkIfPvP(target) || (isffaction() && targetPlayer.issfaction()) || (issfaction() && targetPlayer.isffaction()))
+ {
+ increasePvpKills();
+ return;
+ }
// If in duel and you kill (only can kill l2summon), do nothing
if (isInDuel() && targetPlayer.isInDuel()) return;
@@ -5558,6 +5582,11 @@
*/
public void increasePkKillsAndKarma(int targLVL)
{
+ if (Config.FACTION_SYSTEM_ENABLE)
+ {
+ return;
+ }
+
int baseKarma = Config.KARMA_MIN_KARMA;
int newKarma = baseKarma;
int karmaLimit = Config.KARMA_MAX_KARMA;
@@ -5629,11 +5658,19 @@
public void updatePvPStatus()
{
+
+ if (!issfaction() || !isffaction())
+ {
+ return;
+ }
+
if (isInsideZone(ZONE_PVP)) return;
setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_NORMAL_TIME);
if (getPvpFlag() == 0)
startPvPFlag();
+
+
}
public void updatePvPStatus(L2Character target)
@@ -5643,6 +5680,14 @@
if (player_target == null)
return;
+ if (target instanceof L2PcInstance)
+ {
+ player_target = (L2PcInstance) target;
+ }
+ if (player_target.issfaction() || player_target.isffaction())
+ {
+ return;
+ }
if ((isInDuel() && player_target.getDuelId() == getDuelId())) return;
if ((!isInsideZone(ZONE_PVP) || !player_target.isInsideZone(ZONE_PVP)) && player_target.getKarma() == 0)
{
@@ -5655,6 +5700,7 @@
}
}
+
/**
* Restore the specified % of experience this L2PcInstance has
* lost and sends a Server->Client StatusUpdate packet.<BR><BR>
@@ -7018,6 +7064,8 @@
player.setOnlineTime(rset.getLong("onlinetime"));
player.setNewbie(rset.getInt("newbie"));
player.setNoble(rset.getInt("nobless")==1);
+ player.setffaction(rset.getInt("ffaction") == 1 ? true : false);
+ player.setsfaction(rset.getInt("sfaction") == 1 ? true : false);
player.setClanJoinExpiryTime(rset.getLong("clan_join_expiry_time"));
if (player.getClanJoinExpiryTime() < System.currentTimeMillis())
@@ -7450,7 +7498,9 @@
statement.setString(50, getName());
statement.setLong(51, getDeathPenaltyBuffLevel());
statement.setInt(52, getBookMarkSlot());
- statement.setInt(53, getObjectId());
+ statement.setInt(53, isffaction() ? 1 : 0);
+ statement.setInt(54, issfaction() ? 1 : 0);
+ statement.setInt(55, getObjectId());
statement.execute();
statement.close();
@@ -8254,6 +8304,16 @@
@Override
public boolean isAutoAttackable(L2Character attacker)
{
+
+ if ((attacker instanceof L2PcInstance) && ((L2PcInstance) attacker).isffaction())
+ {
+ return true;
+ }
+ if ((attacker instanceof L2PcInstance) && ((L2PcInstance) attacker).issfaction())
+ {
+ return true;
+ }
+
// Check if the attacker isn't the L2PcInstance Pet
if (attacker == this || attacker == getPet())
return false;
@@ -8651,7 +8711,7 @@
// Check if this is offensive magic skill
if (skill.isOffensive())
{
- if ((isInsidePeaceZone(this, target)) && !getAccessLevel().allowPeaceAttack())
+ if ((isInsidePeaceZone(this, target)) && !getAccessLevel().allowPeaceAttack() && (Config.FACTION_SYSTEM_ENABLE == false))
{
// If L2Character or target is in a peace zone, send a system message TARGET_IN_PEACEZONE a Server->Client packet ActionFailed
sendPacket(new SystemMessage(SystemMessageId.TARGET_IN_PEACEZONE));
@@ -9056,6 +9116,12 @@
*/
public boolean checkPvpSkill(L2Object target, L2Skill skill, boolean srcIsSummon)
{
+
+ if (issfaction() || isffaction())
+ {
+ return true;
+ }
+
// check for PC->PC Pvp status
if (
target != null && // target not null and
@@ -10010,6 +10076,27 @@
sendPacket(sl);
}
+ public boolean isffaction()
+ {
+ return _isffaction;
+ }
+
+ public boolean issfaction()
+ {
+ return _issfaction;
+ }
+
+ public void setffaction(boolean value)
+ {
+ _isffaction = value;
+ }
+
+ public void setsfaction(boolean value)
+ {
+ _issfaction = value;
+ }
+
+
/**
* 1. Add the specified class ID as a subclass (up to the maximum number of <b>three</b>)
* for this character.<BR>
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/L2Character.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/L2Character.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/L2Character.java (working copy)
@@ -759,6 +759,18 @@
return;
}
}
+ if (((L2PcInstance) this).isffaction() && ((L2PcInstance) target).isffaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ ((L2PcInstance) this).sendMessage("Cant attack a player from your faction");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
+ if (((L2PcInstance) this).issfaction() && ((L2PcInstance) target).issfaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ ((L2PcInstance) this).sendMessage("Cant attack a player from your faction");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
// Checking if target has moved to peace zone
if (target.isInsidePeaceZone((L2PcInstance)this))
{
@@ -866,7 +878,7 @@
{
// Checking if target has moved to peace zone - only for player-crossbow attacks at the moment
// Other melee is checked in movement code and for offensive spells a check is done every time
- if (target.isInsidePeaceZone((L2PcInstance)this))
+ if (target.isInsidePeaceZone((L2PcInstance)this)&& !Config.FACTION_SYSTEM_ENABLE)
{
getAI().setIntention(CtrlIntention.AI_INTENTION_ACTIVE);
sendPacket(ActionFailed.STATIC_PACKET);
@@ -1468,7 +1480,31 @@
L2Object[] targets = skill.getTargetList(this);
boolean doit = false;
-
+
+ if ((target instanceof L2PcInstance) && (this instanceof L2PcInstance))
+ {
+ if (((L2PcInstance) this).isffaction() && (((L2PcInstance) target).isffaction() && Config.FACTION_SYSTEM_ENABLE))
+ {
+ ((L2PcInstance) this).sendMessage("You Cannot Attack a Player From Your Faction!");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
+ else if (((L2PcInstance) this).isffaction() && ((((L2PcInstance) target).isffaction() && Config.FACTION_SYSTEM_ENABLE && (skill.getSkillType() == L2SkillType.BUFF)) || (skill.getSkillType() == L2SkillType.HOT) || (skill.getSkillType() == L2SkillType.HEAL) || (skill.getSkillType() == L2SkillType.COMBATPOINTHEAL) || (skill.getSkillType() == L2SkillType.HEAL_PERCENT) || (skill.getSkillType() == L2SkillType.MANAHEAL) || (skill.getSkillType() == L2SkillType.MANAHEAL_PERCENT) || (skill.getSkillType() == L2SkillType.BALANCE_LIFE) || (skill.getSkillType() == L2SkillType.CONT)))
+ {
+ return;
+ }
+ if (((L2PcInstance) this).issfaction() && ((L2PcInstance) target).issfaction())
+ {
+ ((L2PcInstance) this).sendMessage("You Cannot Attack a Player From Your Faction!");
+ sendPacket(ActionFailed.STATIC_PACKET);
+ return;
+ }
+ else if (((L2PcInstance) this).issfaction() && ((((L2PcInstance) target).issfaction() && Config.FACTION_SYSTEM_ENABLE && (skill.getSkillType() == L2SkillType.BUFF)) || (skill.getSkillType() == L2SkillType.HOT) || (skill.getSkillType() == L2SkillType.HEAL) || (skill.getSkillType() == L2SkillType.COMBATPOINTHEAL) || (skill.getSkillType() == L2SkillType.HEAL_PERCENT) || (skill.getSkillType() == L2SkillType.MANAHEAL) || (skill.getSkillType() == L2SkillType.MANAHEAL_PERCENT) || (skill.getSkillType() == L2SkillType.BALANCE_LIFE) || (skill.getSkillType() == L2SkillType.CONT)))
+ {
+ return;
+ }
+ }
+
// AURA skills should always be using caster as target
switch (skill.getTargetType())
{
@@ -2164,6 +2200,16 @@
if (!isTeleporting())
{
setIsPendingRevive(false);
+ if ((this instanceof L2PcInstance) && (((L2PcInstance) this).isffaction() && Config.FACTION_SYSTEM_ENABLE))
+ {
+ teleToLocation(Config.FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_X, Config.FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Y, Config.FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Z);
+ } else
+ {
+ if ((this instanceof L2PcInstance) && (((L2PcInstance) this).issfaction() && Config.FACTION_SYSTEM_ENABLE))
+ {
+ teleToLocation(Config.FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_X, Config.FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Y, Config.FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Z);
+ }
+ }
setIsDead(false);
boolean restorefull = false;
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2World.java (working copy)
@@ -64,6 +64,9 @@
/** HashMap(String Player name, L2PcInstance) containing all the players in game */
private Map<String, L2PcInstance> _allPlayers;
+ private Map<String, L2PcInstance> _allkoofPlayers;
+ private Map<String, L2PcInstance> _allnoobPlayers;
+
/** L2ObjectHashMap(L2Object) containing all visible objects */
private Map<Integer, L2Object> _allObjects;
@@ -79,6 +82,8 @@
{
//_allGms = new FastMap<String, L2PcInstance>();
_allPlayers = new FastMap<String, L2PcInstance>().setShared(true);
+ _allkoofPlayers = new FastMap<String, L2PcInstance>().setShared(true);
+ _allnoobPlayers = new FastMap<String, L2PcInstance>().setShared(true);
_petsInstance = new FastMap<Integer, L2PetInstance>().setShared(true);
_allObjects = new FastMap<Integer, L2Object>().setShared(true);
@@ -224,6 +229,16 @@
return _allPlayers;
}
+ public Collection<L2PcInstance> getAllkoofPlayers()
+ {
+ return _allkoofPlayers.values();
+ }
+
+ public Collection<L2PcInstance> getAllnoobPlayers()
+ {
+ return _allnoobPlayers.values();
+ }
+
/**
* Return how many players are online.<BR><BR>
*
@@ -234,6 +249,16 @@
return _allPlayers.size();
}
+ public int getAllkoofPlayersCount()
+ {
+ return _allkoofPlayers.size();
+ }
+
+ public int getAllnoobPlayersCount()
+ {
+ return _allnoobPlayers.size();
+ }
+
/**
* Return the player instance corresponding to the given name.<BR><BR>
*
@@ -335,6 +360,14 @@
tmp.closeNetConnection();
return;
}
+ if (((L2PcInstance) object).isffaction())
+ {
+ _allkoofPlayers.put(player.getName().toLowerCase(), player);
+ }
+ else if (((L2PcInstance) object).issfaction())
+ {
+ _allnoobPlayers.put(player.getName().toLowerCase(), player);
+ }
_allPlayers.put(player.getName().toLowerCase(), player);
}
}
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/L2Clan.java (working copy)
@@ -1,5 +1,4 @@
/*
- * This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
@@ -1896,6 +1895,17 @@
activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_INVITED_THE_WRONG_TARGET));
return false;
}
+
+ if (activeChar.isffaction() && target.issfaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_INVITED_THE_WRONG_TARGET));
+ return false;
+ }
+ if (activeChar.issfaction() && target.isffaction() && Config.FACTION_SYSTEM_ENABLE)
+ {
+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_INVITED_THE_WRONG_TARGET));
+ return false;
+ }
if (activeChar.getObjectId() == target.getObjectId())
{
activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_INVITE_YOURSELF));
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/lib/Log.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/lib/Log.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/lib/Log.java (working copy)
@@ -126,4 +126,13 @@
_log.warning("Assertion error [" + cmt + "]");
Thread.dumpStack();
}
+
+ /**
+ * @param string
+ */
+ public void warn(String string)
+ {
+ // TODO Auto-generated method stub
+
+ }
}
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/GameServer.java (working copy)
@@ -524,6 +524,7 @@
_log.config("Maximum Numbers of Connected Players: " + Config.MAXIMUM_ONLINE_USERS);
long serverLoadEnd = System.currentTimeMillis();
_log.info("Server Loaded in " + ((serverLoadEnd - serverLoadStart) / 1000) + " seconds");
+
}
public static void main(String[] args) throws Exception
@@ -557,5 +558,18 @@
{
_log.info("Telnet server is currently disabled.");
}
+ if (Config.FACTION_SYSTEM_ENABLE)
+ {
+ System.out.println("####################################");
+ System.out.println("## Faction System is Activated. ##");
+ System.out.println("####################################");
+ }
+ else
+ {
+ System.out.println("###################################");
+ System.out.println("## Faction System is Disabled. ##");
+ System.out.println("###################################");
+ }
+
}
}
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java (revision 3338)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java (working copy)
@@ -585,8 +585,37 @@
public static boolean OFFLINE_SET_NAME_COLOR;
public static int OFFLINE_NAME_COLOR;
public static boolean L2JMOD_ENABLE_MANA_POTIONS_SUPPORT;
+ public static boolean FACTION_SYSTEM_ENABLE;
+ public static int FACTION_SYSTEM_FIRST_FACTION_TITLE_COLOR;
+ public static int FACTION_SYSTEM_SECOND_FACTION_TITLE_COLOR;
+ public static String FACTION_SYSTEM_FIRST_FACTION_NAME;
+ public static String FACTION_SYSTEM_SECOND_FACTION_NAME;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_ALLOW_ALT_SPAWN;
+ public static int FACTION_SYSTEM_NEW_CHAR_SPAWN_X;
+ public static int FACTION_SYSTEM_NEW_CHAR_SPAWN_Y;
+ public static int FACTION_SYSTEM_NEW_CHAR_SPAWN_Z;
+ public static int FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_X;
+ public static int FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Y;
+ public static int FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Z;
+ public static int FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_X;
+ public static int FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Y;
+ public static int FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Z;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_LEVEL_75;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_LEVEL_80;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_LEVEL_85;
+ public static boolean FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_SET_NOBLESSE;
+ public static boolean FACTION_SYSTEM_NEW_CHAR_SET_HERO;
+ public static int FACTION_SYSTEM_FIRST_FACTION_NAME_COLOR;
+ public static int FACTION_SYSTEM_SECOND_FACTION_NAME_COLOR;
+ public static int FACTION_SYSTEM_ALT_WAREHOUSE_FEE;
+ public static boolean FACTION_SYSTEM_ALLOW_REWARD_FOR_EACH_PVP;
+ public static int FACTION_SYSTEM_PVP_ITEM_REWARD_ID;
+ public static int FACTION_SYSTEM_PVP_ITEM_REWARD_AMOUNT;
+ public static int FACTION_SYSTEM_ANNOUNCE_DELAY;
+ public static boolean FACTION_SYSTEM_ALLOW_BUY_BETWEEN_FACTIONS;
+ public static boolean FACTION_SYSTEM_ALLOW_ALT_NEW_CHAR_SPAWN;
-
//--------------------------------------------------
// NPC Settings
//--------------------------------------------------
@@ -1932,6 +1961,36 @@
OFFLINE_NAME_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("OfflineNameColor", "808080"));
L2JMOD_ENABLE_MANA_POTIONS_SUPPORT = Boolean.parseBoolean(L2JModSettings.getProperty("EnableManaPotionSupport", "false"));
+ FACTION_SYSTEM_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("FactionSystemEnable", "False"));
+ FACTION_SYSTEM_FIRST_FACTION_TITLE_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("FirstFactionTitleColor", ""));
+ FACTION_SYSTEM_SECOND_FACTION_TITLE_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("SecondFactionTitleColor", ""));
+ FACTION_SYSTEM_FIRST_FACTION_NAME = L2JModSettings.getProperty("FirstFactionName", "Villagers");
+ FACTION_SYSTEM_SECOND_FACTION_NAME = L2JModSettings.getProperty("SecondFactionName", "Pirates");
+ FACTION_SYSTEM_NEW_CHAR_ALLOW_ALT_SPAWN = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharAltSpawn", "False"));
+ FACTION_SYSTEM_NEW_CHAR_SPAWN_X = Integer.parseInt(L2JModSettings.getProperty("NewCharSpawnX", "0"));
+ FACTION_SYSTEM_NEW_CHAR_SPAWN_Y = Integer.parseInt(L2JModSettings.getProperty("NewCharSpawnY", "0"));
+ FACTION_SYSTEM_NEW_CHAR_SPAWN_Z = Integer.parseInt(L2JModSettings.getProperty("NewCharSpawnZ", "0"));
+ FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_X = Integer.parseInt(L2JModSettings.getProperty("FirstFactionBaseSpawnX", "0"));
+ FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Y = Integer.parseInt(L2JModSettings.getProperty("FirstFactionBaseSpawnY", "0"));
+ FACTION_SYSTEM_FIRST_FACTION_BASE_SPAWN_Z = Integer.parseInt(L2JModSettings.getProperty("FirstFactionBaseSpawnZ", "0"));
+ FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_X = Integer.parseInt(L2JModSettings.getProperty("SecondFactionBaseSpawnX", "0"));
+ FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Y = Integer.parseInt(L2JModSettings.getProperty("SecondFactionBaseSpawnY", "0"));
+ FACTION_SYSTEM_SECOND_FACTION_BASE_SPAWN_Z = Integer.parseInt(L2JModSettings.getProperty("SecondFactionBaseSpawnZ", "0"));
+ FACTION_SYSTEM_NEW_CHAR_LEVEL_75 = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharLevel75", "False"));
+ FACTION_SYSTEM_NEW_CHAR_LEVEL_80 = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharLevel80", "False"));
+ FACTION_SYSTEM_NEW_CHAR_LEVEL_85 = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharLevel85", "False"));
+ FACTION_SYSTEM_ALLOW_TRADE_BETWEEN_FACTIONS = Boolean.parseBoolean(L2JModSettings.getProperty("AllowTradeBetweenFactions", "False"));
+ FACTION_SYSTEM_NEW_CHAR_SET_NOBLESSE = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharSetNoblesse", "False"));
+ FACTION_SYSTEM_NEW_CHAR_SET_HERO = Boolean.parseBoolean(L2JModSettings.getProperty("NewCharSetHero", "False"));
+ FACTION_SYSTEM_FIRST_FACTION_NAME_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("FirstFactionNameColor", ""));
+ FACTION_SYSTEM_SECOND_FACTION_NAME_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("SecondFactionNameColor", ""));
+ FACTION_SYSTEM_ALT_WAREHOUSE_FEE = Integer.parseInt(L2JModSettings.getProperty("AltWarehouseDepositFee", "0"));
+ FACTION_SYSTEM_ALLOW_REWARD_FOR_EACH_PVP = Boolean.parseBoolean(L2JModSettings.getProperty("AllowPvPReward", "False"));
+ FACTION_SYSTEM_PVP_ITEM_REWARD_ID = Integer.parseInt(L2JModSettings.getProperty("PvPRewardID", "57"));
+ FACTION_SYSTEM_PVP_ITEM_REWARD_AMOUNT = Integer.parseInt(L2JModSettings.getProperty("PvPRewardAmount", "1"));
+ FACTION_SYSTEM_ANNOUNCE_DELAY = Integer.parseInt(L2JModSettings.getProperty("AnnouncePlayersDelay", ""));
+ FACTION_SYSTEM_ALLOW_BUY_BETWEEN_FACTIONS = Boolean.parseBoolean(L2JModSettings.getProperty("AllowBuyBetweenFactions", "False"));
+ FACTION_SYSTEM_ALLOW_ALT_NEW_CHAR_SPAWN = Boolean.parseBoolean(L2JModSettings.getProperty("AllowAltSpawnForNewChars", "False"));
}
catch (Exception e)
{
Datapack side:
Index: C:/workspace/datapack_development/sql/characters.sql
===================================================================
--- C:/workspace/datapack_development/sql/characters.sql (revision 6451)
+++ C:/workspace/datapack_development/sql/characters.sql (working copy)
@@ -57,6 +57,8 @@
`clan_create_expiry_time` BIGINT UNSIGNED NOT NULL DEFAULT 0,
`death_penalty_level` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
`bookmarkslot` SMALLINT UNSIGNED NOT NULL DEFAULT 0,
+ `ffaction` TINYINT UNSIGNED NOT NULL DEFAULT 0,
+ `sfaction` TINYINT UNSIGNED NOT NULL DEFAULT 0,
PRIMARY KEY (`charId`),
KEY `clanid` (`clanid`)
);
\ No newline at end of file
Index: C:/workspace/datapack_development/data/scripts/handlers/skillhandlers/SummonFriend.java
===================================================================
--- C:/workspace/datapack_development/data/scripts/handlers/skillhandlers/SummonFriend.java (revision 6451)
+++ C:/workspace/datapack_development/data/scripts/handlers/skillhandlers/SummonFriend.java (working copy)
@@ -28,6 +28,7 @@
import net.sf.l2j.gameserver.model.entity.Instance;
import net.sf.l2j.gameserver.model.entity.TvTEvent;
import net.sf.l2j.gameserver.network.SystemMessageId;
+import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.ConfirmDlg;
import net.sf.l2j.gameserver.network.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.skills.L2SkillType;
@@ -66,7 +67,18 @@
summonerChar.sendPacket(new SystemMessage(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING));
return false;
}
-
+ if (summonerChar.isffaction())
+ {
+ summonerChar.sendMessage("You Cannot Use This Skill.");
+ summonerChar.sendPacket(new SystemMessage(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING));
+ return false;
+ }
+ if (summonerChar.issfaction())
+ {
+ summonerChar.sendMessage("You Cannot Use This Skill.");
+ summonerChar.sendPacket(new SystemMessage(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING));
+ return false;
+ }
if (summonerChar.isInsideZone(L2Character.ZONE_NOSUMMONFRIEND) || summonerChar.isFlyingMounted())
{
summonerChar.sendPacket(new SystemMessage(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING));
Index: C:/workspace/datapack_development/data/scripts/handlers/usercommandhandlers/Escape.java
===================================================================
--- C:/workspace/datapack_development/data/scripts/handlers/usercommandhandlers/Escape.java (revision 6451)
+++ C:/workspace/datapack_development/data/scripts/handlers/usercommandhandlers/Escape.java (working copy)
@@ -56,6 +56,14 @@
return false;
}
+ if (Config.FACTION_SYSTEM_ENABLE)
+ {
+ if (activeChar.isffaction() || activeChar.issfaction())
+ {
+ activeChar.sendMessage("You Cannot Use This Command.");
+ return false;
+ }
+ }
int unstuckTimer = (activeChar.getAccessLevel().isGm() ? 1000 : Config.UNSTUCK_INTERVAL * 1000);
SQL do NPC:
INSERT INTO `npc` VALUES(99996,31324,'Laura',1,'Faction Manager',1,'NPC.a_casino_FDarkElf',8,23,70,'female','L2Faction',40,2444,2444,0,0,10,10,10,10,10,10,0,0,500,500,500,500,278,0,333,9644,0,NULL,28,120,'',0,0,0,'LAST_HIT',0,0,0,'balanced','false');
Faction Manager:
<html><title>Faction Manager</title>
<body>
<center>
<font color="LEVEL">Choose Your Faction</font><br>
<br>
<a action="bypass -h npc_%objectId%_setffaction">Join The First Faction</a><br>
<br>
<a action="bypass -h npc_%objectId%_setsfaction">Join The Second Faction</a><br>
<br>
<br>
<font color="LEVEL">Other Services</font><br>
<br>
<a action="bypass -h npc_%objectId%_setnoblesse">Gain Noblesse Status</a><br>
<br>
<a action="bypass -h npc_%objectId%_Link Faction/levelup.htm">Level Up Services</a><br>
<br>
<a action="bypass -h npc_%objectId%_Link Faction/delevel.htm">DeLevel Services</a><br>
<br>
</center>
</body>
</html>
Level UP:
<html><title>Faction Manager</title>
<body>
<center>
<font color="LEVEL">Level Up Services</font><br>
<br>
<a action="bypass -h npc_%objectId%_levelup">Level Me Up!</a><br>
<br>
</center>
</body>
</html>
..\data\html\mods\Faction:
<html><title>Faction Manager</title>
<body>
<center>
<font color="LEVEL">Delevel Services</font><br>
<br>
<a action="bypass -h npc_%objectId%_delevel">Delevel Me!</a><br>
<br>
</center>
</body>
</html>
Fico no aguardo Falow...
Area de Dúvidas é minha Casa...
Leia a Frase
"Um homem não está acabado quando enfrenta a derrota. Ele está acabado quando desiste."
Pense nisso quando estiver mechendo com l2.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts recomendados
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.