Jump to content
  • 0

PvP Flag When leaving a chaotic zone


Question

Posted (edited)

Hello once again dear users.

 

In every chaotic Zone (auto flag) out there, the target instantly loses the pvp flag when it leaves the pvp zone, instead of losing it the normal way, some 15 seconds afters (blinking purple/white). 

In my experience, that is not a good thing cause people will simply run out the zone to run from pvp.

I tried to fix that by using a few things, but none worked correctly. In my attempts so far, the target takes flag when runing out, but it will never go away. To make it disapear I need to relog.

Most of the times, that is what happens.

I looked in the SiegeZone.java to check how it worked there, and tried that as well, but in that case the Flag stays just for 1 second and disapear (But it works corrrectly when in siege).

In the shared MultiFunctionZone.java, it is set like this: 

 

            if(pvp_enabled)
                activeChar.stopPvPFlag();  (instantly removes the flag)

 

So I tried to use the same method used for siege zone:

 

            if (character instanceof L2PcInstance)
            {
                ((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.LEFT_COMBAT_ZONE));
                
                // Set pvp flag
                if (((L2PcInstance) character).getPvpFlag() == 0)
                {
                    ((L2PcInstance) character).startPvPFlag();
                }
            }
        }

 

But it doesnt work like in a siege zone.

 

I Also tried something like this:

 

                if (activeChar.getPvpFlag() != 0)
                    activeChar.setPvpFlag(0);
                activeChar.updatePvPFlag(1); 

With this, the target will get pvp flag when it run out the flag zone, but the flag will never go aways like it was intented.

 

Any help pls?

Im using l2jfrozen 1118

 

 

Edited by tiguz

Recommended Posts

  • 0
Posted (edited)

you can add your flag system 

_PvPRegTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new PvPFlag(), 5000, 5000);

but on exit do cansel task and use normal

 

if (activeChar.getPvpFlag() == 1)

{

_PvPRegTask.cansel(true);

activeChar.updatePvPFlag(2);

}

Edited by tazerman2
  • 0
Posted
5 hours ago, tiguz said:

I took the time to download aCis and adapt a flag zone to it just to test, and the outcome is the same as in l2jfrozen: the flags stays forever, no matter what code I try lol. I ran out of ideas to fix it.

Cause you did it wrong..

What i did in my zone its to put onexit only task like sieges and some checks l2pcinstance if players is in this zone do not take karma and dont use cntrl to hit someone

  • 0
Posted
		+import com.l2jfrozen.Config;


		if (character instanceof L2PcInstance)
		{
			((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.LEFT_COMBAT_ZONE));
		
			// Set pvp flag
			if (((L2PcInstance) character).getPvpFlag() != 0)
			{
				((L2PcInstance) character).setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_NORMAL_TIME);
				((L2PcInstance) character).startPvPFlag();
			}
		}

I had the same problem yesterday but after some time of trying different stuff, I fixed it :) tell me if that works for you :)

  • 0
Posted (edited)
1 hour ago, BloodRav3N said:

		+import com.l2jfrozen.Config;


		if (character instanceof L2PcInstance)
		{
			((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.LEFT_COMBAT_ZONE));
		
			// Set pvp flag
			if (((L2PcInstance) character).getPvpFlag() != 0)
			{
				((L2PcInstance) character).setPvpFlagLasts(System.currentTimeMillis() + Config.PVP_NORMAL_TIME);
				((L2PcInstance) character).startPvPFlag();
			}
		}

I had the same problem yesterday but after some time of trying different stuff, I fixed it :) tell me if that works for you :)

This works, but it causes a new problem: If the char returns to the flag zone,  already flagged, the flag will disapear inside the zone and will never come back, even if it leaves and enters again.

Edited by tiguz
  • 0
Posted
3 hours ago, tazerman2 said:

you can add your flag system 


_PvPRegTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new PvPFlag(), 5000, 5000);

but on exit do cansel task and use normal

 

if (activeChar.getPvpFlag() == 1)

{

_PvPRegTask.cansel(true);

activeChar.updatePvPFlag(2);

}

Lets test your code, brb.

  • 0
Posted
4 hours ago, tazerman2 said:

you can add your flag system 


_PvPRegTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new PvPFlag(), 5000, 5000);

but on exit do cansel task and use normal

 

if (activeChar.getPvpFlag() == 1)

{

_PvPRegTask.cansel(true);

activeChar.updatePvPFlag(2);

}

_PvPRegTask.cancel(true); => "cannot be resolved"

  • 0
Posted (edited)

