Відповідь: Re: Відповідь: ПОМОГИТЕ
Код такий:
IsDeadBondedPet - це прив'язани тварини, яких можно оживляти.
Region.AllowBeneficial( this, target ) це ось що:
Неможна лікувати чи оживляти тих, хто у інший фракції чи гільдії з якою війна.По поводу лечения там есть упоминание про beneficialActs
с чем я недавно столкнулся в игре дважды: не мог воскресить одного человека, и полечить другого... хотелось бы увидеть даный метод)Код:healer.CanBeBeneficial( patient, true, true )
Код такий:
Код:
public virtual bool CanBeBeneficial( Mobile target, bool message, bool allowDead )
{
if ( target == null )
return false;
if ( m_Deleted || target.m_Deleted || !Alive || IsDeadBondedPet || ( !allowDead && ( !target.Alive || IsDeadBondedPet ) ) )
{
if ( message )
SendLocalizedMessage( 1001017 ); // You can not perform beneficial acts on your target.
return false;
}
if ( target == this )
return true;
if ( /*m_Player &&*/ !Region.AllowBeneficial( this, target ) )
{
// TODO: Pets
//if ( !(target.m_Player || target.Body.IsHuman || target.Body.IsAnimal) )
//{
if ( message )
SendLocalizedMessage( 1001017 ); // You can not perform beneficial acts on your target.
return false;
//}
}
return true;
}
Region.AllowBeneficial( this, target ) це ось що:
Код:
public static bool Mobile_AllowBeneficial( Mobile from, Mobile target )
{
if( from == null || target == null || from.AccessLevel > AccessLevel.Player || target.AccessLevel > AccessLevel.Player )
return true;
#region Factions
Faction targetFaction = Faction.Find( target, true );
if( targetFaction != null )
{
if( Faction.Find( from, true ) != targetFaction )
return false;
}
#endregion
Map map = from.Map;
if( map != null && (map.Rules & MapRules.BeneficialRestrictions) == 0 )
return true; // In felucca, anything goes
if( !from.Player )
return true; // NPCs have no restrictions
if( target is BaseCreature && !((BaseCreature)target).Controlled )
return false; // Players cannot heal uncontrolled mobiles
if( from is PlayerMobile && ((PlayerMobile)from).Young && (!(target is PlayerMobile) || !((PlayerMobile)target).Young) )
return false; // Young players cannot perform beneficial actions towards older players
Guild fromGuild = from.Guild as Guild;
Guild targetGuild = target.Guild as Guild;
if( fromGuild != null && targetGuild != null && (targetGuild == fromGuild || fromGuild.IsAlly( targetGuild )) )
return true; // Guild members can be beneficial
return CheckBeneficialStatus( GetGuildStatus( from ), GetGuildStatus( target ) );
}