I know that will work.... But Here... Seesh maybe this might wake ya up!
[code:1]
using System;
using Server;
using Server.Mobiles;
using Server.Items;
using Server.Gumps;
using Server.Network;
namespace Server.RaceSystem
{
public sealed class BladracoRace : RaceEntry
{
public override string Description{ get{ return "Bladracos are a rare kind of species, they are half dragon half snake, and they have one disadvantage and that is to not ride animals but they have a great ability of deadly posion attacks on anything they do related to melee... They are and tend to live near the City of Hotoas near the desert and in the dark wastelands, they are also a follower of God of Evil himself. Where the Bladracos are nothing but powerful towards him. They are his highest guardians of the Temple of Darkness. So beware them...."; } }
public override string Name{ get{ return "* Bladraco *"; } }
public override string RaceName{ get{ return " the Bladraco"; } }
public override int Strength{ get{ return 60; } }
public override int Intelligence{ get{ return 20; } }
public override int Dexterity{ get{ return 60; } }
public override int BodyMod{ get { Female ? 87 : 86 } }
public BladracoRace() : base( RaceType.Bladraco )
{
}
public override void OnSelection( ALPlayerMobile mp )
{
mp.Frozen = false;
mp.Hue = 646;
mp.Karma = -1000;
mp.KarmaLocked = true;
BaseWeapon b = new Bladrae();
b.MaxHits = 125;
b.Hits = 125;
b.Attributes.BonusHits = -20;
mp.EquipItem( b );
mp.EquipItem(new EarringsofEvil() );
//mp.SendGump( new DietyGump() );
if (mp.Beard != null)
{
mp.Beard.Delete();
}
if (mp.Hair !=null)
{
mp.Hair.Delete();
}
if (mp.Female)
{
//mp.BodyMod = 87;
mp.Hue = 1809;
}
else
{
//mp.BodyMod = 86;
mp.Hue = 1453;
}
//SKILLS//
mp.Skills[SkillName.Anatomy].Cap = 100.0;
mp.Skills[SkillName.ArmsLore].Cap = 0.0;
mp.Skills[SkillName.AnimalLore].Cap = 120.0;
mp.Skills[SkillName.AnimalTaming].Cap = 120.0;
mp.Skills[SkillName.Begging].Cap = 0.0;
mp.Skills[SkillName.DetectHidden].Cap = 100.0;
mp.Skills[SkillName.Discordance].Cap = 0.0;
mp.Skills[SkillName.EvalInt].Cap = 180.0;
mp.Skills[SkillName.Forensics].Cap = 0.0;
mp.Skills[SkillName.Hiding].Cap = 100.0;
mp.Skills[SkillName.ItemID].Cap = 0.0;
mp.Skills[SkillName.Meditation].Cap = 175.0;
mp.Skills[SkillName.Peacemaking].Cap = 0.0;
mp.Skills[SkillName.Poisoning].Cap = 175.0;
mp.Skills[SkillName.Provocation].Cap = 0.0;
mp.Skills[SkillName.RemoveTrap].Cap = 0.0;
mp.Skills[SkillName.SpiritSpeak].Cap = 175.0;
mp.Skills[SkillName.Stealing].Cap = 100.0;
mp.Skills[SkillName.Stealth].Cap = 100.0;
mp.Skills[SkillName.TasteID].Cap = 100.0;
mp.Skills[SkillName.Tracking].Cap = 0.0;
mp.Skills[SkillName.Camping].Cap = 100.0;
mp.Skills[SkillName.Cooking].Cap = 100.0;
mp.Skills[SkillName.Fishing].Cap = 100.0;
mp.Skills[SkillName.Healing].Cap = 150.0;
mp.Skills[SkillName.Herding].Cap = 120.0;
mp.Skills[SkillName.Lockpicking].Cap = 100.0;
mp.Skills[SkillName.Lumberjacking].Cap = 0.0;
mp.Skills[SkillName.Musicianship].Cap = 0.0;
mp.Skills[SkillName.Snooping].Cap = 100.0;
mp.Skills[SkillName.Veterinary].Cap = 120.0;
mp.Skills[SkillName.Blacksmith].Cap = 0.0;
mp.Skills[SkillName.Fletching].Cap = 0.0;
mp.Skills[SkillName.Carpentry].Cap = 0.0;
mp.Skills[SkillName.Alchemy].Cap = 180.0;
mp.Skills[SkillName.Inscribe].Cap = 100.0;
mp.Skills[SkillName.Cartography].Cap = 100.0;
mp.Skills[SkillName.Tinkering].Cap = 0.0;
mp.Skills[SkillName.Tailoring].Cap = 150.0;
mp.Skills[SkillName.Archery].Cap = 0.0;
mp.Skills[SkillName.Fencing].Cap = 180.0;
mp.Skills[SkillName.Macing].Cap = 100.0;
mp.Skills[SkillName.Magery].Cap = 180.0;
mp.Skills[SkillName.Parry].Cap = 0.0;
mp.Skills[SkillName.Swords].Cap = 100.0;
mp.Skills[SkillName.Tactics].Cap = 120.0;
mp.Skills[SkillName.Wrestling].Cap = 100.0;
mp.Skills[SkillName.MagicResist].Cap = 180.0;
mp.Skills[SkillName.Mining].Cap = 0.0;
mp.Skills[SkillName.Chivalry].Cap = 80.0;
mp.Skills[SkillName.Necromancy].Cap = 150.0;
mp.Skills[SkillName.Focus].Cap = 150.0;
VerifySkills( mp );
//stats//
mp.StrCap = 150;
mp.IntCap = 100;
mp.DexCap = 100;
mp.PlaySound( 0x4E );
mp.Location = new Point3D( 3755, 1326, 0 );
mp.SendMessage("Welcome to the World of Barbshen. You have choosen your race as a Inesian. Now that You arrive in Slinake the Bladraco Tribe. Go Explore and Have fun!"
;
}
private void VerifySkills( Mobile m )
{
for ( int i = 0; i < 52; ++i )
{
if ( m.Skills
.Base > m.Skills.Cap )
m.Skills.Base = m.Skills.Cap;
}
return;
}
}
}
[/code:1]
Then in my Announce Login I have that set for the Changes on login mods, which does not work well at all,
[code:1]
using System;
using Server.Network;
using Server.Mobiles;
using Server.RaceSystem;
namespace Server.Misc
{
public class AnnounceLogin
{
public static void Initialize()
{
// Register our event handler
EventSink.Login += new LoginEventHandler( EventSink_Login );
}
private static void EventSink_Login( LoginEventArgs args )
{
Mobile from = args.Mobile;
if (args.Mobile.AccessLevel < AccessLevel.GameMaster)
{
World.Broadcast( 0x35, true, "{0} has awaken up somewhere in the world.", args.Mobile.Name );
}
PlayerMobile pm = from as PlayerMobile;
ALPlayerMobile mp = (ALPlayerMobile) from;
if ( mp.Race != null )
{
if ( mp.Race.Type == RaceType.Bladraco )
{
mp.BodyMod = 86;
if ( mp.Female )
{
mp.BodyMod = 87;
}
}
/*if ( Race.Type == RaceType.Orc )
{
mp.BodyMod = 7;
if ( mp.Female )
{
mp.BodyMod = 17;
}
}*/
}
}
}
}
[/code:1]
Then I have my ALPlayerMobile.cs that contians the resserection files, But I want to have RestoreBody(); Then In that have BodyMod = m_Race.BodyMod;