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
|
|
@ -182,8 +182,19 @@ namespace Server.Guilds
|
|||
return true;
|
||||
|
||||
AllianceInfo alliance = guild.Alliance;
|
||||
if( alliance != null && alliance.IsPendingMember( g ) )
|
||||
return true;
|
||||
|
||||
if( alliance != null )
|
||||
{
|
||||
Guild leader = alliance.Leader;
|
||||
|
||||
if ( leader != null )
|
||||
{
|
||||
if ( guild == leader && alliance.IsPendingMember( g ) || g == leader && alliance.IsPendingMember( guild ) )
|
||||
return true;
|
||||
}
|
||||
else if ( alliance.IsPendingMember( g ) )
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,11 @@ namespace Server.Guilds
|
|||
|
||||
public override void PopulateGump()
|
||||
{
|
||||
WarDeclaration war = guild.FindPendingWar( m_Other );
|
||||
WarDeclaration activeWar = guild.FindActiveWar( m_Other );
|
||||
Guild g = Guild.GetAllianceLeader( guild );
|
||||
Guild other = Guild.GetAllianceLeader( m_Other );
|
||||
|
||||
WarDeclaration war = g.FindPendingWar( other );
|
||||
WarDeclaration activeWar = g.FindActiveWar( other );
|
||||
|
||||
AllianceInfo alliance = guild.Alliance;
|
||||
AllianceInfo otherAlliance = m_Other.Alliance;
|
||||
|
|
@ -200,13 +203,16 @@ namespace Server.Guilds
|
|||
return;
|
||||
|
||||
RankDefinition playerRank = pm.GuildRank;
|
||||
|
||||
Guild guildLeader = Guild.GetAllianceLeader( guild );
|
||||
Guild otherGuild = Guild.GetAllianceLeader( m_Other );
|
||||
|
||||
WarDeclaration war = guild.FindPendingWar( m_Other );
|
||||
WarDeclaration activeWar = guild.FindActiveWar( m_Other );
|
||||
WarDeclaration otherWar = m_Other.FindPendingWar( guild );
|
||||
WarDeclaration war = guildLeader.FindPendingWar( otherGuild );
|
||||
WarDeclaration activeWar = guildLeader.FindActiveWar( otherGuild );
|
||||
WarDeclaration otherWar = otherGuild.FindPendingWar( guildLeader );
|
||||
|
||||
AllianceInfo alliance = guild.Alliance;
|
||||
AllianceInfo otherAlliance = m_Other.Alliance;
|
||||
AllianceInfo otherAlliance = otherGuild.Alliance;
|
||||
|
||||
switch( info.ButtonID )
|
||||
{
|
||||
|
|
@ -219,6 +225,11 @@ namespace Server.Guilds
|
|||
{
|
||||
pm.SendLocalizedMessage( 1063440 ); // You don't have permission to negotiate wars.
|
||||
}
|
||||
else if( alliance != null && alliance.Leader != guild )
|
||||
{
|
||||
pm.SendLocalizedMessage( 1063239, String.Format( "{0}\t{1}", guild.Name, alliance.Name ) ); // ~1_val~ is not the leader of the ~2_val~ alliance.
|
||||
pm.SendLocalizedMessage( 1070707, alliance.Leader.Name ); // You need to negotiate via ~1_val~ instead.
|
||||
}
|
||||
else
|
||||
{
|
||||
//Accept the war
|
||||
|
|
@ -226,31 +237,31 @@ namespace Server.Guilds
|
|||
war.WarBeginning = DateTime.Now;
|
||||
guild.AcceptedWars.Add( war );
|
||||
|
||||
if( guild.Alliance != null && guild.Alliance.IsMember( guild ) )
|
||||
if( alliance != null && alliance.IsMember( guild ) )
|
||||
{
|
||||
guild.Alliance.AllianceMessage( 1070769, ((m_Other.Alliance != null) ? m_Other.Alliance.Name : m_Other.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
guild.Alliance.InvalidateMemberProperties();
|
||||
alliance.AllianceMessage( 1070769, ((otherAlliance != null) ? otherAlliance.Name : otherGuild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
alliance.InvalidateMemberProperties();
|
||||
}
|
||||
else
|
||||
{
|
||||
guild.GuildMessage( 1070769, ((m_Other.Alliance != null) ? m_Other.Alliance.Name : m_Other.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
guild.GuildMessage( 1070769, ((otherAlliance != null) ? otherAlliance.Name : otherGuild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
guild.InvalidateMemberProperties();
|
||||
}
|
||||
//Technically SHOULD say Your guild is now at war w/out any info, intentional diff.
|
||||
|
||||
m_Other.PendingWars.Remove( otherWar );
|
||||
otherGuild.PendingWars.Remove( otherWar );
|
||||
otherWar.WarBeginning = DateTime.Now;
|
||||
m_Other.AcceptedWars.Add( otherWar );
|
||||
otherGuild.AcceptedWars.Add( otherWar );
|
||||
|
||||
if( m_Other.Alliance != null && m_Other.Alliance.IsMember( m_Other ) )
|
||||
if( otherAlliance != null && m_Other.Alliance.IsMember( m_Other ) )
|
||||
{
|
||||
m_Other.Alliance.AllianceMessage( 1070769, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
m_Other.Alliance.InvalidateMemberProperties();
|
||||
otherAlliance.AllianceMessage( 1070769, ((alliance != null) ? alliance.Name : guild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
otherAlliance.InvalidateMemberProperties();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Other.GuildMessage( 1070769, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
m_Other.InvalidateMemberProperties();
|
||||
otherGuild.GuildMessage( 1070769, ((alliance != null) ? alliance.Name : guild.Name) ); // Guild Message: Your guild is now at war with ~1_GUILDNAME~
|
||||
otherGuild.InvalidateMemberProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -265,9 +276,14 @@ namespace Server.Guilds
|
|||
{
|
||||
pm.SendLocalizedMessage( 1063440 ); // You don't have permission to negotiate wars.
|
||||
}
|
||||
else if( alliance != null && alliance.Leader != guild )
|
||||
{
|
||||
pm.SendLocalizedMessage( 1063239, String.Format( "{0}\t{1}", guild.Name, alliance.Name ) ); // ~1_val~ is not the leader of the ~2_val~ alliance.
|
||||
pm.SendLocalizedMessage( 1070707, alliance.Leader.Name ); // You need to negotiate via ~1_val~ instead.
|
||||
}
|
||||
else
|
||||
{
|
||||
pm.SendGump( new WarDeclarationGump( pm, guild, m_Other ) );
|
||||
pm.SendGump( new WarDeclarationGump( pm, guild, otherGuild ) );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -280,11 +296,16 @@ namespace Server.Guilds
|
|||
{
|
||||
pm.SendLocalizedMessage( 1063440 ); // You don't have permission to negotiate wars.
|
||||
}
|
||||
else if( alliance != null && alliance.Leader != guild )
|
||||
{
|
||||
pm.SendLocalizedMessage( 1063239, String.Format( "{0}\t{1}", guild.Name, alliance.Name ) ); // ~1_val~ is not the leader of the ~2_val~ alliance.
|
||||
pm.SendLocalizedMessage( 1070707, alliance.Leader.Name ); // You need to negotiate via ~1_val~ instead.
|
||||
}
|
||||
else
|
||||
{
|
||||
//Dismiss the war
|
||||
guild.PendingWars.Remove( war );
|
||||
m_Other.PendingWars.Remove( otherWar );
|
||||
otherGuild.PendingWars.Remove( otherWar );
|
||||
pm.SendLocalizedMessage( 1070752 ); // The proposal has been updated.
|
||||
//Messages to opposing guild? (Testing on OSI says no)
|
||||
}
|
||||
|
|
@ -297,35 +318,40 @@ namespace Server.Guilds
|
|||
{
|
||||
pm.SendLocalizedMessage( 1063440 ); // You don't have permission to negotiate wars.
|
||||
}
|
||||
else if( alliance != null && alliance.Leader != guild )
|
||||
{
|
||||
pm.SendLocalizedMessage( 1063239, String.Format( "{0}\t{1}", guild.Name, alliance.Name ) ); // ~1_val~ is not the leader of the ~2_val~ alliance.
|
||||
pm.SendLocalizedMessage( 1070707, alliance.Leader.Name ); // You need to negotiate via ~1_val~ instead.
|
||||
}
|
||||
else
|
||||
{
|
||||
if( activeWar != null )
|
||||
{
|
||||
if( guild.Alliance != null && guild.Alliance.IsMember( guild ) )
|
||||
if( alliance != null && alliance.IsMember( guild ) )
|
||||
{
|
||||
guild.Alliance.AllianceMessage( 1070740, ((m_Other.Alliance != null) ? m_Other.Alliance.Name : m_Other.Name) );// You have lost the war with ~1_val~.
|
||||
guild.Alliance.InvalidateMemberProperties();
|
||||
alliance.AllianceMessage( 1070740, ((otherAlliance != null) ? otherAlliance.Name : otherGuild.Name) );// You have lost the war with ~1_val~.
|
||||
alliance.InvalidateMemberProperties();
|
||||
}
|
||||
else
|
||||
{
|
||||
guild.GuildMessage( 1070740, ((m_Other.Alliance != null) ? m_Other.Alliance.Name : m_Other.Name) );// You have lost the war with ~1_val~.
|
||||
guild.GuildMessage( 1070740, ((otherAlliance != null) ? otherAlliance.Name : otherGuild.Name) );// You have lost the war with ~1_val~.
|
||||
guild.InvalidateMemberProperties();
|
||||
}
|
||||
|
||||
guild.AcceptedWars.Remove( activeWar );
|
||||
|
||||
if( m_Other.Alliance != null && m_Other.Alliance.IsMember( m_Other ) )
|
||||
if( otherAlliance != null && otherAlliance.IsMember( otherGuild ) )
|
||||
{
|
||||
m_Other.Alliance.AllianceMessage( 1070739, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) );// You have won the war against ~1_val~!
|
||||
m_Other.Alliance.InvalidateMemberProperties();
|
||||
otherAlliance.AllianceMessage( 1070739, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) );// You have won the war against ~1_val~!
|
||||
otherAlliance.InvalidateMemberProperties();
|
||||
}
|
||||
else
|
||||
{
|
||||
m_Other.GuildMessage( 1070739, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) );// You have won the war against ~1_val~!
|
||||
m_Other.InvalidateMemberProperties();
|
||||
otherGuild.GuildMessage( 1070739, ((guild.Alliance != null) ? guild.Alliance.Name : guild.Name) );// You have won the war against ~1_val~!
|
||||
otherGuild.InvalidateMemberProperties();
|
||||
}
|
||||
|
||||
m_Other.AcceptedWars.Remove( m_Other.FindActiveWar( guild ) );
|
||||
otherGuild.AcceptedWars.Remove( otherGuild.FindActiveWar( guild ) );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -455,6 +481,10 @@ namespace Server.Guilds
|
|||
{
|
||||
guild.Alliance = null; //Calls alliance.Removeguild
|
||||
// alliance.RemoveGuild( guild );
|
||||
|
||||
m_Other.InvalidateWarNotoriety();
|
||||
|
||||
guild.InvalidateMemberNotoriety();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -471,6 +501,10 @@ namespace Server.Guilds
|
|||
else if( alliance != null && alliance.IsMember( guild ) && alliance.IsMember( m_Other ) )
|
||||
{
|
||||
m_Other.Alliance = null;
|
||||
|
||||
m_Other.InvalidateMemberNotoriety();
|
||||
|
||||
guild.InvalidateWarNotoriety();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -104,8 +104,9 @@ namespace Server.Gumps
|
|||
|
||||
for ( int i = 0; i < list.Count; ++i )
|
||||
{
|
||||
int offset = index % 10;
|
||||
int page = 1 + (index / 10);
|
||||
int xoffset = ((index % 20) / 10) * 200;
|
||||
int yoffset = (index % 10) * 20;
|
||||
int page = 1 + (index / 20);
|
||||
|
||||
if ( page != lastPage )
|
||||
{
|
||||
|
|
@ -148,7 +149,7 @@ namespace Server.Gumps
|
|||
continue;
|
||||
|
||||
if ( button != -1 )
|
||||
AddButton( 10, 150 + (offset * 20), 4005, 4007, GetButtonID( button, i ), GumpButtonType.Reply, 0 );
|
||||
AddButton( 10 + xoffset, 150 + yoffset, 4005, 4007, GetButtonID( button, i ), GumpButtonType.Reply, 0 );
|
||||
|
||||
if ( accountOf && m.Player && m.Account != null )
|
||||
name = "Account of " + name;
|
||||
|
|
@ -156,7 +157,7 @@ namespace Server.Gumps
|
|||
if ( leadingStar )
|
||||
name = "* " + name;
|
||||
|
||||
AddLabel( button > 0 ? 45 : 10, 150 + (offset * 20), labelHue, name );
|
||||
AddLabel( button > 0 ? 45 + xoffset : 10 + xoffset, 150 + yoffset, labelHue, name );
|
||||
++index;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -896,6 +896,8 @@ namespace Server.Gumps
|
|||
}
|
||||
default:
|
||||
{
|
||||
int hairhue = 0;
|
||||
|
||||
if ( (info.ButtonID & 0x100) != 0 ) // Hair style selected
|
||||
{
|
||||
int index = info.ButtonID & 0xFF;
|
||||
|
|
@ -905,8 +907,15 @@ namespace Server.Gumps
|
|||
|
||||
HairOrBeard hairStyle = m_HairStyles[index];
|
||||
|
||||
hairhue = m_Vendor.HairHue;
|
||||
|
||||
m_Vendor.HairItemID = 0;
|
||||
m_Vendor.ProcessDelta();
|
||||
|
||||
m_Vendor.HairItemID = hairStyle.ItemID;
|
||||
|
||||
m_Vendor.HairHue = hairhue;
|
||||
|
||||
from.SendGump( new NewPlayerVendorCustomizeGump( m_Vendor ) );
|
||||
}
|
||||
else if ( (info.ButtonID & 0x200) != 0 ) // Beard style selected
|
||||
|
|
@ -921,8 +930,15 @@ namespace Server.Gumps
|
|||
|
||||
HairOrBeard beardStyle = m_BeardStyles[index];
|
||||
|
||||
hairhue = m_Vendor.FacialHairHue;
|
||||
|
||||
m_Vendor.FacialHairItemID = 0;
|
||||
m_Vendor.ProcessDelta();
|
||||
|
||||
m_Vendor.FacialHairItemID = beardStyle.ItemID;
|
||||
|
||||
m_Vendor.FacialHairHue = hairhue;
|
||||
|
||||
from.SendGump( new NewPlayerVendorCustomizeGump( m_Vendor ) );
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue