When you invite someone to your guild 2 times, it auto. gets him into guild, even if he presses cancel but it must be 2 times, i hope you've got me heres a copy of guild commands hope you can tell me whats wrong....
Code:
#region Guild command (1107)
case 1107:
{
GuildCommand command = new GuildCommand(false);
command.Deserialize(packet);
switch (command.Type)
{
case GuildCommand.Neutral1:
case GuildCommand.Neutral2:
{
string name = System.Text.ASCIIEncoding.ASCII.GetString(packet, 26, packet[25]);
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
client.Guild.RemoveAlly(name);
foreach (var guild in ServerBase.Kernel.Guilds.Values)
{
if (guild.Name == name && client.Guild.Name != name)
{
guild.RemoveAlly(client.Guild.Name);
}
}
client.Guild.RemoveEnemy(name);
}
}
break;
}
case GuildCommand.Allied:
{
string name = System.Text.ASCIIEncoding.ASCII.GetString(packet, 26, packet[25]);
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
// AllyGuilds(name, client);
// AllyGuilds(name, client);
client.Guild.AddAlly(name);
client.Send(new Message("You have made an Alliance on the Guild "+ name + " besure To Inform Him that you made Alliance and accept it officially" , System.Drawing.Color.White, Message.Center));
client.Send(new Message("If He did not accept officially he can still hit you with TeamMode", System.Drawing.Color.White, Message.TopLeft));
}
}
break;
}
case GuildCommand.Enemied:
{
string name = System.Text.ASCIIEncoding.ASCII.GetString(packet, 26, packet[25]);
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
client.Guild.AddEnemy(name);
}
}
break;
}
default:
{
client.Send(packet);
break;
}
case GuildCommand.Bulletin:
{
string message = System.Text.ASCIIEncoding.ASCII.GetString(packet, 26, packet[25]);
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
client.Guild.Bulletin = message;
client.Guild.SendGuild(client);
Database.GuildTable.UpdateBulletin(client.Guild, client.Guild.Bulletin);
}
}
break;
}
case GuildCommand.DonateSilvers:
{
if (client.Guild != null)
{
if (client.Entity.Money >= command.dwParam)
{
client.Guild.SilverFund += command.dwParam;
Database.GuildTable.SaveFunds(client.Guild);
client.AsMember.SilverDonation += command.dwParam;
client.Entity.Money -= command.dwParam;
client.Guild.SendGuild(client);
}
}
break;
}
case GuildCommand.DonateConquerPoints:
{
if (client.Guild != null)
{
if (client.Entity.ConquerPoints >= command.dwParam)
{
client.Guild.ConquerPointFund += command.dwParam;
Database.GuildTable.SaveFunds(client.Guild);
client.AsMember.ConquerPointDonation += command.dwParam;
client.Entity.ConquerPoints -= command.dwParam;
client.Guild.SendGuild(client);
}
}
break;
}
case GuildCommand.Refresh:
{
if (client.AsMember != null)
{
if (client.Guild != null)
client.Guild.SendGuild(client);
}
break;
}
case GuildCommand.Discharge:
{
string name = System.Text.ASCIIEncoding.ASCII.GetString(packet, 26, packet[25]);
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
var member = client.Guild.GetMemberByName(name);
if (member.ID != client.Entity.UID)
{
if (member.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader)
{
client.Guild.DeputyLeaderCount--;
member.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.Member;
if (member.IsOnline)
{
client.Guild.SendGuild(member.Client);
member.Client.Entity.GuildRank = (ushort)member.Rank;
member.Client.Screen.FullWipe();
member.Client.Screen.Reload(null);
}
}
}
}
}
break;
}
case GuildCommand.Promote:
{
if (client.Guild != null)
{
if (client.AsMember.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
if (client.Guild.Members.ContainsKey(command.dwParam))
{
var member = client.Guild.Members[command.dwParam];
if (member.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
member.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader;
if (member.IsOnline)
{
client.Guild.SendGuild(member.Client);
member.Client.Entity.GuildRank = (ushort)member.Rank;
member.Client.Screen.FullWipe();
member.Client.Screen.Reload(null);
}
}
else if (member.Rank == Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader)
{
member.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader;
if (member.IsOnline)
{
client.Guild.SendGuild(member.Client);
member.Client.Entity.GuildRank = (ushort)member.Rank;
member.Client.Screen.FullWipe();
member.Client.Screen.Reload(null);
}
client.AsMember.Rank = Conquer_Online_Server.Game.Enums.GuildMemberRank.DeputyLeader;
client.Guild.SendGuild(client);
client.Entity.GuildRank = (ushort)client.AsMember.Rank;
client.Screen.FullWipe();
client.Screen.Reload(null);
}
}
}
}
break;
}
case GuildCommand.JoinRequest:
{
if (ServerBase.Kernel.GamePool.ContainsKey(command.dwParam))
{
var Client = ServerBase.Kernel.GamePool[command.dwParam];
if (Client.OnHoldGuildJoin == client.OnHoldGuildJoin && Client.OnHoldGuildJoin != 0)
{
if (Client.Guild != null)
{
if (Client.AsMember.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
Client.Guild.AddMember(client);
Client.OnHoldGuildJoin = 0;
client.OnHoldGuildJoin = 0;
}
}
else
{
if (client.AsMember.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
client.Guild.AddMember(Client);
Client.OnHoldGuildJoin = 0;
client.OnHoldGuildJoin = 0;
}
}
return;
}
if (client.Guild == null)
{
command.dwParam = client.Entity.UID;
Client.Send(command);
Client.OnHoldGuildJoin = (uint)new Random().Next();
client.OnHoldGuildJoin = Client.OnHoldGuildJoin;
}
}
break;
}
case GuildCommand.InviteRequest:
{
if (ServerBase.Kernel.GamePool.ContainsKey(command.dwParam))
{
var Client = ServerBase.Kernel.GamePool[command.dwParam];
if (Client.OnHoldGuildJoin == client.OnHoldGuildJoin && Client.OnHoldGuildJoin != 0)
{
if (Client.Guild != null)
{
if (Client.AsMember.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
Client.Guild.AddMember(client);
Client.OnHoldGuildJoin = 0;
client.OnHoldGuildJoin = 0;
}
}
else
{
if (client.AsMember.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.Member)
{
client.Guild.AddMember(Client);
Client.OnHoldGuildJoin = 0;
client.OnHoldGuildJoin = 0;
}
}
return;
}
if (client.Guild != null)
{
command.dwParam = client.Entity.UID;
Client.Send(command);
Client.OnHoldGuildJoin = (uint)new Random().Next();
client.OnHoldGuildJoin = Client.OnHoldGuildJoin;
}
}
break;
}
case GuildCommand.Quit:
{
if (client.Guild != null)
{
if (client.AsMember.Rank != Conquer_Online_Server.Game.Enums.GuildMemberRank.GuildLeader)
{
client.Guild.ExpelMember(client.Entity.Name, true);
}
}
break;
}
}
break;
}
case 1058: // Donation and Exploit Guild
{
Game.ConquerStructures.Society.Guild.GuildProfile(packet, client);
break;
}
#endregion






