Ok, I already had the backpacks and the bandages. I thought it wasn't working because I kept restarting the server and checking guards that were already created. Upon adding a new one I realized that it does work.
As for using the bandages, I don't believe Revanal ever posted a solution.
Also, I still can't get my guards to attack reds. Sorry, but your example didn't exactly help. I also tried:
if (m is PlayerMobile && (m.Kills > 4))
return true;
I don't understand why the hell that doesn't work... It doesn't give me an error when I restart the server. Is it because I'm using already spawned guards? Do I have to create new guards in the game after I add that part of the script to get them to function properly?
I'm using RunUO 2.0 SVN 372. If anyone has a suggestion feel free to share. Here's my script:
using System;
using System.Collections;
using Server.Misc;
using Server.Items;
using Server.Mobiles;
namespace Server.Mobiles
{
public class Guards : BaseCreature
{
[Constructable]
public Guards()
: base(AIType.AI_Melee, FightMode.Closest, 10, 1, 0.2, 0.4)
{
Title = "Town Guard";
SpeechHue = Utility.RandomDyedHue();
Hue = Utility.RandomSkinHue();
SetStr(150, 150);
SetDex(100, 100);
SetInt(61, 75);
SetSkill(SkillName.MagicResist, 100.0, 100.0);
SetSkill(SkillName.Swords, 100.0, 100.0);
SetSkill(SkillName.Tactics, 100.0, 100.0);
SetSkill(SkillName.Anatomy, 100.0, 100.0);
SetDamage(30, 35);
AddItem(new Broadsword());
AddItem(new MetalShield());
AddItem(new PlateHelm());
AddItem(new PlateLegs());
AddItem(new PlateArms());
AddItem(new PlateGloves());
AddItem(new PlateGorget());
AddItem(new PlateChest());
Container pack = new Backpack();
pack.DropItem(new Bandage(25));
pack.Movable = false;
AddItem(pack);
if (Female = Utility.RandomBool())
{
Body = 401;
Name = NameList.RandomName("female");
}
else
{
Body = 400;
Name = NameList.RandomName("male");
}
}
public override bool IsEnemy(Mobile m)
{
if ((m is Guards))
return false;
if (m is BaseVendor || m is TownCrier || m is Guards || m is PlayerVendor)
return false;
if (m != null && (m.Criminal == true))
return true;
if (m is PlayerMobile && (m.Criminal == false))
return false;
if (((BaseCreature)m).FightMode == FightMode.None)
return false;
if (m is PlayerMobile && (m.Kills > 4))
return true;
if (((BaseCreature)m).FightMode != FightMode.Aggressor && !((BaseCreature)m).Controlled)
return true;
if (m != null && (m.Criminal == false))
return false;
BaseCreature c = (BaseCreature)m;
if (!(c is BaseCreature && !c.Controlled) || c is Server.Engines.Quests.Haven.MilitiaFighter)
return false;
return true;
}
public Guards(Serial serial)
: base(serial)
{
}
public override void Serialize(GenericWriter writer)
{
base.Serialize(writer);
writer.Write((int)0); // version
}
public override void Deserialize(GenericReader reader)
{
base.Deserialize(reader);
int version = reader.ReadInt();
}
}
}