Jump to content

Recommended Posts

Posted

Hello to all guys Today i modify Away code from SySt3MGaM3RFr3aKs link Here I do for the l2j Interlude And i made configs if you wan't to Change How much money you wan't to pay for .away command and you can choose what item :D:D

 

Lets Start:

 

Index: trunk/C6 Server/java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/away.java

===================================================================

--- trunk/C6 Server/java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/away.java (revision 0)

+++ trunk/C6 Server/java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/away.java (revision 0)

Create away.java

And add this code in file:

+/*
+ * 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 net.sf.l2j.gameserver.handler.voicedcommandhandlers;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.handler.IVoicedCommandHandler;
+import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+
+public class away implements IVoicedCommandHandler
+{
+    private static final String[] VOICED_COMMANDS = { "away", "back" };
+    
+
+   public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
+   {
+        if (command.equalsIgnoreCase("away"))
+        {
+        	 if(activeChar.isInJail())
+        		           {
+        		                activeChar.sendMessage("You cannot use this command while you are in Jail!");
+        		                return false;
+        		            }
+        	 if(activeChar.isInOlympiadMode())
+        		           {
+        		                 activeChar.sendMessage("You cannot use this command while you are in the Olympiad now!");
+        		                 return false;
+        		            }
+        	 if (activeChar.isInDuel())
+        		             {
+        		                 activeChar.sendMessage("You cannot use this command while you are in a Duel!");
+        		                 return false;
+        		             }
+        	 if(activeChar.atEvent)
+        		             {
+        		                 activeChar.sendMessage("You cannot use this command while you are in an event!");
+        		                 return false;
+        		             }   
+        	 if (activeChar.inObserverMode())
+        		             {
+        		                activeChar.sendMessage("You cannot use this command while you are in Observer Mode!");
+        		                 return false;
+        		             }
+        	 if (activeChar.isFestivalParticipant())
+    		 				 {
+        		 				activeChar.sendMessage("You cannot use this command while you are in a festival!");
+        		 				return false;
+    		 				 }
+        	if(activeChar.getInventory().getItemByItemId (Config.AWAY_ITEM_ID) != null && +activeChar.getInventory().getItemByItemId(Config.AWAY_ITEM_ID).getCount() >= Config.AWAY_PRICE)
+        	{
+            activeChar.getInventory().destroyItemByItemId("Away", Config.AWAY_ITEM_ID, Config.AWAY_PRICE, activeChar, +activeChar.getTarget());
+            activeChar.sendMessage("You are away from keyboard!");
+            activeChar.getAppearance().setTitleColor(0xFFFF00);
+            activeChar.setTitle("*Away*"); // Title text when somebody is away.
+            activeChar.broadcastUserInfo();
+        	} 
+        	
+        
+        }
+        else
+        	if (command.equalsIgnoreCase("back"))
+    		{
+        	 if(activeChar.isInJail())
+        		{
+        		activeChar.sendMessage("You cannot use this command while you are in Jail!");
+        		return false;
+        		}
+        	 if(activeChar.isInOlympiadMode())
+        		 {
+        		activeChar.sendMessage("You cannot use this command while you are in the Olympiad now!");
+        		return false;
+        		 }
+        	 if (activeChar.isInDuel())
+        		 {
+        		 activeChar.sendMessage("You cannot use this command while you are in a Duel!");
+        		 return false;
+        		 }
+        	 if(activeChar.atEvent)
+        		 {
+        		 activeChar.sendMessage("You cannot use this command while you are in an event!");
+        		 return false;
+        		 }
+        	 if (activeChar.inObserverMode())
+        		 {
+        		 activeChar.sendMessage("You cannot use this command while you are in Observer Mode!");
+        		 return false;
+        		 }
+        	 if (activeChar.isFestivalParticipant())
+        		 {
+        		 activeChar.sendMessage("You cannot use this command while you are in a festival.");
+        		 return false;
+        		 }
+           	activeChar.sendMessage("You Are Back!");
+           	activeChar.setTitle(" ");
+           	activeChar.broadcastUserInfo();
+    		}
+           	return true;
+ 
+	}
+    public String[] getVoicedCommandList()
+    {
+        return VOICED_COMMANDS;
+    }
+}

 

Next Step Go to:

Index: trunk/C6 Server/java/net/sf/l2j/gameserver/GameServer.java

===================================================================

--- trunk/C6 Server/java/net/sf/l2j/gameserver/GameServer.java

+++ trunk/C6 Server/java/net/sf/l2j/gameserver/GameServer.java

Find that Line:
import net.sf.l2j.gameserver.handler.usercommandhandlers.OlympiadStat;
import net.sf.l2j.gameserver.handler.usercommandhandlers.PartyInfo;
import net.sf.l2j.gameserver.handler.usercommandhandlers.Time;
+import net.sf.l2j.gameserver.handler.voicedcommandhandlers.away;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Online;
import net.sf.l2j.gameserver.handler.voicedcommandhandlers.Wedding;



Find that Line :
_log.config("VoicedCommandHandler: Loaded " + _voicedCommandHandler.size() + " handlers.");

And before that line add that:
+
+	if (Config.AWAY_BUY)
+	  _voicedCommandHandler.registerVoicedCommandHandler(new away());
+			

The code will be like this :

if (Config.AWAY_BUY)
					_voicedCommandHandler.registerVoicedCommandHandler(new away());

	_log.config("VoicedCommandHandler: Loaded " + _voicedCommandHandler.size() + " handlers.");

Next go to :

Index: trunk/C6 Server/java/config/L2JMods.properties

===================================================================

--- trunk/C6 Server/java/config/L2JMods.properties

+++ trunk/C6 Server/java/config/L2JMods.properties

Find this :
TvTEventTargetTeamMembersAllowed = true
TvTEventPotionsAllowed = false
TvTEventSummonByItemAllowed = false
# Door id's to close/open on start/end
# ex.: 1;2;3;4;5;6
# no ";" at the start or end
TvTEventDoorsCloseOpenOnStartEnd =
+
+#================================================================
+# Allows user to Use .Away Command
+#----------------------------------------------------------------
+#.Away Enable?
+AlowAway = False
+
+#What the ID of item is need to buy Away ?
+AwayItemID = 57
+
+#How Many Cost Away ?
+AwayPrice = 100000
+

Next Step Go to:

Index: trunk/C6 Server/java/net/sf/l2j/Config.java

===================================================================

--- trunk/C6 Server/java/net/sf/l2j/Config.java

+++ trunk/C6 Server/java/net/sf/l2j/Config.java

 

Find this :
   public static int L2JMOD_WEDDING_TELEPORT_PRICE;
   public static int L2JMOD_WEDDING_TELEPORT_DURATION;
   public static boolean L2JMOD_WEDDING_SAMESEX;
   public static boolean L2JMOD_WEDDING_FORMALWEAR;
   public static int L2JMOD_WEDDING_DIVORCE_COSTS;
+
+//Away System
+    public static boolean AWAY_BUY;
+    public static int AWAY_ITEM_ID;
+    public static int AWAY_PRICE;
+

Find This:
L2JMOD_WEDDING_TELEPORT_DURATION        = Integer.parseInt(L2JModSettings.getProperty("WeddingTeleportDuration", "60"));
               L2JMOD_WEDDING_SAMESEX                  = Boolean.parseBoolean(L2JModSettings.getProperty("WeddingAllowSameSex", "False"));
               L2JMOD_WEDDING_FORMALWEAR               = Boolean.parseBoolean(L2JModSettings.getProperty("WeddingFormalWear", "True"));
               L2JMOD_WEDDING_DIVORCE_COSTS            = Integer.parseInt(L2JModSettings.getProperty("WeddingDivorceCosts", "20"));
+
+AWAY_BUY                           = Boolean.parseBoolean(L2JModSettings.getProperty("AlowAway", "False"));
+AWAY_ITEM_ID                     = Integer.parseInt(L2JModSettings.getProperty("AwayItemID", "57"));
+AWAY_PRICE                         = Integer.parseInt(L2JModSettings.getProperty("AwayPrice", "100000"));
+               

 

That's All guys Test it and working by me :) Enjoy for any Question or problem post here

Cya!!!

Posted

i think thi exist and before.

but w/e

 

Haven't test it yet but i guess you should fix it for oly.

you can be ported into olympiad with that command and no one can hit you since can't even target.

Posted

Haven't test it yet but i guess you should fix it for oly.

you can be ported into olympiad with that command and no one can hit you since can't even target.

Yeah,there is that bug.

 

 

I think i have seen it again this code in mxc,but i am not sure :D

Good work,keep sharing

Posted

I say dude in start :D Is Away code from SySt3MGaM3RFr3aKs and me modify :)

No dude that is only one title ;) No problem with olympiad is only one title!!!!

Edit : No Bug i try now xD:)

Posted

Unlocked.. its not the same code.. altho this code and 's one looks retarded >.> price to get afk? rofl, easier to go into a town xD

Posted
Ok, it's the same but with little configs, http://www.maxcheaters.com/forum/index.php?topic=118507.msg831195#msg831195
Anyway, keep sharing.

read my post!!

modify Away code from SySt3MGaM3RFr3aKs

Guest
This topic is now closed to further replies.


  • Posts

    • i saw somewhere that: $var = (int) $_POST['some_id'] ?? string::error_class('text'); it was when i gave up and deleted the sources let him, he does not even understand what cross site or mitm means   still waiting for any client of yours so i can play with them     DUDE IM GONNA CALL YOU BoberKurwa FROM NOW ON!! rename your account aswell! BoberKurwa!   Note: what happend to your chatgpt answers boberkurwa did your subscription of $12.5/$20 ended?   it is PSR12 standard
    • if i was you i would check first argentinian developer team to learn and contribute then start my own project privatly and then practice in free coding for my self, then you would be ready to learn standards and code out of nothing, and if you fail means you are in good path, if you win you are in for higher level, whatever you do be persistent and focused, thats what i did when i had time.
    • Dude, seriously , how are you okay with publishing something like this as a public repo? I spent just 30 minutes reviewing your source code and already managed to bypass your API wall on the admin routes. You really need to rethink your server to client logic. What's the point of saving data both to your API and to the user's database? You first fetch the servers from your API and then save them to the database. What’s stopping someone from simply fetching their server data directly from the database and bypassing all the API logic? The client you provide as a public repo should only act as a wrapper around your service API and that's it. The API should handle all the logic, including connecting to the corresponding servers based on  authentication key requests and so on. I don't even want to get started on the fact that your codebase is a complete mess...... unused variables  everywhere, empty classes, and zero input validation. Anyone can pass whatever payload they want without restrictions. You seriously need to fix these issues before some poor guy who has no idea ends up buying your service. And don’t even start with "I'm still waiting for my server to get hacked" because  no one is going to waste time trying to hack something that's not even worth the effort. just by checking this im 90% confident someone can find something.  Also, you claim that 250 domains are already using your service? I seriously doubt that.   also LOL   
    • 🌟 Arena Fights – PvP System for Lineage II servers 📋 Overview The Arena Fights Manager is a fully automated and battle-proven PvP tournament system built for Lineage 2 servers (based on aCis pack standards). It offers hourly or custom-scheduled 1v1 fights, spectator options, disconnection handling, automatic NPC managers, and dynamic rescheduling, ensuring continuous and engaging PvP without the need for GM intervention. Ideal for any serious server that wants to offer competitive, organized, rewarding PvP content.   ⚙️ Features ✅ Full Automation Automatic start/stop based on your custom schedule (Config.ARENA_FIGHTS_SCHEDULE). Reschedules every day at 23:59 for the next day's tournaments. Server restarts during an event? No problem — the system self-detects and continues! ✅ Matchmaking System Smart queue system for 1v1 match creation. Automatic pairing: when two players are queued, a match is instantly created. Validation checks to remove disconnected or invalid players from the queue. ✅ Dynamic PvP Arenas Predefined player teleport locations for fair 1v1 battles. Spectator mode available: players can view live battles through the event interface. ✅ NPC Manager Control Spawns special Arena Manager NPCs during event times. NPCs are deleted when the event finishes to keep the world clean. Multiple Managers can be placed easily. ✅ Robust Player Handling Handles disconnects gracefully: Saves disconnected players. Restores them to a safe location on reconnection. Removes them from the queue or match without crashes or bugs. Players receive a system message upon restoration. ✅ Clean Coding Practices Fully integrated with ThreadPool tasks for efficient, non-blocking performance. Uses CopyOnWriteArrayList for thread-safe collections (queues, matches, disconnected players). Singleton Pattern ensures only one Arena Manager instance exists. ✅ Visual Enhancements World Announcements during important event phases ("Arena Fights have started!", "Battles are over!"). Red Sky Effect (ExRedSky) during Arena start and end for immersive atmosphere. ✅ Admin-Friendly Commands Allows NPC broadcast announcements. Easy to check current running matches and spectate them. Display list of ongoing matches dynamically.   📦 Technical Highlights Built with a modular and clean structure. Zero dependency on hardcoded values — everything configurable via the server Config. Handles dynamic spawning and safe deletion of NPCs through SpawnTable. Utilizes InstanceManager to safely handle player instances.   🎯 Why Choose This Arena System? Feature Other           Arena Fights Disconnection handling ❌ ✅ Fully automatic scheduling ❌ ✅ Daily rescheduling ❌ ✅ Manager NPC auto-spawn/despawn ❌ ✅ Queue matchmaking without GMs ❌ ✅ Clean code with thread-safety ❌ ✅ Integrated visual effects (Red Sky) ❌ ✅ Instant spectating capabilities ❌ ✅ 📈 Expandability Can be adapted to reward players with custom currencies (e.g., Arena Trophy). Could integrate ranking systems based on wins/loses. Room to add betting systems for spectators!   🔥 Screenshots / Preview (Optional) Lobby NPC screenshots Battle happening Spectator UI Disconnection restoration notification   💬 Final Words The Arena Fights Manager is not just a PvP mini-event — it's a major daily PvP engine that will boost: Player activity Server competitiveness Community engagement   It’s optimized for performance, designed for smoothness, and built for growth.   🛒 Available for purchase! Interested? Contact me and let's make your server shine.   PM me directly for inquiries and purchases. Discord: @Luminous   Pricing: Full License: 70e (One-time payment) Support & Updates: included on full licence
  • Topics

×
×
  • Create New...