Runic sewing kits will no longer apply durability

http://www.uodemise.com/forum/showthread.php?t=133757

Vendor Look/Browse/View will now work properly
http://www.uodemise.com/forum/showthread.php?t=135531

Stacked Eggbombs will now unstack correctly
http://www.uodemise.com/forum/showthread.php?t=134321

Unbonded pets should logout too
http://www.uodemise.com/forum/showthread.php?t=119262

Paragon chests placed on player vendors will now behave correctly
http://www.uodemise.com/forum/showthread.php?t=116864

Proper party fame/karma sharing
http://www.uodemise.com/forum/showthread.php?t=122749

Guild Alliance/War update bug fixed
http://www.uodemise.com/forum/showthread.php?t=115236

Fukiya properties updates and loading bug fixed
http://www.uodemise.com/forum/showthread.php?t=136042

Shuriken, same problems as fukiya
http://www.uodemise.com/forum/showthread.php?t=120212

greater mongbats will now be recognised as quest objectives
http://www.uodemise.com/forum/showthread.php?t=128072

divine fury sound tweaks.
http://www.uodemise.com/forum/showthread.php?t=136489

pet stat gains fix
http://www.uodemise.com/forum/showthread.php?t=134820

Pets follow speed corrected
http://www.uodemise.com/forum/showthread.php?t=124774

E-fields no longer block in trammel rulesets.
http://www.uodemise.com/forum/showthread.php?t=116680

Disguise kit timer fix
http://www.uodemise.com/forum/showthread.php?t=133913

Meer Mage special abilities fixes.
http://www.uodemise.com/forum/showthread.php?t=122134

Missing food property if eggs, in animal lore gump
http://www.uodemise.com/forum/showthread.php?t=135258

Pets will follow after an attack is completed.
http://www.uodemise.com/forum/showthread.php?t=135962

Hides should not be scissored whilst still on the corpse
http://www.uodemise.com/forum/showthread.php?t=118799

Pet bonding changed to include jewelry skill adjustments.
http://www.uodemise.com/forum/showthread.php?t=121060

Skinning knife can be used to cut corpses
http://www.uodemise.com/forum/showthread.php?t=115248

PlayerVendors will correctly send update packets to the client when hair is changed
http://www.uodemise.com/forum/showthread.php?t=120216

Corrections to house sign gump
http://www.uodemise.com/forum/showthread.php?t=134406

pet "guarding" system message added
http://www.uodemise.com/forum/showthread.php?t=134091

Giant toads should be aggressive
http://www.uodemise.com/forum/showthread.php?t=133984

bardiche and halberds are axe tools.
http://www.uodemise.com/forum/showthread.php?t=122739
This commit is contained in:
mark 2010-01-17 06:59:32 +00:00
parent d688c9e0f3
commit 208acafd7e
37 changed files with 1058 additions and 226 deletions

View file

