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:
parent
d688c9e0f3
commit
208acafd7e
37 changed files with 1058 additions and 226 deletions
|
|
@ -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 );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue