L2JMobius

High Five Doomcryer can't teleport party

uchihasv · 8 · 5287

Offline uchihasv

  • Knight
  • ***
    • Posts: 54
Hello, I'm test Doomcryer class and i try use mass teleport party skill and i see message "party members can't be teleported from their location", party members just stay in Hunter Village location. Why this bug/problem happens?


Offline kinghanker

  • Knight
  • ***
    • Posts: 64
This happens for two reasons.
It's not the ultimate solution, of course. But it will help Mobius create a better way, I hope!


org.l2jmobius.gameserver.model.conditions.ConditionPlayerCallPc.java
Code: [Select]
else if (player.inObserverMode())
{
canCallPlayer = false;
}
- else if (player.isOnEvent())
- {
- player.sendPacket(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING);
- canCallPlayer = false;
- }
else if (player.isInsideZone(ZoneId.NO_SUMMON_FRIEND) || player.isInsideZone(ZoneId.JAIL) || player.isFlyingMounted())
{
player.sendPacket(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING);
canCallPlayer = false;
}

data.scripts.handlers.effecthandlers.CallPc.java
Code: [Select]
activeChar.sendPacket(SystemMessageId.YOU_CANNOT_SUMMON_PLAYERS_WHO_ARE_CURRENTLY_PARTICIPATING_IN_THE_GRAND_OLYMPIAD);
return false;
}

- if (target.isFestivalParticipant() || target.isFlyingMounted() || target.isCombatFlagEquipped() || !target.isOnEvent())
+ if (target.isFestivalParticipant() || target.isFlyingMounted() || target.isCombatFlagEquipped())
{
activeChar.sendPacket(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING);
return false;
}

if (target.inObserverMode())
{
final SystemMessage sm = new


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16064
Why remove event check?
You want people that are on events to be summoned?


Offline uchihasv

  • Knight
  • ***
    • Posts: 54
Why remove event check?
You want people that are on events to be summoned?
Event "Save Santa" can block teleport condition in any place? Or it's not affect this?


Offline kinghanker

  • Knight
  • ***
    • Posts: 64
Why remove event check?
You want people that are on events to be summoned?

It seems that all characters are constantly at an event.


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16064
It seems that all characters are constantly at an event.

They cannot be.
Default value is false and never set to true.

!target.isOnEvent()
should be
target.isOnEvent()

Code: [Select]
Index: dist/game/data/scripts/handlers/effecthandlers/CallPc.java
===================================================================
--- dist/game/data/scripts/handlers/effecthandlers/CallPc.java (revision 9684)
+++ dist/game/data/scripts/handlers/effecthandlers/CallPc.java (working copy)
@@ -139,7 +139,7 @@
  return false;
  }
 
- if (target.isFestivalParticipant() || target.isFlyingMounted() || target.isCombatFlagEquipped() || !target.isOnEvent())
+ if (target.isFestivalParticipant() || target.isFlyingMounted() || target.isCombatFlagEquipped() || target.isOnEvent())
  {
  activeChar.sendPacket(SystemMessageId.YOUR_TARGET_IS_IN_AN_AREA_WHICH_BLOCKS_SUMMONING);
  return false;


Offline kinghanker

  • Knight
  • ***
    • Posts: 64
I swear I didn't see the "!" before the target.isOnEvent()

 :-[

problem solved