void GuildLeave()
{
//Write our function inside a catcher
try
{
//Send required packets to network
foreach (int member in Character.Network.Guild.Members)
{
//Make sure member s not null
if (member != 0)
{
//Get information for the guildmember
Systems guildmember = GetPlayerMainid(member);
//Make sure the guildmember isnt null
if (guildmember != null)
{
//Send update packet
guildmember.client.Send(Packet.GuildUpdate(Character, 12, 0, 0, 0));
}
}
}
//Send public packet to in range players (removal guild name).
Send(Packet.GuildKick(Character.Information.UniqueID));
//Removal from guild
client.Send(Packet.GuildLeave());
//Send normal state packet
client.Send(Packet.StatePack(Character.Information.UniqueID, 0x04, 0x00, false));
//Count new members minus 1
int Membercount = Character.Network.Guild.Members.Count - 1;
//Update database
MsSQL.InsertData("UPDATE guild SET guild_members_t='" + Membercount + "' WHERE guild_name='" + Character.Network.Guild.Name + "'");
//Remove the player from database
MsSQL.UpdateData("DELETE from guild_members where guild_member_id='" + Character.Information.CharacterID + "'");
//If the guild has a union
if (Character.Network.Guild.UniqueUnion != 0)
{
//Set boolean unionactive to false
Character.Network.Guild.UnionActive = false;
//Remove the member from union member list
Character.Network.Guild.UnionMembers.Remove(Character.Information.CharacterID);
}
//Cleanup character
CleanUp(this);
//Reload information
LoadPlayerGuildInfo(true);
}
//Catch bad exception errors
catch (Exception ex)
{
//Write information the the debug log
Systems.Debugger.Write(ex);
}
}