add this onEnter : 

 

            if (character instanceof L2PcInstance)
            {         
        			// Set pvp flag
        			if (((L2PcInstance) character).getPvpFlag() == 0)
        			{
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
        			if (((L2PcInstance) character).getPvpFlag() != 0)
        			{
        				((L2PcInstance) character).stopPvPFlag();
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
            }

Works for me :)

 

Edit: If your pvp points doesnt count then you have to do this:

-character.setInsideZone(ZoneId.MULTI_FUNCTION, true);
+character.setInsideZone(ZoneId.MULTI_FUNCTION, false);

Im just saying cause i had this problem :)

Edited by BloodRav3N
  • 0
Posted
17 minutes ago, BloodRav3N said:

add this onEnter : 

 


            if (character instanceof L2PcInstance)
            {         
        			// Set pvp flag
        			if (((L2PcInstance) character).getPvpFlag() == 0)
        			{
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
        			if (((L2PcInstance) character).getPvpFlag() != 0)
        			{
        				((L2PcInstance) character).stopPvPFlag();
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
            }

Works for me :)

Worked like a charm! Thank you for putting an end to this =P Really!

  • 0
Posted
23 minutes ago, BloodRav3N said:

add this onEnter : 

 


            if (character instanceof L2PcInstance)
            {         
        			// Set pvp flag
        			if (((L2PcInstance) character).getPvpFlag() == 0)
        			{
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
        			if (((L2PcInstance) character).getPvpFlag() != 0)
        			{
        				((L2PcInstance) character).stopPvPFlag();
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
            }

Works for me :)

 

Edit: If your pvp points doesnt count then you have to do this:


-character.setInsideZone(ZoneId.MULTI_FUNCTION, true);
+character.setInsideZone(ZoneId.MULTI_FUNCTION, false);

Im just saying cause i had this problem :)

 

better

 


        			if (((L2PcInstance) character).getPvpFlag() >= 0)
        			{
        				((L2PcInstance) character).stopPvPFlag();
        				((L2PcInstance) character).updatePvPFlag(1);
        			}
  • 0
Posted
11 minutes ago, tazerman2 said:

 

better

 



        			if (((L2PcInstance) character).getPvpFlag() >= 0)
        			{
        				((L2PcInstance) character).stopPvPFlag();
        				((L2PcInstance) character).updatePvPFlag(1);
        			}

Works too! Thank you!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • Posts

    • Hey MaxCheaters! 👋 Introducing L2Soon.com — a free international platform for Lineage 2 server announcements.   Why L2Soon? No more searching through dozens of forums and Discord servers. All new L2 server openings are in one place — updated daily, with real player online counts so you always know where people actually play.   Features: 🔔 Telegram Bot (@l2Soon_bot) — alerts 24h & 1h before server launch 📅 Accurate launch times — in your local timezone ⚔️ All chronicles — Interlude, High Five, GoD, Classic, Essence, Grand Crusade and more 🎯 Filters — by chronicle, rates (x1–x1000+) and server type (PvP, RvR, GvE, Craft, Low Rate...) ⭐ VIP servers — verified projects pinned at the top 🌍 Multi-language — EN, UK, RU, PT   Listing is completely FREE. 🔗 https://l2soon.com/en Feedback welcome — drop a comment or contact us via Telegram @l2Soon_bot
    • Download Lobby u need island for lobby Download Crow Island  
    • Website: https://l2elixir.org/ Discord: https://discord.gg/5ydPHvhbxs    
    • L2-LORENA x100 MID RATE   Interlude Nostalgia Meets Modern Gameplay   OFFICIAL OPENING:  April 4 (Saturday)  19:00 UTC+1 ⸻  MAIN INFORMATION  Adena: x5  Drop: x10  Spoil: x10  Raid Boss: x10  Seal Stones: x2  Quests: x10 ⸻  FEATURES  GM Shop up to B-Grade  Full Buffer  Premium System (x2 bonuses)  AutoFarm – FREE for everyone ⸻  SERVER CONCEPT  Classic Interlude nostalgia  Enhanced with modern interface & mechanics  Balanced PvP & PvE gameplay  Active development & custom features ⸻  WHY JOIN L2-LORENA?  No Pay-to-Win  Smooth gameplay & stable server  Competitive PvP environment  Friendly & active community ⸻  JOIN US NOW L2-LORENA 100X <<< LINK Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr   L2-LORENA Link << Discord: https://discord.gg/TYZ88Tgx4b  Facebook: https://www.facebook.com/share/18kwbkaYZY/?mibextid=wwXIfr
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..