The Larger file is the newer one. It eliminates the seperate colors as seperate items and condences them down into one item.
This is similair to an Item I created in my AD&D game. It was originally a gift from an evil god, given to those who are his chosen. I since expanded on it when other gods followers where being slaughtered because of this item. The item grants certain powers after it "Bonds" with a player. Only way to remove the item is to die. At which point if someone else picks up the item it will start bonding with them.
Installation instructions are at the bottom of the script in comments. If you dont want to add that part of the script then remove every reference to it in the scripts...
Edit: Extra Installation Instructions that update what I put at the end if the script
If anyone could tell me how to modify this script to not use timers I'd be more then happy to adjust for that.
Code:
To make this script work you need to add
the following to your PlayerMobile.cs
private bool m_Attackable; private bool m_Red;
[CommandProperty( AccessLevel.Administrator )]
public bool IsKiller
{
get{ return m_Red; }
set{ m_Red = value; }
}
[CommandProperty( AccessLevel.Administrator )]
public bool IsAttackable
{
get{ return m_Attackable; }
set{ m_Attackable = value; }
}
Add the above near all the other properties
ie somewhere around
[CommandProperty( AccessLevel.GameMaster )]
public int Profession
{
get{ return m_Profession; }
set{ m_Profession = value; }
}
i put it right above that.....
This section of Notoriety.cs is what I changed to make this work
public static int MobileNotoriety( Mobile source, Mobile target )
{
if ( Core.AOS && (target.Blessed || (target is BaseVendor && ((BaseVendor)target).IsInvulnerable) || target is PlayerVendor || target is TownCrier) )
return Notoriety.Invulnerable;
/*
if ( target.AccessLevel > AccessLevel.Player )
return Notoriety.CanBeAttacked;
*/
if ( target is PlayerMobile )
{
if ( ((PlayerMobile)target).IsAttackable )
return Notoriety.CanBeAttacked;
else if ( ((PlayerMobile)target).IsKiller )
return Notoriety.Murderer;
}
if ( source.Player && !target.Player && source is PlayerMobile && target is BaseCreature )
{
BaseCreature bc = (BaseCreature)target;
if ( !bc.Summoned && !bc.Controled && ((PlayerMobile)source).EnemyOfOneType == target.GetType() )
return Notoriety.Enemy;
}
if ( target.Kills >= 5 || (target.Body.IsMonster && IsSummoned( target as BaseCreature ) && !(target is BaseFamiliar) && !(target is Golem)) || (target is BaseCreature && (((BaseCreature)target).AlwaysMurderer || ((BaseCreature)target).IsAnimatedDead)) )
return Notoriety.Murderer;
if ( target.Criminal )
return Notoriety.Criminal;
Guild sourceGuild = GetGuildFor( source.Guild as Guild, source );
Guild targetGuild = GetGuildFor( target.Guild as Guild, target );
if ( sourceGuild != null && targetGuild != null )
{
if ( sourceGuild == targetGuild || sourceGuild.IsAlly( targetGuild ) )
return Notoriety.Ally;
else if ( sourceGuild.IsEnemy( targetGuild ) )
return Notoriety.Enemy;
}
if ( SkillHandlers.Stealing.ClassicMode && target is PlayerMobile && ((PlayerMobile)target).PermaFlags.Contains( source ) )
return Notoriety.CanBeAttacked;
if ( target is BaseCreature && ((BaseCreature)target).AlwaysAttackable )
return Notoriety.CanBeAttacked;
if ( CheckHouseFlag( source, target, target.Location, target.Map ) )
return Notoriety.CanBeAttacked;
if ( !(target is BaseCreature && ((BaseCreature)target).InitialInnocent) )
{
if ( !target.Body.IsHuman && !target.Body.IsGhost && !IsPet( target as BaseCreature ) )
return Notoriety.CanBeAttacked;
}
if ( CheckAggressor( source.Aggressors, target ) )
return Notoriety.CanBeAttacked;
if ( CheckAggressed( source.Aggressed, target ) )
return Notoriety.CanBeAttacked;
if ( target is BaseCreature )
{
BaseCreature bc = (BaseCreature)target;
if ( bc.Controled && bc.ControlOrder == OrderType.Guard && bc.ControlTarget == source )
return Notoriety.CanBeAttacked;
}
return Notoriety.Innocent;
}
the IsKiller hasnt been tested, but the other parts do indeed work. At this time it doesnt check to see if you are already wearing one of these before trying to equip it so you can wear multiple of these. I do intend on changing that. If someone decides to do it before I post an Update please feel free to post it.
PS: This should work as is in Beta36 as well... but since im not running Beta36 anymore let me know whoever may use this in B36 if it works or not.
PPS: thanks to the original 41 people for the download. Instructions are now updated in the script and TimerPriority adjusted.