Jump to content
  • 0

Help with conditions in multizone


Question

Posted

Hi, im using acis 399, im trying to adapt a mutizone code, everything works fine except for this:

 

	@Override
	public void onDieInside(Creature character)
	{
		if (character instanceof Player && _isReviveEnabled)
		{
			ThreadPool.schedule(() -> respawnCharacter(character), _reviveDelay * 1000);
			character.sendPacket(new ExShowScreenMessage("Respawn in " + _reviveDelay + " seconds", 5000));
		}
	}
	

	@Override
	public void onReviveInside(Creature character)
	{
		if (character instanceof Player && _isHealEnabled)
		{
			character.setCurrentCp(character.getStatus().getMaxCp());
			character.setCurrentHpMp(character.getStatus().getMaxHp(), character.getStatus().getMaxMp());
			
		}
	}

 

and i have this in WorldRegion
 

	public void onDeath(Creature character)
	{
		_zones.stream().filter(z -> z.isCharacterInZone(character)).forEach(z -> z.onDieInside(character));
	}
	
	public void onRevive(Creature character)
	{
		_zones.stream().filter(z -> z.isCharacterInZone(character)).forEach(z -> z.onReviveInside(character));
	}

 

 

But nothing happens.. i was using this code in older acis version, but in the new one, i cant make it work.  its there any part of the code that im missing? 

Thanks !!

3 answers to this question

Recommended Posts

  • 0
Posted (edited)

thats an example of the onDieInside method its handwritten idk if anything needs adaptation

 

@Override
public void onDieInside(final Creature character)
{
	if (character instanceof Player && _isReviveEnabled)
	{
		final Player activeChar = character.getActingPlayer();
		ThreadPool.getInstance().scheduleGeneral(new Runnable()
		{
			@Override
			public void run()
			{
            			activeChar.sendPacket(new ExShowScreenMessage("Respawn in " + _reviveDelay + " seconds", 5000));
				activeChar.doRevive();
         	 		final Location loc = getLoc(); // getLoc() fetches your zone respawn points from zone.xml
				activeChar.teleToLocation(loc.getX(), loc.getY(), loc.getZ(), true);
			}
		}, _reviveDelay * 1000);
	}
}
Edited by Sidereal Day
  • Like 1
  • 0
Posted
10 hours ago, Sidereal Day said:

thats an example of the onDieInside method its handwritten idk if anything needs adaptation

 

@Override
public void onDieInside(final Creature character)
{
	if (character instanceof Player && _isReviveEnabled)
	{
		final Player activeChar = character.getActingPlayer();
		ThreadPool.getInstance().scheduleGeneral(new Runnable()
		{
			@Override
			public void run()
			{
            			activeChar.sendPacket(new ExShowScreenMessage("Respawn in " + _reviveDelay + " seconds", 5000));
				activeChar.doRevive();
         	 		final Location loc = getLoc(); // getLoc() fetches your zone respawn points from zone.xml
				activeChar.teleToLocation(loc.getX(), loc.getY(), loc.getZ(), true);
			}
		}, _reviveDelay * 1000);
	}
}

Thanks im trying this.. the WorldRegion part its ok ? 

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