Jump to content

tiguz

Members
  • Posts

    177
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Posts posted by tiguz

  1. 1 hour ago, Tryskell said:

     

    PS2 : you should check castle/siege zone, it does exactly what you want during sieges (pvp flag on zone leave).

     

    https://xp-dev.com/trac/aCis_public/browser/acis_public/aCis_gameserver/java/net/sf/l2j/gameserver/model/zone/type/L2SiegeZone.java

    Im using frozen. I tried using the same methods in siege zone, but then the flag will never go away and to remove it the char must relog.

    The siege onExit is like this:

    protected void onExit(final L2Character character)
    	{
    		if (_castle.getSiege().getIsInProgress())
    		{
    			character.setInsideZone(L2Character.ZONE_PVP, false);
    			character.setInsideZone(L2Character.ZONE_SIEGE, false);
    			
    			if (character instanceof L2PcInstance)
    			{
    				((L2PcInstance) character).sendPacket(new SystemMessage(SystemMessageId.LEFT_COMBAT_ZONE));
    				
    				// Set pvp flag
    				if (((L2PcInstance) character).getPvpFlag() == 0)
    				{
    					((L2PcInstance) character).startPvPFlag();
    				}
    			}
    		}

    For some reason the method "startPvPFlag(); or updatePvPFlag(1) makes the flag status stays forever =/

  2. 26 minutes ago, Tryskell said:

    Setting

    
    updatePvPFlag

    to 2.

    That worked! But then instead of staying 5 seconds in flag mode, the target goes to blinking phase straight away after leaving zone.

    So we have 2 scenarios, with updatepvpflag(1) the blinking phase doesnt happen...With updatepvpflag(2) the blinking phase happens straight away, instead of hapenning after 5 seconds of perm flag!

    Thank you @Tryskell so far!

  3. So i tested something new:

     

    I created a startPvPFlag2 on l2character.java with 5seconds flag time after leaving pvp zone:

     /**
    	  * Start pvp flag.
    	  */
    	 public void startPvPFlag2()
    	 {
    	   updatePvPFlag(1);
    	  
    	 _PvPRegTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new PvPFlag(), 5000, 5000);
    	 }
    	 

    Then I added startPvPFlag2() on onExit

     

    It works and gives me 5 seconds of flag time, but then it simply disapear alltogether instead of going to the phase of blinking purple/white like the standard pvp system. How can I add the blinking phase?

  4. 1 hour ago, SweeTs said:

    Solution was given your doing something wrong. Else try to use while method updatePvpFlag or whatever it is on frozen. 

    I tested with the codes everybody gave me, but with those methods the flag will never go away. it stays forever.

    I tested too with updatePvpFlag, same outcome.

     

    I tested with it like this:

    L2PcInstance player = character.getActingPlayer();
                player.setPvpFlagLasts(System.currentTimeMillis() + 3000);
                player.sendMessage("You Have Left The Chaotic Zone."); 
     

    Also like this:

          L2PcInstance player = character.getActingPlayer();
                player.updatePvPFlag(0);
                player.sendMessage("You Have Left The Chaotic Zone.");

    And also like this: 

    @Override
        protected void onExit(L2Character character)
        {
            character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
            character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, false);
            
            if (character instanceof L2PcInstance)
            {
                L2PcInstance player = character.getActingPlayer();
                player.setPvpFlagLasts(System.currentTimeMillis() + 3000);
                player.sendMessage("You Have Left The Chaotic Zone.");
            }
        }
         if (activeChar.getPvpFlag() != 0)
                        activeChar.setPvpFlag(0);
                    activeChar.updatePvPFlag(1); 

     

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

    I tested all these ways, none works =/

  5. 16 hours ago, SweeTs said:

    You have to add the player to the PvPTask, check normal behavior when player hit another player. L2PcInstance is the place you should check.

    If you mean something like this:

              L2PcInstance player = character.getActingPlayer();
                player.setPvpFlagLasts(System.currentTimeMillis() + 3000);
                player.sendMessage("You Have Left The Chaotic Zone."); 

     

    or this :

     

                L2PcInstance player = character.getActingPlayer();
                player.updatePvPFlag(0);
                player.sendMessage("You Have Left The Chaotic Zone.");

    Does not work =/

  6. 7 minutes ago, Reborn12 said:
    
    	@Override
    	protected void onExit(L2Character character)
    	{
    		if (character instanceof L2PcInstance)
    		{
    			L2PcInstance player = character.getActingPlayer();
    			player.setPvpFlagLasts(System.currentTimeMillis() + 3000);
    			player.sendMessage("You Have Left The Chaotic Zone.");
    		}
    	}

     

    Thank you for your response. I used your code:

        @Override
        protected void onExit(L2Character character)
        {
            character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
            character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, false);
            
            if (character instanceof L2PcInstance)
            {
                L2PcInstance player = character.getActingPlayer();
                player.setPvpFlagLasts(System.currentTimeMillis() + 3000);
                player.sendMessage("You Have Left The Chaotic Zone.");
            }
        }

    But like this, the target takes flag when he leaves the zone, but the flag never go away.. need to restart.

  7. 12 hours ago, tazerman2 said:

    you can see l2CastleZone on exit give flag after leave from zone size so

    you can use this on enter. Every time you enter to your zone and player is not

    flag he start task

                    // Set pvp flag
                    if (((L2PcInstance) character).getPvpFlag() == 0)
                    {
                        ((L2PcInstance) character).startPvPFlag();
                    }

    end on exit no need he get time from task + config

    I tried with CastleZone method too, but it is the same as seen in a siege zone. With that method the flag lasts only 1 second.

  8. 8 hours ago, ganjaradio said:

    Could u send the On Exit? Maybe there you SetPvPFlag(0);

    @Override
        protected void onExit(L2Character character)
        {
            character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
            character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, false);
            
            if (character instanceof L2PcInstance)
            {
                L2PcInstance activeChar = ((L2PcInstance) character);
                activeChar.sendMessage("Attention: You left a PvP zone.");
                
                if(pvp_enabled)
                    activeChar.stopPvPFlag();  
            }
        }

    This is the original OnExit, thats stops the flag imediatly. I want to make it blink purple and white for some 15 sec.

  9. 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

     

     

  10. 36 minutes ago, Devlin said:

    The numeric buff count is java side. The line which shows the graphic count of your buffs it's client and I have no clue. I think Elfocrash did something similar in the past for his server. About the half buff icons, just import the icons as they are and decrease the height.

     

    At the second image, I am not sure if it's a new client icon or something that already exists in the client.

    Thank you for your ideas.

    I tought it was a script, but makes senseto be done in core side, the buff counting.

    The line that shows the buff count I also dont know, cause I seached the custom UTX files the server uses and there is nothing there,so it doesnt requires the players to have it in his files.

    The closer I got with the buff icons was this =P I cant  remove the space between the image and the top line tho. damn it!

    buffline.png

  11. Ok I fixed.. just realised that the sql for the npc is wrong..update the main topic and change the sql.. Npc Type is L2Merchant ..pff..should be L2DonateShop.

     

    Paranoic.. in ur sv the skill enchant works? I think that code is missing from share...

×
×
  • Create New...