Jump to content

Question

Posted

I want to add abnormal effect when player is inside xx radius of object, I've tried to use in L2Pcinstance something like - 

if(isInsideRadius(objX,objY,objZ,500, false, false))
		{
			startAbnormalEffect(AbnormalEffect.MAGIC_CIRCLE);
			sendMessage("You have entered artefact area");
		}

but it doesn't work, how to do it right?

15 answers to this question

Recommended Posts

  • 0
Posted

You can do the trick with for loop.

 

 

for (L2PcInstance player : getKnownList().getKnownTypeInRadius(L2PcInstance.class, 300))
  • 0
Posted

nope

You do... I've checked, there are two methods checkIfInShortRadius() and checkIfInRange(): java/net/sf/l2j/gameserver/util/Util.java

They are documented, so check them.

  • 0
Posted

You do... I've checked, there are two methods checkIfInShortRadius() and checkIfInRange(): java/net/sf/l2j/gameserver/util/Util.java

They are documented, so check them.

I'm using L2j Acis 3xx, there is no such methods in Util class

  • 0
Posted

Strange... do you check the right class? Because there are two classes with the same name, you need the one in gameserver/util!

  • 0
Posted

Strange... do you check the right class? Because there are two classes with the same name, you need the one in gameserver/util!

My bad, thought that name is uniqe

  • 0
Posted

If you want to add effect on the people that are INSIDE an area, you dont really need to check radius but just check if the player is in that zone.

So, while he is in that zone he receives the effect.

 

snippet ex.

while(player.isInsidePvPZone()){ // i do not know if the method exists in your pack.
startAbnormalEffect(AbnormalEffect.MAGIC_CIRCLE);} //this will give non stop magic_circle effect  on the player while he is inside the pvp zone.

   

 

If you want to add effect on the people that get close to a NPC for example, there you need to use isInsideRadius method of the npc and the player.

And then of course invoke the effect on the player that is actually inside the radius.

int _range = 800;
if(isInsideRadius(player,npc,_range)) // i do not know if the method exists in your pack.
{
    startAbnormalEffect(AbnormalEffect.MAGIC_CIRCLE);
}

Last, i do not know if these methods exist or not, but thats a logic approach i believe.

  • 0
Posted

What do you want to do, EXACTLY ?

 

Your idea looks more like a custom script where you have to define onAggroRange. All answers previously said go from "wrong" to "terribly bad" (no offense).

  • 0
Posted

What do you want to do, EXACTLY ?

 

Your idea looks more like a custom script where you have to define onAggroRange. All answers previously said go from "wrong" to "terribly bad" (no offense).

I want to add effect on the people that get close to a NPC.

  • 0
Posted

while(player.isInsidePvPZone()){ // i do not know if the method exists in your pack.

startAbnormalEffect(AbnormalEffect.MAGIC_CIRCLE);} //this will give non stop magic_circle effect  on the player while he is inside the pvp zone.

 

XD

 

 

 

PS: If you throw the dedi box off the 3rd floor it will pain less than running that "snippet"

  • 0
Posted

 

You can do the trick with for loop.

for (L2PcInstance player : getKnownList().getKnownTypeInRadius(L2PcInstance.class, 300))

Nice, thanks, easy and works!

Guest
This topic is now closed to further replies.


×
×
  • Create New...