@ -1059,6 +1059,8 @@ namespace Server.Mobiles
m_Mobile.PlaySound( m_Mobile.GetIdleSound() );
m_Mobile.Warmode = true;
m_Mobile.Combatant = null;
string petname = String.Format( "{0}", m_Mobile.Name );
m_Mobile.ControlMaster.SendLocalizedMessage ( 1049671, petname ); //~1_PETNAME~ is now guarding you.
break;
case OrderType.Attack:
@ -1285,6 +1287,7 @@ namespace Server.Mobiles
else
{
m_Mobile.Warmode = false;
m_Mobile.CurrentSpeed = 0.1;
}
}
}
@ -1453,6 +1456,7 @@ namespace Server.Mobiles
m_Mobile.DebugSay( "Nothing to guard from" );
m_Mobile.Warmode = false;
m_Mobile.CurrentSpeed = 0.1;
WalkMobileRange( controlMaster, 1, false, 0, 1 );
}
@ -1469,8 +1473,8 @@ namespace Server.Mobiles
{
m_Mobile.DebugSay( "I think he might be dead. He's not anywhere around here at least. That's cool. I'm glad he's dead." );
m_Mobile.ControlTarget = null;
m_Mobile.ControlOrder = OrderType.None;
m_Mobile.ControlTarget = m_Mobile.ControlMaster;
m_Mobile.ControlOrder = OrderType.Follow;
if( m_Mobile.FightMode == FightMode.Closest || m_Mobile.FightMode == FightMode.Aggressor )
{

View file

@ -11,6 +11,7 @@ using Server.Items;
using Server.Mobiles;
using Server.ContextMenus;
using Server.Engines.Quests;
using Server.Engines.PartySystem;
using Server.Factions;
using Server.Spells.Bushido;
using Server.Spells.Spellweaving;
@ -1264,7 +1265,7 @@ namespace Server.Mobiles
{
}
public virtual void OnCarve( Mobile from, Corpse corpse )
public virtual void OnCarve( Mobile from, Corpse corpse, Item with )
{
int feathers = Feathers;
int wool = Wool;
@ -1318,16 +1319,43 @@ namespace Server.Mobiles
if ( hides != 0 )
{
if ( HideType == HideType.Regular )
corpse.DropItem( new Hides( hides ) );
else if ( HideType == HideType.Spined )
corpse.DropItem( new SpinedHides( hides ) );
else if ( HideType == HideType.Horned )
corpse.DropItem( new HornedHides( hides ) );
else if ( HideType == HideType.Barbed )
corpse.DropItem( new BarbedHides( hides ) );
Item holding = from.Weapon as Item;
if ( Core.AOS && ( holding is SkinningKnife /* TODO: || holding is ButcherWarCleaver || with is ButcherWarCleaver */ ) )
{
Item leather = null;
from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
switch ( HideType )
{
case HideType.Regular: leather = new Leather( hides ); break;
case HideType.Spined: leather = new SpinedLeather( hides ); break;
case HideType.Horned: leather = new HornedLeather( hides ); break;
case HideType.Barbed: leather = new BarbedLeather( hides ); break;
}
if ( leather != null )
{
if ( !from.PlaceInBackpack( leather ) )
{
corpse.DropItem( leather );
from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
}
else
from.SendLocalizedMessage( 1073555 ); // You skin it and place the cut-up hides in your backpack.
}
}
else
{
if ( HideType == HideType.Regular )
corpse.DropItem( new Hides( hides ) );
else if ( HideType == HideType.Spined )
corpse.DropItem( new SpinedHides( hides ) );
else if ( HideType == HideType.Horned )
corpse.DropItem( new HornedHides( hides ) );
else if ( HideType == HideType.Barbed )
corpse.DropItem( new BarbedHides( hides ) );
from.SendLocalizedMessage( 500471 ); // You skin it, and the hides are now in the corpse.
}
}
if ( scales != 0 )
@ -1959,7 +1987,7 @@ namespace Server.Mobiles
if ( master != null && master == from ) //So friends can't start the bonding process
{
if ( m_dMinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_dMinTameSkill || OverrideBondingReqs() )
if ( m_dMinTameSkill <= 29.1 || master.Skills[SkillName.AnimalTaming].Base >= m_dMinTameSkill || OverrideBondingReqs() || (Core.ML && master.Skills[SkillName.AnimalTaming].Value >= m_dMinTameSkill) )
{
if ( BondingBegin == DateTime.MinValue )
{
@ -4325,7 +4353,10 @@ namespace Server.Mobiles
int totalKarma = -Karma / 100;
List<DamageStore> list = GetLootingRights( this.DamageEntries, this.HitsMax );
List<Mobile> titles = new List<Mobile>();
List<int> fame = new List<int>();
List<int> karma = new List<int>();
bool givenQuestKill = false;
bool givenFactionKill = false;
bool givenToTKill = false;
@ -4337,8 +4368,41 @@ namespace Server.Mobiles
if ( !ds.m_HasRight )
continue;
Titles.AwardFame( ds.m_Mobile, totalFame, true );
Titles.AwardKarma( ds.m_Mobile, totalKarma, true );
Party party = Engines.PartySystem.Party.Get( ds.m_Mobile );
if ( party != null )
{
int divedFame = totalFame / party.Members.Count;
int divedKarma = totalKarma / party.Members.Count;
for ( int j = 0; j < party.Members.Count; ++j )
{
PartyMemberInfo info = party.Members[ j ] as PartyMemberInfo;
if ( info != null && info.Mobile != null )
{
int index = titles.IndexOf( info.Mobile );
if ( index == -1 )
{
titles.Add( info.Mobile );
fame.Add( divedFame );
karma.Add( divedKarma );
}
else
{
fame[ index ] += divedFame;
karma[ index ] += divedKarma;
}
}
}
}
else
{
titles.Add( ds.m_Mobile );
fame.Add( totalFame );
karma.Add( totalKarma );
}
OnKilledBy( ds.m_Mobile );
@ -4370,6 +4434,11 @@ namespace Server.Mobiles
}
}
}
for ( int i = 0; i < titles.Count; ++i )
{
Titles.AwardFame( titles[ i ], fame[ i ], true );
Titles.AwardKarma( titles[ i ], karma[ i ], true );
}
}
base.OnDeath( c );