Jump to content

LucasDesigner

VIP Member
  • Posts

    67
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by LucasDesigner

  1. I am here to provide an awesome site for L2J !!! The site has the following scripts: Registry System Rankings PVP, PK, Recomend. Population. Players Online. Download Templante Download PSD Tabela de Languages
  2. People come here makes a contribution but mine. Mod Administrator born with super rod MOD DONE PRA L2JFROZEN. Index: config/functions/access.properties =================================================================== GMStartupInvulnerable = True + +# Add Super Haste skill on GM login. +GMStartupSuperHaste = True Index: trunk/gameserver/head-src/com/l2jfrozen/Config.java =================================================================== public static boolean GM_STARTUP_INVISIBLE; +public static boolean GM_SUPER_HASTE; GM_STARTUP_INVULNERABLE = Boolean.parseBoolean(AccessSettings.getProperty("GMStartupInvulnerable", "true")); +GM_SUPER_HASTE = Boolean.parseBoolean(AccessSettings.getProperty("GMStartupSuperHaste", "False")); Index: trunk/gameserver/head-src/com/l2jfrozen/network/clientpackets/enterword.java ==================================================================== if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", activeChar.getAccessLevel())) activeChar.setIsInvul(true); +if(Config.GM_SUPER_HASTE) +SkillTable.getInstance().getInfo(7029, 4).getEffects(activeChar, activeChar); Note: those who do not use L2JFrozen basic correctness + if(Config.GM_SUPER_HASTE) +{ + SkillTable.getInstance().getInfo(7029, 4).getEffects(activeChar, activeChar); +} Creditos : RevL2jbr , LovePako
  3. Eu usei esse código e eu tentei adptar para l2jfrozen , mas eu tenho erros no servidor run fonte original. Index: config/protected/other.properties =================================================================== --- config/protected/other.properties (revision 991) +++ config/protected/other.properties (working copy) @@ -39,6 +39,9 @@ AllowDualBoxInOly = False AllowDualBoxInEvent = False +# Multbox protection based on client tracert comparison +MultiBoxesPerPC = 2 + #=================================# # Bot Protection # #=================================# Index: head-src/com/l2jfrozen/Config.java =================================================================== --- head-src/com/l2jfrozen/Config.java (revision 991) +++ head-src/com/l2jfrozen/Config.java (working copy) @@ -608,7 +608,8 @@ public static String CHAT_FILTER_CHARS; public static String CHAT_FILTER_PUNISHMENT; public static ArrayList<String> FILTER_LIST = new ArrayList<String>(); - + public static int MAX_PLAYERS_FROM_ONE_PC; + public static int FS_TIME_ATTACK; public static int FS_TIME_COOLDOWN; public static int FS_TIME_ENTRY; @@ -3445,7 +3446,7 @@ ALLOW_DUALBOX_EVENT = Boolean.parseBoolean(POtherSetting.getProperty("AllowDualBoxInEvent", "True")); ALLOWED_BOXES = Integer.parseInt(POtherSetting.getProperty("AllowedBoxes", "99")); ALLOW_DUALBOX = Boolean.parseBoolean(POtherSetting.getProperty("AllowDualBox", "True")); - + MAX_PLAYERS_FROM_ONE_PC = Integer.parseInt(POtherSetting.getProperty("MultiboxesPerPC", "2")); BOT_PROTECTOR = Boolean.parseBoolean(POtherSetting.getProperty("BotProtect", "False")); BOT_PROTECTOR_FIRST_CHECK = Integer.parseInt(POtherSetting.getProperty("BotProtectFirstCheck", "15")); BOT_PROTECTOR_NEXT_CHECK = Integer.parseInt(POtherSetting.getProperty("BotProtectNextCheck", "60")); @@ -5323,6 +5324,7 @@ { TVT_REVIVE_DELAY = Long.parseLong(pValue); } + else if (pName.equalsIgnoreCase("MultiBoxesPerPC")) MAX_PLAYERS_FROM_ONE_PC = Integer.parseInt(pValue); else if(pName.equalsIgnoreCase("MinKarma")) { KARMA_MIN_KARMA = Integer.parseInt(pValue); Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4348) +++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -164,6 +164,7 @@ import com.l2jserver.gameserver.model.quest.State; import com.l2jserver.gameserver.model.zone.type.L2BossZone; import com.l2jserver.gameserver.network.L2GameClient; +import com.l2jserver.gameserver.network.MultiBoxProtection; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.communityserver.CommunityServerThread; import com.l2jserver.gameserver.network.communityserver.writepackets.WorldInfo; @@ -11964,6 +11965,19 @@ _log.log(Level.SEVERE, "deleteMe()", e); } + try + { + if (Config.MAX_PLAYERS_FROM_ONE_PC > 0 && getClient() != null + && getClient().getAdress() != null && getClient().getTrace() != null) + { + MultiBoxProtection.getInstance().removeConnection(getClient()); + } + } + catch (Exception e) + { + _log.log(Level.SEVERE, "deleteMe()", e); + } + // Close the connection with the client closeNetConnection(closeClient); Index: head-src/com/l2jfrozen/gameserver/network/L2GameClient.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/L2GameClient.java (revision 991) +++ head-src/com/l2jfrozen/gameserver/network/L2GameClient.java (working copy) @@ -93,6 +93,7 @@ // Info public String accountName; + private String _adress; public SessionKey sessionId; public L2PcInstance activeChar; private ReentrantLock _activeCharLock = new ReentrantLock(); @@ -110,7 +111,7 @@ // Crypt public GameCrypt crypt; - + private int[][] trace; // Flood protection public long packetsNextSendTick = 0; @@ -130,6 +131,8 @@ public L2GameClient(MMOConnection<L2GameClient> con) { super(con); + if (con != null) + _adress = con.getInetAddress().getHostAddress(); state = GameClientState.CONNECTED; _connectionstartTime = System.currentTimeMillis(); crypt = new GameCrypt(); @@ -233,6 +236,10 @@ return accountName; } + public String getAdress() + { + return _adress; + } public void setSessionId(SessionKey sk) { sessionId = sk; @@ -973,8 +980,15 @@ //Decrease boxes number if(player._active_boxes!=-1) player.decreaseBoxes(); + if (Config.MAX_PLAYERS_FROM_ONE_PC > 0) + { + MultiBoxProtection.getInstance().removeConnection(L2GameClient.this); + } + if (Config.MAX_PLAYERS_FROM_ONE_PC > 0 && !isDetached()) + { + MultiBoxProtection.getInstance().removeConnection(L2GameClient.this); + } - if(!player.isKicked() && !Olympiad.getInstance().isRegistered(player) && !player.isInOlympiadMode() && !player.isInFunEvent() @@ -1211,6 +1226,14 @@ _queueLock.unlock(); } } + public void setClientTracert(int[][] tracert) + { + trace = tracert; + } + public int[][] getTrace() + { + return trace; + } /** * @return the _forcedToClose Index: head-src/com/l2jfrozen/gameserver/network/MultiBoxProtection.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/MultiBoxProtection.java (revision 0) +++ head-src/com/l2jfrozen/gameserver/network/MultiBoxProtection.java (revision 0) @@ -0,0 +1,155 @@ +/* + * 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. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jfrozen.gameserver.network; + + +import java.util.Arrays; +import java.util.Map; +import java.util.logging.Logger; +import com.l2jfrozen.Config; + +import javolution.util.FastMap; + + +/** + * @author LucasDesigner + * + */ +public class MultiBoxProtection +{ + protected static final Logger _log = Logger.getLogger(MultiBoxProtection.class.getName()); + private Map<IpPack, Integer> map; + + public static MultiBoxProtection getInstance() + { + return SingletonHolder._instance; + } + + public MultiBoxProtection() + { + map = new FastMap<MultiBoxProtection.IpPack, Integer>(); + } + + public synchronized boolean registerNewConnection(L2GameClient client) + { + IpPack pack = new IpPack(client.getAdress(), client.getTrace()); + Integer count = map.get(pack); + if (count == null) + { + count = 1; + map.put(pack, count); + if (Config.DEVELOPER) + _log.info("MultiBoxProtection.registerNewConnection(): Set Count for: "+ client.getActiveChar().getName() +" (" + client.getAdress() + ") to " + count); + return true; + } + else if (count < Config.MAX_PLAYERS_FROM_ONE_PC) + { + count++; + map.put(pack, count); + if (Config.DEVELOPER) + _log.info("MultiBoxProtection.registerNewConnection(): Increase Count for: "+ client.getActiveChar().getName() +" (" + client.getAdress() + ") to " + count); + return true; + } + else + { + count++; + map.put(pack, count); + if (Config.DEVELOPER) + _log.info("MultiBoxProtection.registerNewConnection(): Count for: "+ client.getActiveChar().getName() +" (" + client.getAdress() + ") is " + count); + return false; + } + + } + + public synchronized void removeConnection(L2GameClient client) + { + if (client == null) + return; + + IpPack pack = new IpPack(client.getAdress(), client.getTrace()); + Integer count = map.get(pack); + if (count != null && count > 1) + { + count--; + map.put(pack, count); + if (Config.DEVELOPER) + _log.info("MultiBoxProtection.removeConnection(): Decrease Count for: "+ client.getActiveChar().getName() +" (" + client.getAdress() + ") to " + count); + + } + else + { + map.remove(pack); + if (Config.DEVELOPER) + _log.info("MultiBoxProtection.removeConnection(): Remove Count for: "+ client.getActiveChar().getName() +" (" + client.getAdress() + ")"); + } + } + + @SuppressWarnings("synthetic-access") + private static class SingletonHolder + { + protected static final MultiBoxProtection _instance = new MultiBoxProtection(); + } + + public final static class IpPack + { + String ip; + int[][] tracert; + + public IpPack(String ip, int[][] tracert) + { + this.ip = ip; + this.tracert = tracert; + } + + @Override + public int hashCode() + { + final int prime = 31; + int result = 1; + result = prime * result + ((ip == null) ? 0 : ip.hashCode()); + if(tracert == null) + return result; + for (int[] array: tracert) + result = prime * result + Arrays.hashCode(array); + return result; + } + + @Override + public boolean equals(Object obj) + { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + IpPack other = (IpPack) obj; + if (ip == null) + { + if (other.ip != null) + return false; + } + else if (!ip.equals(other.ip)) + return false; + for (int i = 0 ; i < tracert.length; i++) + for (int o = 0; o < tracert[0].length; o++) + if (tracert[i][o] != other.tracert[i][o]) + return false; + return true; + } + + } +} + Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/EnterWorld.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/clientpackets/EnterWorld.java (revision 991) +++ head-src/com/l2jfrozen/gameserver/network/clientpackets/EnterWorld.java (working copy) @@ -68,6 +68,7 @@ import com.l2jfrozen.gameserver.model.entity.siege.Siege; import com.l2jfrozen.gameserver.model.quest.Quest; import com.l2jfrozen.gameserver.model.quest.QuestState; +import com.l2jfrozen.gameserver.network.MultiBoxProtection; import com.l2jfrozen.gameserver.network.Disconnection; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ClientSetTime; @@ -121,7 +122,7 @@ @Override protected void runImpl() { - L2PcInstance activeChar = getClient().getActiveChar(); + final L2PcInstance activeChar = getClient().getActiveChar(); if (activeChar == null) { @@ -422,6 +422,23 @@ activeChar.sendMessage("I'm sorry, but multibox is not allowed here."); activeChar.logout(); } + if (Config.MAX_PLAYERS_FROM_ONE_PC > 0) + { + if (!MultiBoxProtection.getInstance().registerNewConnection(getClient())) + { + activeChar.sendMessage("Too many connections, please logout other characters first."); + if (Config.DEVELOPER) + _log.info("Too many conections, disconnecting " + activeChar.getName()); + ThreadPoolManager.getInstance().scheduleGeneral(new Runnable() + { + public void run() + { + activeChar.logout(false); + } + }, 400); + return; + } + } Hellows(activeChar); Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRestart.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRestart.java (revision 991) +++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestRestart.java (working copy) @@ -25,11 +25,14 @@ import com.l2jfrozen.gameserver.communitybbs.Manager.RegionBBSManager; import com.l2jfrozen.gameserver.datatables.SkillTable; import com.l2jfrozen.gameserver.model.Inventory; import com.l2jfrozen.gameserver.model.L2Party; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.model.entity.olympiad.Olympiad; import com.l2jfrozen.gameserver.model.entity.sevensigns.SevenSignsFestival; import com.l2jfrozen.gameserver.network.L2GameClient; +import com.l2jfrozen.gameserver.network.MultiBoxProtection; import com.l2jfrozen.gameserver.network.L2GameClient.GameClientState; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; @@ -177,7 +187,11 @@ } L2GameClient client = getClient(); - + + if (Config.MAX_PLAYERS_FROM_ONE_PC > 0) + { + MultiBoxProtection.getInstance().removeConnection(client); + } // detach the client from the char so that the connection isnt closed in the deleteMe player.setClient(null);
  4. We'm l2off and tou server with a doubt wanted to let the char born with 20 HOW DO LEVEL
  5. General Information Server Rates Xp Rate x 100 Sp Rate x 100 Adena Drop x500 Party XP x5 Party SP x5 Enchant Rates Safe enchant +4 Max Weapons enchant +21 Max Joias / Armor enchant + 10 Normal scroll chance - 75 % Blessed scroll chance - 85% Custom Features NO Custom Items Tattos C3 Retail Quest Nobles Custom Events TVT Event DM Event Custom Systems Vote reward system Teleport protection from flagged players Global chat channel for top pvp players Custom Areas Farm Zones Coall Minas Farm Zones Antharas Lair Custom NPC Comsumables Armor & Weapons Npc S.A Special Itens GK Global Other Features Custom Items Clan Penalty - No Penalty Ally Penalty Grade Penalty Spawn Protection = 20sec Sistema AIOx AutoAnnucio SubClass Free www.l2beserk.com
  6. www.l2advanced.com server inaugura dia 13/08/11 Confira !!!!
  7. L2J which revision you are using the l2mk can talk?
×
×
  • Create New...