fix: Fixes travel restriction messages (#1263)
- [X] `BaseRegion.CheckTravel` now properly cascades through parent regions - [X] `SpellHelper.CheckTravel` now returns a failure message instead of sending one internally. - [X] Consolidates travel restriction messages so they aren't duplicated.
This commit is contained in:
parent
2057fe74a2
commit
1d8e8ec0a8
13 changed files with 121 additions and 69 deletions
|
|
@ -43,11 +43,13 @@ namespace Server.Spells.Third
|
|||
{
|
||||
Caster.SendLocalizedMessage(502359, "", 0x22); // Thou art too encumbered to move.
|
||||
}
|
||||
else if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom))
|
||||
else if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom, out var failureMessage))
|
||||
{
|
||||
failureMessage.SendMessageTo(Caster);
|
||||
}
|
||||
else if (!SpellHelper.CheckTravel(Caster, map, to, TravelCheckType.TeleportTo))
|
||||
else if (!SpellHelper.CheckTravel(Caster, map, to, TravelCheckType.TeleportTo, out failureMessage))
|
||||
{
|
||||
failureMessage.SendMessageTo(Caster);
|
||||
}
|
||||
else if (map?.CanSpawnMobile(p.X, p.Y, p.Z) != true)
|
||||
{
|
||||
|
|
@ -125,7 +127,13 @@ namespace Server.Spells.Third
|
|||
return false;
|
||||
}
|
||||
|
||||
return SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom);
|
||||
if (!SpellHelper.CheckTravel(Caster, TravelCheckType.TeleportFrom, out var failureMessage))
|
||||
{
|
||||
failureMessage.SendMessageTo(Caster);
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public override void OnCast()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue