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

@ -213,7 +213,7 @@ namespace Server.Guilds
m_PendingMembers.Remove( g );
m_Members.Add( g );
g.InvalidateMemberProperties();
g.Alliance.InvalidateMemberProperties();
}
public void RemoveGuild( Guild g )
@ -528,7 +528,6 @@ namespace Server.Guilds
if( m_Opponent.FindPendingWar( m_Guild ) != null && m_Guild.FindPendingWar( m_Opponent ) != null )
return WarStatus.Pending;
if( w == null )
return WarStatus.Win;
@ -796,6 +795,16 @@ namespace Server.Guilds
return false;
}
}
public static Guild GetAllianceLeader( Guild g )
{
AllianceInfo alliance = g.Alliance;
if ( alliance != null && alliance.Leader != null && alliance.IsMember( g ) )
return alliance.Leader;
return g;
}
#endregion
@ -837,8 +846,6 @@ namespace Server.Guilds
return null;
}
public void CheckExpiredWars()
{
for( int i = 0; i < AcceptedWars.Count; i++ )
@ -924,15 +931,20 @@ namespace Server.Guilds
if( killer == null || victim.Guild == null || killer.Guild == null )
return;
Guild victimGuild = victim.Guild as Guild;
Guild killerGuild = killer.Guild as Guild;
Guild victimGuild = GetAllianceLeader( victim.Guild as Guild );
Guild killerGuild = GetAllianceLeader( killer.Guild as Guild );
WarDeclaration war = killerGuild.FindActiveWar( victimGuild );
if( war != null )
war.Kills++;
victimGuild.CheckExpiredWars();
killerGuild.CheckExpiredWars();
if( war == null )
return;
war.Kills++;
if ( war.Opponent == victimGuild )
killerGuild.CheckExpiredWars();
else
victimGuild.CheckExpiredWars();
}
#endregion
@ -1033,7 +1045,29 @@ namespace Server.Guilds
m_Members[i].Delta( MobileDelta.Noto );
}
}
public void InvalidateWarNotoriety()
{
Guild g = GetAllianceLeader( this );
if ( g.Alliance != null )
g.Alliance.InvalidateMemberNotoriety();
else
g.InvalidateMemberNotoriety();
if ( g.AcceptedWars == null )
return;
foreach ( WarDeclaration warDec in g.AcceptedWars )
{
Guild opponent = warDec.Opponent;
if ( opponent.Alliance != null )
opponent.Alliance.InvalidateMemberNotoriety();
else
opponent.InvalidateMemberNotoriety();
}
}
[CommandProperty( AccessLevel.GameMaster )]
public Mobile Leader
@ -1145,21 +1179,12 @@ namespace Server.Guilds
if( NewGuildSystem )
{
if( FindActiveWar( g ) != null )
Guild guild = GetAllianceLeader( this );
Guild otherGuild = GetAllianceLeader( g );
if ( guild.FindActiveWar( otherGuild ) != null )
return true;
AllianceInfo thisAlliace = this.Alliance;
if( thisAlliace != null && this != thisAlliace.Leader && thisAlliace.Leader != null && thisAlliace.IsMember( this ) )
if( thisAlliace.Leader.FindActiveWar( g ) != null )
return true;
AllianceInfo otherAlliance = g.Alliance;
if( otherAlliance != null && otherAlliance.Leader != null && otherAlliance.Leader != g && otherAlliance.IsMember( g ) )
if( FindActiveWar( otherAlliance.Leader ) != null )
return true;
return false;
}
@ -1388,6 +1413,11 @@ namespace Server.Guilds
if( m is PlayerMobile )
((PlayerMobile)m).GuildRank = RankDefinition.Lowest;
Guild guild = m.Guild as Guild;
if ( guild != null )
guild.InvalidateWarNotoriety();
}
}
@ -1400,8 +1430,11 @@ namespace Server.Guilds
if ( m_Members.Contains( m ) )
{
m_Members.Remove( m );
m.Guild = null;
Guild guild = m.Guild as Guild;
m.Guild = null;
if( m is PlayerMobile )
((PlayerMobile)m).GuildRank = RankDefinition.Lowest;
@ -1418,6 +1451,11 @@ namespace Server.Guilds
if ( m_Members.Count == 0 )
Disband();
if ( guild != null )
guild.InvalidateWarNotoriety();
m.Delta( MobileDelta.Noto );
}
}