-
Posts
161 -
Joined
-
Last visited
-
Days Won
2 -
Feedback
100%
Content Type
Articles
Profiles
Forums
Store
Everything posted by HeadHunter
-
Hello everyone we open the server (Beta) for 1 week.After we will open it official when our site is ready to upload patches/client.You are all wellcome to join to our server commiunity! ================== -Bot Protection/DDos Protection -Full Geodata Server rates: XP=300x SP=300x Adena=400x ================== -Enchant rates: Safe +4/Max +25 70% Enchant rate ================== NPC: - Augmenter Manager - PvP/PK List - GM Shop - Gatekeeper - Warehouse Manager - Anti PK - Scheme buffer - Noblesse Manager (no need to make subclass to be noblesse) - Clan reputation Manager ====================== 3 Farming Areas[PvP] lvl up Area[safe] ====================== -Offline shop Sell/Buy/craft(stay in offline mode for 10 days!) -Ballance classes -99% Skills work -Accounts Autocreate(you can change password with command [.changepassword]) -Dynasty items can wear it at 76 lvl - PvP Color system ( name ) - PK Color system ( title ) - Announce castle lord in login - Vote reward system configurable ( topzone / hopzone ) - Raid boss spawn announce - Custom Anti-PK NPC ( it attacks only pk ) ====================== - Rabbit event, race event and eplies events now are automatic ( rabbit - 120 /mins elpies - 240 /mins race - 360 mins) -CTF Event starts auto at every 2 hours, TVT too. I mean at every hour tvt/ctf is activated ( never both at same time ) ====================== We will wait for you! Here is the Patch path(site is under build we gonna finish it soon) http://www.4shared.com/rar/CXa_Klad/system.html
-
Thanks for share mate!Can you tell us for what chronicle is it?Only for IL or and for others?
-
www.L2-Abyss.com New IL Custom PvP x1000 server is Open!Custom Armors(Black Vesper-Dynasty),Custom Weapons(Black Vesper),Tattoos,Custom jewels(Everything with balance stats).Check it if you want we need players.
-
Request interlude wiht Custum Dynasty
HeadHunter replied to carlosalexandre's topic in [Request] Private Servers
www.L2-Abyss.com New custom PvP Interlude x1000 server with Customs armors-weapons-tattoos-jewels(all with balance stats). -
www.L2-Abyss.com New PvP server is up is new and we need people all is balanced and all work fine.Check it if you want.
-
Hello Everyone i found this Offline Trader/Crafter for Interlude Only and i wanna share it with you. Here is the Code: Index: java/config/l2jmods.properties =================================================================== --- java/config/l2jmods.properties (revision 4) +++ java/config/l2jmods.properties (working copy) @@ -132,3 +132,18 @@ # ex.: 1;2;3;4;5;6 # no ";" at the start or end TvTEventDoorsCloseOpenOnStartEnd = + +# ============================================================ +# OFFLINE TRADE & CRAFT +# ============================================================ +# Enable or Disable Offline Trade & Craft +AllowOfflineTrade = true +AllowOfflineCraft = true + +# This option sets the target color +# Use true/false to enable color +# Default: none +OfflineTargetColor = true + +# Requires OfflineTargetColor, Trade/Craft Configs enabled +OfflineColor = FF00FF \ No newline at end of file Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 4) +++ java/net/sf/l2j/Config.java (working copy) @@ -882,6 +882,11 @@ public static boolean L2JMOD_WEDDING_FORMALWEAR; public static int L2JMOD_WEDDING_DIVORCE_COSTS; + public static boolean ALLOW_OFFLINE_TRADE; + public static boolean ALLOW_OFFLINE_CRAFT; + public static boolean OFFLINE_TARGET_COLOR; + public static int OFFLINE_COLOR; + // Packet information /** Count the a-beep-t of packets per minute ? */ public static boolean COUNT_PACKETS = false; @@ -1859,6 +1864,11 @@ L2JMOD_WEDDING_FORMALWEAR = Boolean.parseBoolean(L2JModSettings.getProperty("WeddingFormalWear", "True")); L2JMOD_WEDDING_DIVORCE_COSTS = Integer.parseInt(L2JModSettings.getProperty("WeddingDivorceCosts", "20")); + ALLOW_OFFLINE_TRADE = Boolean.parseBoolean(L2JModSettings.getProperty("AllowOfflineTrade", "false")); + ALLOW_OFFLINE_CRAFT = Boolean.parseBoolean(L2JModSettings.getProperty("AllowOfflineCraft", "false")); + OFFLINE_TARGET_COLOR = Boolean.parseBoolean(L2JModSettings.getProperty("OfflineTargetColor", "false")); + OFFLINE_COLOR = Integer.decode("0x" + L2JModSettings.getProperty("OfflineColor", "FFFFFF")); + if (TVT_EVENT_PARTICIPATION_NPC_ID == 0) { TVT_EVENT_ENABLED = false; Index: java/net/sf/l2j/gameserver/clientpackets/Logout.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/Logout.java (revision 4) +++ java/net/sf/l2j/gameserver/clientpackets/Logout.java (working copy) @@ -106,6 +106,13 @@ } TvTEvent.onLogout(player); + + if ((player.isInStoreMode() && Config.ALLOW_OFFLINE_TRADE) || (player.isInCraftMode() && Config.ALLOW_OFFLINE_CRAFT)) + { + player.closeNetConnection(); + return; + } + RegionBBSManager.getInstance().changeCommunityBoard(); player.deleteMe(); Index: java/net/sf/l2j/gameserver/clientpackets/RequestJoinParty.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/RequestJoinParty.java (revision 4) +++ java/net/sf/l2j/gameserver/clientpackets/RequestJoinParty.java (working copy) @@ -96,6 +96,12 @@ return; } + if (target.getClient().isDetached()) + { + requestor.sendMessage("Player is in offline mode."); + return; + } + if (target.isInOlympiadMode() || requestor.isInOlympiadMode()) return; Index: java/net/sf/l2j/gameserver/clientpackets/Say2.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/Say2.java (revision 4) +++ java/net/sf/l2j/gameserver/clientpackets/Say2.java (working copy) @@ -166,6 +166,13 @@ if (receiver != null && !BlockList.isBlocked(receiver, activeChar)) { + + if (receiver.getClient().isDetached()) + { + activeChar.sendMessage("Player is in offline mode."); + return; + } + if (Config.JAIL_DISABLE_CHAT && receiver.isInJail()) { activeChar.sendMessage("Player is in jail."); Index: java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java =================================================================== --- java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java (revision 4) +++ java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminEditChar.java (working copy) @@ -34,6 +34,7 @@ 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.ClassId; +import net.sf.l2j.gameserver.network.L2GameClient; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.serverpackets.CharInfo; import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage; @@ -658,10 +659,26 @@ */ private void findCharactersPerIp(L2PcInstance activeChar, String IpAdress) throws IllegalArgumentException { - if (!IpAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$")) - throw new IllegalArgumentException("Malformed IPv4 number"); + //if (!IpAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$")) + // throw new IllegalArgumentException("Malformed IPv4 number"); + + boolean findDisconnected = false; + + if (IpAdress.equals("disconnected")) + { + findDisconnected = true; + } + else + { + if (!IpAdress.matches("^(?:(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))\\.){3}(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2(?:[0-4][0-9]|5[0-5]))$")) + throw new IllegalArgumentException("Malformed IPv4 number"); + } + Collection<L2PcInstance> allPlayers = L2World.getInstance().getAllPlayers(); L2PcInstance[] players = allPlayers.toArray(new L2PcInstance[allPlayers.size()]); + + L2GameClient client; + int CharactersFound = 0; String name,ip="0.0.0.0"; TextBuilder replyMSG = new TextBuilder(); @@ -669,13 +686,35 @@ adminReply.setFile("data/html/admin/ipfind.htm"); for (int i = 0; i < players.length; i++) { - ip=players[i].getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress(); - if (ip.equals(IpAdress)) - { - name = players[i].getName(); - CharactersFound = CharactersFound+1; - replyMSG.append("<tr><td width=80><a action=\"bypass -h admin_character_list "+name+"\">"+name+"</a></td><td width=110>" + players[i].getTemplate().className + "</td><td width=40>"+players[i].getLevel()+"</td></tr>"); + //ip=players[i].getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress(); + //if (ip.equals(IpAdress)) + client = activeChar.getClient(); + if (client.isDetached()){ + //name = players[i].getName(); + //CharactersFound = CharactersFound+1; + //replyMSG.append("<tr><td width=80><a action=\"bypass -h admin_character_list "+name+"\">"+name+"</a></td><td width=110>" + players[i].getTemplate().className + "</td><td width=40>"+players[i].getLevel()+"</td></tr>"); + if (!findDisconnected) + { + continue; + } } + else + { + if (findDisconnected) + { + continue; + } + else + { + ip=players[i].getClient().getConnection().getSocketChannel().socket().getInetAddress().getHostAddress(); + if (!ip.equals(IpAdress)) + continue; + } + } + name = activeChar.getName(); + CharactersFound = CharactersFound + 1; + replyMSG.append("<tr><td width=80><a action=\"bypass -h admin_character_list " + name + "\">" + name + "</a></td><td width=110>" + activeChar.getTemplate().className + "</td><td width=40>" + activeChar.getLevel() + "</td></tr>"); + if (CharactersFound > 20) break; } Index: java/net/sf/l2j/gameserver/model/L2ClanMember.java =================================================================== --- java/net/sf/l2j/gameserver/model/L2ClanMember.java (revision 4) +++ java/net/sf/l2j/gameserver/model/L2ClanMember.java (working copy) @@ -120,7 +120,16 @@ public boolean isOnline() { - return _player != null; + //return _player != null; + if (_player == null) + return false; + if (_player.getClient() == null) + return false; + if (_player.getClient().isDetached()) + return false; + + return true; + } /** Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 4) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -3342,7 +3342,18 @@ { if (_client != null) { - _client.close(new LeaveWorld()); + //_client.close(new LeaveWorld()); + if (_client.isDetached()) + { + _client.cleanMe(true); + } + else + { + if (!_client.getConnection().isClosed()) + { + _client.close(new LeaveWorld()); + } + } } } Index: java/net/sf/l2j/gameserver/network/L2GameClient.java =================================================================== --- java/net/sf/l2j/gameserver/network/L2GameClient.java (revision 4) +++ java/net/sf/l2j/gameserver/network/L2GameClient.java (working copy) @@ -39,6 +39,7 @@ import net.sf.l2j.gameserver.model.L2World; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.entity.L2Event; +import net.sf.l2j.gameserver.model.entity.TvTEvent; import net.sf.l2j.gameserver.serverpackets.L2GameServerPacket; import net.sf.l2j.gameserver.serverpackets.UserInfo; import net.sf.l2j.util.EventData; @@ -77,13 +78,16 @@ // Task protected /*final*/ ScheduledFuture _autoSaveInDB; - + protected ScheduledFuture<?> _cleanupTask = null; + // Crypt public GameCrypt crypt; // Flood protection public byte packetsSentInSec = 0; public int packetsSentStartTick = 0; + + private boolean _isDetached = false; public L2GameClient(MMOConnection<L2GameClient> con) { @@ -179,9 +183,21 @@ public void sendPacket(L2GameServerPacket gsp) { + if (_isDetached) return; + getConnection().sendPacket(gsp); gsp.runImpl(); } + + public boolean isDetached() + { + return _isDetached; + } + + public void isDetached(boolean b) + { + _isDetached = b; + } public L2PcInstance markToDeleteChar(int charslot) throws Exception { @@ -225,6 +241,13 @@ return null; } + @Override + public void closeNow() + { + super.getConnection().close(null); + cleanMe(true); + } + public L2PcInstance deleteChar(int charslot) throws Exception { //have to make sure active character must be nulled @@ -518,17 +541,82 @@ } } - class DisconnectTask implements Runnable - { + class DisconnectTask implements Runnable + { - /** - * @see java.lang.Runnable#run() - */ - public void run() - { - try - { - // Update BBS + /** + * @see java.lang.Runnable#run() + */ + public void run() + { + boolean fast = true; + + try + { + isDetached(true); + + L2PcInstance player = L2GameClient.this.getActiveChar(); + if (player != null) + { + if (!player.isInOlympiadMode() && player.isInsidePeaceZone(player) && !player.isInDuel() && + !player.getParty().isInDimensionalRift() && !player.isFestivalParticipant() && + !player.atEvent && !player.isInJail()) + { + if ((player.isInStoreMode() && Config.ALLOW_OFFLINE_TRADE) || (player.isInCraftMode() && Config.ALLOW_OFFLINE_CRAFT)) + { + player.leaveParty(); + if (Config.OFFLINE_TARGET_COLOR) + { + player.getAppearance().setNameColor(Config.OFFLINE_COLOR); + player.broadcastUserInfo(); + } + + return; + } + } + if (player.isInCombat()) + { + fast = false; + } + } + cleanMe(fast); + } + catch (Exception e1) + { + _log.warning("Error while disconnecting client."); + } + } + } + + public void cleanMe(boolean fast) + { + try + { + synchronized(this) + { + if (_cleanupTask == null) + { + _cleanupTask = ThreadPoolManager.getInstance().scheduleGeneral(new CleanupTask(), fast ? 5 : 15000L); + } + } + } + catch (Exception e1) + { + _log.warning("Error during cleanup."); + } + } + + + class CleanupTask implements Runnable + { + /** + * @see java.lang.Runnable#run() + */ + public void run() + { + try + { + // Update BBS try { RegionBBSManager.getInstance().changeCommunityBoard(); @@ -555,8 +643,14 @@ { player.removeSkill(SkillTable.getInstance().getInfo(4289, 1)); } - // notify the world about our disconnect - player.deleteMe(); + + // to prevent call cleanMe() again + + if(isDetached()){ + isDetached(false); + }else + // notify the world about our disconnect + player.deleteMe(); try { Index: java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java =================================================================== --- java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (revision 4) +++ java/net/sf/l2j/gameserver/network/L2GamePacketHandler.java (working copy) @@ -49,6 +49,9 @@ // implementation public ReceivablePacket<L2GameClient> handlePacket(ByteBuffer buf, L2GameClient client) { + if (client.isDetached()) + return null; + int opcode = buf.get() & 0xFF; ReceivablePacket<L2GameClient> msg = null; Credits By sk0rpi0n
-
L2 Abyss Interlude PvP Server is Open from 15/1/12
HeadHunter replied to HeadHunter's topic in Private Servers
Ok guys i add more info from server. -
Server Rates: ======================== *XP:1000x *Enchant Rates:68% *SP:1000x *Blessed Scrolls:85% *Adena:800x *Crystall Scrolls:100% ======================== Safe-Max Enchant: *Safe-Max Enchant for Weapons:+3/+25 *Safe-Max Enchant for Armors-Jewels:+3/+20 ======================== Server Npc and Customs: *Custom GM-Shop(Full) *Custom Augmenter(Stuck Augments) *Custom Npc-Buffer(3 hours buffs)[46 Buff] *Custom Skill Enchanter(All classes to 1 Npc) *Custom Farming Areas *Custom Class Changer(1rst/2nd/3rd class) *Custom Armors(Black Vesper)/(Dynasty) *Custom Weapons(Black Vesper) *Custom Jewels(Black Vesper) *Custom Tattoss *More Customs comming soon* **All is with Ballance Stats** ===================== Events: *TvT *RaidBoss *Hide and seek *Other GM Events ====================== Custom Areas: *Leveling Area(1-75lvl) *Farm Area No1(Ruins of Despair[boosted xp-sp/drops adena-AA-Silver Abyss Coins]) *Farm Area No2(DVC[boosted xp-sp/drops adena-AA-Blood Abyss Coins]) *Farm Area No3(Cave of Trials[boosted xp-sp drops adena-Gold Abyss Coins]) *Custom Raid Bosses (At farming Areas drops BEWS/BEAS/Gold Bars/Clan Eggs) And mutch more.Visit us to our site for more info..We recruiting Players to play www.L2-Abyss.com
-
ty gia to share
-
If you don't log you can't understand if server is sucks only from website...And i say is just for few days this site...omg dude. Download pach log on server check if you find just 1 bug and after say "sucks".
-
You are wellcome all guys the server is 2 days old server and we recruiting people.If you like it and stay speak to friends to join us pliz.Thanks all.
-
Server Rates: XP=x300/SP=x300/Adena-x400 ====================================================================================================== Enchant Rates: Safe+3 Max+25(for Weapons) Max+20(For Armors and Jewels) ====================================================================================================== Enchant Change: Normal Scrolls 68% Blessed Scrolls 85% Crystall Scrolls 100% ====================================================================================================== Server Customs: GM-Shop/Epic Shop/Custom Farming Areas(With boosted xp/sp/adena)/NPC-Buffer(3 hours full buffs)/Epic Weapons/TvT and much more.Join us!!! www.L2-Warzone.com.nu
-
[Help]For seting up a server
HeadHunter replied to MyDarLinG's question in Request Server Development Help [Greek]
Katevase allh ekdosh ths java -
[Share]L2 Java Website
HeadHunter replied to ™PoKoPikO*'s topic in Website Templates & Themes (Free)
Perfect Site guys Thanks for share -
[SHARE]L2 Website Coded + Many .PSD
HeadHunter replied to randomnamehere's topic in Website Templates & Themes (Free)
Thanks for share dude.You made very good work +1 from me. -
File apla eisai tsakali.+1 apo emena
-
The UCOZ is just for to connect in my server to have just on site after when server have manny ppl ON i will buy "com" this is not reason to say all this...first test the server and after speak.Cu Regards By [*HEadHunter*]
-
Re Guys...Psaxnw psaxnw Kai Den Vriskw..!!!!
HeadHunter replied to trel4r4s's topic in Client Development Discussion
File mporeis na katevaseis ena opoiodhpote Pack (gia l2j milaw) kai na katseis na peraseis ena ena ta sql arxeia sto Navicat kai tha einai apeiraxta meta mporeis na kaneis oses tropopoihseis thes esy. Lineage][Warzone Admin http://L2-warzone.ucoz.com -
[Guide]Πως να κάνεις No-Ip
HeadHunter replied to ZeRo*'s topic in Server Development Discussion [Greek]
Ama dyskoleueste me to No-IP yparxei akomh enas tropos apla pante se auto to site:www.dyndns.com To site auto apla sou onomazei thn IP sou me ena onoma.Sthn synexeia ama thelete na kanete ton server sas Global apla ekei pou xreiazetai na valete thn IP sas + (to l2.ini mesa sto system) tha vazete to onoma pou exete kanei paradeigma : [badboy.dyndns.org]. -
Paides kserw ta panta gia na kanw enan server+na kanw diafora pramata mesa se auton (opws ekana dld) apla den exw dhkwsei pote server Global.To erwthma mou einai gia na ton sikosw kai na xwraei peripou 500-700 atoma prepei na valw Windows Server?H kanoun kai ta Home Edition?parakalw epikoinwnhste mazi mou sto kamenos21@hotmail.com.Opoios thelei voitheia sxetika me stisimo server as me kanei add sto MSN mporw na voithisw sxedon sta panta.Eyxaristw
-
How can I add weapons to my server?
HeadHunter replied to chris08's topic in Client Development Discussion
1)Download the File and after extract it...2)open the Files and you will find (server files/Client files)...3)In server files you will find the Gameserver-stats-Weapons-and the html file with the ID of Weapons (px 1900-1910.html) copy and paste it in your pack to [Gameserver-data-stats-weapon and paste it there]...4)open the Navicat and open the L2jdb Right click on it and press execute path file.Find the SQL file from the downloaded file and press execute.5)in client file you will find armorgrp.txt and itemname-e.txt.Open fileedit and encrypt the armorgrp(is in your System folder open it after open the armorgrp.txt with notepad and copy everything have inside and paste them in armorgrp in the last line save it in 413...6) you will make the same thing with the other one.7)copy and paste all systextures in your client and gg...
