I'm using the basic daoc UI, and have never patched past 1.109.It could be your user interface, it could be an issue with 1.109 or 1.110 rolled back to 1.109. Most likely it's the UI you're using.
No go on the addition of /groupdisband... they must of changed the command that the disband button sends, but to what?
DisbandFromGroup = 0x9F, // 0x37 ^ 168
client.Player.Group.MakeLeader(target);
//WHRIA
client.Player.Group.UpdateGroupWindow();
client.Player.Group.SendMessageToGroupMembers(string.Format("{0} is the new group leader.", target.Name), eChatType.CT_System, eChatLoc.CL_SystemWindow);
//END
client.Player.Group.SendMessageToGroupMembers(target.Name + " is new group leader.", eChatType.CT_System, eChatLoc.CL_SystemWindow);
public bool MakeLeader(GameLiving living)
{
return m_groupMembers.FreezeWhile<bool>(l => {
if (!l.Contains(living))
return false;
byte ind = living.GroupIndex;
var oldLeader = l[0];
l[ind] = oldLeader;
l[0] = living;
LivingLeader = living;
living.GroupIndex = 0;
oldLeader.GroupIndex = ind;
// all went ok
//WHRIA
// UpdateGroupWindow();
// SendMessageToGroupMembers(string.Format("{0} is the new group leader.", Leader.Name), eChatType.CT_System, eChatLoc.CL_SystemWindow);
return true;
});
}
Index: GameServer/gameutils/Group.cs
===================================================================
--- GameServer/gameutils/Group.cs (revision 3460)
+++ GameServer/gameutils/Group.cs (revision 3461)
@@ -249,7 +249,7 @@
}
// Update all members
- if (MemberCount > 1 && Leader == living)
+ if (MemberCount > 1 && LivingLeader == living)
{
var newLeader = m_groupMembers.OfType<GamePlayer>().First();
@@ -303,7 +303,7 @@
/// <returns></returns>
public bool MakeLeader(GameLiving living)
{
- return m_groupMembers.FreezeWhile<bool>(l => {
+ bool allOk = m_groupMembers.FreezeWhile<bool>(l => {
if (!l.Contains(living))
return false;
@@ -315,11 +315,16 @@
living.GroupIndex = 0;
oldLeader.GroupIndex = ind;
- // all went ok
- UpdateGroupWindow();
- SendMessageToGroupMembers(string.Format("{0} is the new group leader.", Leader.Name), eChatType.CT_System, eChatLoc.CL_SystemWindow);
return true;
});
+ if (allOk)
+ {
+ // all went ok
+ UpdateGroupWindow();
+ SendMessageToGroupMembers(string.Format("{0} is the new group leader.", Leader.Name), eChatType.CT_System, eChatLoc.CL_SystemWindow);
+ }
+
+ return allOk;
}
#endregion
Index: GameServer/packets/Server/IPacketLib.cs
===================================================================
--- GameServer/packets/Server/IPacketLib.cs (revision 3460)
+++ GameServer/packets/Server/IPacketLib.cs (revision 3461)
@@ -154,7 +154,7 @@
InviteToGroup = 0x87, // 0x2F ^ 168
HouseEnterLeave = 0x0B, // 0xA3 ^ 168
DoorRequest = 0x99, // 0x31 ^ 168
- DisbandFromGroup = 0xA8, // 0x37 ^ 168
+ DisbandFromGroup = 0x9F, // 0x37 ^ 168
DialogResponse = 0x82, // 0x2A ^ 168
CheckLOSRequest = 0xD0, // 0x78 ^ 168
UseSpell = 0x7D, // 0xD5 ^ 168
Index: GameServer/commands/playercommands/makeleader.cs
===================================================================
--- GameServer/commands/playercommands/makeleader.cs (revision 3460)
+++ GameServer/commands/playercommands/makeleader.cs (revision 3461)
@@ -86,8 +86,7 @@
}
- client.Player.Group.MakeLeader(target);
- client.Player.Group.SendMessageToGroupMembers(target.Name + " is new group leader.", eChatType.CT_System, eChatLoc.CL_SystemWindow);
+ client.Player.Group.MakeLeader(target);
}
}
}
\ No newline at end of file
Index: GameServer/commands/playercommands/disband.cs
===================================================================
--- GameServer/commands/playercommands/disband.cs (revision 3460)
+++ GameServer/commands/playercommands/disband.cs (revision 3461)
@@ -18,6 +18,7 @@
*/
using DOL.GS.PacketHandler;
using DOL.Language;
+using System.Linq;
namespace DOL.GS.Commands
{
@@ -50,7 +51,7 @@
string name = args[1];
- if (name == client.Player.Name)
+ if (name.Equals(client.Player.Name, System.StringComparison.OrdinalIgnoreCase))
{
client.Out.SendMessage(LanguageMgr.GetTranslation(client.Account.Language, "Scripts.Players.Disband.NoYourself"), eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
@@ -58,14 +59,13 @@
int startCount = client.Player.Group.MemberCount;
- foreach (GameLiving living in client.Player.Group.GetMembersInTheGroup())
+ foreach (GameLiving living in client.Player.Group.GetMembersInTheGroup().Where(gl => gl.Name.Equals(name, System.StringComparison.OrdinalIgnoreCase)))
{
- if (living.Name == name)
client.Player.Group.RemoveMember(living);
}
//no target found to remove
- if (client.Player.Group.MemberCount == startCount)
+ if (client.Player.Group != null && client.Player.Group.MemberCount == startCount)
{
client.Out.SendMessage(LanguageMgr.GetTranslation(client.Account.Language, "Scripts.Players.Disband.NoPlayer"), eChatType.CT_System, eChatLoc.CL_SystemWindow);
return;
Users browsing this forum: No registered users and 1 guest