Jump to content
  • 0

Anti AFK TvT L2jacis or L2jfrozen


Question

7 answers to this question

Recommended Posts

  • 0
Posted (edited)
Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/L2Character.java	(revision 2)
+++ java/com/l2jserver/gameserver/model/actor/L2Character.java	(working copy)
 /**
  * Mother class of all character objects of the world (PC, NPC...)<br>
  * L2Character:<br>
@@ -4420,6 +4420,11 @@
 		final int curY = super.getY();
 		final int curZ = super.getZ();
 		
+		if (isPlayer())
+		{
+			getActingPlayer().setLastXY(curX, curY);
+		}
+		
 		// Calculate distance (dx,dy) between current position and destination
 		// TODO: improve Z axis move/follow support when dx,dy are small compared to dz
 		double dx = (x - curX);
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 2)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -14483,4 +14514,47 @@
 		return _hasCharmOfCourage;
 		
 	}
+	
+	final int[] _lastXY = new int[2];
+	
+	public void setLastXY(int x, int y)
+	{
+		_lastXY[0] = x;
+		_lastXY[1] = y;
+	}
+	
+	public boolean isAfk()
+	{
+		return (getX() == _lastXY[0]) && (getY() == _lastXY[1]);
+	}
+	
+	/** Methods to put inside your event when it start and it stop */
+	
+	Future<?> _task;
+	
+	public void stopAfk()
+	{
+		if (_task != null)
+		{
+			_task.cancel(true);
+			_task = null;
+		}
+	}
+	
+	public void startAfk()
+	{
+		stopAfk();
+
+		_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(() ->
+		{
+			L2World.getInstance().getPlayers().stream().filter(p -> p.isAfk()).forEach(p ->
+			{
+				p.sendMessage("You have been detected as afk.");
+				// Tasks here.
+			});
+			
+		}, 60000, 60000);
+	}
 }
\ No newline at end of file

 

I made you a short code that you can use. 

 

*Note: Make sure to put your boolean method or what you have that checks if player is inside event. Ex. p -> p.isAfk() && p.isInEvent()

Edited by Kara`
  • 0
Posted
1 hour ago, Kara` said:

Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/L2Character.java	(revision 2)
+++ java/com/l2jserver/gameserver/model/actor/L2Character.java	(working copy)
 /**
  * Mother class of all character objects of the world (PC, NPC...)<br>
  * L2Character:<br>
@@ -4420,6 +4420,11 @@
 		final int curY = super.getY();
 		final int curZ = super.getZ();
 		
+		if (isPlayer())
+		{
+			getActingPlayer().setLastXY(curX, curY);
+		}
+		
 		// Calculate distance (dx,dy) between current position and destination
 		// TODO: improve Z axis move/follow support when dx,dy are small compared to dz
 		double dx = (x - curX);
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(revision 2)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java	(working copy)
@@ -14483,4 +14514,47 @@
 		return _hasCharmOfCourage;
 		
 	}
+	
+	final int[] _lastXY = new int[2];
+	
+	public void setLastXY(int x, int y)
+	{
+		_lastXY[0] = x;
+		_lastXY[1] = y;
+	}
+	
+	public boolean isAfk()
+	{
+		return (getX() == _lastXY[0]) && (getY() == _lastXY[1]);
+	}
+	
+	/** Methods to put inside your event when it start and it stop */
+	
+	Future<?> _task;
+	
+	public void stopAfk()
+	{
+		if (_task != null)
+		{
+			_task.cancel(true);
+			_task = null;
+		}
+	}
+	
+	public void startAfk()
+	{
+		stopAfk();
+
+		_task = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(() ->
+		{
+			L2World.getInstance().getPlayers().stream().filter(p -> p.isAfk()).forEach(p ->
+			{
+				p.sendMessage("You have been detected as afk.");
+				// Tasks here.
+			});
+			
+		}, 60000, 60000);
+	}
 }
\ No newline at end of file

 

I made you a short code that you can use. 

 

*Note: Make sure to put your boolean method or what you have that checks if player is inside event. Ex. p -> p.isAfk() && p.isInEvent()

I'm extremely grateful Kara, just get me a single question, I'm using Acis 374, it has no PcInstance.java I believe I have been replaced by Player.java and also does not have ThreadPoolManager.java only ThreadPool.java and also does not have L2Character .java, I believe it has been replaced by Creature.java, if I am wrong could you give me a light? because that slows me down when adding the mod.
I tried putting on the cited files and had errors on the ThreadPool.getInstance ().
Follow the images below;

ThreadPool.java https://imgur.com/r7Kcl9a

Player.java : https://imgur.com/mptTG0A

Creature.java : https://imgur.com/96gP8ao

 

  • 0
Posted

ThreadPool is not using getInstance() anymore - remove it. Simple search over eclipse with ThreadPool would give you an solution. 

  • 0
Posted

if you store somewhere all the players that are in the tvt , instead of World.getInstance().... use the tvt collection about this loop. as main anti-afk this code is good. You can add more conditions and not only checking the location to be more secure 

  • 0
Posted
On 2/28/2022 at 12:31 AM, Kusaty said:

Is work on L2JFROZEN?

Adaption won't be hard for any pack. Also, please consider not to undig old topics. Feel free to create a new one if you struggle.

Guest
This topic is now closed to further replies.


  • Posts

    • Gaining attention on Instagram today is more competitive than ever. Whether you're a content creator, entrepreneur, or influencer, building a loyal audience is essential—but often slow. That’s why many users turn to free Instagram followers to kickstart their growth and establish credibility early. With services like GoupSocial, you no longer have to wait months to build traction. By using tools such as instagram followers panel free and free smm panels, you can gain real followers and reach your goals faster. Why Free Instagram Followers Make a Difference Let’s face it—numbers matter. A higher follower count directly affects how others see your brand or profile. When people visit your account and see a big audience, they’re more likely to trust you, follow you, and engage with your content. Here’s how free Instagram followers impact your account: ✅ Boosted credibility: People associate large followings with trust and value. ✅ Greater reach: The Instagram algorithm favors high-engagement accounts. ✅ Brand appeal: Businesses want to collaborate with profiles that already have visibility. ✅ Faster momentum: Platforms like instagram free followers panel eliminate slow, organic-only growth paths. Add tools like free ig likes every 24 hours, and you're not just growing—you’re staying active and visible across the platform. Top Benefits of Using Free Instagram Followers 1. Gain Social Proof Instantly When visitors see a high follower count, it validates your profile. Tools like idigic Instagram followers allow you to generate this social proof fast—without compromising on quality. 2. Consistent Engagement With Likes and Views Pairing followers with tools like free ig likes every 24 hours ensures your content gets seen and interacted with. The algorithm loves engagement, and this keeps your posts fresh and prioritized. 3. Easier Entry Into Explore Page Profiles with high engagement have a better shot at being featured on trending pages. Platforms like igtools followers can help drive those early signals Instagram uses to recommend content. 4. Save Time While Looking Organic Building your presence takes time—unless you have help. With instagram free followers 100 real services, your account grows quickly and still looks natural, without spammy or fake-looking numbers. 5. Attract Collaborations With Brands Businesses look for influencers who can amplify their message. When your profile has strong numbers—boosted via instagram free followers like and free smm panels—you’re more likely to land partnerships and deals. Is It Safe to Get Free Instagram Followers? Yes, if done correctly. The key is using trusted sources. Some platforms fill your profile with bots, which can get your account flagged or banned. That’s why services like GoupSocial are essential—they deliver real, safe engagement through tools like instagram followers panel free. With idigic Instagram followers or igtools followers, the goal isn’t just more numbers—it’s smart, consistent growth that Instagram’s algorithm can respect. How to Use GoupSocial to Get Free Instagram Followers Getting started is simple: 🖊️ Enter your Instagram username 🎯 Choose the number of followers you want 🚀 Click "submit" and watch your count increase in real time Whether you want to test the waters with a few followers or boost engagement with free ig likes every 24 hours, GoupSocial has the tools to help. The Power of Using Growth Tools Strategically Gaining traction with free Instagram followers isn’t about cheating the system—it’s about working smarter. Using platforms that offer instagram free followers 100 real ensures you don’t just inflate numbers, but also increase your influence. Tools like instagram free followers like, free smm panels, and instagram followers panel free create a foundation of trust, engagement, and visibility. It’s the perfect launchpad for creators who want to focus on content—not on chasing every new follower manually. Start Strong, Grow Smarter Instagram success is no longer reserved for those with large budgets. With the right tools, anyone can build influence. Free Instagram followers from reputable services like GoupSocial help you achieve fast, safe, and impactful growth. Use features like free ig likes every 24 hours, explore tools like idigic Instagram followers, and make use of instagram free followers like strategies to grow with confidence. The power to scale is in your hands—start now and watch your audience thrive.
    • Buying & Selling FFXIV FFXI Horizon Eden and other server
    • Buying & Selling Torn City Cash
    • Added: payment method MidTrans - for Indonesia MercadoPago - for Brazil and etc.
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock