Jump to content

Question

Posted

i have this error and i dont have any idea how i can fix it  can some one help 

error : https://ibb.co/qdLj1L4

 

code :   

---------------------------------------------------------------------------------------------------------------------------------------------------------
package zones;

import java.util.concurrent.ScheduledFuture;

import l2f.commons.threading.RunnableImpl;
import l2f.gameserver.ThreadPoolManager;
import l2f.gameserver.listener.zone.OnZoneEnterLeaveListener;
import l2f.gameserver.model.Creature;
import l2f.gameserver.model.Player;
import l2f.gameserver.model.Zone;
import l2f.gameserver.scripts.ScriptFile;
import l2f.gameserver.utils.ReflectionUtils;

/**
 * @author L2Mythras
 */

public class PvPZone implements ScriptFile
{
    private static ZoneListener _zoneListener;

    @Override
    public void onLoad()
    {
        _zoneListener = new ZoneListener();
        Zone zone = ReflectionUtils.getZone("[pvp_zone_toi]");
        zone.addListener(_zoneListener);
    }

    @Override
    public void onReload()
    {
         on reload
    }

    @Override
    public void onShutdown()
    {
         on shutdown
    }

    public class ZoneListener implements OnZoneEnterLeaveListener
    {
        @Override
        public void onZoneEnter(Zone zone, Creature cha)
        {
            ScheduledFuture<?> _checkTask = null;
            if (zone.getParams() == null || !cha.isPlayable()) 
                return;
            
            if (!cha.isPlayer()) 
                return;

            cha.getPlayer().sendMessage("You have entered in a PvP Zone!");
            cha.startPvPFlag(null);
            cha.getPlayer().sendMessage("You are now flagged!");

            _checkTask = ThreadPoolManager.getInstance().scheduleAtFixedRate(new checkZone((Player)cha, zone, _checkTask), 60000, 60000);
        }

        
        public class checkZone extends RunnableImpl
        {
            Player _cha;
            Zone _zone;
            ScheduledFuture<?> _checkTask;
            
            public checkZone(Player cha, Zone zone, ScheduledFuture<?> checkTask)
            {
                _cha = cha;
                _zone = zone;
                _checkTask = checkTask;
            }

            @Override
            public void runImpl() throws Exception
            {
                if(_cha.isInZone(_zone))
                {
                    _cha.startPvPFlag(null);
                }
                else
                {
                    _checkTask.cancel(true);
                    _checkTask = null;
                }
            }
            
        }
        
        @Override
        public void onZoneLeave(Zone zone, Creature cha)
        {
            if (cha == null) 
                return;
            cha.getPlayer().sendMessage("You have left the PvP Zone !");
            cha.getPlayer().stopPvPFlag();
        }

    }
}

---------------------------------------------------------------------------------------------------------------------------------------------------------

 

5 answers to this question

Recommended Posts

  • 0
Posted

Wrong section my friend.

 

As far as i can understand u want to make players flag whenever enter the zone. So ur first mistake starts here

  

27 minutes ago, ISAM_MISTRO said:

 

public class PvPZone implements ScriptFile

 

 

Wrong implementation

 

See other zones for reference, because this code is just wrong to begin with.

  • 0
Posted

Your problem is here:

 

if (_cha.isInZone(_zone)) {
  _cha.startPvPFlag(null);
} else {
  _checkTask.cancel(true);
  _checkTask = null;
}

 

Either the _cha is null which i doubt or the _checkTask future task is null.

Do a debug in those 2 variables.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • 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